안녕하세요. 토비님, 강의 잘 듣고 있습니다. 🙂 오늘은 강의 내용에서 좀 굉장히 의외인 부분을 발견해서 질문드립니다. 강의 #41. MemberApi와 웹 단위 테스트 에서 MemberRegisterRequest 가 domain 레이어에서 정의했던 클래스임에도, @RequestBody 파라미터 그대로 쓰셨는데, 이 부분이 많이 의외고 우려가 되었습니다. 저렇게 하면 MemberRegisterRequest 클래스의 코드 변경이 api 스펙 변경을 의미하는지가 코드리뷰 상에서 쉽게 보이지 않고 숨겨질 수 있다는 염려가 됩니다. 실제로 MemberRegisterRequest 에 필드를 추가해서 PR 을 올리면 코드리뷰어가 봤을 때 domain 레이어의 특정 모델에 필드가 추가됐을 뿐인 작은 변경으로 보일 것입니다. 그래서 그것이 어느어느 API 의 스펙에 영향을 주는지 알기가 너무 어려울 것 같습니다. 그래서 저는 API 의 스펙이 되는 Request, Response DTO 의 경우 반드시 클래스를 별도로 분리해야한다고 생각합니다. API 스펙은 server 마음대로 변경할 수 있는 서버만의 코드가 아니라 client 와의 계약 문서라고 보기 때문입니다. 그래서 Request/Response 같이 백앤드 엔지니어가 함부로 변경할 수 없는 영역과 맘대로 변경 가능한 영역을 분리해서, 어플리케이션과 도메인 로직의 변화가 API 스펙 변경으로 인한 장애 걱정으로 이어지지 않게 하는 것이 중요하다고 생각합니다. 이게 근데 단순히 클래스 분리만 해둬도 PR 에서 API 스펙이 어떻게 바뀌는지 쉽게 트래킹이 가능해지기 떄문에 이 부분 만큼은 번거롭더라도 실보다 득이 훨씬 많아서 꼭 분리해야한다고 생각해왔습니다. 이 부분에 대해서 어떻게 생각하시는지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 다른 강의들은 개념을 익히고나면 시간이 조금 걸리더라도 문제들이 모두 풀렸는데, 날짜와 시간부분은 API 사용법과 원리를 말씀해주셔서 그런지 문제를 딱 마주했을때 메서드들이 기억이 안나서 풀리지가 않네요... 다른 개발자들은 이런 문제를 풀 때 해당 메서드들을 옆에 띄워놓고 보면서 하나하나 사용하면서 풀이하나요..? 그렇다면 딱히 외우기보단 원리나 이런게 잘 안와닿는 부분이 있어서 복습할겸 기능들 한번더 훑어보고, 메서드 찾아보면서 문제 한번 풀어보려고요
record 메소드를 여러개 정의해서 사용하는데, 하나의 정의로 모든 경우에 쓰지 않는 이유가 메소드 양이 너무 많아져서 그런 건가요>? void record(boolean showDateTime, boolean showSpeed, int min) { System.out.println("녹화 시작"); if(showDateTime) { System.out.println("영상에 날짜 정보 표시"); } if(showSpeed) //위의 if 가 true 일때는 밑의 if가 실행이 안 되기 때문에 { System.out.println("영상에 속도 정보 표시"); } System.out.println("영상은" + min + "분 단위로 기록됩니다"); System.out.println("-----------------------------------------------------"); } void record() { record(true, true, 5);//메소드 호출 시 기본 값 설정 } 저런 식으로 나누지 않고 첫 번째 정의에 다 통합시키면 번거로울까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 아니요 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. -> 자바 ORM 표준 JPA 프로그래밍 도서를 구매하려하는데, 물론 온라인강의가 있겠지만, JPA 관련하여 도서를 통해 더 자세히 공부하고싶어서 로드맵 야생형코스와 병행해서 도서를 봐도 상관없는지 궁금합니다. 아니면 온라인강의자료 및 강의에 다 녹아져있으니 책까지 보는건 두번작업하는 행동인건지 궁금합니다.
안녕하세요 제가 자바를 배우고, 백준 브론즈 1,2,3문제 풀기 어려워 선생님강의를 듣게 되었습니다. 제가 알고리즘 공부하는 방법을 잘 몰라서 봤는데 제가 기존에 코드 쓴형식과 선생님 코드 형식이 다른걸 깨닫고 익숙해질려고 노력중입니다. 그러다보니...ㅎㅎ 선생님 제공해주신 문제 2문제 풀지 않고 강의를 먼저 들었습니다. 어떠한 방법으로 알고리즘 문제를 임하면 좋을까 고민해서 질문드렸습니다. 감사합니다
안녕하세요 토비님! 강의를 보다가 궁금한 점이 생겨서 질문 드립니다. 테스트 코드 작성시 EmailSender같은 경우나 , 외부 요인(?) 같은 경우에 저는 테스트 코드가 외부요인에 의해 영향받기를 원하지 않아 @MockitoBean을 사용하는데요 그런데 강의에서는 왜 @MocktioBean을 사용하시지 않고 @TestConfiguration을 사용하셨는지 궁금합니다! 감사합니다!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 아니요. [질문 내용] 여기에 질문 내용을 남겨주세요. -> 주문,주문상품 엔티티 개발 강의에서 Order, OrderItem 엔티티부분에서 주문, 주문취소관련 비즈니스로직을 엔티티단에 만들었는데, 제가 기존 알고있던 개념은 서비스단에 비즈니스로직을 만드는걸로 알고있었는데, 엔티티단에 비즈니스로직을 만들어도 실무에서 허용하는 방식인건지 상황에 따라서는 기존 방식데로 서비스단에 비즈니스로직을 만드는게 맞는건지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] List.of()로 비어있는 불변 리스트를 만들면 값을 추가할 수도 없는데 왜 만드는건가요?? 일단 불변으로 만들고 값을 추가할 때만 가변으로 바꿨다가 다시 불변으로 바꾸는 그런 작업을 할때 사용하나요?
안녕하세요 강의 잘 듣고 있습니다. 인기글 컨슈머 관련해서 궁금한 점이 있습니다. 컨슈머와 api가 동일한 hotarticle 모듈에 포함되어 있는데 api는 그대로 두고 컨슈머만 스케일아웃하고 싶을 수 있을 것 같은데, 이 경우 별도의 모듈로 분리하면 될까요? 아니면 더 좋은 방법이 있을까요? 감사합니다.
스프링부트 강좌를 신청했습니다. 전에 듣기론 이강좌이후에 포토폴리오 강좌가 출시된다고 하셨던것같은데...확실하지않아서 다시 질문올립니다. 이강좌가 마지막인가요? 아니면 이후 한번더 새로운강의가 출시되는건가요??? 만약 포토폴리오 강좌가 출시예정이라면 현재 이강좌와 어떤 차별화된 점이있는지도 궁금하고 출시예정일도 궁금합니다. 강의분량은 대략 어느정도될지도 궁금해요
안녕하세요, 강사님. 강의 잘 들었습니다. 감사합니다. jOOQ를 사용한 프로젝트에서 CI/CD 과정을 어떻게 자동화하는지 궁금하여 문의드립니다. CI/CD 서버와 데이터베이스를 연결하는 부분에서 보안 리스크가 큰 것 같은데, 실제 업무에서는 이 문제를 어떻게 해결하는지 알려주시면 감사하겠습니다. 아니면 자동 생성한 코드를 Git Repository에 함께 업로드해야 하는지 여쭙고 싶습니다. 이 경우 git commit이 깔끔해지지 않을 것 같아 걱정이 됩니다.
안녕하세요 강사님 강의 잘 듣고 있습니다. 아래 내용이 궁금하여 질문 드립니다. 질문: PessimisticLock1에서 주석 달아놓으신 "트래픽이 몰리는 상황에서 유실될 수 있으니 게시글 생성 시점에 미리 0으로 초기화해둘 수 있다" 는 부분에서 어떤 이유로 데이터가 유실이 될 수 있는지 궁금한데 예시나 상황에 대해서 추가 설명해주실 수 있을까요?! 감사합니다.