Spring2

2024. 9. 28. 14:40면접준비

서블릿이란?

- WAS안에서 동적인 처리를 하는데 사용하는 서버 프로그램

 

 

싱글톤 패턴이란?

- 컨트롤러는 컴포넌트 스캔이 되면서 스프링 빈 컨테이너에 올라갑니다. 또한 빈 객체는 싱글톤 패턴으로 구현되어있기 때문에 여러 쓰레드의 요청이 들어와도 하나의 컨트롤러 객체를 공유하면서 처리합니다. 즉, 여러 쓰레드가 메서드에 대해 공유 자원으로 접근해 사용합니다.

-메모리 측면에서 최초 한 번의 new 연산자를 통해 고정된 메모리 영역을 사용하기 때문에 해당 객체에 접근할 때 메모리 낭비를 방지할 수 있고, 이미 생성된 인스턴스를 활용하니 속도 측면에도 이점이 있습니다.

 

싱글톤 패턴으로 구현되어 있다는 점은 ,Thread-Safe 하지 않다는 의미이므로, 상태를 공유하거나 저장하는 코드가 없도록 Stateless하게 정의해야 합니다.

 

AOP란?

-관점 지향 프로그래밍의 약어로, 공통 관심사항과 핵심 관심사항을 분리하는 것을 의미합니다. 각 소스코드에서 여러 번 반복해서 사용하는 코드를 흩어진 관심사라고 부르고, 이것을 Aspect로 모듈화해 핵심 로직에서 분리해 재사용하는 것이라고 볼 수 있습니다. 예를 들어, 로그, 성능테스트, 권한, 트랜잭션 등을 모든 메소드에 적용하고 싶을 때 일일히 추가하는 것이 아니라 AOP를 활용해 적용할 수 있다는 것입니다.

 

DAO,DTO,BO,VO란?

-DAO(Data Access Object)

DB데이터를 조회하거나 조작하는 기능을 전담하는 객체

-DTO(Data Transfer Object)

계층간의 데이터 교환을 위한 객체

-VO(Value Object)

DTO와 동일한 개념, Read Only로 수정불가, getter setter 이외의 추가 로직 포함가능

-BO(Business Object)

비즈니스 로직을 포함하는 오브젝트로, 여러 DAO를 사용해 데이터를 처리

 

커넥션 풀이란?

- 어플리케이션이 DB를 사용하기 위해서는 Connection이 필요한데, 이 생성 및 소멸 비용이 크기 때문에, 커넥션 풀을 미리 생성하고 애플리케이션이 시작하는 시점에 커넥션을 미리 다 생성하고 이것을 재활용하며 사용하게 됩니다. 

Springboot 이후 부터는 hikariCP를 기본으로 사용합니다.

 

트랜잭션을 추상화해서 사용하는 이유

-다양한 데이터 접근 기술이 등장하면서, 코드레벨에서는 다르지만 논리적으로는 같은 기능을 수행하기 때문에 트랜잭션을 추상화 하여 사용한다. 다양한 접근 기술로는 JDBC,JPA,하이버네이트 등이 있습니다.

 

 

 

'면접준비' 카테고리의 다른 글

JAVA  (0) 2024.09.29
Spring  (0) 2024.09.19