묻고 답해요
120만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Microservice 내부 아키텍처 와 EventStorming 설계
앱에서 DDD를 적용하는 것이 맞는걸까요?
앱에서 DDD를 적용해보려고하는데 어려움이 있어 질문드립니다.앱단에서 어플리케이션 레이어의 서비스는 어떻게든 식별해서 진행이되는데어그리게잇, 엔티티, 값 객체에서 막막하게 느껴집니다.막막하게 느껴지는 이유는 결국 데이터를 최종적으로 받아서 저장하는 로직들은 서버단에서 처리를 할 텐데요.이런 경우에 결국 앱에서는 임시로 데이터를 들고 있는 자료구조 혹은 vo라고 느껴지고 있습니다.아니면 앱이라는 환경속에서 어그리게잇, 엔티티, 값 객체를 뽑는 것도 생각을 했는데 아직 머리속으로 구조가 잡히지 않고 어떤 방향으로 가는게 좋은지 확신이 들지 않는데요.어떻게 나아가야할지 좋은 의견 부탁드립니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
보상 트랜잭션의 대한 후속 강의 2차 문의합니다.
보상 트랜잭션의 대한 후속 강의 문의합니다.8개월 전쯤 상반기에 출시 계획이 있다고 하셨는데, 언제쯤 강의를 출시할 계획이신가요?전체적인 로드맵을 공유해주시면 좋을 것 같습니다.후속 강의가 너무 궁금합니다.
-
미해결장애 없는 서비스를 만들기 위한 Resilience4j - CircuitBreaker
Circuit Breaker의 적용처 판단
Foo님 안녕하세요.'섹션3 - 어떤 예외를 recordExceptions로 지정할까?'를 수강하던 중 궁금증이 생겨 질문드립니다.<서론>recordExceptions은 '실패라고 간주하여 시스템을 회복시키기 위해 트래픽을 차단할 필요가 있는 상황'에 던져지는 예외로 이해했습니다.그래서 어떤 상황에서 recordExceptions을 적용해야 할지가 매우 중요할 거라고 생각이 듭니다.즉 트래픽을 차단할 필요가 있다면 recordExceptions을 던져야 하고 그렇지 않다면 던지지 않아야 할 것입니다.보통은 트래픽이 많이 몰려서 예외가 발생될 때(ex OutOfMemoryError, RejectedExecutionException) recordExceptions를 적용할 거라고 생각됩니다.<본론>그런데 트래픽이 많이 몰리지 않을 때에도 recordExceptions를 적용해야 하는 경우가 있을 것 같습니다. 한번 오류가 발생한 api 호출은 그 이후에 여러 번 호출해도 똑같은 오류가 발생될 가능성이 매우 높을 것 같기 때문입니다. (트래픽이 별로 없는 상황에서도)그렇다면.. '모든' 외부 api 호출들에 recordExceptions를 다 적용해야 하는 건가? 라는 궁금증이 듭니다. 혹은, 생각을 반대로 전환해서, recordExceptions를 적용하지 않아도 되는 api 호출들을 구분해야 하고 나머지는 모두 recordExceptions를 적용하는 것이 맞는 건가? 라는 생각도 듭니다. 즉 어떤 기준으로 recordExceptions를 적용해야 가장 적절한 건지 궁금합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
my-order-sink-connect 변경 정보 문의
my-order-sink-connect로 DB 접속정보를 생성하고 connect를 생성한 후 orders 테이블의 정보(PK, unique 등)가 변경되면 my-order-sink-connect에서 변경된 DB 정보를 인지하고 있나요?아니면 connect가 바라보고 있는 테이블의 정보(PK, 컬럼, unique 등)가 변경되면 connect를 삭제 하고 다시 생성해 줘야 하나요? 감사합니다.
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
kafka sink pk에러
안녕하세요 my-ordser-sink-connect를 만들고 연계 테스트도 잘 진행하였습니다.테스트 진행시 데이터 설정값오류로 pk Exception이 발생하였는데 이 이후 부터 데이터 입력도 되지 않고 재기동하여도 topic를 참조하여 pk 에러가 나타나고 신규 데이터를 받지 못하고 있습니다.my-order-sink_connect 장애 발생시 예외 처리나 장에 처리 가이드가 따로 있을까요감사합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
@EnableKafka 인식안됨
다른 분들은 저와 같은 경우 없으신가요?ㅠㅠ아래와 같이 gradle 파일에 디펜던시 추가해줬습니다.그런데implementation 'org.springframework.kafka:spring-kafka'@EnableKafka 어노테이션을 인식하지 못하네요ㅠㅠ구글링해도 kafka 어노테이션 관련 글은 없어서 질문드립니다.ㅠㅠ <코드내용><오류 정보 >
-
미해결장애 없는 서비스를 만들기 위한 Resilience4j - CircuitBreaker
IgnoreException 동작이 주석의 설명과 좀 다른것같습니다
IgnoreException으로 주석을 삭제하고 실행시켜볼 때 예외를 호출부로 던지는게 아니라 retry를 실행하지 않고 그냥 바로 fallback method를 실행하는데 혹시 제가 실행한 결과가 이상한걸까요? 공식문서상으로도 자세한 설명이 안보이는데 이러한 동작이 맞을까요?
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
postgresql 연동 문의
Postgresql DB 사용시 auto_increment 옵션이 업어서아래와 같이 작성하여 order등록 테스트 진행시 id 값이 null 이어서 에러가 나타납니다.create table orders ( id int primary key, user_id varchar(50) not null, product_id varchar(20) not null, order_id varchar(50) not null, qty int default 0, unit_price int default 0, total_price int default 0, created_at datetime default now())테이블을 직접 생성하지 않고 소스의 jpa의 create 옵션을 사용하여 orders 테이블을 생성하고 상품을 등록하면 id 값이 자동으로 등록이 되는되 내부적으로 id값이 맵핑되는 로직이 따로 존재 하는 건가요? 테이블을 수동으로 생성 후 id 값을 맵핑시킬수 있는 로직이 따론 존재 하는 걸까요?@Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id;
-
해결됨Microservice 내부 아키텍처 와 EventStorming 설계
도메인 영역에 대한 질문
클린 아키텍처와 헥사고날 아키텍처 모두 개발자가 비즈니스에 집중할 수 있도록 하는 구조인데, 이때 도메인 모델을 풍부한 도메인 모델이 아닌 빈약한 도메인 모델로 가져가고, 트랜잭션 스크립트 패턴을 사용해도, 클린 아키텍처와 헥사고날 아키텍처라고 할 수 있는건가요?
-
미해결Microservice 내부 아키텍처 와 EventStorming 설계
클린 아키텍처와 헥사고날 아키텍처 질문
어떻게 보면 클린 아키텍처와 헥사고날 아키텍처도 스프링 처럼 개발자에기 비즈니스에 집중할 수 있도록 도와주는 것 같은데 맞을까요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
m2 폴더 질문
현재 maven이 아닌 gradle로 빌드 환경을 구성하고 있습니다.m2/repository/org 폴더는 존재하지만 그 안에 mariaDB가 없습니다. build.gradle에서 mariadb-client를 추가해준다고 해서 제 PC 환경에 설치되는 것이 아닌것 같은데 어떻게 해야 할까요..
-
미해결EDA 기반 Microservice 구현 (with Hexagonal, DDD)
EDA 이해
EDA가 결국 이벤트를 기반으로 비즈니스적으로 응집력 있게 관리되어야 하는 데이터들을 어떻게 핸들링할 것인가 인것 같은데, 제가 맞게 이해한 걸까요? 이를 위해서는 결국 도메인 중심적으로 생각하는게 좋구요!
-
미해결EDA 기반 Microservice 구현 (with Hexagonal, DDD)
보상트랜잭션 후 클라이언트 알림 방법 등
강사님 덕분에, EDA, DDD, 헥사고날 등 어려운 개념에 대해 좀더 친숙해질 수 있어서 너무 감사합니다!강의를 다 듣고 몇가지 궁금증이 생겨 질문 남겨요! 대여 취소, 반납 취소 등으로 보상트랜잭션이 필요한 경우, 보통 클라이언트에게 알림(?)은 어떻게 보내나요? 알림 서버를 사용하나요?EDA 시, 1개의 서버의 응답이 너무 느린 경우, 비동기더라도 느릴수 있는데, 이럴 걸 대비하여 자체적으로 타임아웃시간을 정해서 해당 시간 초과면 시간 초과 응답을 클라이언트한테 보내나요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
질문
@requestHeader 에 first-request를 지우면 filter 가 안되니 분기가 안되려나요?
-
미해결EDA 기반 Microservice 구현 (with Hexagonal, DDD)
MSA 구조에서 공통 클래스
강의를 듣다보면, 여러 MS 사용되는 클래스의 경우, 복붙해서 사용하시는데, 실무에서는 여러 MS 사용되는 클래스의 경우 어떻게 처리하나요? MS 서버별로 팀이 다르다고 했을 때에는 복붙으로만 해결되지 않을 수도 있을 것 같아서요!
-
해결됨EDA 기반 Microservice 구현 (with Hexagonal, DDD)
@Repository 두 곳에서 사용하시는 이유
코드를 보면, Adpater 클래스와 Repository 인터페이스, 이렇게 2곳에서 @Repository을 사용하고 계시는데, 2곳에서 사용하시는지 이유가 궁금합니다!
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
인증서버를 겸하는 api gateway로 구성하려면
안녕하세요. 강의 초반부 수강 중인데 궁금한 게 생겨서 질문드립니다.Spring Security, JWT, OAuth 등을 사용한 인증서버를 api gateway가 겸하게 하고자 하는데요, UserMicroService의 내용을 Spring Cloud Gateway 프로젝트에서 진행하면 되는 걸까요?해당 강의를 참고해서 api gateway를 사용한 프로젝트를 Aws에 올릴 예정이다보니 비용에 대해 고려하게 되는데요, 해당 강의에서 api gateway와 관련해서 사용하게 될 서버 개수가 궁금합니다. 섹션7 까지 강의대로 하면 마이크로서비스나 DB는 제외하고, Spring Cloud Gateway와 관련한 서버만 총 3개 사용하게 되는 건가요? (Eureka, Spring Cloud Gateway, Spring Config Cloud Server)
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의 소제목에는 비대칭키를 활용한 암호화라고 되어있는데
apiEncryptionKey.jks (개인키)와 이에 파생된 public.key (공개키)를 생성한 것 까지는 이해가 되었습니다.강의중 encrypt/decrypt 를 하는 과정에서 모두 apiEncryptionKey.jks (개인키)를 사용한 대칭키 방식을 사용한 것 같은데 비대칭키 전략을 사용하는 부분이 있나요? 아니면 비대칭키를 추후에 활용할 수 있도록 파생키를 생성하는 방법을 알려주신건가요?java key store를 통해 구성정보의 암/복호화에 대칭키 방식을 사용한건지 비대칭키 방식을 사용한건지 궁금합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의에 사용된 코드는 제공되지 않나요
보통 강의는 github 주소가 제공되는데강의에 사용된 코드는 제공되지 않나요
-
미해결EDA 기반 Microservice 구현 (with Hexagonal, DDD)
Entity와 VO에 대해..
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요.도메인모델을 만들때 Entity와 VO는 단순히 불변성을 가지고 구분하는 것인지요?그리고 JPA에서의 Entity와는 다른 개념인지 궁금합니다.감사합니다.