[Java] 전략 패턴 (Strategy pattern)
·
Java/Design Pattern
전략 패턴 (Strategy pattern)  - 행위를 클래스로 캡슐화해서, 동적으로 행위를 자유롭게 변환할 수 있게 함  - '구조' 디자인 패턴  - Spring의 의존성 주입 (DI)을 전략 패턴을 이용해서 구현할 수 있음  절차1. 인터페이스 선언더보기12345public interface IEncoder {     String encode(String message);    }cs" data-ke-type="html">HTML 삽입미리보기할 수 없는 소스 2. 선언한 인터페이스의 구현 클래스 생성더보기123456789101112131415161718192021222324..
[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// 클래스 ..
[Java] 싱글톤 패턴 (Singleton pattern)
·
Java/Design Pattern
#  관련 포스팅  - Static 키워드 : https://young0105.tistory.com/40 싱글톤 패턴 (Singleton pattern)  - 모든 프로그램을 통틀어서, 해당 클래스의 객체가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴  - '생성' 디자인 패턴  - static 키워드를 활용하여 구현 가능  - 코딩 컨벤션      : 싱글톤 패턴을 구현하기 위한 메서드 이름은 'getInstance'를 자주 사용함  - 한 번 생성되면, 어떤 java 파일에서든 동일한 객체 하나만 공유하며 사용하게 됨      → 항상 같은 객체임을 보장함 // 예시 //public class Company { // 1. 생성자를 private으로 선언함 private Compa..