Spring reference document。처음 사용하는 라이브러리가 있을때 참고Starter , 라이브러리 등에 대한 의존성을 build.gradle에 정의▶ 추후 어플리케이션 빌드 시 정의된 의존성에 대한 라이브러리들을 빌드파일에 포함Spring Reactice
빌드 도구 ( Build Tool ) : 。개발자의 소스코드를 실행 가능한 Application으로 빌드하는 역할을 수행. ▶ 각 프로그래밍 언어에 맞는 Project를 빌드 및 Dependency를 관리Maven : 。XML Script 기반으로 pom.xm

Spring Boot : 。Production ready , Build quickly ▶ 필요한 환경 설정을 최소화하고 개발자가 Business logic에 집중하게 함으로써 생산성을 향상 。스프링을 기반으로 개발의 기반이 되는 실행할 수 있는 독립형 어플리케이션을

Spring Boot Initializer 。Spring Boot Project 생성 start.spring.io 。Spring Boot 3은 최소한 Java 17의 버전을 필요로 한다. 。SNAPSHOT 버전은 Spring Boot Team이 현재 개발하는 버전으로서
Spring Boot Starters。프로젝트에 필요한 여러 라이브러리·프레임워크를 하나의 그룹(Starter)으로 묶어서 의존성 선언을 단순화해 주는 Spring Boot의 편의 기능▶ 빌드 시 Starter 관련 라이브러리들을 일괄적으로 내려받아 프로젝트에 포함。
Logging。개발자는 Production 中 발생하는 문제를 오직 log만을 확인하면서 디버깅해야한다.▶ log에 무엇이 logging되는지에 항상 주의해야한다. 。Spring boot에서는 application.properties를 통해 loggin
Spring Boot Actuator。 Production 단계의 Application을 모니터링하고 관리.▶ Application의 Background에서 endpoint를 통해 어떤 작업이 발생하는지 확인하는 등의 정보를 제공하는 역할을 수행.。여러 Endpoint
CommandLineRunner :。@SpringBootApplication을 통한 Spring Application의 구동 직후 실행해야하는 Spring Bean을 설정하기위해 사용하는 Interface▶ 주로 Application 실행 즉시 초기화 하는 코드의 실

Model1 , Model2Spring MVC。Servlet API를 기반으로 클라이언트의 요청을 처리하는 모듈。Model2 Architecture + Front Controller 패턴을 기반으로하는 Spring Framework ModuleDispatcher Ser
JDBC ( Java Database Connectivity ) :。자바(Java)에서 DB에 접속할 수 있도록 연결하는 API▶ Java Application에서 DB에 접근하여 사용자가 작성한 SQL을 통해 SELECT , INSERT , UPDATE , DELET

레이어드 아키텍처 레이어드 아키텍처。각 계층이 독립적인 특정기능을 집중해서 수행하도록 관리하는 방식 。각 계층은 고수준 상위계층으로부터 저수준 하위계층으로 단방향 의존성을 가지며 상호작용을 수행 ▶ 저수준 계층에서 고수준 계층으로 의존성을 가지면 안된다.
application.yml。Application의 log level , profile , actuator 등 의 많은 세부설정을 정의하는 configuration file서버 포트 번호 설정

Profiles。Application의 다양한 환경(Environments) 별 설정(Configuration)을 제공하는 기법.▶ 각 환경에 대한 별도의 profile을 생성하여 다른 설정을 제공할 수 있다.▶ Application의 다양한 환경(Environment
텍스트> application.yml 파일 내 작성된 property를 어플리케이션으로 반영하는 어노테이션 > @Value("${prefix명.property명}") 。SpringEL 방식을 통해 applications.yml에 정의된 property값을 fiel
@SpringBootApplication : 。Spring Boot로 생성한 Application의 진입점 Class에 선언하는 Annotation▶ 기존 Spring에서는 Application을 실행하기위해 수많은 설정을 했어야 했으나, Spring Boot에서는

Controller를 선언하는 어노테이션 。클라이언트의 요청의 URL 패턴이 일치하는 경우 선언된 메서드로 mapping하는 어노테이션 ▶ Spring MVC의 HandlerAdapter, HandlerMapping 역할을 수행 。Web Controller Class

HATEOAS ( Hypermedia as the Engine of Application State )。API의 응답에서 다른 자원에 대한 하이퍼링크를 포함한 HAL Response로 응답하여 클라이언트가 동적으로 자원을 탐색할 수 있도록 하는 개념.▶ REST API
Postgres DB와 Spring Boot 연결하기 참고 。영속성 DB와 연결하는것이므로 H2와 같은 In-Memory DB처럼 Application을 재시작하면 Data가 초기화되는것이 아니기 때문에 초기값 설정용 data.sql , schema.sql을 정의 안해
MySQL 의존성。runtimeOnly 'com.mysql:mysql-connector-j'application.yml。비밀번호는 placeholder로 지정하여 따로 Edit Configuration - Environment Variable에서 PASSWORD:123
각 Controller에 구현된 API에서 클라이언트에게 통일된 Format의 HTTP Response를 공통응답처리를 구현하는 클래스 정의。HTTP API의 Response를 표준화하기위한 용도의 클래스를 생성 후 내부에 각 응답을 정의한 ResponseEntity

Jackson 어노테이션 : com.fasterxml.jackson.annotation。@ResponseBody를 통해 Controller에서 반환되는 DTO 객체를 JSON Format으로 직렬화 시 JSON에 포함될 객체 Field에 대해 정의▶ @JsonPrope
API에서 전역적인 범위에서 예외 발생 시 일관된 응답으로 처리하는 방법。@RestControllerAdvice가 선언된 Advice 용도의 클래스를 정의 및 내부에 특정 예외 발생 시 처리하는 Logic을 작성한 @ExceptionHandler가 정의된 메서드를 정의

Interceptor을 통해 서버에 접속한 사용자의 IP 정보 및 단말정보 가져와서 DB에 저장하기。서버에 접속한 사용자 정보를 JPA를 통해 DB에 저장▶ 일일 방문자 수 등을 통계할 수 있음.인터셉터( Interceptor )。Controller 기준 앞 또는 뒤에

각 Controller에 구현된 API에서 클라이언트에게 통일된 Format의 HTTP Response를 공통응답처리를 구현하는 클래스 정의。HTTP API의 Response를 표준화하기위한 용도의 클래스를 생성 후 내부에 각 응답을 정의한 객체를 return하는 st
application.yml 설정。spring:sql:init:mode: always : 스프링 어플리케이션 구동 시 /src/main/resources에 정의된 schema.sql과 data.sql이 자동으로 실행하도록 설정。spring: jpa: defer-data