티스토리 뷰

[예제로 배우는 스프링 입문] 3. 프로젝트 살펴보기를 보고 학습한 내용을 기록.

 

프로젝트 살펴보기

✔️ 프로젝트 살펴보기

 

spring-projects/spring-petclinic

A sample Spring-based application. Contribute to spring-projects/spring-petclinic development by creating an account on GitHub.

github.com

 

  • 스프링부트 프로젝트 기반으로 만들어져 있다. (@SpringBootApplication -> 간단하게 메인 애플리케이션 실행 가능, 내장톰캣 동작, 자동 설정 동작 등.. 많은 것을 직접 설정하지 않아도 손쉽게 실행이 가능해진다.)

  • 도커 관련 설정이 존재한다. (docker-compose.yml)

 

✔️ 프로젝트 분석 - 로그

스프링이 처음인 경우 어디가 어떻게 동작하는지 확인하고 싶다면, 로그를 확인하는 것이 좋다. 기본 로깅 옵션은 INFO 레벨로 설정되어 있으나, 더 자세한 로그 메시지를 확인하기 위하여 로그 설정 파일에서 로깅 옵션을 DEBUG 레벨로 변경해줄 수 있다. 스프링 부트 프로젝트인 경우, 로그 설정 파일은 src/main/resources/application.properties 을 확인하면 된다.

# Logging
logging.level.org.springframework=INFO # 기본 설정

INFO -> DEBUG로 변경한다!

# Logging
logging.level.org.springframework.web=DEBUG # DEBUG 레벨로 변경

 

이제 애플리케이션 실행시 DEBUG 로그가 찍힌다. GET, POST 등의 로그를 읽을 수 있다.

애플리케이션에서 FIND OWNERS를 클릭시(요청: GET "/owners/find"),

로그를 통해 DispatcherServlet 클래스 -> RequestMappingHandlerMapping -> OwnerControllerinitFindForm 으로 맵핑되는 것을 확인 가능하다. 

// OwnerController.java
...

@GetMapping("/owners/find")
public String initFindForm(Map<String, Object> model) {
	model.put("owner", new Owner()); // model에 Owner 객체를 넣어준다.
	return "owners/findOwners"; // owners/findOwners 뷰를 리턴한다.
}
...

마지막에 리턴한 뷰를 화면에 보여준다.

owners/findOwners는 resources/templates/ 이하에 위치한다.

그 외 POST와 같은 여러 요청들도 이와 같은 방법으로 로그를 따라가며 살펴볼 수 있다.

 

✔️ 프로젝트 분석 - 디버깅

원하는 위치에 디버거를 찍어서 (빨간점 표시) 디버그 모드로 실행할 수 있다. 

Variables 탭에서 현재 상태에서 참조할 수 있는 객체에 대한 정보를 확인할 수 있다.

 

✔️ 프로젝트 분석 과제 - 해보기

1. LastName이 아니라 FirstName으로 검색할 수 있도록 변경

2. 검색 키워드가 정확히 일치하지 않고 포함 관계여도 검색되도록 변경

3. Owner에 age 설정 추가

728x90
댓글