[인프런 워밍업 클럽 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를 설계하다보니 어려움을 많이 느꼈지만 노력해보는 시간을 가져보았다.

 

댓글을 작성해보세요.

채널톡 아이콘