[Spring Boot] AOP (관점 지향 프로그래밍) ★
·
Java/Spring Boot
AOP (Aspect Oriented Programming)  - 프로그램을 구성하는 여러 모듈에서 공통적으로 사용하는 코드를 분리함      → 재사용성 & 유지보수성 향상  - 프로그램의 여러 지점에서 반복적으로 사용되는 기능을 모듈화함      → 코드 중복 감소 & 코드 가독성 향상  - 핵심적인 코드와 부가적인 코드(방어적 코드 등)를 분리함      : 핵심 기능에 영향을 미치지 않으면서, 부가적인 기능을 제공할 수 있음       → 횡단 관심사를 핵심 관심사와 분리하여 구현하는 기법  - OOP (객체 지향 프로그래밍)의 보완(보조)적인 개념 #  AOP 라이브러리 추가하기 (Gradle 빌드)  1. build.gradle 파일에 명시 12345dependencies {&nbsp..
[Spring Boot] ResponseEntity
·
Java/Spring Boot
ResponseEntity  - 결과 데이터와 HTTP 상태 코드를 직접 제어할 수 있는 클래스  - ResponseEntity를 사용한 일관된 형식을 만들어서 return함으로써, API 개발이 편리해짐 12345678910111213141516171819202122232425// User : DTO @PostMapping("/post")public ResponseEntity<User> post(@RequestBody User user) {     // HTTP 메세지 바디의 데이터를 user object로&nbsp..
[Spring Boot] IoC (제어의 역전) / DI (의존성 주입) ★
·
Java/Spring Boot
IoC (Inversion Of Control, 제어의 역전)  - 객체(인스턴스)의 생명주기 관리를 개발자가 아닌 Spring Container (IoC Container)가 모두 맡아서 함      → 제어의 역전 (프로그램의 제어 흐름이 뒤바뀜)           : 실행의 제어권이 개발자에서 Spring Boot 프레임워크로 넘어감      → 제어 흐름의 일부/전부를 프레임워크가 제어함      → 프로그램의 유연성 & 재사용성 향상  - 소프트웨어 디자인 패턴  - Spring Container에 올라간 Bean 객체들은 모두 싱글톤 패턴으로 관리됨   - Spring의 목표    : 내부적으로 Servlet Container를 가지고 있지만, 개발자가 그에 대해 신경쓰지 않고      Spr..
[Spring Boot] REST API - Controller 구현 예시
·
Java/Spring Boot
Method : GET#  Query String 방식의 데이터 파싱 처리더보기1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859@RestController // <- JSON 방식으로 응답 처리@RequestMapping("/api") // url 매핑public class GetApiController {     // 쿼리 파라미터 방식으로 key-value ..
[Spring Boot] MVC 패턴
·
Java/Spring Boot
MVC 패턴 (Model-View-Controller Pattern)  - 사용자 인터페이스로부터 비즈니스 로직을 분리함      → 서로 간의 영향을 받지 않고 쉽게 수정할 수 있도록 하는 소프트웨어 디자인 패턴  - Spring 프레임워크는 MVC 패턴을 준수함  모델 (Model)  - 애플리케이션이 무엇을 할 것인지를 정의하는 역할  - 내부 비즈니스 로직을 처리하기 위함  - DB 데이터를 가진 객체  - 모델의 상태에 변화가 있을 때, 컨트롤러와 뷰에 이를 전달함      → 뷰는 최신의 결과를 보여주며, 컨트롤러는 모델의 변화에 따라 적용 가능한 명령을 수행할 수 있음      ▶  관련 어노테이션 12345678910111213141516171819202122// 클래스 ..