스프링 빈의 생명주기
빈의 생명주기 이전에 스프링 컨테이너와 빈 포스트에서 빈에 대해 간단히 살펴봤다. 빈의 생명 주기는 스코프마다 다른데, 주로 사용되는 싱글톤 스코프의 빈을 예시로 들어보면 다음과 같다. 1) 스프링 컨테이너 생성 2) 스프링 빈 객체 생성 및 컨테이너에 등록 3) 의존관계 주입 4) 초기화 콜백 호출 5) 빈 사용 6) 소멸 전 콜백 호출 7) 스...
빈의 생명주기 이전에 스프링 컨테이너와 빈 포스트에서 빈에 대해 간단히 살펴봤다. 빈의 생명 주기는 스코프마다 다른데, 주로 사용되는 싱글톤 스코프의 빈을 예시로 들어보면 다음과 같다. 1) 스프링 컨테이너 생성 2) 스프링 빈 객체 생성 및 컨테이너에 등록 3) 의존관계 주입 4) 초기화 콜백 호출 5) 빈 사용 6) 소멸 전 콜백 호출 7) 스...
트랜잭션 DB 상태를 변화시키기 위해 수행되는 작업 단위 트랜잭션의 특성 ACID 트랜잭션은 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 지속성(Durability)을 보장해야 한다. 1. 원자성(Atomicity) 트랜잭션 내에서 실행한 작업들은 마치 하나의 작업인 것처럼 모두 성공 하거나 모두...
커넥션풀 DB와의 커넥션을 재사용할 수 있도록 관리되는 커넥션의 캐시이다. 커넥션풀 등장 배경 커넥션을 획득하기 위해서는 위와 같이 복잡한 과정을 거쳐야 한다. 때문에, 클라이언트의 요청이 있을 때마다 커넥션을 획득하게 되면 DB와 서버 모두 많은 리소스를 사용해야 한다. 이런 문제를 해결하기 위해, 커넥션을 미리 생성해두고 사용하는 커넥...
JDBC (Java Database Connectivity) 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다. JDBC 등장 배경 서버에서 DB를 사용하기 위해서는 일반적으로 TCP/IP를 사용해서 커넥션을 연결하고, SQL 전달 후 수행 결과를 받는 과정이 있다. 많은 종류의 데이터베이스가 존재하기 때문에, 서버에서 사용하...
스프링 빈 스프링 컨테이너가 관리하는 재사용 가능한 컴포넌트(자바 객체)를 뜻한다. BeanDefinition BeanDefinition은 빈 실정 메타정보를 저장하는 인터페이스이다. BeanDefinition의 속성에 따라 스프링 컨테이너가 빈을 어떻게 생성하고 관리할지 결정된다. BeanDefinition에 있는 정보는 다음과 같다. Be...
IoC (Inversion of Control) 직역하면 제어의 역전인데, 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부 프레임워크나 컨테이너에서 관리하는 것을 뜻한다. 스프링에서 빈의 생명 주기를 개발자가 아닌 프레임워크가 관리하는 것을 IoC라고 볼 수 있는데, 객체의 생성과 사용을 담당하는 주체가 개발자가 아니라 프레임워크로 바뀌면서 제...
Web Server 클라이언트에게 정적인 컨텐츠(정적 웹 페이지)를 제공한다. 또한, 동적 웹 페이지를 제공하기 위해 클라이언트의 요청을 웹 어플리케이션에 전달하고, 그 결과를 받아 동적인 컨텐츠를 제공하기도 한다. CGI (Common Gateway Interface) 동적 웹 페이지를 만들기 위해 웹 서버와 웹 어플리케이션이 데이터 (요청...
함수형 인터페이스 추상 메소드가 하나만 존재하는 인터페이스이다. default 메소드나 static 메소드가 있어도 상관 없고 다만, 추상 메소드는 꼭 하나만 존재해야 한다. 함수형 인터페이스에는 @FunctionalInterface 어노테이션을 달아준다. @FunctionalInterface interface Functional { voi...
https://www.acmicpc.net/problem/27375 문제 윤헌이는 수강신청 시즌이 되어 시간표를 짜고 있다. 지난 학기 금요일에 수업을 들어 친구들에게 온갖 놀림을 받은 윤헌이는 이번 학기에는 꼭 금요일 공강을 지켜내기로 결심했다!! 고려대학교에서 수강할 수 있는 $n$개의 수업의 요일과 시작 교시, 끝 교시가 주어진다. 요일 $w...
https://www.acmicpc.net/problem/1446 문제 매일 아침, 세준이는 학교에 가기 위해서 차를 타고 D킬로미터 길이의 고속도로를 지난다. 이 고속도로는 심각하게 커브가 많아서 정말 운전하기도 힘들다. 어느 날, 세준이는 이 고속도로에 지름길이 존재한다는 것을 알게 되었다. 모든 지름길은 일방통행이고, 고속도로를 역주행할 수는 ...