우주먼지
Memo - Annotations
Framework/Spring 2023. 2. 28. 20:27

💡 Annotations Spring Basic Annotations @Target(ElementType.TYPE) , @Retention(RetentionPolicy.RUNTIME), @Documented = Custom Annotation 생성 시 사용 @BeforeEach 테스트 메소드 실행 전 실행됨 @AfterEach 테스트 메소드 이후에 실행됨 @DisplayName("") 테스트 클래스or메소드의 이름 정의 가능 @Disabled("") 테스트 클래스or메소드를 비활성화 @Autowired 필요한 의존 객체의 '타입'에 해당하는 빈을 찾아 의존성 주입, getBean(.class)와 동일하다고 보면 됨 @Component 스프링 빈 등록, 이름을 지정 하려면 ("")로 지정하되, 첫글자는 무..

Memo - Spring
Framework/Spring 2023. 2. 28. 20:26

💡 Spring Memo 개념 ApplicationContext 스프링 컨테이너, AnnotationConfigApplicationContext의 상위 인터페이스 AnnotationConfigApplicationContext AnnotatedBeanDefinitionReader를 사용해서 AppConfig.class를 읽고 BeanDefinition을 생성함, getBean() 등 더 많은 기능을 쓰려면 얘를 생성해야함 보통 ApplicationContext ac = new AnnotationConfigApplicationContext(); 로 선언해서 사용함 Spring Bean key,value 형태로 값 저장 Bean Definition 스프링이 다양한 형태의 설정정보를 BeanDefinition으..

article thumbnail
API Gateway 개념 & 구축
Framework/Spring 2023. 2. 11. 03:11

💡 API Gateway API Gateway란? 클라이언트의 마이크로 서비스 호출에 대한 접근 인증 및 ACL을 적용하여 중요 데이터를 보호하는 트래픽 관리 외부 클라이언트와 백엔드 서비스 간 통신을 최적화하여 클라이언트에게 원활한 경험 제공 확장성과 고가용성을 보장하며 클라이언트의 모든 API 호출을 가져와 적절한 마이크로 서비스로 라우팅 함. (로드밸런서와 유사한 구조) API Gateway를 사용하는 이유 마이크로 서비스는 각각 자체기능을 필요로 하기 떄문에 어플리케이션을 느슨하게 결합된 여러 서비스로 분해 가능 더 쉽게 개발, 배포 및 유지 관리를 할 수 있지만 고객이 어플리케이션에 빠르고 안전하게 액세스 하기가 더 어려워진다 Non-Blocking I/O가 지원되는 플랫폼에 구축하는것이 가장 ..

article thumbnail
Project Reactor
Framework/Spring 2022. 11. 29. 06:07

💡 Project Reactor 완전한 Non-Blocking 통신 지원 Publisher 타입으로 Mono[0|1] , Flux[N] 존재, 숫자는 가능한 데이터 emit의 수 MSA 기반 Application에 적합한 Library BackPresure 전략 사용 BackPresure 전략이란? Subscriber의 emit 데이터 처리 속도가 Publisher의 emit 속도를 따라가지 못할때 제어하는 전략 💡 Marble Diagram Reactor의 데이터 타입 중 하나인 Mono 마블 다이어 그램 (1) 원본 Mono에서 시작되는 Sequence를 타임라인으로 표현 (2) Sequence에서 구슬 1개가 생기는걸 데이터 Emit으로 표현 (3) 수직 막대바( | ) -> Sequence 정상 ..

article thumbnail
Reactive System & Reactive Programming
Framework/Spring 2022. 11. 29. 03:42

💡 Reactive System & Reactive Programming 선언형 프로그래밍(Lambda 표현식, Stream API), 순차 실행 X Reactive System은 Requst Thread의 응답 대기시간을 최소화 할 수 있게 Non-Bloking 통신 지원함 Reactive Programming 에서의 반응은 Thread의 Non-Blocking과 관련이 있다 Reactive System 설계 원칙 Means - 리액티브 시스템의 커뮤니케이션을 담당 Message Driven 리액티브 시스템은 메세지 기반 통신을 통한 시스템 간 느슨한 결합 유지 Form - 메세지 기반 통신을 통한 구조 형성 Elastic 트래픽량에 관계없이 일정한 응답성 유지 Resiilient 시스템 장애 발생 시..

article thumbnail
OAuth2 Authentication
Framework/Spring 2022. 11. 25. 10:21

💡 OAuth2 [출처] OAuth 2.0 동작 방식의 이해|작성자 MDS인텔리전스 JWT는 사용자의 Credential을 직접 백엔드 어플리케이션에서 관리하는 구조이지만 OAuth2의 인증 방식은 백엔드 어플리케이션의 직접적인 관여가 없고, ThirdParty에서 사용자의 인증처리를 위임하고 Resource에 대한 자격증명 토큰을 발급한다 OAuth2를 적용하기 적합한 Application 유형 ThirdParty Application의 직접적인 API 사용하는 경우 다중 인증 목적 (보안성 ↑)의 경우 User의 Credential 정보의 흔적을 남기고 싶지 않을 경우 OAuth2 구성요소 Resource Owner 사용할 Resource의 Owner -> 서비스를 이용하는 클라이언트 Client 보..

article thumbnail
Implement JWT Login Authentication
Framework/Spring 2022. 11. 25. 04:42

💡 Processing Flow 💡 구현 사전 작업 UserDto의 Post 내부클래스에 password 필드 추가 Entity 클래스에 password 필드, 권한테이블 생성 로직 추가 SecurityConfiguration : Spring Security를 이용한 보안 강화를 위한 보안 구성 Annotation @Configuration implementation, extends None Dependency Injection JwtTokenizer Method @Bean public SecurityFilterChain -> 보안 설정 param = HttpSecurity throws = Exception 로그인 방식, csrf공격 방지 등 보안 옵션 설정 return http.build() @Bean..

검색 태그