스프링부트 18

스프링의 핵심

스프링의 핵심 SpringSpring 1.0버전은 2004년 3월 출시20여가지로 구성 (https://spring.io/projects/spring-framework)스프링의 핵심기능 (DI, AOP, etc) 제공, 필요한 모듈만 선택해 사용 가능현재 대부분 서버들이 단일 아키텍처 (모놀리스)에서 마이크로서비스 아키텍처로 변환 중 -> 스프링도 진화하고 있는 상태스프링부트, 스프링 클라우드, 스프링 데이터, 스프링 배치, 스프링 시큐리티에 중점을 둠 Spring 의 과제'테스트의 용이성', '느슨한 결합' 에 중점을 두고 개발2000년 초반, 자바 EE 애플리케이션은 작성/테스트가 매우 어려웠음, 느슨한 결합이 된 애플리케이션 개발이 힘든 상태였고, 데이터베이스와 같이 외부에 의존성을 두는 경우 단위..

액츄에이터

운영 환경에서 서비스할 때 필요한 이런 기능들을 프로덕션 준비 기능이라 함 프로덕션을 운영에 배포할 때 준비해야 하는 비 기능적 요소들을 뜻함 지표(metric), 추적(trace), 감사(auditing) 모니터링 스프링 부트가 제공하는 액추에이터는 이런 프로덕션 준비 기능을 매우 편리하게 사용할 수 있는 다양한 평의 기능들을 제공함 액츄에이터는 /actuarot 경로를 통해 기능을 제공함 이 기능은 현재 서버가 잘 동작하고 있는지 애플리케이션의 헬스 상태를 나타냄 액츄에이터 기능을 웹에 노출 액츄에이터가 제공하는 수 많은 기능을 확인 할 수 있음 제공하는 기능을 엔드포인트라 함 health 는 헬스 정보, beans는 스프링 컨테이너에 등록된 빈을 보여줌 각각의 엔드포인트는 /actuator/{엔드포..

YAML / @Profile

YAML YAML (YAML Ain't Markup Language) 사람이 읽기 좋은 데이터 구조를 목표로 함 확장자는 yaml, yml application.properties 예시 environments.dev.url=https://dev.example.com environments.dev.name=Developer Setup environments.prod.url=https://another.example.com environments.prod.name=My Cool App application.yml 예시 environments: dev: url: "https://dev.example.com" name: "Developer Setup" prod: url: "https://another.examp..

서비스의 인증과 권한 부여

보안 용어 이해 인증 (Authentication) 사용자가 누구인지 확인하는 단계 ex) 로그인 로그인에 성공하면 애플리케이션 서버는 응답으로 사용자에게 토큰 (token)을 전달 실패한 사용자는 토큰을 전달받지 못해 원하는 리소스에 접근 불가 인가 (Authorization) 검증된 사용자가 애플리케이션 내부의 리소스에 접근할 때, 해당 리소스에 접근할 권리가 있는지 확인 ex) 특정 게시판 게시판 접근 등급을 확인해 접근을 허가하거나 거부 접근 주체 (Principal) 애플리케이션 기능을 사용하는 주체 ex) 사용자 또는 디바이스, 시스템 스프링 시큐리티 동작 구조 서블릿 필터 (Servlet Filter) 기반 동작, DispatcherServlet 앞에 필터 배치 필터체인 (FilterChai..