스프링에서 빈을 등록하는 방법에 대해 설명해주세요.
[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 객체에서 B
no-delay.tistory.com
Spring Filter와 Interceptor에 대해 설명하고, 사용 예시를 설명해주세요.
[CS] Spring Filter
Spring Filter란?javax.servlet.Filter는 Java Servlet API의 일부로, 요청과 응답을 거른뒤 정제하는 역할특징DispatcherServlet에 요청이 전달되기 전 / 후에 url 패턴에 맞는 모든 요청에 대해 부가 작업을 처리할
no-delay.tistory.com
[CS] Spring Interceptor
Interceptor란?org.springframework.web.servlet의 HandlerInterceptor 인터페이스로, 스프링 MVC에서 웹 애플리케이션 내에 특정한 uri 호출을 가로채는 역할을 함특징Dispatcher Servlet이 Controller를 호출하기 전 / 후에
no-delay.tistory.com
PSA에 대해 설명해주세요.
[CS] Spring PSA
PSA(Portable Service Abstraction)란?환경의 변화와 관계없이 일관된 방식의 기술로의 접근 환경을 제공하는 추상화 구조(하나의 추상화로 여러 서비스를 묶어둔 것)특정 클래스가 추상화된 상위 클래
no-delay.tistory.com
빈의 스코프에 대해 설명해주세요.
[CS] Spring 빈 스코프(Bean Scope)
빈 스코프란?스코프는 빈이 존재할 수 있는 범위를 뜻함종류ScopeDescriptionsingleton(기본값) 스프링 IoC 컨테이너 당 하나의 인스턴스만 사용앱이 구동되는 동안 하나만 사용prototype매번 새로운 빈을
no-delay.tistory.com
Spring Framework를 왜 사용해야 할까요? 이유에 대해 설명해주세요.
제가 생각하는 가장 큰 이유는 확장성때문입니다.
Spring Framework는 모듈화, 의존성 주입을 통해 새로운 요구사항이나 기능을 빠르게 추가할 수 있고, 다양한 도구 및 라이브러리(스프링 부트, JPA등등)를 지원이 되기 때문에 개발 범위가 넓기 때문입니다.
한가지를 더 고른다면 개발자 친화적이기 때문입니다.
IoC, DI, AOP(관점지향 프로그래밍)을 통해 코드 재사용성, 유지보수성이 높기 때문입니다.
[CS] Spring Framework
Spring Framework란?자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크경량급과거 EJB가 느리고 무거운 자바 서버(WAS)에서만 동작한 반면, 스프링은 WAS로부터
no-delay.tistory.com
Spring MVC의 동작방식에 대해 설명해주세요.
[CS] Spring MVC
Spring MVC란?웹 계층에 서블릿(Servlet) API를 기반으로 클라이언트의 요청을 처리하는 모듈이 있는데 이를 스프링 웹 MVC(spring-web-mvc) 또는 스프링 MVC라고 한다.Spring MVC는 클라이언트의
no-delay.tistory.com
DispatcherServlet에 대해 설명해주세요.
[CS] Spring Dispatcher-Servlet
Dispatcher-Servlet란?HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러과거와 비교과거에는 모든 서블릿을 URL 매핑을 위해 web.xml에 모두 등록해
no-delay.tistory.com
DTO를 사용한 이유를 말해주세요.
[CS] Spring DTO
DTO(Data Transfer Object)란?프로세스 간에 데이터를 전달하는 객체데이터를 전송하기 위해 사용하는 객체라서 그 안에 비즈니스 로직 같은 복잡한 코드는 없고 순수하게 전달하고 싶은 데이터만 담
no-delay.tistory.com
HTTP API와 REST API에 대해서 설명해주세요.
[CS] HTTP API vs REST API
HTTP API란?HTTP는 웹 환경에서 정보를 주고받기 위한 프로토콜로, HTTP API는 통신 규약으로 소통하는 APIREST API란?REST는 네트워크 아키텍처 스타일(네트워크 자원을 정의하고 처리하는 방법)로, RES
no-delay.tistory.com
annotation 이란 무엇인지, 어떤 것들이 있는지 설명해주세요.
사전적 의미로는 주석이라는 뜻이지만, 자바에서 Annotaion(@)은 코드 사이에 특별한 의미, 기능을 수행하도록 하는 기술이다.
프로그램 코드의 일부가 아닌 프로그램에 관한 데이터를 제공하고, 코드에 정보를 추가하는 정형화된 방법이다.
어노테이션을 사용하면 코드가 깔끔해지고 재사용이 가능하다.
- 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 제공
- 소프트웨어 개발 툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보를 제공
- 실행 시(런타임 시) 특정 기능을 실행하도록 정보를 제공
종류 참고
[Spring] 어노테이션(Annotation)
사전적 의미로는 주석이라는 뜻이지만, 자바에서 Annotaion(@)은 코드 사이에 특별한 의미, 기능을 수행하도록 하는 기술이다.프로그램 코드의 일부가 아닌 프로그램에 관한 데이터를 제공하고, 코
velog.io
singleton pattern 에 대해 설명해주세요.
객체 지향 프로그래밍에서 특정 클래스가 단 하나만의 인스턴스를 생성하여 사용하기 위한 패턴
생성자를 여러 번 호출하더라도 인스턴스가 하나만 존재하도록 보장하여 애플리케이션에서 동일한 객체 인스턴스에 접근할 수 있도록 한다.
싱글톤 패턴을 사용하는 이유
커넥션 풀, 스레드 풀, 디바이스 설정 객체 등과 같은 경우 인스턴스를 여러 개 만들게 되면 불필요한 자원을 사용하게 되고, 프로그램이 예상치 못한 결과를 낳을 수 있다. 따라서 객체를 필요할 때마다 생성하는 것이 아닌 단 한 번만 생성하여 전역에서 이를 공유하고 사용할 수 있게 하기 위해 싱글톤 패턴을 사용한다.
싱글톤 패턴의 장단점
장점
유일한 인스턴스 : 싱글톤 패턴이 적용된 클래스의 인스턴스는 애플리케이션 전역에서 단 하나만 존재하도록 보장한다. 이는 객체의 일관된 상태를 유지하고 전역에서 접근 가능하도록 한다.
메모리 절약 : 인스턴스가 단 하나뿐이므로 메모리를 절약할 수 있다. 생성자를 여러 번 호출하더라도 새로운 인스턴스를 생성하지 않아 메모리 점유 및 해제에 대한 오버헤드를 줄인다.
지연 초기화 : 인스턴스가 실제로 사용되는 시점에 생성하여 초기 비용을 줄일 수 있다.
단점
결합도 증가 : 싱글톤 패턴은 전역에서 접근을 허용하기 때문에 해당 인스턴스에 의존하는 경우 결합도가 증가할 수 있다.
테스트 복잡성 : 싱글톤 패턴은 단 하나의 인스턴스만을 생성하고 자원을 공유하기 때문에 싱글톤 클래스를 의존하는 클래스는 결합도 증가로 인해 테스트가 어려울 수 있다.
상태 관리의 어려움 : 만약, 싱글톤 클래스가 상태를 가지고 있는 경우 전역에서 사용되어 변경될 수 있다. 이로 인해 예상치 못한 동작이 발생할 수 있다.
전역에서 접근 가능 : 애플리케이션 내 어디서든 접근이 가능한 경우, 무분별한 사용을 막기 힘들다. 이로 인해 변경에 대한 복잡성이 증가할 수 있다.
싱글톤 조건
- new 키워드를 사용할 수 없도록 생성자에 private 접근 제어자를 지정해야 한다.
- 유일한 단일 객체를 반환할 수 있는 정적 메서드가 필요하다.
- 유일한 단일 객체를 참조할 정적 참조 변수가 필요하다.
출처: https://ittrue.tistory.com/563 [IT is True:티스토리]
https://docs.spring.io/spring-framework/reference/index.html
'CS' 카테고리의 다른 글
[CS] Spring DI란? (0) | 2024.04.30 |
---|---|
[CS] Spring에서 Bean 등록하는 방법 (0) | 2024.04.29 |
[CS 스터디] Java(자바) (0) | 2024.04.17 |
[CS 스터디] 알고리즘(Algorithm) (0) | 2024.04.08 |
[CS 스터디] 자료구조(Data Struture) (0) | 2024.03.26 |