묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
후속 강의 출시 예정일 문의
안녕하세요!좋은 강의 제작해주셔서 감사합니다.토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 파트2 강의는 언제쯤 나오는지 알 수 있을까요??
-
미해결토비의 스프링 6 - 이해와 원리
테스트의 기준을 어떤식으로 설정하는 것이 바람직한 테스트일까요 ?
안녕하세요. 토비님!강의 정말 잘 듣고 있습니다. 테스트 코드를 작성해본 경험이 많지 않아서강의 내에서 테스트 단원을 보다가 궁금한 점이 있어서 질문드립니다. 강의의 예제는 paymentService 를 테스트 하는 코드를 작성하시고,스프링을 이용하지 않는 방법과 스프링을 이용해 DI 를 통한 테스트를 진행합니다.코드는 paymentService 의 prepare 메소드 하나를 검증하는데,사실은 3가지 목적. 적용환율, 원화 환산 금액, 원화 환산 금액 유효시간을 테스트 합니다.실제로 현업에서 사용하는 서비스 에서는 보다 많은 코드와 기능이 존재할테고,그에 따른 경우의 수도 기하급수적으로 많아질거라고 생각해요. 그렇다면 보통, 어떤 기준을 통해 테스트를 작성하는 것이 바람직한 테스트 일까요 ?예를들어 제가 생각해본 여러가지 방법은 다음과 같습니다.단순히 prepare 메소드 하나만. 메서드 단위로 테스트를 진행.메서드 안에 존재하는 메서드(예시 코드에서는 provider 메서드) 단위.목적에 따라서. 적용 환율을 잘 가져오는지, 원화 환산 금액이 잘 계산 되는지, 유효시간을 잘 지키는지.그 밖에 여러가지 방법.예를들어 기능이 잘 작동하는지 크게 테스트 한 뒤, 내부적으로 변동사항이 있을 법한 코드만 따로 분리해서 테스트. 물론, 프로젝트 특성이나 팀의 컨벤션, 서비스 코드를 작성할 코드의 특성에 따라서 달라지겠지만테스트 코드를 작성할 때는 너무 작게도, 그렇다고 너무 뭉뚱그려서도 안된다고 이해하고 있습니다.보편적으로 어떤 기준을 가지고 테스트 코드를 작성하게 되나요 ?
-
미해결Practical Testing: 실용적인 테스트 가이드
테스트 문서화 질문입니다
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. BDD 설명하시면서 개발자가 아닌 사람이 봐도 이해할 수 있을 정도의 추상화 수준을 권장한다고 하셨는데요 작성한 테스트를 따로 문서화 하기도 하시는지 궁금합니다!
-
미해결스프링 프레임워크 입문자를 위한 따라하기
Spring Legacy Project 생성 불가
전자정부 프레임워크 3.10 버전으로 강사님의 강의를 따라하고 있습니다. 그런데 새로운 프로젝트를 생성할 때 Spring Legacy Project가 뜨지 않아 찾아보니, 전자정부 프레임워크 3.8 버전 이상에서는 따로 설정을 해줘야 하더라구요. 블로그를 찾아보며 설정을 해줬는데도 제대로 동작하지 않아 그냥 Maven 프로젝트로 생성해서 구성을 맞춰가고 있습니다ㅠ 혹시 전자정부 프레임워크 버전을 낮춰서 3.7이나 3.8로 해도 문제가 없을까요?
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
Querydsl 도입
querydsl이 쿼리를 코드로 작성하여 컴파일 시점에 오류를 감지할 수 있는게 가장 큰 장점인데 Spring JPA와 혼합하여 사용할떄 그 외에 장점이 또 있을까요 레거시 쿼리는 이미 사용되고 있어 이를 전환하기 위해 먼가 더 장점이 필요할 것 같아서요 아니면 레거시는 두고 신규 추가되는 부분만 Querydsl를 도입하는 식으로 가면 될까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
속성 값 설정
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.th:checked="false"로 설정하면 렌더링 후에 checked 속성이 완전히 없어지던데,이건 타임리프가 내부적으로 속성을 아예 제거해주는 건가요? 아니면 단순히 비워두는 건가요?
-
미해결Practical Testing: 실용적인 테스트 가이드
단위테스트 질문이 있습니다
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. 단위테스트할때 항상 궁금했던 점이단순한 CRUD도 테스트코드를 구현해주는 게 맞는걸까요?JPA 기능을 그대로 적는? 느낌이 나서 굳이 필요한 테스트코드인가 하는 생각이 항상 드는데 왜 구현했는지에 대한 시나리오를 @DisplayName 적곤 하지만 뭔가 불필요하다는 생각이 가끔 들기도 하는데 다 적는 게 맞는거겠죠??
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
entity 내부에 passwordEncoder 를 넣는다면 결합도를 높게 만들게 되는 것 아닌가요?
일단 제가 배운대로면 결합도를 낮추는 것이 좋은 코드라고 배웠는데, 왜 그렇게 만드셨는지가 궁금합니다!
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
fetch join DISTINCT 중복제거
fetch join 부분이 조금 어렵게 느껴져서, gpt에게 물어보며 공부했습니다.강의에서 fetch join으로 나온 중복 데이터를 DISTINCT 키워드를 이용해서 제거해주시는 부분을 보았는데, gpt가 다음과 같이 설명해주는 것을 보았습니다.DISTINCT 키워드가 SQL과 JPA 양쪽에서 다르게 동작하기 때문에 완전한 중복 제거가 보장되진 않습니다.이 말이 맞다면 현업에서는 이런 문제를 어떤 식으로 해결하는지 궁금합니다!
-
미해결Spring WebFlux + LLM 실전 구현
순수 webflux 프로젝트의 가독성 팁 그리고 향후 kotlin을 활용한 프로젝트 계획이 있는지 궁금합니다.
안녕하세요. 좋은 강의로 덕분에 webflux에 대해 쉽게 이해할 수 있었습니다. 저는 현재 kotlin으로 개발하는 프로젝트가 있어,webflux를 사용할때는 coroutine을 함께 사용하는데요, 이렇게 하면서 코드를 함수형처럼 짤 수 있어 보다 쉽게 동료들에게 보여줄 수 있었습니다. 혹시 강사님께서도 coroutine을 함께 사용하기도 하시는지, 그렇다면 java가 아닌 kotlin을 사용한 강의 계획이 있는지 궁금합니다.또한, 강의에서 쉽게 설명해주셨지만 비즈니스 로직이 좀 더 추가되는 경우 코드가 많이 복잡하고 가독성이 어려워지던데, 가독성을 위한 팁들이 있는지 궁금합니다. ps. webflux 2 프로젝트에는 사용 가능한 gmemini api key가 입력되어 있습니다. 😅
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
인메모리 DB, 테스트 컨테이너 선택 기준이 있으신지 궁금합니다
강의에서는 H2 인메모리 DB를 이용해 테스트를 진행하셨는데,실무에서는 테스트 환경에서 실제 MySQL이나 PostgreSQL 같은 실제 운영 DB와 동일한 컨테이너 기반 테스트 DB를 사용하는 경우도 많은 것 같습니다.실무에서는 인메모리 DB와 컨테이너 DB 중 어떤 상황에서 어떤 것을 선택하시는지, 선택 기준이나 장단점에 대해 조언을 받을수 있을까요?
-
해결됨카카오 면접관이 알려주며 가장 쉽게 배우는 Kafka
OutBox 패턴에 대한 질문입니다.
안녕하세요 ! 강의 잘 듣고 있습니다.최근 OutBox 패턴을 사용해보려고 시도중입니다 !CDC도구를 사용하지않고 어플리케이션에서 폴링을 구현한다고 하였을 때 폴링전용 어플리케이션을 따로 두어야 하는지 궁금합니다.ex) 주문서버에서 DB에 저장 -> 폴링 서버에서 DB에 저장된 이벤트를 폴링으로 조회 후 메시지 발행이렇게 생각한 이유는 주문서버에 폴링을 구현한다면 스케일 아웃 상황에서 폴링 로직도 저절로 스케일아웃되기때문입니다.여러개의 폴링 로직이 같이 돌아가면 데이터가 꼬일 수도 있지 않을까 합니다.어플리케이션 폴링구조의 outbox 패턴 구현에 대한 정석이 있는지 궁금합니다.
-
해결됨카카오 면접관이 알려주며 가장 쉽게 배우는 Kafka
kafka 컨슘은 실시간 인가요?
실시간 이라면 stream하고 어떻게 차이가 나는걸까요?
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
8강 도메인 모델과 DDD 내용에 대해 질문있습니다.
8강 도메인 모델과 DDD 에서코드의 내용이 도메인에도 반영이 되어야 할 때도 있다고 하셨는데 예시를 들어 주실 수 있을까요?
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
표준 예외와 커스텀 예외 사용 전략 질문
안녕하세요. 수업 내용과는 크게 관계가 없지만... 예외처리 관련 내용에 대한 질문을 드립니다. 스프링이 제공하는 표준 예외(IllegalArgumentException, IllegalStateException)와 비즈니스 로직을 표현하는 커스텀 예외(NotFoundUserException) 사이에서 표준 예외를 사용하는 경우와 커스텀 예외를 사용하는 경우에 대한 기준을 알 수 있을까요? 감사합니다.
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
도메인의 응집도와 모델 복잡도간 밸런스 고민
강의 너무 재미있게 듣고 있습니다.도메인이라는 개념에 대해서 고민하다가 궁금한 사항이 생겨서 질문드립니다. "도메인 모델이 비즈니스 규칙을 모두 내포하면 응집도는 높아지지만, 복잡도도 함께 커집니다. 이때 어디까지를 도메인 모델에 포함시키는 게 적절할까요?"
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
Application Service와 Domain Service를 명확하게 이해한 건지 궁금합니다.
Application Service에서는 흐름을 관리하고 (예를 들면 DB에서 데이터를 가져오는 등) Domain Service는 복잡한 비즈니스 로직을 처리하는 역할로 이해를 했는데 이해한 것이 맞을까요?
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
빈약한 도메인 모델을 보완하기
안녕하세요. 빈약한 도메인 모델에 관하여 질문이 있습니다.현재 개인적으로 진행하는 프로젝트에서 데이터 홀더 역할정도만 하는 빈약한 도메인 모델이 있습니다.repository에는 테이블의 상태 컬럼을 업데이트하는 메소드가 존재하는데 이를 도메인 모델 내부에 메소드를 만들어 업데이트하고 repository의 save를 통해 엔티티의 상태를 update하는 것이 강의에서 의도한 내용으로 이해했는데 맞을까요?추가로 이런 경우(비즈니스 로직이 복잡하지 않은)에 꼭 도메인 모델이 없어도 될지 궁금합니다.
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
JPA entity와 도메인 모델을 분리하는 케이스에 대한 질문입니다.
JPA entity와 도메인 모델을 분리하는 케이스에서 데이터 저장 기술이 바뀌는 경우 Spring Data를 사용하면 해당되지 않는다고 하셨는데 JPA에서 MyBatis로 변경하는 경우도 Spring Data로 커버가 가능한가요? 회사에서 JPA로 개발을 진행중인데 MyBatis로 마이그레이션을 해야할수도 있어서 질문드립니다.
-
해결됨카카오 면접관이 알려주며 가장 쉽게 배우는 Kafka
메세지 저장 관련 질문입니다
카프카 메시지 저장 방식에 대한 질문카프카에 대해서 잘 알지 못할때 카프카에 메시지가 저장되어 편리하다는 이야기를 들었습니다. 그래서 AWS SQS에서 카프카로 전환하면 별도의 메시지 저장소가 필요 없을 것 같았는데, 강의를 들어보니 장기 보관이 필요하면 결국 따로 저장해야 하는 것 같더라고요.질문:장기 보관이 필요한 메시지는 별도 저장소(DB, S3 등)에 저장하시나요?카프카 자체 저장만으로 충분한 경우와 별도 저장이 필요한 경우를 어떻게 구분하시나요?