1. 웹 애플리케이션과 싱글톤 패턴스프링이 없는 순수한 DI 컨테이너는 호출(요청)할 때마다 새로운 객체를 생성함이런 방식을 사용하게 되면 요청 수만큼 객체가 생성되고 소멸되므로 메모리 낭비가 심해짐해결 방안 = 싱글톤 패턴: 해당 객체가 딱 1개만 생성되고, 새로운 요청이 들어오면 해당 객체를 공유하도록 설계하기 싱글톤 패턴클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴객체 인스턴스가 2개 이상 생성되지 못하도록 private 생성자를 사용해, 외부에서 임의로 new 키워드를 사용하지 못하도록 막아야 함아래는 객체를 미리 생성해 두는 가장 단순하고 안전한 싱글톤 패턴 구현 방식객체가 필요하다면 getInstance() 메서드를 통해 조회 가능 (항상 같은 인스턴스를 반환함)priva..
Spring
스프링 컨테이너의 생성과 스프링 빈이 등록되는 과정을 설명한 섹션!스프링 빈이 등록되는 이름에 대한 개념을 잘 기억해야 함 1. 스프링 컨테이너 생성생성 코드// 스프링 컨테이너 생성ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);ApplicationContext = 스프링 컨테이너 = interfaceBeanFactory와 ApplicationContext로 구분해서 말하지만, BeanFactory를 직접 사용하는 경우는 거의 없음스프링 컨테이너는 XML을 기반으로 만들 수 있고, 어노테이션 기반의 자바 설정 클래스로 만들 수 있음위의 코드는 어노테이션 기반의 자바 설정 클래스로 ..
전체 내용 정리보단 나중에 다시 찾아 볼만한 내용들만 정리해보려고 한다. 1. 예제 만들기프로젝트 생성스프링 부트 3.0 이상 선택JDK 17 이상 사용javax 패키지 -> jakarta 패키지 (옛날 자료를 찾아보다 보면 javax로 되어있는 경우가 많음) 스프링 부트 3.2부터 [file > settings]에서 gradle 검색 후 [Build and run using]과 [Run tests using]에 Gradle 옵션 사용기본값이므로 수정할 필요 없음 로직 테스트예시package hello.core.member;import org.assertj.core.api.Assertions;import org.junit.jupiter.api.Test;import static org.junit.jupi..
1. 객체 지향이란?OOP(Object-Oriented Programming): 객체 지향 프로그래밍컴퓨터 프로그램을 '명령어의 목록'으로 보기 보단, 여러 개의 독립된 단위인 '객체'들의 모임으로 파악하고자 하는 것프로그램에 변화가 생기면 '객체'를 갈아끼우면 되기 때문에 프로그램이 유연하고 변경하기 쉬움주로 대규모 소프트웨어 개발에 많이 사용됨 각 개체는 서로 메시지를 주고 받으며 데이터를 처리하는 방식으로 협력함요청하는 객체는 클라이언트, 응답하는 객체는 서버로 볼 수 있음혼자 있는 객체는 없으며, 이 수 많은 클라이언트와 서버 객체들은 서로 협력 관계를 가짐서버인 객체가 클라이언트가 될 수도 있음 절차 지향 프로그래밍은 데이터 위에서 동작하는 함수를 작성하는 데에 집중하는 반면, 객체 지향 프로그..