빈 스코프란?스코프는 빈이 존재할 수 있는 범위를 뜻함종류ScopeDescriptionsingleton(기본값) 스프링 IoC 컨테이너 당 하나의 인스턴스만 사용앱이 구동되는 동안 하나만 사용prototype매번 새로운 빈을 정의해서 사용request(Web)HTTP 라이프사이클마다 한 개의 빈을 사용(웹 요청이 들어오고 나갈 때까지)Web-Aware ApplicationContext에서만 사용 가능session(Web)HTTP 세션마다 하나의 빈을 사용(웹 세션이 생성되고 종료될 때까지)Web-Aware ApplicationContext에서만 사용 가능application(Web)ServeltContext 라이프사이클 동안 한 개의 빈만 사용Web-Aware ApplicationContext에서만 사용..
PSA(Portable Service Abstraction)란?환경의 변화와 관계없이 일관된 방식의 기술로의 접근 환경을 제공하는 추상화 구조(하나의 추상화로 여러 서비스를 묶어둔 것)특정 클래스가 추상화된 상위 클래스를 일관되게 바라보며 하위 클래스의 기능을 사용하는 것이 PSA의 기본 개념PSA가 적용된 코드는 개발자의 기존에 작성된 코드를 수정하지 않으면서 확장할 수 있으며, 어느 특정 기술에 특화되어 있지 않음 -> 확장성 높음왜 사용하나요?어떤 서비스를 이용하기 위한 접근 방식을 일관된 방식으로 유지하여애플리케이션에서 사용하는 기술이 변경되더라도 최소한의 변경만으로 변경된 요구 사항을 반영하기 위해 사용 => PSA를 통해서 애플리케이션의 요구 사항 변경에 유연하게 대처 가능 Spring은 상황..
Interceptor란?org.springframework.web.servlet의 HandlerInterceptor 인터페이스로, 스프링 MVC에서 웹 애플리케이션 내에 특정한 uri 호출을 가로채는 역할을 함특징Dispatcher Servlet이 Controller를 호출하기 전 / 후에 인터셉터가 끼어들어 요청과 응답을 참조하거나 가공할 수 있는 기능을 제공Request, Response 조작 불가능스프링 컨텍스트에서 동작처리 과정디스패처 서블릿이 핸들러 매핑을 통해 컨트롤러를 찾도록 요청하는데, 그 결과로 실행 체인(HandlerExecutionChain)을 돌려줌여기서 1개 이상의 인터셉터가 등록되어 있다면 순차적으로 인터셉터들을 거쳐 컨트롤러가 실행되도록 하고,인터셉터가 없다면 바로 컨트롤러를 ..
Spring Filter란?javax.servlet.Filter는 Java Servlet API의 일부로, 요청과 응답을 거른뒤 정제하는 역할특징DispatcherServlet에 요청이 전달되기 전 / 후에 url 패턴에 맞는 모든 요청에 대해 부가 작업을 처리할 수 있는 기능 제공Request, Response 조작 가능 (필터 체이닝에서 request, response를 넘겨줄 수 있어서)FilterChain(필터 체인)을 통해 여러 필터가 연쇄적으로 동작 가능웹 컨테이너(서블릿 컨테이너)에서 동작언제 사용되나요?주로 요청에 대한 인증, 권한 체크 등에 사용됨들어온 요청이 DispatcherServlet에 전달되기 전에 헤더를 검사해 인증 토큰이 있는지 없는지, 올바른지 올바르지 않은지 등을 검사구현..
DI란?의존성 주입(외부에서 두 객체 간의 관계를 결정해주는 디자인 패턴), 객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입하는 방식과정A 객체에서 B, C 객체를 의존할 때, A 객체에서 B, C 객체를 직접 생성하는 것이 아니라 외부(IoC 컨테이너)에서 생성된 객체를 주입인터페이스를 사이에 둬서 클래스 레벨에서는 의존관계가 고정되지 않도록 하고 런타임 시에 관계를 동적으로 주입하여 유연성을 확보하고 결합도를 낮춤객체 자체가 코드 상에서 객체 생성에 관여하지 않아도 돼서 객체 사이의 의존도 낮출 수 있음DI(의존성 주입) 3가지 방법1. 생성자 주입@Controllerpublic class PetController{ private final PetService petService; @A..
Spring Bean이란?Spring에서 Bean은 Spring IoC 컨테이너에 의해 관리되는 Java Object또한, Spring에서는 등록되어 있는 Bean을 싱글톤 객체로 생성하여 관리코드 중에 new 연산자로 객체를 생성한 경우 그 객체는 Spring IoC 컨테이너에 의해 관리되지 않기 때문에 Bean이라고 할 수 없음 Spring IoC 컨테이너란?Spring IoC 컨테이너는 인스턴스의 생명주기를 관리하며, 생성된 인스턴스들에게 추가적인 기능을 제공그 중 의존성 주입도 있음단, 의존성 주입을 받으려면 전제 조건으로 빈이 되어야 함 그래서 Bean 어떻게 등록하는데!Bean 등록하는 방법1. 수동 등록방법설정 클래스에 @Configuration 어노테이션을 붙이고, 메소드에 @Bean 어노..
스프링에서 빈을 등록하는 방법에 대해 설명해주세요. [CS] Spring에서 Bean 등록하는 방법Spring Bean이란?Spring에서 Bean은 Spring IoC 컨테이너에 의해 관리되는 Java Object또한, Spring에서는 등록되어 있는 Bean을 싱글톤 객체로 생성하여 관리코드 중에 new 연산자로 객체를 생성한 경우 그no-delay.tistory.com DI에 대해 설명해주세요. [CS] Spring DI란?DI란?의존성 주입(외부에서 두 객체 간의 관계를 결정해주는 디자인 패턴), 객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입하는 방식과정A 객체에서 B, C 객체를 의존할 때, A 객체에서 Bno-delay.tistory.com Spring Filter와 Intercep..
1. 가비지 컬렉션에 대해 설명해주세요. 가비지컬렉션이란 자바의 메모리 관리 방법 중 하나로 JVM(자바 가상 머신)의 Heap 영역에서 동적으로 할당했던 메모리 중 필요 없게 된 메모리 객체(garbage)를 모아 주기적으로 제거하는 프로세스를 말합니다. 장점: Java 프로세스가 한정된 메모리를 효율적으로 사용할수 있게 도와주며, 개발자가 직접 메모리 관리를 하지 않아도 됨 단점: 제어가 힘들며, 다른 동작이 멈춰(STW) 오버헤드가 발생할 수 있음 동작 방식과 종류 추후 업데이트 예정 2. 객체지향 프로그래밍이 뭔가요? 객체지향 프로그래밍은 데이터와 해당 데이터를 처리하는 메소드를 하나로 묶어서 객체를 만들고, 이러한 객체들이 서로 상호작용하면서 프로그램을 구성하는 것입니다. 특징으로는 캡슐화, 상..