월 15,840원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
같은 네트워크에 묶인다는건 물리적으로 같은 Host PC 에 컨테이너가 추가된다는 건가요?
docker network create 명령을 통해 만든 ecommerce-network 상에 컨테이너를 추가하기 위해서는 물리적으로 같은 Host PC에 컨테이너가 존재해야 하나요? 아니면 원격에 물리적으로 다른 위치의 컨테이너도 ip를 추가하여 같은 네트워크로 묶을수도 있는건가요? 강의 마지막 15:17쯤에서 나오는 강의 화면을 보면서 이런 의문이 들었습니다.
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
마이크로 서비스 별 엔티티
안녕하세요. 좋은 강의 감사합니다. 강의를 참고하며 Monolithic 프로젝트를 MSA 구조로 전환하고 있습니다. 각 서비스 별로 DB를 분리하면서 아래와 같은 고민이 한가지 생겼는데요. Service 목록 : User-service Item-serivce, Order-service, Cart-service 시나리오 : Order-service의 API를 호출하여 주문조회를 한다. 이 때, '주문 상세 조회'를 요청하면 해당 주문의 '아이템 리스트'도 함께 가져온다. 질문 : 제시한 상황처럼 주문 조회, 장바구니 조회 등에서 아이템 조회가 빈번하게 일어납니다. 이 경우 아래 두가지 중 어떤 방식으로 설계하는 것이 좋을지 고민이 됩니다. 1. Item에 관한 Entity, Repository, Table 을 Order-service, Cart-service 도메인에 같이 포함시킨다. Item에 관한 데이터 변경이 일어날 시 Item-service, Order-service, Cart-service 의 Item 테이블도 같이 동기화해준다. (서비스 간의 통신을 줄이기 위해 고려했던 내용입니다. 근데 이 경우 Item table을 세가지 서비스에서 관리하기 떄문에 Identity 전략은 사용하지 못하고 UUID로 Item table의 PK를 관리해줘야 할 듯 합니다. 생각해보니 번거롭기도 하고 이상해지네요.) 2. Item에 관한 Entity, Repository, Table 은 Item-serivce에서만 관리한다. Order-service, Cart-service 에서 조회, 주문으로 인한 수량 변경 등으로 Item 데이터 처리가 필요할 시 서비스 간 통신으로 Item-service에서 데이터를 조회, 변경한다. 개발에 있어서 Right way는 없겠지만 실무에서는 어떤 방식이 더 선호되는지 위 두가지 방식의 장단점은 어떤게 있을지 답변 부탁드립니다. 또, 고민에 도움이 될만한 키워드도 같이 알려주시면 학습하는데 큰 도움이 될 것 같습니다. 질문이 조금 길었네요. 감사합니다.
- 해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
user-service-1.0.jar 파일이 정상적으로 만들어지지 않습니다.
안녕하세요. 강의 9:41의 결과처럼 /user-service-1.0.jar 을 만들어 docker run 을 정상적으로 실행시키려고 합니다. 하지만 정상적인 jar 파일이 만들어지지 않고 아래처럼 종속성이 빠진 상태로 33KB로 만들어집니다. user-service-1.0.jar.original과 비슷한 파일 크기 입니다. 그래서 저는 아래의 화면처럼 Build Artifact를 진행해 의존성이 포함된 user-service-1.0.jar 만들어봤지만 no main manifest attribute, in userservice.jar 에러가 떠서 /resources/META-INF/MANIFEST.MF 파일을 만들었습니다. Manifest-Version: 1.0Main-Class: com.example.userservice.UserServiceApplication 위 소스처럼 MANIFEST.MF 를 만들고 진행을 하면 docker run ***/user-service:1.2 Error: Could not find or load main class com.example.userservice.UserServiceApplication Caused by: java.lang.ClassNotFoundException: com.example.userservice.UserServiceApplication 위와 같은 에러를 보여 도저히 진행이 되지 않습니다. 아래는 macOS BigSur 의 bash_profile 설정입니다. export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home export PATH=${PATH}:$JAVA_HOME/bin export PATH=${PATH}:/usr/local/bin:/usr/local/bin/:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin export CLASSPATH=$JAVA_HOME/lib:. 혹시나 해서 pom.xml 파일을 수정해도 마찬가지입니다. <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.5</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>user-service</artifactId> <version>1.0</version> <packaging>jar</packaging> <name>user-service</name> <description>Demo project for Spring Boot</description> <properties> <java.version>11</java.version> <spring-cloud.version>2020.0.2</spring-cloud.version> <org.mapstruct.version>1.4.2.Final</org.mapstruct.version> <org.projectlombok.version>1.18.16</org.projectlombok.version> <lombok-mapstruct-binding.version>0.2.0</lombok-mapstruct-binding.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/com.h2database/h2 --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.3.176</version><!-- <scope>test</scope> test일 경우 실행결과를 확인 할수 없음 --> <scope>runtime</scope> </dependency> <dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct</artifactId> <version>${org.mapstruct.version}</version> </dependency> <dependency> <groupId>org.modelmapper</groupId> <artifactId>modelmapper</artifactId> <version>2.3.8</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId><!-- <version>2.4.4</version>--> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.1</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency> <!-- Feign Client --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <!-- resilience4j --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-circuitbreaker-resilience4j</artifactId> </dependency> <!-- slueth --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId> </dependency> <!-- zipkin --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> <version>2.2.3.RELEASE</version> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <pluginManagement> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>${java.version}</source> <!-- or higher, depending on your project --> <target>${java.version}</target> <!-- or higher, depending on your project --> <!-- See https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html --> <!-- Classpath elements to supply as annotation processor path. If specified, the compiler --> <!-- will detect annotation processors only in those classpath elements. If omitted, the --> <!-- default classpath is used to detect annotation processors. The detection itself depends --> <!-- on the configuration of annotationProcessors. --> <!-- --> <!-- According to this documentation, the provided dependency processor is not considered! --> <annotationProcessorPaths> <path> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-processor</artifactId> <version>${org.mapstruct.version}</version> </path> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${org.projectlombok.version}</version> </path> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok-mapstruct-binding</artifactId> <version>${lombok-mapstruct-binding.version}</version> </path> </annotationProcessorPaths> <compilerArgs> <arg>-Amapstruct.suppressGeneratorTimestamp=true</arg> <arg>-Amapstruct.defaultComponentModel=spring</arg> </compilerArgs> </configuration> </plugin> </plugins> </pluginManagement> </build></project> 위는 pom.xml 설정이고 mapstruct 과 lombok을 함께 사용하기 위해 maven-compiler-plugin을 spring-boot-maven-plugin과 함께 사용했습니다.혹시나 하는 마음에 maven-compiler-plugin빼고 mvn clean compile package -DskipTests=true 해도 마찬가지였습니다. 어떻게 하면 정상적으로 jar파일을 이용해서 이미지를 만들어 docker run을 진행해볼수 있을까요?
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
[rabbitmq 연결 불가] config-service에서 연결 불가 문의
안녕하세요 강사님. 강의 잘듣고있습니다 dependency를 추가하고 부트를 기동하면 rabbitmq host에 컨넥션을 하다가 결국 안되고 에러가 나오는데요 이런 증상은 어떻게 해결해야할지 문의 드립니다.. 답변 주시면 감사하겠습니다. <pom.xml> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId></dependency><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId></dependency> <application.yml> spring: application: name: config-service rabbitmq: host: 192.xxx.x.xx port: 3000 username: guest password: guest (부팅시 오류내용) *************************** APPLICATION FAILED TO START *************************** Description: An attempt was made to call a method that does not exist. The attempt was made from the following location: org.springframework.cloud.stream.binder.rabbit.RabbitMessageChannelBinder.createConsumerEndpoint(RabbitMessageChannelBinder.java:517) The following method did not exist: 'void org.springframework.integration.amqp.inbound.AmqpInboundChannelAdapter.<init>(org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer)' The method's class, org.springframework.integration.amqp.inbound.AmqpInboundChannelAdapter, is available from the following locations: jar:file:/Users/seunghapark/.m2/repository/org/springframework/integration/spring-integration-amqp/5.5.2/spring-integration-amqp-5.5.2.jar!/org/springframework/integration/amqp/inbound/AmqpInboundChannelAdapter.class The class hierarchy was loaded from the following locations: org.springframework.integration.amqp.inbound.AmqpInboundChannelAdapter: file:/Users/seunghapark/.m2/repository/org/springframework/integration/spring-integration-amqp/5.5.2/spring-integration-amqp-5.5.2.jar org.springframework.integration.endpoint.MessageProducerSupport: file:/Users/seunghapark/.m2/repository/org/springframework/integration/spring-integration-core/5.5.2/spring-integration-core-5.5.2.jar org.springframework.integration.endpoint.AbstractEndpoint: file:/Users/seunghapark/.m2/repository/org/springframework/integration/spring-integration-core/5.5.2/spring-integration-core-5.5.2.jar org.springframework.integration.context.IntegrationObjectSupport: file:/Users/seunghapark/.m2/repository/org/springframework/integration/spring-integration-core/5.5.2/spring-integration-core-5.5.2.jar Action: Correct the classpath of your application so that it contains a single, compatible version of org.springframework.integration.amqp.inbound.AmqpInboundChannelAdapter Process finished with exit code 1
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
[404에러] api-gateway 주소에서 user-service 호출시 문의
안녕하세요 강사님. 강의 잘 듣고있습니다 테스트중에 404에러가 나서 여쭤보려고합니다 api-gateway쪽에 application.yml 파일 등록을 한 후 호출을 해보면 404 에러가 떨어집니다 (api-gateway application.yml 파일 내용) - id: user-service uri: lb://USER-SERVICE predicates: - Path=/user-service/** - Method=GET filters: - RemoveRequestHeader=Cookie - RewritePath=/user-service/(?<segment>.*), /$\{segment} - AuthorizationHeaderFilter (postman 호출 url) http://192.xxx.x.xx:8000/user-service/health_check (호출 결과) { "timestamp": "2021-08-11T07:05:40.672+00:00", "status": 404, "error": "Not Found", "message": "No message available", "path": "/heath_check" } 확인해보니 user-service쪽에 post방식은 잘 호출이되지만 get방식으로 호출되는 것들은 404에러가 발생합니다 (user-service의 url로 호출하면 다 정상적으로 응답이 옵니다. api-gateway에서 호출하면 안되구요..) 원인을 찾지 못하여 확인 부탁드리겠습니다. 감사합니다
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
커넥트 에러 관련
안녕하세요. 강사님 좋은 강의 잘 듣고 있습니다. 카프카 관련해서 아래와 같은 에러가 발생하여 질문 드립니다. 에러 상황은 sql insert문으로 데이터가 잘 들어가졌는데, producer를 이용하여 json구조의 데이터를 넣은 후 부터 정 상적으로 동작하지 않고, sink의 status를 보면 아래와 같은 에 러가 보입니다. 원인과 해결방법을 알려주시면 감사하겠습니다. 에러 - json구조 데이터 - {"schema":{"type":"struct","fields":[{"type":"int32","optional":false,"field":"id"},{"type":"string","optional":true,"field":"user_id"},{"type":"string","optional":true,"field":"pwd"},{"type":"string","optional":true,"field":"name"},{"type":"int64","optional":true,"name":"org.apache.kafka.connect.data.Timestamp","version":1,"field":"created_at"}],"optional":false,"name":"users"},"payload":{"id":9,"user_id":"admin12","pwd":"1111234","name":"admin","created_at":1628604236000}}
- 해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
resilience4j 라이브러리 오류문제
안녕하세요, 강사님! 좋은 강의 감사합니다. 열심히 그리고 꾸준히 수강중입니다!!격고 있던 문제가 있었는데 해결되어서 정보공유를 위해서 글을 남기게 되었습니다! 11:38 부분에서 아래 라이브러리를 import하려고 시도하였으나, 없는 라이브러리 처럼 인식되어 나타납니다. import org.springframework.cloud.client.circuitbreaker.resilience4j.Resilience4JCircuitBreakerFactory; <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-circuitbreaker-resilience4j</artifactId></dependency> circuitbreaker까지는 이상이 없이 나오는데 resilience4j부터 해당 패키지가 없는것 같습니다.최신버전으로 버전 업그레이드 되면서 라이브러리 위치가 변경된 것은 아닐까 해서 버전을 낮추어보았는데도 해결이 되지 않았고 이를 통해 버전 문제가 아니라 라이브러리 인식오류 문제임을 확인하였습니다. 검색하던 도중 같은 groudId내의 다른 패키지들과 충돌문제가 있는것을 보았습니다. 그래서 해당 문제를 해결하기 위해서 pom.xml의 dependency부분을 위쪽으로 올려서 넣어주었습니다.같은 문제를 가지고 계신다면 참고해서 해결하면 좋을 것 같습니다. 감사합니다!
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강사님, 전체 소스코드..
혹시 전체 소스코드 깃헙에 따로 올려주신게 있을까요?
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
sink
삭제된 글입니다
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
spring cloud gateway jwt filter관련 질문입니다
혹시 jwt filter에서 변환해서 유저 id를 header로 보내는건 문제가 없을까요? filter config에서 유저 권한정보를 비교해서 맞으면 헤더에 유저아이디(pk)를 실어서 보내주고 아니면 토큰 에러 띄우는 형식으로 하려고 합니다 헤더를 중간에 가로챌 수 있나 궁금합니다
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의 아래 적어주신 테이블 생성과 강의에서 생성하는 테이블이 다른 듯 싶어요
아래는 orders 테이블이고 강의에서는 user 테이블이네요 create table users( id int auto_increment primary key, user_id varchar(20), pwd varchar(20), name varchar(20), created_at datetime default NOW() );
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Gateway와 set-Cookie 에 대한 질문입니다.
안녕하세요 강사님 해당 강의를 통해서 엄청난 꺠달음과 영감을 얻게되어 감사하다는 말씀을 먼저 올리고싶습니다. 제가 해당 강의를 통해서 성장을 하여 감히 마이크로서비스를 이용해서 프로젝트를 진행하고 있습니다. 하지만 프로젝트를 진행하다 보니 몇일 동안 해결할 수 없는 문제와 마주하게 되어 이렇게 문의 드립니다. 우선 Spring Cloud Gateway 가 존재하고 User-Service 가 그 뒤에 위치해 있습니다. User-Service 에서는 사용자가 로그인을 한다면 access_token 과 refresh_token 을 쿠키에 담아서 반환합니다. 그리고 로그아웃을 한다면 access_token 과 refresh_token 의 쿠키 값에 null 을 넣고 expires 를 과거로 만들어 만료되도록 합니다. Front 에서는 로그인을 수행하면 access_token 과 refresh_token 을 잘 받아서 브라우저에 저장하는 것을 확인하였습니다. 로그아웃을 수행한다면 응답으로 set-cookie 를 잘 받아오는 것도 확인을 하였습니다. - access_token=; expires= 1960 00:00:00 ... httpOnly; - refresh_token=; expires= 1960 00:00:00... httpOnly; 하지만 실제 브라우저에서는 쿠키가 지워지지 않더라구요.. axios의 credential 과 gateway 에서의 cors filter 도 설정을 잘 하였습니다. 실제 프로젝트 소스는 아래에 있습니다. - User-Service :: https://github.com/dhslrl321/PCUSS-User-Service - Gateway Service :: https://github.com/dhslrl321/PCUSS-Gateway-Server - Front 비동기 통신 코드 :: https://github.com/dhslrl321/PCUSS-Official-Site/blob/master/client/services/authService.js - Front axios 모듈 :: https://github.com/dhslrl321/PCUSS-Official-Site/blob/master/client/utils/api.js
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Visbility
강의 포스팅을 위하여 복습중에 있습니다. 여기서 visibility가 그라파나와 프로메테우스를 말하는것 맞나요??
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의 포스팅
혹시 강의 정리해서 개인블로그에 포스팅 해도 될까요?? 출처는 남기겠습니다.!
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
모니터링 관련입니다!
안녕하세요 강사님! 수업 잘 듣고있습니다. 한가지 질문이 있는데 혹시 whatap, datadog 같은 APM 툴과 prometheus, Grafana 툴은 다른건가요? 만약 다르다면 어떤 부분이 다른지 알려주시면 감사하겠습니다!!
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
mariadb 패스워드 에러
도커 orderService 컨테이너 실행시 저는 마리아 디비 패스워드를 입력하지 않았다고 에러가 나옵니다. run 명령어에 password를 동적으로 할당하여 실행하니까 제대로 실행이 되긴 하는데 위 캡쳐사진처럼 패스워드를 입력하였습니다. 하지만 동적으로 할당하지 않으면 Access denied for user 'root'@'localhost' (using password: NO) 이러한 에러한 에러가 뜨는데 password부분을 인식을 못하는것 같습니다.... 혹시 인시을 못하는 이유가 있을까요?
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
error decoder 등록 관련
안녕하세요. 강사님 좋은 강의 감사드립니다. 강의를 듣던 중 궁금한 것이 있어 질문드립니다. error decoder를 이용하여 exception 처리 시 feign client에 공통으로 적용 되는 것 같은데, 이렇게 될 경우 decoder안에 모든 메소드 만큼의 if문을 작성해줘야 하는 것인가요? 이렇게 될 경우 간편하게 처리할 수 있는 방법이 없나요?(feign fallback 처리와 비슷하게...메소드 단위로 등록하는 것처럼...?) 여러개의 feign client를 등록해서 사용한다고 했을 때, client에 각각의 error decoder를 등록할 수 있는 방법이 있 는지 궁금합니다.... 감사합니다.
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
질문
실습정말 잘 듣고있습니다. 몇가지 질문이 있습니다. 1. xml파일의 gateway.ip 이 값은 어디서 쓰이는건지 궁금합니다. 이 값을 바꾸지 않아도 잘 작동이 되서 질문드립니다. (제가 놓친 강의가 있다면 죄송합니다...) 2. 계속 403에러가 떠서 스프링 시큐리티 때문이라고 판단하여 일단 시큐리티의 hasipaddress 이부분을 없애고 permitall하여 사용하고 있습니다. 결과로 403 에러는 없어졌습니다. 원래 실습 방법처럼 하려면 hasipaddress이부분을 user서비스가 실행되는 ip주소로 바꿔줘야하는데 그러면 컨테이너가 실행될때 동적으로 바뀌는 주소값을 넣어줘야 한다고 생각하였습니다. (실행 순서에 따라 주소가 계속 바뀌기 때문) 이를 해결하기 위하여 어플리케이션.xml파일에 user.ip 값을 하나 만들고 hasipaddress의 부분에 env.getproperites("user.ip") 이런식으로 가져와서 사용하여 docker run 의 -e 옵션에 "user.ip=user-service" 이런식으로 사용하면 되나요?
- 해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
BCryptPasswordEncoder 로그인
비밀번호를 암호화하여 DB에 저장하고 같은 비밀번호를 암호화해도 다른 값이 저장되는데 로그인시 같은 비밀번호인지 어떻게 알 수 있나요???
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
MS간 호출에 있어 질문이 있습니다.
feign client를 이용해 order-service의 컨트롤러를 호출하는 방식으로 이해했습니다. 그런데, 실제 order-service의 getOrder라는 컨트롤러 메서드는 반환타입이 ResponseEntity로 한번 감싸져 있습니다. 이를 user-service에서 이용할때는 ResponseEntity가 벗겨진 List<ResponseOrders>를 바로 사용했구요. 아마, @FeignClient 어노테이션을 사용함으로써 이렇게 바로 파싱받아 사용할 수 있는 것 같은데.. ResponseEntity로 감싸져 있는 것만 파싱할 수 있는건가요?