묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
unique-constraint 설정 질문드립니다.
orm.xml unique-constraint 설정 부분 설명해주신 부분에서 인덱스로서 성능을 위해서, 데이터 중복저장 문제를 위해서 설정을하면 좋다고 말씀해주셨는데요<index unique="true">설정의 차이점이 뭔지 잘모르겠습니다
-
미해결Practical Testing: 실용적인 테스트 가이드
DTO 검증 필드에 대한 테스트 코드 작성은 어디까지?
DTO의 검증 필드마다 테스트코드를 작성하는게 실무에서 일반적인가요? 이렇게 되면 DTO가 커질 수록 DTO 한개당 테스트 함수가 10~11개 이렇게 필드개수 만큼 나오게 될텐데 실제로 모두 테스트코드로 검증하나요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
@EventListener(ApplicationReadyEvent.class) 관련
@EventListener(ApplicationReadyEvent.class)와 같은 기능을 사용하기 위해@Component public class DataInitializer implements ApplicationListener<ApplicationReadyEvent> 를 사용하여 프로젝트를 운영하고 있습니다.혹시 잘못된 것인지 궁금합니다.
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
@ResponseBody 로 도메인 레이어의 MemberRegisterRequest 를 그대로 사용하는 것에 대해서
안녕하세요. 토비님, 강의 잘 듣고 있습니다. 🙂오늘은 강의 내용에서 좀 굉장히 의외인 부분을 발견해서 질문드립니다.강의 #41. MemberApi와 웹 단위 테스트 에서 MemberRegisterRequest 가 domain 레이어에서 정의했던 클래스임에도, @RequestBody 파라미터 그대로 쓰셨는데, 이 부분이 많이 의외고 우려가 되었습니다.저렇게 하면 MemberRegisterRequest 클래스의 코드 변경이 api 스펙 변경을 의미하는지가 코드리뷰 상에서 쉽게 보이지 않고 숨겨질 수 있다는 염려가 됩니다.실제로 MemberRegisterRequest 에 필드를 추가해서 PR 을 올리면 코드리뷰어가 봤을 때 domain 레이어의 특정 모델에 필드가 추가됐을 뿐인 작은 변경으로 보일 것입니다. 그래서 그것이 어느어느 API 의 스펙에 영향을 주는지 알기가 너무 어려울 것 같습니다.그래서 저는 API 의 스펙이 되는 Request, Response DTO 의 경우 반드시 클래스를 별도로 분리해야한다고 생각합니다.API 스펙은 server 마음대로 변경할 수 있는 서버만의 코드가 아니라 client 와의 계약 문서라고 보기 때문입니다.그래서 Request/Response 같이 백앤드 엔지니어가 함부로 변경할 수 없는 영역과 맘대로 변경 가능한 영역을 분리해서, 어플리케이션과 도메인 로직의 변화가 API 스펙 변경으로 인한 장애 걱정으로 이어지지 않게 하는 것이 중요하다고 생각합니다.이게 근데 단순히 클래스 분리만 해둬도 PR 에서 API 스펙이 어떻게 바뀌는지 쉽게 트래킹이 가능해지기 떄문에 이 부분 만큼은 번거롭더라도 실보다 득이 훨씬 많아서 꼭 분리해야한다고 생각해왔습니다.이 부분에 대해서 어떻게 생각하시는지 궁금합니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
application.yml파일에 작성한 username과 password는 암호화 안해도 되나요?
안녕하세요, 보다가 궁금한점이 있어 질문드립니다.혹시 서버에 배포할 때 실제 운영되는 서비스면 저 비밀번호를 암호화해서 저장해야하는건지 문득 궁금증이생겨서 여쭤봅니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
jpa 도서, 강의 병행질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 아니요3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. -> 자바 ORM 표준 JPA 프로그래밍 도서를 구매하려하는데, 물론 온라인강의가 있겠지만, JPA 관련하여 도서를 통해 더 자세히 공부하고싶어서 로드맵 야생형코스와 병행해서 도서를 봐도 상관없는지 궁금합니다. 아니면 온라인강의자료 및 강의에 다 녹아져있으니 책까지 보는건 두번작업하는 행동인건지 궁금합니다.
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
안녕하세요 토비님!
안녕하세요 토비님! 강의를 보다가 궁금한 점이 생겨서 질문 드립니다. 테스트 코드 작성시 EmailSender같은 경우나 , 외부 요인(?) 같은 경우에 저는 테스트 코드가 외부요인에 의해 영향받기를 원하지 않아 @MockitoBean을 사용하는데요 그런데 강의에서는 왜 @MocktioBean을 사용하시지 않고 @TestConfiguration을 사용하셨는지 궁금합니다!감사합니다!
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Order, OrderItem 주문생성/취소 비즈니스로직 생성 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)아니요.[질문 내용]여기에 질문 내용을 남겨주세요.-> 주문,주문상품 엔티티 개발 강의에서 Order, OrderItem 엔티티부분에서 주문, 주문취소관련 비즈니스로직을 엔티티단에 만들었는데, 제가 기존 알고있던 개념은 서비스단에 비즈니스로직을 만드는걸로 알고있었는데, 엔티티단에 비즈니스로직을 만들어도 실무에서 허용하는 방식인건지 상황에 따라서는 기존 방식데로 서비스단에 비즈니스로직을 만드는게 맞는건지 궁금합니다.
-
해결됨토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
자신의 정보만 업데이트 하는 로직 궁금한 점
38강 10분 13초에서 자신의 정보를 업데이트 하는 로직 만드는 부분에서 궁금한 점이 생겼습니다.로그인된 사용자만 자기 정보를 업데이트 할 수 있는 기능을 웹 API 쪽의 어댑터에서 만든다고 하셨는데 왜 그런걸까요? 애플리케이션에서 검증을 하면 안되는걸까요?
-
미해결Practical Testing: 실용적인 테스트 가이드
OrderCreateRequest DTO에 대해서 궁금한점
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. Business Layer 테스트(1)의 13:32초 즈음에서 OrderCreateRequest가 Product의 id값이 아니라 productNumber를 요청 dto로 받았는데 그 이유가 있나요? 저라면 id를 받도록 설계할거같은데 이유가 궁금합니다. 실무에서는 보통 저렇게하나요?
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
디스코드 채널 입장이 안돼요!!
어떻게 들어가야되죠?!
-
해결됨[JSP부터 스프링부트까지]포기없는 SpringBoot로 가는길
이강좌가 마지막 강좌인가요?
스프링부트 강좌를 신청했습니다. 전에 듣기론 이강좌이후에 포토폴리오 강좌가 출시된다고 하셨던것같은데...확실하지않아서 다시 질문올립니다. 이강좌가 마지막인가요? 아니면 이후 한번더 새로운강의가 출시되는건가요??? 만약 포토폴리오 강좌가 출시예정이라면 현재 이강좌와 어떤 차별화된 점이있는지도 궁금하고 출시예정일도 궁금합니다. 강의분량은 대략 어느정도될지도 궁금해요
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
ddl-auto : create, update 질문
enum를 .ordinal로 설정하고나서 create로 하고나서 실행하면 해당 테이블이 완성이 된 다음 -> update로 바꾸고 string으로 바꾸고 테이블에 추가 insert를 하면 insert가 안되가주고요 저의생각에는 테이블 생성할때 enum에 ordinal이라는 제약을 주고 테이블 생성해서 테이블이 string을 거부하는게 아닌가 라는생각이 드는데 맞나여? 근데 또 영상에서는 테이블 생성하고 나서 ordinal -> string으로 바꾸셔서 insert하는데 잘 삽입이되는데 제가 이해한게 아닌것 같아서 질문드립니다.
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
DTO 관련 질문
저희 회사에서는 코드를 model이나 dto 코드를 만들때 보통하나로 전부 request보내고 받고 다하던데이 강의에서는 용도마다 UserCreateRequest, UserUpdateRequest, UserResponse 이렇게 따로 만들던데 혹시 그 이유가 있을까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
양방향 관계를 하는 이유?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요.양방향 관계를 설정하지 않는 것이 좋다고 말씀하셨는데, 12:36초 경에 Order-OrderItem 간의 양방향 관계는 설정하는 것이 좋은 이유가 무엇인가요? Member-Order 관계에서 Order -> Member 단방향 관계 설정 후 Member에서 Order 목록이 필요한 경우 Order의 FK를 통해 시작하는 것처럼, Order에서 OrderItem의 리스트가 필요할 때 OrderItem의 order FK를 활용해서 구하면 되는 것 아닌가요?
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
쿠키에 accessToken, refreshToken을 담고, 조회 시에 undefined
쿠키안에 accessToken과 refreshToken을 JSON.stringfy()로 문자열로 담아주는데 getCookie()를 할시에 object타입으로 전달되어서 accessToken과 refreshToken이 undefined로 잡혀 갱신이안됩니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
트랜잭션 동기화 매니저와 데이터 소스
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요, 수업 중 궁금한 점이 있어 질문 드립니다. 기본적으로 트랜잭션 동기화 매니저에서는 하나의 DataSource를 기준으로 하나의 Connection을 보관하는 것으로 알고 있습니다.강의의 예제는 동일 데이터소스에 대한 커넥션을 두개의 트랜잭션 매니저가 사용하는걸로 나와 있는 것 같습니다. 제가 궁금한건, 만약 외부 트랜잭션 매니저와 내부 트랜잭션 매니저가 서로 다른 데이터 소스를 참조하고 있다면 트랜잭션 동기화 매니저를 통해 서로 다른 커넥션을 참조하려고 할텐데,그래도 내부 트랜잭션이 외부 트랜잭션에 참여할 수 있나? 에 대해 궁금합니다. 감사합니다 :)
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
32강 강의중 인텔리제이 문제
다름 아니라 강사님께서 강의 하실땐 32강 도중에 User class에 User 부분이 빨간 글씨가 나오는데왜 제가 사용하는 인텔리제이에서는 빨간 글씨가 안나오나요?그리고 좌측에 빈 객체들에 콩모양도 안나타나요혹시 제껀 무료인 Community버전인데 강사님인 유료버전이라서 그런가요?아니면 설정을 따로 해야하나요?구글에 찾아봐도 잘 안나와서 물어봅니다.학습관련 질문이 아니라 죄송합니다.
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
Member를 activate 시 deactiavatedAt 초기화 필요성 질문입니다
Member activate 호출 시 MemberDetail의 activate 또한 호출 하게 되는데요.이때 MemberDetail의 activate 로직에서 this.deactivatedAt = null 을 통해 비활성 일시는 초기화 해주어야활성 -> 비활성 -> 활성 -> 비활성 시 deactivatedAt이 null임으로 문제가 없을 것 같은데 어떻게 생각하시나요?
-
미해결실전! Querydsl
벌크 연산과 flush, clear
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]앞선 로직으로 1차 캐시에 (이름: entity, 값: 10), ...이 저장되어 있다고 가정합니다. (스냅샷)벌크 연산을 수행하여 모든 DB 로우 값을 5씩 곱합니다. 연산을 마치면, 1차 캐시에는 (entity, 10), ...DB에는 (entity, 50), ...과 같은 값이 저장되어 있을 것입니다. 제가 알기로, flush()는 스냅샷과 비교하여 1차 캐시의 변경 사항을 DB에 반영합니다. (실행하여도 1차 캐시에는 변함이 없습니다) 그렇다면 만약 벌크 연산 후 flush, clear를 연달아 실행하면 1차 캐시의 값이 벌크 연산을 덮어씌워 값이 오염되는 것 아닌가요?따라서 flush -> 벌크 연산 -> clear가 맞는 호출 순서가 아닐까 궁금합니다.