[인프런 워밍업 클럽 3기 / 백엔드 프로젝트] 1주차 발자국
1.강의 요약
1.개요
이번주는 컨트롤러, 서비스, 리포지토리, DTO설계와 개발 테스트 그리고 Thymeleaf를 중점으로 공부했던 시간을 가졌다.
2.이번에 배운 내용들
@Controller
용도: 컴포넌트 스캔 대상이 되어 빈으로 등록되며, 주로 서버 사이드 렌더링(SSR) 방식에서 사용
특징: 리턴된 문자열과 동일한 이름의 HTML 템플릿 파일을 찾아 클라이언트에 응답한다
@RestController
용도: 컴포넌트 스캔 대상이 되어 빈으로 등록되며, 클라이언트 사이드 렌더링(CSR) 또는 API 개발 시 사용
특징: 리턴 값이 HTTP 응답 본문에 직접 포함되며, String 이외의 객체는 JSON 등으로 자동 변환
@RequestMapping
용도: 클래스 또는 메소드에 붙여 HTTP 요청 경로를 지정
특징: 클래스에 적용 시 해당 클래스의 모든 메소드에 기본 경로가 붙으며, 메소드 단위로 세부 경로와 HTTP 메서드를 설정할 수 있음
@GetMapping
용도: HTTP GET 요청에 대한 처리를 명시
특징: @RequestMapping(method = RequestMethod.GET)과 동일하게 동작하며, 특정 경로에 GET 요청이 왔을 때 해당 메서드가 실행
@Service
용도: 비즈니스 로직을 담당하는 서비스 레이어의 클래스에 사용
특징: 빈으로 등록되어 컨트롤러와 리포지토리 사이의 중재자 역할을 수행
@Repository
용도: 데이터 접근 계층의 클래스를 지정하는 어노테이션
특징: 데이터베이스 관련 작업을 수행하며, 컴포넌트 스캔을 통해 빈으로 등록
@Component
용도: 특별한 역할 분류 없이 범용적으로 사용되는 빈을 등록할 때 사용
@Transactional
용도: 트랜잭션을 자동으로 시작하고 종료하며, 예외 발생 시 롤백할 대상을 지정할 수 있음
특징:
readOnly,rollbackFor,isolation등의 속성을 통해 트랜잭션의 세부 동작을 설정할 수 있음
@ExtendWith
용도: JUnit 5에서 테스트 확장을 지원하기 위한 어노테이션
@InjectMocks / @Mock
용도: Mockito를 사용한 단위 테스트에서 대상 클래스에 필요한 의존성을 주입하거나 모의 객체를 생성할 때 사용
@SpringBootTest
용도: Spring Boot 애플리케이션의 전체 컨텍스트를 로드하여 통합 테스트를 실행할 때 사용
@AutoConfigureMockMVC
용도: Spring MVC를 모의 테스트할 수 있도록 MockMVC 객체를 자동 구성
2.미션
이번주는 REST API 설계를 했다.
https://github.com/Seunggyo/GameReviewHub/commit/95871575bcd3f9680b6089401de86df43e4abe9b
처음으로 원칙을 두고 API를 설계하다보니 어려움을 많이 느꼈지만 노력해보는 시간을 가져보았다.
댓글을 작성해보세요.