Server/Spring

Spring Framework 특징 및 기본 개념

달별선장 2023. 8. 23. 08:20
728x90
Spring 설정 파일
Server.xml
경로 : tomcat 이하
Context 태그

path="/{프로젝트명}"
-> localhost:8080 이하에 삽입할 루트 경로를 의미
-> path="/" 로 변경시, localhost:8080/{파일경로} 로 해당 파일에 접근이 가능하다.
Resource 태그

DB Connection 관련 부분
web.xml
경로 : WEB_INF 이하


Servlet 태그

Servlet-mapping 태그 이하 servlet-name 에 선언되어 있는 dispatcher 이름을 따라간다.
Servlet-mapping 태그

(1) <servlet-name>dispatcher</servlet-name>
    -> dispatcher 의 이름을 선언
(2) <url-pattern>*.do</url-pattern>
    -> url 패턴이 무엇으로 끝나는지 선언
    -> .do 의 패턴의 url이 읽히는 원리
dispatcher-servlet.xml
경로 : WEB-INF > config 이하


servlet-class 태그

(1) Spring의 DispatcherServlet 이라는 class를 사용하겠다고 설정
(2) param-value 태그에 ContextConfiguration 을 선언
    -> ContextConfiguration 을 param-value 의 파일로 지정
base-package

Ex) com.att..* : 선언된 패키지 이하의 경로에 있는 파일들을 읽고 사용하겠다는 의미
mvc:resources mapping="/resources/**" location="/resources/"

Spring이 권장하는 화면단 외의 기능 등의 리소스를 모아두는 폴더
-> 따로 빼면 관리가 쉽다.
<bean id="viewResolver"> 태그

(1) prefix : WEB_INF/jsp
    -> 이하 경로의 파일들을 view 로 읽겠다.
(2) suffix : .jsp
    -> 원래 url 읽어서 화면이동할 때 .jsp 가 붙으나, 여기서 설정해줌
    -> .jsp 가 안붙어도 url 이 읽히고 화면 이동이 되는 원리

Cf. @RequestMapping 어노테이션이 붙은 Controller
value = " " 로 url 설정해줄 때 .jsp를 생략
mybatisConfig.xml
경로 : WEB_INF > config 이하
태그 : typeAlias
resultMap

type="java.util.HashMap" -> JSON 으로 확장하면 더 좋음
paramMap

type="java.util.HashMap" -> JSON 으로 확장하면 더 좋음

1. AOP

Aspect Oriendted Programming (관점 지향 프로그래밍) : 흩어진 관심사를 모듈화할 수 있는 프로그래밍 기법

 

2. MVC

Model-View-Controller (디자인패턴) : 사용자 인터페이스, 데이터 및 논리 제어 구현

비즈니스 로직과 화면을 구분하는 데에 초점이 맞춰져 있다.

-> 관심사 분리

 

3. Restful API

3-1. REST : Representational State Transfer (리소스 지향 아키텍쳐 스타일 - 모든 것을 명사로 표현하며 각 세부 리소스에는 id 를 붙임)

URI 와 HTTP 메서드를 이용하여 객체화된 서비스에 접근

REST의 요소.

(1) 리소스

Ex. http://resource/users

(2) 메소드

Ex. HTTP Post (CRUD : GET, POST, PUT, DELETE)

(3) 메시지

Ex. JSON

 

3-2. RESTful API : URI를 규칙에 맞게 잘 설계함

규칙.

(1) 동일한 URI의 패턴에 맞게 GET, POST, DELETE, PATCH 등의 메소드를 사용했는가

(2) 명사를 사용하며, 리스트를 표현할 때는 복수형을 사용했는가

(3) URI path 에 불필요한 파라미터를 안 넣었는가

728x90