본문 바로가기

CSE/Spring8

Lombok 라이브러리 - 생성자 자동 생성! Lombok 더보기 Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java. Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more. 어노테이션 한방이면 final 이 붙은 클래스의 생성자를 몽땅 생성해주는 착한 라이브러리다. @RequiredArgsConstructor 더보기 어떠한 빈(Bean)에 생성자가 오직 하나만 있고, 생성자.. 2021. 3. 3.
컴포넌트 스캔과 필터 이용하기 의존관계 자동 주입 더보기 Many Spring Boot developers like their apps to use auto-configuration, component scan and be able to define extra configuration on their "application class". A single @SpringBootApplication annotation can be used to enable those three features, that is: @EnableAutoConfiguration: enable Spring Boot’s auto-configuration mechanism @ComponentScan: enable @Component scan on the package.. 2021. 3. 1.
Spring이 제공하는 싱글톤 컨테이너 싱글톤 패턴 더보기 소프트웨어 디자인 패턴에서 싱글턴 패턴을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 이와 같은 디자인 유형을 싱글턴 패턴이라고 한다. 싱글톤 패턴은 클래스의 인스턴스가 딱 하나만 생성되는 것을 보장하는 디자인 패턴이다. 기본적으로 private 생성자를 이용해 객체 인스턴스를 외부에서 생성 (new 키워드 사용) 하지 못하도록 막는 것이다. 하지만 싱글톤 패턴을 static 영역에 instance를 생성하는 식의 순수 자바 코드로 구현하면 문제점이 발생한다. 의존관게상 클라이언트가 구체 클래스에 의존하게 되며 (DIP 위반), 자식 클래스를 만들기도 어렵다. 더불어 내부 .. 2021. 3. 1.
IoC, DI, 컨테이너 IoC (Inversion of Control, 제어의 역전) 더보기 제어 반전, 제어의 반전, 역제어는 프로그래머가 작성한 프로그램이 재사용 라이브러리의 흐름 제어를 받게 되는 소프트웨어 디자인 패턴을 말한다. 줄여서 IoC이라고 부른다. 전통적인 프로그래밍에서 흐름은 프로그래머가 작성한 프로그램이 외부 라이브러리의 코드를 호출해 이용한다. 기존으 프로그램에서는 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결하고, 실행하는 방식이였다 즉 구현 객체 (프로그래머)가 프로그램의 제어 흐름을 조종하는 역할이였다. 반면, IoC을 따르면 프로그램에 대한 제어 흐름 권한을 외부(라이브러리)에서 가져가는 것이다 (AppConfig) 프레임워크 - 프로그래머가 작성한 코드를 제어하고, 대신 .. 2021. 2. 24.
AppConfig - 애플리케이션 동작 방식을 Configuration ! AppConfig 애플리케이션의 전체 동작 방식을 구성(config) 하기 위해, 구현 객체를 생성하고 연결하는 책임을 가지는 별도의 설정 클래스. 각각의 클래스에서 필요한 클래스의 객체를 생성하고 기능을 수행시켜야 할 때, 구현체를 바로 할당시키면 기능의 변경사항이 있을시에 클라이언트 객체 코드의 변경이 따라올 수 있다. 그래서 필요한 역할이 바로 동작 방식 구성을 책임지는 "AppConfig" 이다. AppConfig는 애플리케이션 동작에 필요한 구현 객체를 생성해주고, 생성자를 통해서 주입(연결) 해준다. 1. Class에서의 변경 기존 자바 코드에서는 인터페이스와 클래스를 분리해서 설계를 해놓기는 했지만, 클래스 내부에서 실행하는 객체의 변동이 DIP, OCP 위반 문제를 일으켰다. 변경점 : 클.. 2021. 2. 22.
기본적인 자바 문법 + IntelliJ 단축키 @계속 추가 예정 1. 자바 인터페이스 "역할"과 "기능"의 분리를 위해 가장 중요한 개념이 바로 인터페이스이다. 더보기 인터페이스는 자바 프로그래밍 언어에서 클래스들이 구현해야 하는 동작을 지정하는데 사용되는 추상 자료형이다. 이들은 프로토콜과 비슷하다. 인터페이스는 interface라는 키워드를 사용하여 선언하며, 메소드 시그너처와 상수 선언만을 포함할 수 있다. 추상 자료형이라는 단어에 모든 것을 담고있다. 여러 기능을 수행하는 클래스를 만들기 전에 제공해야하는 틀이라고 보면 된다. 자바에서 인터페이스는 오직 추상 메서드와 상수만을 멤버로 허용한다. 인터페이스의 기본적인 모습이다. 필수적인 기능을 하는 메서드를 가지고 있는 모습. 2. 자바 클래스 실질적인 기능을 구체적으로 담은, 객체를 생성하기 위해 어떤 데이터와.. 2021. 2. 20.
반응형