묻고 답해요
150만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
순위 정보를
불러오고 있어요
-
미해결코드로 배우는 React with 스프링부트 API서버
vite + react <MainPage/> intelij
안녕하세요 인텔리제이 사용중인데create react app으로 하게 되면 더이상 지원하지 않는다 하여 vite + react로 적용해서 프로젝트 만들어서 하고 있습니다현재 2강 React-Router 이용해서 메인 페이지 띄우는 작업중인데 오류가 발생하여 진행이 안됩니다 그리고 매번 강의 때마다 오류 수정하느라 강의가 원활하지 않습니다 강의는 더이상 업데이트 계획이 없으실까요? 리액트 프로젝트 생성부터 막혀서 진행이 원할하게 되지않습니다 환불하고 싶은데 기간도 지나서 환불도 안되고 답답하네요 매번 이런식으로 물어보면서 수정해야 하나요?? 매뉴얼이라도 만들어주세요 정말 불편합니다
-
미해결코드로 배우는 React with 스프링부트 API서버
9강 kakao api로 아이디 생성 후 오류
9강 리액트 사용자 정보 수정 중에 kakao api 연동해서 그전까지 잘되는데, 디비에 카카오 사용자 정보가 없는 상태에서 로그인을 하면 디비에 member와 member_member_role_list 두 테이블 사용자가 잘 생성됩니다. 서버에는 getClaims 함수실행에서 오류가 발생하고 DTO에 정보를 못찾는다는거 같은 오류인거 같은데화면상에는 이렇게 나옵니다.새로고침 후의 상태이고그냥 localhost:3000 으로 다시 들어가서 로그인을 하면 디비에는 카카오사용자가 생성이 된 상태라 로그인이 잘됩니다.... 원인이 무엇일까요@GetMapping("/api/member/kakao") public Map<String, Object> getMemberFromKakao(String accessToken) { log.info("access Token : {}", accessToken); MemberDTO memberDTO = memberService.getKakaoMember(accessToken); Map<String, Object> claims = memberDTO.getClaims(); String jwtAccessToken = JWTUtil.generateToken(claims, 10); String jwtRefreshToken = JWTUtil.generateToken(claims, 60 * 24); claims.put("accessToken", jwtAccessToken); claims.put("refreshToken", jwtRefreshToken); return claims; }public Map<String, Object> getClaims() { Map<String, Object> dataMap = new HashMap<>(); dataMap.put("email", email); dataMap.put("pw", pw); dataMap.put("nickname", nickname); dataMap.put("social", social); dataMap.put("roleNames", roleNames); return dataMap; }import axios from "axios" import { API_SERVER_HOST } from "./todoApi" const rest_api_key = `` const redirect_uri = `http://localhost:3000/member/kakao` const auth_code_path = `https://kauth.kakao.com/oauth/authorize` const access_token_url =`https://kauth.kakao.com/oauth/token` export const getKakaoLoginLink = () => { const kakaoURL = `${auth_code_path}?client_id=${rest_api_key}&redirect_uri=${redirect_uri}&response_type=code` return kakaoURL } export const getAccessToken = async (authCode) => { const header = { headers: { "Content-Type": "application/x-www-form-urlencoded", } } const params = { grant_type: "authorization_code", client_id: rest_api_key, redirect_uri: redirect_uri, code: authCode } const res = await axios.post(access_token_url, params, header) const accessToken = res.data.access_token return accessToken } export const getMemberWithAccessToken = async (accessToken) => { const res = await axios.get(`${API_SERVER_HOST}/api/member/kakao?accessToken=${accessToken}`) return res.data }rest_api_key에 restkey입력되어있습니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
@OneToMany,@JoinColumn 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요, 공부하다가 정리한 제 생각이 맞는지 궁금합니다.> @JoinColumn: 외래 키(Foreign Key, FK)를 소유하는 엔티티이며, 해당 필드를 가진 엔티티는 연관관계의 주인이다. JPA가 연관된 상대 엔티티에 name으로 지정한 Column을 추가한다.> @OneToMany: 기본적으로 연관관계의 주인이 아니며(1인 team에 FK값인 member_id를 가지면 불필요한 데이터 증가하기 때문) 연관관계 주인인 테이블에 추가적인 update SQL이 진행된다. 감사합니다.
-
미해결실전! 스프링 데이터 JPA
왜 select에서 left join을 수행하더라도 count에서는 left join을 수행하지 않나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요, 강의 잘 듣고 있습니다. 질문도 드리고, 맞다면 메뉴얼에 추가할 만한 내용이 있는 것 같아서 글 남겼습니다! Page를 조회해올 때, left join을 사용한 경우, countQuery에 대해 명시하지 않더라도 count 쿼리문에서는 join 문이 확인되지 않았는데, 이것 또한 하이버네이트6에서 최적화하여 join 문을 생략한 것일까요? 하이버네이트6에서 left join을 직접 추가하더라도 내부적으로 최적화하는 질문을 보고 메뉴얼("스프링 부트 3 - 하이버네이트 6 left join 최적화 설명 추가")도 확인했습니다.그럼에도 join을 강제로 수행시켜도 count 쿼리 또한 join 돼서 수행되는지 확인하고 싶어 다음과 같이 코드를 작성해봤습니다.@Query(value = "select m,t from Member m left join m.team t") Page<Member> findPageByAge(int age, Pageable pageable);@Test public void paging() { //given memberRepository.save(new Member("member1", 10)); memberRepository.save(new Member("member2", 10)); memberRepository.save(new Member("member3", 10)); memberRepository.save(new Member("member4", 10)); memberRepository.save(new Member("member5", 10)); int age = 10; PageRequest pageRequest = PageRequest.of(0, 3, Sort.by(Direction.DESC, "username")); Page<Member> page = memberRepository.findPageByAge(age, pageRequest); //then List<Member> members = page.getContent(); long totalElements = page.getTotalElements(); assertThat(members.size()).isEqualTo(3); assertThat(totalElements).isEqualTo(5); assertThat(page.getNumber()).isEqualTo(0); assertThat(page.getTotalPages()).isEqualTo(2); assertThat(page.isFirst()).isTrue(); assertThat(page.hasNext()).isTrue(); }테스트 코드는 강의와 똑같이 작성하고, 쿼리문에서 select m, t로 한 뒤 countQuery는 별도로 추가하지 않았습니다.이때, 수행되는 쿼리가 다음과 같은데,select m1_0.member_id, m1_0.age, m1_0.team_id, m1_0.username, t1_0.team_id, t1_0.name from member m1_0 left join team t1_0 on t1_0.team_id=m1_0.team_id order by m1_0.username desc fetch first ? rows onlyselect count(m1_0.member_id) from member m1_0countQuery를 명시하지 않았음에도, 강의와 달리 count 쿼리문에서는 join이 수행되지 않았습니다.
-
미해결코드로 배우는 React with 스프링부트 API서버
DTO 설정과 서비스계층 만들기 강의에서 TodoServiceTests를 실행시켰는데 에러가 발생했습니다
강의를 따라서 코딩하고 실행시켜 봤는데 아래와 같은 내용으로 에러가 발생했습니다. 어떤 곳이 문제가 있는 알려 주신다면 감사하겠습니다.혹시 확인하고 싶으신 게 있다면 알려 주셨으면 합니다. :: Spring Boot :: (v3.4.1)2025-02-11T11:28:59.109+09:00 INFO 2836 --- [apiserver] [ Test worker] o.z.apiserver.service.TodoServiceTests : Starting TodoServiceTests using Java 21.0.5 with PID 2836 (started by zzamp in C:\Users\zzamp\Desktop\apiserver\apiserver)2025-02-11T11:28:59.110+09:00 INFO 2836 --- [apiserver] [ Test worker] o.z.apiserver.service.TodoServiceTests : No active profile set, falling back to 1 default profile: "default"2025-02-11T11:28:59.445+09:00 INFO 2836 --- [apiserver] [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.2025-02-11T11:28:59.484+09:00 INFO 2836 --- [apiserver] [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 32 ms. Found 1 JPA repository interface.2025-02-11T11:28:59.760+09:00 INFO 2836 --- [apiserver] [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]2025-02-11T11:28:59.801+09:00 INFO 2836 --- [apiserver] [ Test worker] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.6.4.Final2025-02-11T11:28:59.824+09:00 INFO 2836 --- [apiserver] [ Test worker] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled2025-02-11T11:28:59.996+09:00 INFO 2836 --- [apiserver] [ Test worker] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer2025-02-11T11:29:00.015+09:00 INFO 2836 --- [apiserver] [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...2025-02-11T11:29:00.071+09:00 INFO 2836 --- [apiserver] [ Test worker] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection org.mariadb.jdbc.Connection@72f24a842025-02-11T11:29:00.073+09:00 INFO 2836 --- [apiserver] [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.2025-02-11T11:29:00.107+09:00 INFO 2836 --- [apiserver] [ Test worker] org.hibernate.orm.connections.pooling : HHH10001005: Database info: Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)'] Database driver: undefined/unknown Database version: 10.11.10 Autocommit mode: undefined/unknown Isolation level: undefined/unknown Minimum pool size: undefined/unknown Maximum pool size: undefined/unknown2025-02-11T11:29:00.552+09:00 INFO 2836 --- [apiserver] [ Test worker] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)2025-02-11T11:29:00.580+09:00 INFO 2836 --- [apiserver] [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'2025-02-11T11:29:00.892+09:00 WARN 2836 --- [apiserver] [ Test worker] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning2025-02-11T11:29:01.216+09:00 INFO 2836 --- [apiserver] [ Test worker] o.z.apiserver.service.TodoServiceTests : Started TodoServiceTests in 2.251 seconds (process running for 3.134)Mockito is currently self-attaching to enable the inline-mock-maker. This will no longer work in future releases of the JDK. Please add Mockito as an agent to your build what is described in Mockito's documentation: https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html#0.3WARNING: A Java agent has been loaded dynamically (C:\Users\zzamp\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.15.11\a38b16385e867f59a641330f0362ebe742788ed8\byte-buddy-agent-1.15.11.jar)WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warningWARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more informationWARNING: Dynamic loading of agents will be disallowed by default in a future releaseHibernate: select t1_0.tno,t1_0.complete,t1_0.content,t1_0.due_date,t1_0.title from tbl_todo t1_0 where t1_0.tno=?No value presentjava.util.NoSuchElementException: No value present at java.base/java.util.Optional.orElseThrow(Optional.java:377) at org.zerock.apiserver.service.TodoServiceImpl.get(TodoServiceImpl.java:24) at org.zerock.apiserver.service.TodoServiceTests.testGet(TodoServiceTests.java:20) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended> Task :testTodoServiceTests > testGet() FAILED java.util.NoSuchElementException at TodoServiceTests.java:20타깃 VM에서 연결 해제되었습니다. 주소: 'localhost:4408', 전송: '소켓'2025-02-11T11:29:32.264+09:00 INFO 2836 --- [apiserver] [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'2025-02-11T11:29:32.265+09:00 INFO 2836 --- [apiserver] [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...2025-02-11T11:29:32.268+09:00 INFO 2836 --- [apiserver] [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.> Task :test FAILED1 test completed, 1 failedFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':test'.> There were failing tests. See the report at: file:///C:/Users/zzamp/Desktop/apiserver/apiserver/build/reports/tests/test/index.html* Try:> Run with --scan to get full insights.BUILD FAILED in 36s5 actionable tasks: 5 executed
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
트랜잭션 내에서 엔티티를 저장하는 경우. (+ Unique 제약 조건)
1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요! 현재 JPA 강의를 수강하고, 프로젝트를 진행중인데 의문점이 들어서 질문 드립니다. 상황은 다음과 같습니다!public UserService { @Transactional public void loginExample(String phoneNumber) { // 저장 Member member = memberRepository.save(Member.from(phoneNumber)); // JWT Logic. // // return; } }코드가 위와 같을때, Member Entity의 id 생성 전략이 IDENTITY 인 경우, save 호출 시점에 DB에 조회를 발생시켜 아이디를 가져오는 것으로 이해하였습니다. 만약 동일한 핸드폰번호로 동시에 요청이 들어오게 된다면,(핸드폰 번호는 Unique 제약 조건을 갖고 있습니다.)특정 트랜잭션 A에서 save 까지만 성공한 후, 컨텍스트 스위칭이 발생하여 트랜잭션 B에서 save 함수를 새로 호출하게 되는 시점에 트랜잭션 A가 아직 Commit 되지 않았는데 어떻게 충돌을 감지할 수 있는지 궁금합니다! * save 이후에 예외를 반환해도 Rollback이 되지 않고, 그대로 Row가 남아있는걸로 보아선, JPARepository.save 메서드는 부모 트랜잭션과 별개의 트랜잭션으로 동작하는 것일까요? 따라서, ID의 GenerationType 이 AUTO(IDENTITY)인 경우에 save 메서드는 부모 트랜잭션에 종속되지 않은 독립된 트랜잭션인 것인지가 궁금합니다..!
-
해결됨실전! 스프링 데이터 JPA
하이버네이트 프록시객체 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요 영한 님 강의를 들으며 공부하던 중 findAll 메서드를 통해 가져온 List<Member> members의 각 Member들이 team 필드에 프록시 객체를 들고 있다고 말씀하셨는데, 해당 프록시 객체의 값을 디버깅해 본 결과 그 안에 이미 값이 존재 했습니다. console을 확인해보니 아직 db에 쿼리를 날리기 전인데(쿼리를 날리기 전인지 p6spy에 들어오기 전인지는 확인하지 못한 점 죄송합니다.) members의 각 Member들의 team필드에 프록시 객체가 존재하지만 그 안에 이미 team의 값이 들어있는데 em.clear()를 통해 영속성콘텍스트마저 비워줬는데 어떻게 이미 알고 있는 건가요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
'섹션 4 영속성 관리 - 내부 동작 방식' 관련 내용 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]처음에 Member 테이블이 비어있는 상태입니다.아래 코드를 첫번째 실행할때는 insert, insert, update 총 3번의 쿼리가 날아가고,두번째 실행할때는 insert, insert 총 2번의 쿼리가 날아가게 됩니다. 왜 첫 번째 실행시에는 update 쿼리가 날아가지만, 동일한 코드를 두 번째 실행할때는 update 쿼리가 날아가지 않는지 궁금합니다.둘다 persist시에 영속성 컨텍스트의 1차캐시에 PK가 150L인 엔티티가 저장되고, find시에 DB가 아닌 해당 1차 캐시에서 가져오는 것이라고 이해했습니다. 그렇다면 두 코드 모두 변경 감지(Dirty Checking)에 의해 update가 날아가야하는 것 아닌가요?public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); try { // 트랜잭션을 지원하는 쓰기 지연 Member member1 = new Member(150L, "A"); Member member2 = new Member(160L, "B"); em.persist(member1); em.persist(member2); System.out.println("================"); // 변경 감지 Member member = em.find(Member.class, 150L); member.setName("ZZZ"); tx.commit(); } catch (Exception e) { tx.rollback(); } finally { em.close(); } emf.close(); } }
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
묵시적 조인말고 명시적 조인을 쓰라고 하셨는데 그러면 외래키 연관관계 매핑을 할 필요가 없지 않나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]묵시적 조인말고 명시적 조인을 쓰라고 하셨는데 그러면 외래키 연관관계 매핑을 할 필요가 없지 않나요?외래키를 @ManytoOne mappyby 이런걸 쓸 필요가 없지 않나요?처음에 배울때 member.getTeam() 이렇게 member에서 team을 꺼낼때는 사용하는 용도로 아는데이때도 조인이 이루어지는걸로 아는데 이것도 묵시적 조인이 아닌가요?getTeam() 이런걸 쓰지 말라는건가요? 아니면jpql을 사용할때만 m.team 이런걸 쓰지말라는건지에매하네요
-
해결됨RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기
챕터18 retry yml 강의 부분 질문
안녕하세요 챕터18 강의에 대한 질문 두가지가 있습니다..retry 관련 yml에 설정을 하였을 경우에는아래 코드에 자동으로 retryTemplate 이 적용되는 것으로 확인하였는데요..여기서 스프링이 어떻게 구분을 하고 해당 메서드에 retry를 적용 시키는 건가요? 아니면 큐 이름을 보고 ORDER_COMPLETED_QUEUE에 설정된 .withArgument(데드레터인자) 이 설정값들을 보고 확인 했던 것일까요..? 그리고 @Retryable 해당 어노테이션도 존재하던데 해당 어노테이션은 aop 방식으로 template이 적용되는 것 같은데 이 방법을 사용하여도 똑같이 적용 되는 것일까요.?@RabbitListener(queues = ORDER_COMPLETED_QUEUE) public void consume(String message){ if ("fail".equalsIgnoreCase(message)){ System.out.println("retry count: " + ++retryCount); throw new RuntimeException(); } System.out.println("Received Message: " + message); }
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
git에서 설정파일 읽어들일 때 윈도우의 경우 로컬위치가 name에 붙어 나오는 현상
저한테도 있어서 봤는데, 크게 신경 쓸 필요는 없을 것 같습니다.Appdata/local/temp 는 말 그대로 앱의 임시파일 저장하는 곳이고, config 서버 기동 시 git에서 해당 설정파일들을 읽어들여 저 위치에 저장하는 것으로 보입니다.근데 왜 윈도우만 저렇게 임시파일을 저장하고 그 위치의 주소를 붙여서 출력해주는지는 잘 모르겠네요. 맥OS는 그때그때 git에서 파일을 가져오는 것일까요? 제가 맥이 없어서 그걸 모르겠네요.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
persist 호출 시점에 영속성 컨테스트 객체 상태
https://www.inflearn.com/community/questions/336059/%EC%96%91%EB%B0%A9%ED%96%A5-%EC%97%B0%EA%B4%80%EA%B4%80%EA%B3%84-%EC%A3%BC%EC%9D%98%EC%A0%90%EC%97%90-%EA%B4%80%ED%95%9C-%EC%A7%88%EB%AC%B8안녕하세요. 위 질문을 보고 궁금한 점이 생겨서 질문드립니다. 강의에서 진행하는 프로젝트에서 기본키 생성전략을 IDENTITY 라고 하면 em.persist()를 호출하는 시점에 insert 쿼리를 날려서 db에 저장을 하고, 키를 조회해서 영속성 컨텍스트의 키로 사용한다고 이해하고 있습니다. 이 때 영속성 컨텍스트의 키는 실제 DB의 키를 사용하고 영속성 컨텍스트의 엔티티는 DB의 데이터가 아닌 순수 객체가 들어가는 것이 맞나요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
setOrder();를 하신 이유가 궁금합니다.
안녕하세요. 강의 내용 16분30초쯤에Order order = new Order();order.addOrderItem(new OrderItem());위 코드를 아래와같이Order order = new Order();em.persist(order);OrderItem orderItem = new OrderItem();orderItem.setOrder(order); 1. 이렇게 수정하셨는데, 이렇게 하시는 이유가 무엇인가요..? 양방향연관관계라서 addOrderItem()을 통해 양쪽에 값을 설정해줬었는데 왜 아래와 같이 변경하신건지 궁금해서 질문드립니다. 2. Order와 OrderItem간의 관계를 양방향연관관계로 하지말고, OrderItem -> Order 단방향연관관계로 설계해서 OrderItem에만 setOrder()로 설정해주신것일까요??3. 만약 2번의 내용이 맞다면, 그렇게 하신 이유도 궁금합니다... 감사합니다
-
해결됨RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기
tutorial-step4 질문
안녕하세요 해당 챕터에서 듣던 중 궁금한 점이 있습니다.FanoutExchange, java, spring, vue queue 이렇게 세가지를 바인딩 설정을 하였는데 FanoutExchange는 메세지를 발행하면 바인딩 설정된 모든 큐에 메세지를 전달하는것으로 이해했습니다. 그리고 rabbitTemplate.convertAndSend(fanoutExchange, news(라우팅키) , message) 이렇게 pub에서 발행,sub 에서는 3개의 rabbitListner 들이 있던데 이렇게 되면 3개의 sub 메세지를 다 받아야 되는게 아닌가 싶어서요.강의를 보면은 java로 보내면 java큐에만 메세지가 들어가서 sub이 받는거 같더라구요 이 부분이 이해가 안갑니다..
-
해결됨RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기
pub/sub, producer/consumer 차이
안녕하세요 두 개념의 차이점이 궁금한데요 pub/sub 은 특정 topic으로 메세지를 발행하면 해당 topic을구독중인 여러 구독자들에게 전달될 수 있고producer/consumer는 메세지를 큐에 발행하면 큐에 저장된 메세지는 한명의 소비자에게만 전달 될 수 있는 건가요?그러면 rabbitmq는 producer/consumer 이고 websocket은 pub/sub 인가요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
DTO 분리
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 좋은 강의 항상 감사드립니다. 강의를 수강 하던 중 간단한 질문이 있어 작성하였습니다! OSIV를 끄기 위해 분리를 하실 때 QueryService를 만드시면서 동시에 기존의 DTO들을 사용하지 않으시고 Query 패키지에 새로 만들어 사용하셨는데 기존 DTO를 사용하지 않는 이유가 궁금합니다!또한 이렇게 분리해서 새로 만드는 것이 권장되는 사항인지 궁금합니다!
-
미해결RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기
모듈질문
안녕하세요. 강의 잘 듣고 있습니다선결지식 확인 질문과, 강의 질문이 있습니다. Q1. 원래는 프로듀서 모듈, 컨슈머 모듈, 클라이언트(API)이렇게 3개의 모듈로 분리되어서 처리되는게 맞는거죠?그리고 모듈이라하는거는 하나의 jar로 묶일 수 있는 모듈과, 각각 pid를 갖는 단일 프로세스 모듈 이렇게 있는데보통은 프로듀서/컨슈머/클라이언트 모듈이라 하면 후자를 지칭하는 것도 맞구요!? Q2. 강의에서 애플리케이션을 jar로 말아서 2개를 띄우신 것은 어떻게 보면 현재 애플리케이션 내부에서 produce/consume/client 3개의 역할을 혼자 다 맡고 있기때문에의도하신 바는 consumer를 2개 띄웠을 경우 RR 방식으로 동작한다는 것을 뜻하신게 맞을까요? 감사합니다 :)
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Valid체크 오류 문의드려요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]상품등록시에서도 입력받는 책 데이터들의 valid를 체크하고싶어서 memberForm을 받을때와 마찬가지로코드를 짰는데 계속해서 오류가 납니다... 아무리 찾아봐도 모르겠어서 질문 남깁니다(name만 null체크를 합니다.) BookFormItemController templates/items/createItemForm.html오류
-
해결됨RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기
클러스터와 페더레이션 관련 PDF 내용은 어디서 확인할 수 있나요?
마지막 강의 영상의 6분 이후부터 본 강의 내용에는 없지만 강사님이 자료 정리 해주신 큐 제어하기, 클러스터와 페더레이션 관련 내용이 있는데 다운로드 받은 pdf 자료에서는 없네요.
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
config 파일 암호화
yml의 설정 내용을 암호화하는 작업중에 궁금한 점이 있습니다. 암호화해도 http://config server주소/config파일명/프로파일 경로로 접속하면 해독된 값을 볼 수 있는데 이러면 암호화한 의미가 있는지 궁금합니다config 서버에서 http://config server주소/config파일명/프로파일 경로를 비활성화하는 방법이 있을까요?그리고 비대칭키에서 암호화에 사용하는 password는 평문으로 yml에 저장하고 있는데 이러면 반쪽짜리(?) 암호화일 것 같은데 이렇게 사용해도 되는건지가 궁금합니다
주간 인기글
순위 정보를
불러오고 있어요