다시 웹, 백엔드로 57

스프링의 핵심

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

Spring Boot 시작하기

Spring Boot 시작하기Spring Boot 는 프로덕션 제품 수준의 스프링 기반 어플리케이션을 만들 수 있음Spring 구성이 거의 필요하지 않음java -jar 로 실행하는 Java 어플리케이션을 만들 수 있음  특징Spring 개발에 대해 빠르고, 광범위하게 적용할 수 있는 환경기본값 설정이 되어있으며 변경할 수 있음대규모 프로젝트에 공통적인 비 기능 제공 (보안, 모니터링 등)XML 구성 요구사항이 없음  https://start.spring.io   Spring Boot REST API프로젝트 생성  ⁉️ 서버 port 를 변경하려면   GET 요청 받기 스프링에서 컨트롤러 작성시키기 위해서는 클래스를 만들어야 함작성한 클래스 위에 @RestController 어노테이션을 붙여줘야함주소를 ..

웹 개발 개론

웹 개발이란? Web의 3요소 URI (Uniform Resource Identifier): 리소스 식별자, 특정 사이트, 특정 쇼핑 목록, 동영상 목록, 모든 정보에 접근 할 수 있는 정보 HTTP (Hypertext Transfer Protocol): 어플리케이션 컨트롤 GET POST PUT DELETE OPTIONS HEAD TRACE CONNECT HTML (Hyper Text Markup Language): 하이퍼미디어 포맷, xml을 바탕으로한 범용 문서 포맷, chrome/safari/explorer 에서 사용자가 알아보기 쉬운 형태로 표현 REST REST (Representational State Transfer: 자원의 상태 전달) - 네트워크 아키텍처 Client, Server: 클..

액츄에이터

운영 환경에서 서비스할 때 필요한 이런 기능들을 프로덕션 준비 기능이라 함 프로덕션을 운영에 배포할 때 준비해야 하는 비 기능적 요소들을 뜻함 지표(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..