본문 바로가기

반응형

개발(합니다)/Java&Spring

(73)
[spring boot 설정하기-17] spring cloud eureka(1) 설정 및 테스트 소스 동적으로 변하는 클라우드 환경에서 클라이언트가 여러개의 서비스 인터스턴스 중에서 원하는 인스턴스를 호출할 수 있도록 IP / Port / Instance ID를 보유하는 REST 기반 미들웨어 서버로 Service Registry입니다. 개요 AWS ELB(Elastic load Balancer)가 서버 사이드 디스커버리 패턴의 좋은 예입니다. 용어 Service Registration : 서비스가 자신의 정보를 Eureka 서버에 등록 Service Registry : 등록된 서비스들의 정보 목록 Service Discovery : 클라이언트가 요청을 보내려는 대상을 Service Registry를 통해 발견 구성 https://github.com/Netflix/eureka/wiki/Understand..
[spring boot 설정하기-16] spring cloud config(3) git 연동 설정 및 테스트 소스 1,2 포스팅에서 cloud config의 설정 및 암호화에 대해 포스팅했고 이번에는 git연동에 대한 포스팅을 합니다. 1. git 아이디와 비밀번호를 이용한 인증 spring: application: name: configserver # profiles: # active: composite cloud: config: server: encrypt: enabled: false # Config Server에서 복호화 비화성화 git: # uri: file:///D:/__otrodevym/git/spring-cloud-config-repo uri: https://github.com/otrodevym/spring-cloud-config-repo.git username: otrodevym password: 2...
[spring boot 설정하기-15] spring cloud config(2) 암호화 설정 및 테스트 소스 환경설정은 보안을 신경써야 하는 부부이라 노출되면 안되는 정보들이 있습니다. 예를 들어 비밀번호나 토큰키 같은 정보들입니다. 아래 사진처럼 rabbitmq의 username/password인 guest/guest 정보에서 비밀번호가 해당합니다. spring cloud config에서는 이를 암호화 할 수 있는 종단점을 기본적으로 제공합니다. POST형태의 /encrypt와 /decrypt이며 key store를 등록해야 사용 가능합니다. 1. config-server -> 의존성 추가 bootstrap.yml은 application.yml보다 먼저 로드하며 어떤 설정 정보를 주입하기 위해 사용됩니다. spring cloud에서는 bootstrap.yml 의존성이 없으므로 bootstrap을 의존성에 추가..
[spring boot 설정하기-14] spring cloud config(1) 설정 및 테스트 소스 기존 방식은 환경 설정 파일이 어플리케이션에 패키징 되어 있어서 환경설정이 변경되면 전체를 다시 빌드해야 합니다. 환경설정을 외부에 두어 환경 설정과 어플리케이션을 분리하여 빌드 없이 환경설정 변경을 적용할 수 있도록 합니다. Spring Boot Cloud Server는 모든 환경설정 속성 정보를 관리할 수 있게 외부화된 환경설정 서버입니다. actuator로 서버 구동을 확인할 수 있습니다. Config Server의 동작 흐름 마이크로 서비스 인스턴스가 실행하면서 환경설정 정보를 Config Server에 접근 가져온 환경설정 정보를 성능 향상을 위해 로컬에 캐시 Config Server는 환경설정 정보가 변경되면 모든 마이크로서비스에 전파 마이크로 서비스는 변경 사항을 로컬 캐시에 적용 Sprin..
[spring boot 설정하기-13] spring cloud feign 설정 및 테스트 소스 CreateMSA(MicroService Architecture)를 서로를 호출하다보면 코드의 복잡성이 높아지는데 Feign으로 복잡성을 낮출수 있습니다. Feign은 Rest 기반 서비스 호출을 추상화하는 Spring cloud Netflix 라이브러 Feign을 사용하면 코드의 복잡성을 낮춤 선언적 동작 식으로 인터페이스를 클러이언트에서 작성하고 인터페이스를 통해 REST api를 호출 Spring에서 런타임에 인터페이스 구현체를 제공하여 개발자는 비즈니스에 집중할 수 있음 관련 정보는 아래 사이트에서 확인할 수 있습니다. spring.io/projects/spring-cloud-openfeign 이어진 포스팅은 base 프로젝트를 기반으로 만들었으나 spring cloud는 개별적으로 폴더를 만들어..
[spring boot 설정하기-12] admin(+security) 설정 및 테스트 소스 actoator를 웹에서 확인할 수 있는 기능으로 제공되는 기능으로 SBA(spring boot admin)을 제공합니다. 문자가 아닌 그림으로 확인할 수 있습니다. 관련 정보는 아래 사이트에서 확인할 수 있습니다. codecentric.github.io/spring-boot-admin/current/#getting-started www.baeldung.com/spring-boot-admin 시큐리티가 적용되어 있는 상태에서 하면 조금 복잡한 감이 있어서 새로운 프로젝트를 생성하여 진행합니다. 1. Server 1-1. 의존성 주입 server-ui는 없어도 기본적으로 server에서 ui를 제공해줍니다. implementation 'org.springframework.boot:spring-boot-st..
[spring boot 설정하기-11] actuator 설정 및 테스트 소스 서비스를 하다보면 각 인스턴스에 대한 CPU, memory, Heap 등을 개별 모니터링하기보다는 한 곳에서 확인할 수 있는 기능을 제공해줍니다. actuator는 endpoint를 이용해 응용 프로그램을 확인할 수 있습니다. 각 endpoint는 http 또는 jmx를 통해 활성화와 비활성화를 할 수 있습니다. 기본적으로 /actuator 로 매핑되며 endpoint는 /actuator/health에 매핑됩니다. 관련 내용은 아래 사이트에서 확인해볼 수 있습니다. docs.spring.io/spring-boot/docs/current/reference/html/production-ready-features.html www.baeldung.com/spring-boot-actuators 1. endpoin..
[spring boot 설정하기-10] dev-tools 설정 및 테스트 소스 개발을 하다보면 수정 된 소스가 자동으로 반영되도록 해서 편리하게 테스트 되기 바랄 때 사용합니다. 관련 정보는 아래 사이트에서 확인할 수 있습니다. docs.spring.io/spring-boot/docs/1.5.16.RELEASE/reference/html/using-boot-devtools.html www.baeldung.com/spring-boot-devtools Spring boot devtools에서 제공하는 기능 1. Property Defaults thymeleaf는 캐싱 기능을 사용하는데 캐싱되어 있으면 thymeleaf에 개발된 내용이 반영이 되지 않아 강력 새로 고침을 해야 하는 경우가 생깁니다. 이를 위해 cache를 false로 적용해 캐싱하지 않도록 적용할 수 있습니다. 캐싱을 ..

반응형