spring

이번 주에는 스터디에서 Spring 관련 모의면접을 진행했다. 팀 공용 노션에도 정리되어 있긴 하지만, 답변자별로 정리되어 있어서 스터디원들과 내가 받았던 질문과 그에 대한 답변을 주제별로 간단하게 정리해봤다 :) 틀린 부분에 대한 지적은 언제나 환영합니다🫶 1. DI / IoC 👉 DI란? Dependency Injection의 약자로, 의존관계 주입을 의미한다. 클라이언트가 사용하는 인스턴스를 외부로부터 주입받아서 사용하는 것을 DI라 한다. 👉 의존관계 주입의 장점 클라이언트 코드의 수정 없이 구현체를 갈아끼울 수 있기 때문에, 코드의 유지보수성이 증가한다. 👉 Spring에서 의존관계를 주입하는 3가지 방법 1. 생성자 주입: 생성자를 이용해서 의존관계를 주입하는 방법으로, 구현체가 반드시 필요하..
인프런 김영한님의 스프링 MVC 1편 강의 내용을 바탕으로 작성한 글입니다. 1. 서블릿 등록하기 package hello.servlet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; @ServletComponentScan // 서블릿 자동 등록 @SpringBootApplication public class ServletApplication { public static void main(String[] args) { S..
인프런 김영한님의 스프링 MVC 1편 강의 내용을 바탕으로 작성한 글입니다. 이전 글에서 클라이언트의 요청을 처리해주는 웹 애플리케이션 서버에 대해 아주 간단하게 알아보았다. 그렇다면 웹 애플리케이션 서버는 무슨 일을 할까? 클라이언트가 아래와 같은 요청을 보내왔다고 생각해보자. POST /save HTTP/1.1 Host: localhost:8080 Content-Type: application/x-www-form-urlencoded username=kim&age=20 대충 이름이 kim이고 나이가 20세인 회원의 정보를 등록해달라는 요청이다. WAS는 이 요청을 처리하기 위해 아래의 업무들을 전부 처리해주어야 한다. 클라이언트와의 소켓 연결 HTTP 요청 메세지 파싱해서 읽기 매핑 정보 확인 Cont..
인프런 김영한님의 스프링 핵심 원리 - 기본편 강의 내용을 바탕으로 작성한 글입니다. 지금까지 다양한 빈 스코프에 대해 알아보았다. 개발자는 어플리케이션의 특성에 따라 적절한 빈 스코프를 선택해야 하지만, 프로토타입 빈과 싱글톤 빈을 함께 사용할 때는 주의해야 할 점이 있다. 먼저 아래와 같이 동작하는 프로토타입 빈이 있다고 가정하자. 1. 클라이언트 A가 스프링 컨테이너에 프로토타입 빈을 요청한다. 2. 스프링 컨테이너가 프로토타입 빈 인스턴스(PrototypeBean@x01)를 생성해서 반환한다. PrototypeBean@x01.count: 0 3. 클라이언트 A가 addCount()를 호출하여 count 필드를 1 증가시킨다. PrototypeBean@x01.count: 1 위와 같은 상황에서, 클..
인프런 김영한님의 스프링 핵심 원리 - 기본편 강의 내용을 바탕으로 작성한 글입니다. 1. 빈 스코프란? 빈 스코프란, 빈이 생성되어 소멸되기까지의 범위를 의미한다. 지금까지는 스프링 컨테이너가 뜰 때 스프링 빈이 생성되고, 스프링 컨테이너가 종료될 때 함께 소멸한다고 배웠다. 하지만 어플리케이션을 개발하다 보면 다양한 스코프를 가진 빈이 필요해진다. 예를 들어, 클라이언트 요청에 대해 로그를 찍으려면 요청이 들어올 때 빈을 생성하고, 요청이 종료되면 빈을 소멸시켜야 한다. 이처럼 빈의 생명주기를 싱글톤과 다르게 제어할 필요가 있기 때문에, 스프링 컨테이너에서는 다양한 빈 스코프를 지원한다. 빈 스코프에는 다음과 같은 종류가 있다. 싱글톤: 스프링 컨테이너가 시작할 때 생성되어 종료될 때 소멸되는, 스프..
인프런 김영한님의 스프링 핵심 원리 - 기본편 강의 내용을 바탕으로 작성한 글입니다. 1. 초기화 작업의 필요성 데이터베이스와의 커넥션은 연결을 설정하는 데 오래 걸리기 때문에, 애플리케이션 서버와 DB 사이의 커넥션을 미리 생성해둔다. 그리고 DB 연결 요청이 오면 연결해두었던 커넥션을 빌려주는 방식으로 동작한다. 이 커넥션은 보통 애플리케이션이 시작되는 시점에 생성되고, 애플리케이션이 종료될 때 함께 종료된다. 때문에 초기화와 종료 작업이 필요하다. 💡초기화 작업을 생성자에서 진행하면 안되는 이유? 생성자는 이름 그대로 객체 생성을 위한 메서드이다. 생성자는 초기화 작업보단 객체 생성에 집중하는 것이 SRP에 더 알맞고, 유지보수적인 측면에서 좋다. 초기화 작업에는 외부 커넥션 연결 등 무겁고 예외를..
gorapaduckoo
'spring' 태그의 글 목록