▶Rest Api가 뭐지?
REST 기반으로 서비스 API를 구현한 것
최근 OpenAPI(누구나 사용할 수 있도록 공개된 API: 구글 맵, 공공 데이터 등), 마이크로 서비스(하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처) 등을 제공하는 업체 대부분은 REST API를 제공한다.
▶API(Application Programming Interface)란
데이터와 기능의 집합을 제공하여 컴퓨터 프로그램간 상호작용을 촉진하며, 서로 정보를 교환가능 하도록 하는 것
출처 : https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
▶Spring에서의 MVC 패턴2 Annotation
Model : 컨트롤러 인터페이스를 상속받은 클래스들이 모델(요청처리)의 역할을 합니다. 이름이 xxxController.java 입니다.
View : 처리결과를 보여줍니다.
Controller : 프론트컨트롤러(Dispatcher Servlet)
[오늘의 계획]
1. 수업내용 복습
2. 파이썬 설치 → Python 3.10.3
3. 7시반 파이널프로젝트 회의
[오늘의 공부]
@RequestMapping 어노테이션을 클래스에 선언하면 Controller 클래스의 모든 요청 처리 메소드의 요청 URL주소 앞부분에 공통적으로 포함되는 URL 주소 설정이 가능하다.
[Mybatis Framework에서 제공되는 로그를 Spring 로그 구현체로 기록되도록 설정하는 방법]
1. [Log4Jdbc Log4j2 JDBC 4] 라이브러리를 pom.xml 에 빌드 등록.
2. DataSource 관련 클래스를 Spring Bean으로 등록한 bean 엘리먼트에서 driverClassName 필드값과 url 필드값을 변경하여 인젝션 처리 - [root-context.xml]
ㅡ dao 관련 framework에서 발생되는 로그를 전달받아 처리하기 위해 driverClassName 필드값과 url 필드값을 라이브러리에서 제공되는 값으로 변경하여 인젝션 처리한다
3. [src/main/resources] 폴더에 log4jdbc.log4j2.properties 파일을 작성한다.
log4jdbc.spylogdelegator.name = net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
4. [src/main/resources] 폴더의 log4j.xml 파일에서 로그 이벤트에 대한 기록 설정.
[테스트 프로그램을 만들어보자]
[Spring Framework를 이용하여 테스트 프로그램을 작성해 모듈(단위 프로그램) 테스트 하는 방법]
1. JUnit 라이브러리와 spring-test 라이브러리를 프로젝트에 빌드처리 - pom.xml
2. [src/test/resources] 폴더의 [log4j.xml] 파일 변경 - 메인프로그램의 log4j.xml 파일과는 다르다 - 기록할내용이 다름.
3. [src/test/java] 폴더에 테스트 클래스 작성 - 테스트 메소드를 이용하여 모듈 테스트 진행
[테스트 클래스 설정]
어노테이션을 설정할 때, scope부분을 주석처리 해놔야 @Runwith 어노테이션이 적용이 된다.
@Runwith(SpringJUnit4ClassRunner.class)
: 테스트 메소드를 호출하여 실행하기 위한 클래스(Clazz)를 설정하는 어노테이션
ㅡ value 속성 : 테스트 메소드를 호출하기 위한 클래스(clazz)를 속성값으로 설정 - 다른 속성이 없는경우 속성값만 설정 가능.
@ContextConfiguration(locations={"file:src/main/webapp/WEB-INF/spring/root-context.xml"})
ㅡ locations 속성 : Bean Configuration File을 배열의 요소로 지정하여 속성값으로 설정
ㅡ Bean Configuration File 경로는 file 접두사를 사용하여 파일 시스템 경로 표현
@AutoWired
ㅡ 어노테이션을 사용하여 DataSource 관련 클래스의 Spring Bean을 필드에 인젝션 처리
@Test
[서비스 클래스 설정]
@Runwith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
: webApplicationContext 객체(spring contatiner)를 이용하여 spring bean을 관리하도록 설정하는 어노테이션
@ContextConfiguration(locations ={"file:src/main/webapp/WEB-INF/spring/root-context.xml",
"file:src/main/webapp/WEB-INF/spring/app-Servlet/servlet-context.xml"})
Logger 필드 선언
@Autowired
@Test
[컨트롤러 클래스 설정]
@Runwith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations ={"file:src/main/webapp/WEB-INF/spring/**/*"})
ㅡ [*] 패턴문자를 사용하여 Bean Configuration File 설정 가능
ㅡ [**] 형식으로 폴더를 표현하면 0개 이상의 하위 폴더를 표현
Logger 필드 선언
@Autowired
WebApplicationContext 필드 선언
ㅡ WebApplicationContext : SpringMVC(웹프로그램)에서 사용하는 Spring Container 객체
MockMvc 필드 선언
ㅡ MockMvc : 요청과 응답을 가상으로 제공하기 위한 클래스
@Before
: 테스트 메소드 호출 전 실행될 명령을 작성한 메소드에 설정하는 어노테이션 - 초기화 작업 전
▶이런식으로 요청url 주소로 이동하게끔 <c: > 사용하면 된다.
'일기장 > 하루 정리' 카테고리의 다른 글
220321 [월] Transaction Manager , REST (0) | 2022.03.21 |
---|---|
220319 [토] 폴더,파일 정리 / 부트스트랩 마무리를 향해.. (2) | 2022.03.19 |
220317 [목] Tiles (Template Page), Mybatis 환경설정 (2) | 2022.03.17 |
220316 [수] OT , @ModelAttribute , @SessionAttribute (0) | 2022.03.16 |
220315 [화] Annotation MVC 설정 (0) | 2022.03.15 |