Spring

Spring 개념정리(DispatcherServlet, 매개변수 바인딩, DB 커넥트풀, 싱글톤 패턴)

J휘 2024. 10. 18. 19:40

 

# Maven

Maven은 Java 프로젝트에서 의존성 관리를 자동화해 주는 도구로,
프로젝트에서 필요한 라이브러리들을 효율적으로 관리해준다. 그리고 이 관리받는 java프로젝트를 maven프로젝트라고 부르기도 함
 

# WEB_INF

- 배포에 관한 파일들을 관리하는 폴더
- 직접접근은 할 수 없고 접근하기 위해서는 서블릿을 타고 넘어가야한다
(서버를 통해서)

# DispatcherServlet의 동작흐름

> 클라이언트가 서버에 http요청을 보내면 가장 먼저 받아서 처리해주는 객체
  1. 클라이언트의 요청이 DispatcherServlet로 전달
  2. DispatcherServlet이 요청을 받으면 핸들러맵핑(HandlerMapping)을 통해 Controller를 찾고(=@Controller들을 훑는다)
  3. 찾은 컨트롤러를 핸들러 어댑터(HandlerAdapter)를 이용해서 실행한다
  4. 컨트롤러에서 요청을 처리하고 ModelAndView객체로 반환
  5. DispatcherServlet이 반환된 ModelAndView에 있는 view이름을 기반으로 ViewResolver에게 이에 해당하는 실제 view 파일위치를 요청함
  6. ViewResolver는 이름을 받아서 실제파일경로로 변환해서 DispatcherServlet에게 알려준다.
  7. DispatcherServlet은 최종적으로 찾은 뷰 파일을 랜더링해서 클라이언트에게 응답

 # ViewResolver는 view 이름을 기반으로 실제 사용할 view 파일을 찾는 역할(jsp파일 선택)


Spring MVC의 매개변수 바인딩

public String insertBoard(Board b, MultipartFile upfile) {
		return "main";
	}

매개변수의 이름과 요청 파라미터의 이름이 같으면 자동으로 매핑이된다.


데이터베이스 커넥트풀

미리 설정된 개수만큼 데이터베이스 연결을 생성하여 풀에 보관해놓고, 필요할 때 커넥션 풀에서 사용 가능한 연결을 가져와서 사용! (닫지 않아도 된다)

 

  • 빠른 연결 속도: 매번 새로운 연결을 생성하지 않고, 기존 연결을 재사용하니까 연결 속도가 빨라진다
  • 자원 관리 최적화: 사용되지 않는 연결을 줄이고 필요한 만큼만 유지하므로 자원을 절약 가능
  • 부하 분산: 동시에 여러 사용자가 접속할 때 부하를 효율적으로 관리할 수 있음

싱글톤 패턴

하나의 객체만 만들고 참조해서 사용하는 디자인패턴

어떤 클래스에서 딱 하나의 객체만 만들어지게 하는 규칙으로

보통 프로그램을 만들 때 같은 클래스를 여러번 사용하는데 싱글톤 패턴을 쓰면 해당 클래스의 객체는 딱 한번만 만들어지고 그 이후에는 이미 만들어진 객체를 계속 사용하는 것 

 

# 하나의 객체만 존재하도록 보장하고, 메모리 사용을 줄이거나 데이터의 일관성을 유지해야 하는 상황에서 주로 사용함

'Spring' 카테고리의 다른 글

@ResponseBody  (0) 2024.10.30
Spring - Cookie  (0) 2024.10.18
Spring - Filter / Interceptor  (0) 2024.10.18
Spring의 의존성 주입(feat. Bean)  (2) 2024.10.16
Spring의 요청/응답 처리 방법  (0) 2024.10.08