안녕하세요 선생님 강의 잘 듣고 있습니다. 강의 수강 중 질문이 생겨서요! user-service는 mvc 기반의 app으로 spring security를 통해 인증을 처리하므로, tomcat의 JSESSIONID 를 기반으로 하여 Security Context에 Authentication 객체의 유무를 통해 인증이 된 사용자인지 안 된 사용자인지 Security Filter Chain에서 체크를 하는 것으로 알고 있습니다. 그런데 gateway에서 설정하신 application.yml 에 따르면 모든 요청 헤더에 존재하는 Cookie를 삭제하고 --> 서버에서 매번 새 요청으로 인식 gateway 는 netty 서버를 사용하고 user-service는 tomcat 서버를 사용하잖아요. 그래서 두 서버 사이 Context가 공유가 안 될것 같아서요... 그래서 gateway에서는 인증을 했다고 요청을 넘기지만 user-service에서는 그 요청을 받았을 때 해당하는 SESSIONID 의 Context에 Authentication 객체가 존재하지 않아 인증이 필요한 url에 접근할 수 없을 거라고 생각했습니다. 어떻게 인증 완료 정보를 두 서비스가 공유할 수 있는 건가요?? 또한 gateway도 이중화 구성이 가능한가요?.. userService를 2,3중화 한 것처럼 gateway도 여러 대의 인스턴스로 기동하면 eureka에서 다중 구성한 서버로 인식해주는 건가요??... 혹시 gateway에도 Spring Security를 적용시키는 경우도 있을까요?.. 권한 별 접근 제어를 구현하기 위해서는 해당 라이브러리를 사용해야 할 것 같아서요! 또한 gateway에서 커스텀 필터를 만들 때, apply 메소드의 return 타입이 GatewayFilter 로 되어있는데, Mono<Void> 타입으로 return을 해도 되는 건가요?... Mono<Void>는 mvc에서 return 타입이 void 인 것과 같은 의미 아닌가요?... 열심히 강의해주셨는데 질문의 너무 많아 죄송합니다..ㅠ 답변 기다리겠습니다! 항상 감사드립니다!!
안녕하세요, Flows 강의를 듣는와중에 문의사항이 있어 질문드립니다. 강의 내용을 캡쳐한 것인데요. 여기서 launch{ } 를 통해 코루틴이 생성되고 simple() Flow 가 실행이 되는데 flow도 코루틴으로 이루어져 있어서 마치 동시에 실행되는 것처럼 보이는게 제대로 이해한건지 궁금합니다. 만약 simple() flow 대신 println("test") 와 같은 메인Thread 를 사용하는 함수가 작성되어 있었다면 test가 먼저 찍히고 I'm not blocked 1 이 먼저 나오는게 맞을까요?? 아니면 I'm not blocked 1 이 나오고 test 가 찍히는게 맞을까요..?
안녕하세요 현재는 각 도메인에서 서킷브레이커를 적용했는대, api-gateaway에서는 처리를 해줄 수 없을까요? (공통적으로) 현재는 도메인수가 적지만 만약에 라우팅 될 도메인들이 10개 이상 넘어가면 공통적으로 처리할 수 있는 것도 필요해보여서요. (어느 도메인으로 라우팅될조 모르지만)
애그리거트를 어느정도의 크기로 만들어야 하는지에 대해 궁금증이 생겨서 질문들입니다. 애그리거트내에 여러 엔티티와 여러 값 객체로 이루어질 수 있으나, 애그리거트는 작은 단위로 만드는게 좋아서,하나의 애그리거트에 여러 엔티티보다 하나의 엔티티로 만드는 것을 추천하시나요? 애그리거트의 크기를 정할 때 강사님의 기준이 있다면 공유해주실 수 있나요?
엔티티와 값객체와의 차이 중 하나가 값객체는 바운디드 컨텍스트를 옮겨 가더라도, 그 네이밍 그대로 유지할 수 있는 반면, 엔티티는 변경해야할 수도 있다고 생각하는데, 맞을까요? 예를 들어, Address(주소, 상세주소, 우편번호 포함)라는 값객체를 만들었을 때, 회원 바운디드 컨텍스트에서 회원의 주소와 주문 바운디드 컨텍스트에서 주문자의 주소의 경우, 다른 점이 없는 반면, User 라는 엔티티는 주문 바운디드 컨테스트에서 주문자이고, 리뷰 바운디드 컨텍스트에서는 리뷰어일 수 있어서, 다를 수 있다고 생각했거든요!
항상 좋은 강의 감사합니다. 궁금한 점이 있어 질문을 남깁니다. Kafka를 이용해서 멀티 서버에서 하나의 DB를 사용하여 동시성 문제를 해결하는 것을 이해했습니다. 상품 제고가 0이 되면 더 이상 주문을 못하도록 하게 하고 싶습니다. 하지만 Kafka 요청을 통해 비동기로 주문을 하기 때문에 주문을 신청한 순간에는 재고가 있어 주문이 되었지만 Kafka의 모든 처리를 하고 나니 재고가 0이 되어 사실 주문할 수 없는 상황이었습니다. 이런 상황이 발생할 수도 있지 않나요?? 이럴 때는 어떻게 대처를 해야 하나요?? 쓰기 작업과 읽기 작업에서 동기화 문제는 어떻게 처리할 수 있나요?
안녕하세요 강사님! 현재 Users Microservice - JPA 부분을 들으면서 user등록까지 잘 해서 테이블에도 잘 나온 상태입니다. 저는 client -> api gateway -> 유레카 -> user서비스 이렇게 이해하고 있습니다. 그리고 현재 집에 같은 와이파이로 연결된 데스크탑으로 (api gateway 역할을 하고 있다고 이해해도 될지 모르겠지만) discovery service를 올려놓았고요. 노트북으로 user-service를 만들었습니다. 노트북 브라우저로 유레카를 접근하고자 할 때에는 데스크탑 아이피 주소를 입력해서 접근했습니다. 여기까지는 이해가 잘 되었습니다. 그리고 이제 user를 등록하기 위해 postman의 ip주소를 입력하려고 유레카에서 user-service의 포트를 확인하기 위해 클릭하니 노트북 주소와 랜덤 포트가 나오더라고요! 그리고 그 주소로 api를 요청하니 잘 되었습니다. 여기서 질문입니다. 모든 서비스는 api gateway를 거치는 것 아닌가요? 그렇다면 api gateway가 동작하고 있는 데스크탑 ip주소를 요청해야하는거 아닌가요? 추가질문으로 환경설정에서 0을 해서 포트가 랜덤으로 설정하게 하시는 이유가 궁금합니다! 자세하고 쉽게 설명해주시기 위해 강의 준비해주셔서 감사합니다:)
안녕하세요 좋은강의 항상 감사합니다! 강의 도중 의문이 생겨서 문의드립니다. 혹시 yml설정에 eureka: instance: instance-id: ${spring.cloud.client.hostname}:${spring.application.instance_id:${random.value}} ${spring.application.instance_id을 포함하지 않고 eureka: instance: instance-id: ${spring.cloud.client.hostname}:${random.value} ${random.value}만 포함해도 동일한 값으로 인스턴스가 표시되던데 ${spring.application.instance_id를 포함하신 이유가 궁금합니다. 감사합니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의를 듣던 도중 궁금증이생겨 질문드립니다. 제가 알기로는 rolling update는 서버 관점에서 점진적으로(정수 단위, 혹은 비율 단위) 구 버전에서 신 버전으로 교체하는 것 canary는 유저 관점에서 점진적으로 (특정 지역 유저 대상, 혹은 A/B 테스트 대상 등) 구 버전에서 신 버전으로 교체하는 것 으로 알고 있습니다. 즉 강의에서 말씀하셨던 'canary는 rolling update와 blue/green의 중간 격의 배포 전략'은 틀린 말이며, 각 배포 전략들은 각각 고유한 배포 전략을 가지고 있는 것으로 생각이 됩니다. 혹시 제가 잘못 알고있는 부분이 있다면 말씀 부탁드립니다. 감사합니다.
안녕하세요 선생님! 강의 잘 듣고 있습니다. 한 가지 궁금한게 있어서 질문 남깁니다. 다름아니라, BookSearchAdapter의 onBindViewHolder에서 book의 position을 currentList에서 가져오시던데, val book = currentList[position]과 val book = getItem[position]의 차이점이 무엇인지 궁금합니다...! 기능적으로 차이가 없다면, 경우에 따라 어떤 것을 사용하는것이 더 효율적인지 궁금합니다! 감사합니다.