[Spring] Spring Boot 를 사용하여 백엔드 API를 개발?

김현수·2024년 4월 9일
0

spring

목록 보기
2/9
post-thumbnail

🖍️ Spring Boot 를 사용하여 백엔드 API를 개발하기


  • 이상적인 필요 학습

    • Java
    • MVC
    • JPA
    • Spring Data JPA
    • AOP
    • 특정 Spring 모듈

    • RESTful 서비스 디자인, 보안, 애플리케이션 속성 관리 및
      효과적인 테스트 전략에 대한 모범 사례를 이해하는 것도 포함

    • Spring REST Docs는 테스트를 사용하여 문서에 포함될 수 있는
      코드 조각을 생성함으로써 API를 문서화하는 훌륭한 도구

  • 설계

    • Spring Boot 를 통해 개발
    • RestFul API 개발
    • Spring Data JPA 통합 (DB 통합)
    • AOP 적용 (크로스커팅 문제)
    • Spring REST Docs 사용 (API 문서화)

  • 순서

    • Spring Boot 프로젝트 설정

      • 새 Spring Boot 프로젝트 생성

        • Spring Initializr (https://start.spring.io/)
        • 프로젝트 메타데이터를 선택
        • 종속성을 추가
          • Spring Web
          • Spring Data JPA
          • H2 데이터베이스(개발용)
          • Lombok(상용구 코드 감소용)
          • Spring REST Docs
      • 프로젝트를 즐겨 사용하는 IDE 가져오기

    • 애플리케이션 속성 구성

      • application.properties
        spring.datasource.url=jdbc:h2:tcp://localhost/~/test
        spring.datasource.driver-class-name=org.h2.Driver
        spring.datasource.username=sa
        spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

    • 도메인 모델 구현

      • @Entity, @Id 및 @GeneratedValue 주석을 사용
      • model 패키지에서 JPA 엔터티를 정의

    • 데이터 액세스 계층 생성

      • repository 패키지에서 엔터티에 대한 JpaRepository 를 확장하는 인터페이스

    • 서비스 계층에서 비즈니스 로직 구현

      • 서비스 패키지에서 서비스 인터페이스를 생성하고 구현
      • 서비스를 사용하여 비즈니스 로직을 처리하고 저장소와 상호 작용

    • RESTful 컨트롤러 개발

      • controller 패키지에 컨트롤러를 생성
      • @RestController로 주석을 달고 매핑을 사용하여 HTTP 요청을 처리

    • 관점 지향 프로그래밍(AOP)

      • aspect 패키지에 측면을 생성
      • 로깅과 같은 교차 문제에 AOP를 활용

    • Spring REST Docs로 API 문서화하기

      • build.gradle 또는 pom.xml에서 Spring REST Docs에 대한 종속성을 추가

         testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc:2.0.5.RELEASE'

      • Spring REST Docs를 사용하도록 테스트를 구성

        • 테스트 클래스에서 @AutoConfigureRestDocs 및 @ExtendWith({RestDocumentationExtension.class, SpringExtension.class})를 구성
      • MockMvc를 사용하여 API 호출을 수행하는 테스트 케이스 작성. 스니펫을 생성하려면 document()를 사용

         @Test
         public void exampleTest() throws Exception {
           this.mockMvc.perform(get("/api/example"))
               .andExpect(status().isOk())
               .andDo(document("example"));
         }
      • 문서 생성: 테스트를 실행하여 target/generated-snippets에서 조각을 생성

      • 문서에 조각 포함: Asciidoctor 또는 다른 도구를 사용하여 생성된 조각을 API 문서에 포함


    • 애플리케이션 실행 및 테스트

      • 애플리케이션을 시작하고 모든 것이 예상대로 작동하는지 확인
      • Postman 또는 Swagger UI와 같은 도구를 사용하여 API 엔드포인트를 수동으로 테스트

    • 검토 및 개선

      • 디자인과 구현을 반복하여 필요에 따라 더 많은 기능을 개선하고 추가
      • 인증 및 권한 부여를 위해 Spring Security와 같은 고급 기능을 추가하는 것을 고려

  • Spring Boot로 RESTful API를 개발
  • 데이터베이스 상호작용을 위해 Spring Data JPA를 활용
  • 로깅이나 트랜잭션 관리와 같은 문제를 위해 AOP를 적용
  • Spring REST Docs로 API를 문서화하기 위한 기초를 제공
  • API 구축은 지속적인 학습과 개선이 수반되는 반복적인 프로세스라는 점
profile
일단 한다

0개의 댓글