# Maven
Maven은 Java 프로젝트에서 의존성 관리를 자동화해 주는 도구로,
프로젝트에서 필요한 라이브러리들을 효율적으로 관리해준다. 그리고 이 관리받는 java프로젝트를 maven프로젝트라고 부르기도 함
# WEB_INF
- 배포에 관한 파일들을 관리하는 폴더
- 직접접근은 할 수 없고 접근하기 위해서는 서블릿을 타고 넘어가야한다
(서버를 통해서)
# DispatcherServlet의 동작흐름
> 클라이언트가 서버에 http요청을 보내면 가장 먼저 받아서 처리해주는 객체
- 클라이언트의 요청이 DispatcherServlet로 전달
- DispatcherServlet이 요청을 받으면 핸들러맵핑(HandlerMapping)을 통해 Controller를 찾고(=@Controller들을 훑는다)
- 찾은 컨트롤러를 핸들러 어댑터(HandlerAdapter)를 이용해서 실행한다
- 컨트롤러에서 요청을 처리하고 ModelAndView객체로 반환
- DispatcherServlet이 반환된 ModelAndView에 있는 view이름을 기반으로 ViewResolver에게 이에 해당하는 실제 view 파일위치를 요청함
- ViewResolver는 이름을 받아서 실제파일경로로 변환해서 DispatcherServlet에게 알려준다.
- 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 |