프로젝트 생성
프로젝트 실행
기본 메인 클래스 실행 (main/java/ ... /SemogongApplication
)
실행 속도 높이기 Preferences → Build, Execution, Deployment → Build Tools → Gradle
Build and run using: Gradle IntelliJ IDEA
Run tests using: Gradle IntelliJ IDEA
Static vs MVC+Template Engine(Thymeleaf) vs API
Static
MVC+Template Engine(Thymeleaf)
API : Application Programming Interface
Application Programming Interface : 컴퓨터나 소프트웨어를 서로 연결. 문자나 객체(JSON)를 반환
@ResponseBody 를 사용하면 뷰 리졸버( viewResolver )를 사용하지 않고 HTTP의 BODY에 문자 내용 or 객체(JSON)를 직접 반환
객체를 반환하면 객체가 JSON으로 변환됨
@ResponseBody 사용 원리
참고: 클라이언트의 HTTP Accept 해더와 서버의 컨트롤러 반환 타입 정보 둘을 조합해서 HttpMessageConverter 가 선택된다.
일반적인 백엔드 개발
테스트 케이스
단순 테스트 (자바 자체로의 Test)
import static org.assertj.core.api.Assertions.*;
assertThat(result).isEqualTo(member); // 동일한 멤버면 오류발생 X. 동일하지 않으면 오류 발생 → Test 미통과!
assertThrows(IllegalStateException.class, () -> memberService.join(member2)); // 뒤의 로직을 실행했을 때 해당 오류가 발생하지 않는다면 미통과! 오류가 발생하면 통과! → 헷갈릴 수 있음 주의하길!
스프링 통합 테스트 (테스트를 스프링에서 진행)
DI(Dependency Injection, 의존성 주입) 직접 설정하기
스프링 빈과 의존관계
웹 MVC 개발
스프링 DB 접근 기술
AOP