2025/09/02 4

스프링에서 Bean은 어떻게 등록되고 주입될까? (XML & Annotation 비교)

1. 기본 개념스프링에서 DI(의존성 주입)는 **“필요한 객체를 직접 new 해서 쓰지 않고, 외부에서 넣어준다”**는 거예요.DI 방식은 크게 3가지가 있어요:필드 주입 → @Autowired private EmpDAO dao;Setter 주입 → setEmpDAO(EmpDAO dao) 같은 setter로 주입생성자 주입 → public EmpServiceImpl(EmpDAO dao) { this.dao = dao; }2. 생성자 주입 방식의 원리당신이 적으신 코드:public class EmpServiceImpl implements EmpService { private EmpDAO dao; public EmpServiceImpl(EmpDAO dao) { this.dao = d..

GoF 패턴 - singleton 싱글톤 패턴 / 스프링에서 싱글톤 패턴 만들어보기

뭐임?- Singleton : 특정 클래스의 인스턴스가 오직 하나만 만들어지고, 그 인스턴스에 전역적으로 접근할 수 있도록 하는 패턴- 즉, 프로그램 전체에서 공유되는 단일 객체이다.- 단 하나의 객체로서 클라이언트의 요청을 처리함 왜씀?- 메모리 절약(객체 여러번 생성 X) / 데이터 일관성 유지 / 객체 관리 단순화 동작 방식?- 생성자를 private 으로 막아 외부에서 new 키워드로 인스턴스를 만들지 못하게 함.- 클래스 내부에서 자기 자신을 static 변수로 하나 생성해 둠.- getInstance() 같은 static 메서드를 통해 단일 객체에 접근함. - : private+ : public밑줄 : static 스프링에서 싱글톤 만들어보기ApplicationContext (스프링 컨테..

카테고리 없음 2025.09.02

[JDBC 커넥션 풀] DBCP2 vs hikariCP vs c3p0

서버와 DB 연결 방식1. 요청마다 새 커넥션 맺는 방법2. 커넥션 풀링 : 서버가 미리 DB와 연결해놓고 연결해놓은 커넥션을 하나씩 맺어주는 방법 커넥션 풀- 웹서버에서 DB를 사용하기 위해 DB를 연결해놓은 커넥션들을 저장해놓은 장소- 서버 시작시 DB와 미리 일정 개수의 연결을 확보해 둠. -> 요청이 들어오면 풀에 있는 커넥션 하나 빌려줌. -> 작업 끝나면 커넥션 닫지 않고 반환 -> 다시 풀에 보관 왜쓰냐?성능, 안정성, 비용 때문에 DataSource (JDBC)- "DB 커넥션을 어떻게 얻어올까?" 라는 계약(규칙)만 정의하고, 실제 구현은 여러 방식이 가능함.- JDBC에서는 커넥션 풀을 직접 만들지 않고, DataSource라는 인터페이스를 제공해 추상화함. -> 각 풀 라이브러리가 D..

Spring-DI-Bean Annotation

============================================================================================ EmpServiceImpl.java에서 @어노티이션 추가 resources의 spring-context.xml의 xsi:schemaLocation에 아래 코드 추가http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd" 아래코드도 추가해야됨.xmlns:context="http://www.springframework.org/schema/context" EmpMainSpring.java 에서 실행하면..