스프링부트7 [스프링부트로 API 만들기] 서버 배포 준비해보기 자! 이제 API를 구현하고, 문서화까지 마쳤으니 배포할 일만 남았다. jar 파일로 빌드 스프링 부트는 내정된 서버가 있어, 배포 과정이 복잡하지 않다. gradle을 사용해 빌드를 하면 자동으로 생성되도록 되어있다. 빌드가 완료되면 build/libs 하위에 projectname-version.jar 파일이 생성될 것이다. > build.gradle 의 일부 group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' > settings.gradle rootProject.name = 'demo' 프로젝트명과 버전정보는 위에 보이는 부분에서 수정이 가능하다. 이제 이 파일을 서버에 옮겨가서 환경에 맞는 jvm을 설치한 후 아래와.. 2021. 1. 5. [스프링부트로 API 만들기] Spring Rest Docs를 사용해서 API Docs 자동으로 생성하기 이제 API를 만들고 검증까지 했다. 이제 테스 트롤 완료한 API들은 사용할 수 있는 상태이다. 하지만 아직 API를 사용할 사람들에게 어떻게 써야 하는지 알려줄 방법이 없다. API Documents. API Documents는 API 사용법을 알려주는 문서이다. 쉽게 말하면 매뉴얼이다. 공개된 API는 이런 문서들이 제공이 되어야 사용자들이 쓸 수 있기 때문에 필수로 작성해야 하는 문서이다. 자동화 도구 하지만, API 스펙을 문서로 관리하는것은 상당히 귀찮다. API에 변경이 생겼을 때마다 찾아서 고쳐야 하며, 모두 실제로 한 번씩 확인해보며 작성을 해야 하기 때문이다. 그렇기 때문에 이런 문서화를 자동화할 수 있는 도구들이 생겼다. 그중 주로 사용되는 도구들은 Swagger와 Spring Res.. 2021. 1. 5. [스프링부트로 API 만들기] Junit 으로 API 테스트 코드 작성하기 지금까지 간단하게 API를 구현해보았다. 이제부터는 기능 구현만큼이나 중요한 테스트 코드를 작성해보자 테스트 코드 테스트 코드는 작성한 소프트웨어가 의도한 대로 작동하는지 확인해보는 코드이다. 기존에는 테스트 계획을 세워 수동으로 하였으나 최근에는 테스트 코드를 작성하여 검증을 하는 추세이다. 테스트 코드가 잘 짜여 있으면, 클라이언트 쪽에 서버의 동작이 완벽하다고 보장을 할 수 있음과 동시에 코드의 수정이 있었을 때 일어나는 좋지 않은 side-effect를 빠르게 확인할 수 있다. 또한 검증하는 과정에서 소프트웨어의 각 부분이 지켜야 하는 규칙을 정의하기 때문에 테스트 코드를 보고 빠르게 프로젝트를 파악할 수도 있다. 고로 테스트코드는 선택이 아니라 필수이다. 자세한 내용은 이후에 따로 포스팅하겠다... 2021. 1. 5. Springboot sample codes 스프링 부트로 여러 프로젝트들을 사용하면서 어느 정도 틀이 잡히는 느낌이 들어 퀵스타트용 템플릿을 만들어볼까?라는 생각에서 시작한 프로젝트이다. 처음에는 간단하게 JWT인증, 에러 보고 시스템, 간단한 커뮤니티 기능을 가진 템플릿 프로젝트를 만들기 시작했는데 최근에는 각 기능별로 샘플 코드를 만들어 놓고 있다. 현재 제작한 샘플 코드들 JWT를 사용한 인증 로직 Slack으로 장에보고를 해주는 시스템 Multimodule을 사용하여 MSA 구성 간단한 블로그 API 프로젝트 결과물 프로젝트 살펴보기 2021. 1. 4. [스프링부트로 API 만들기] 데이터를 관리해주는 모델 이제 제일 어렵고 중요한 모델에 대한 이야기를 해보자. 모델 모델은 백그라운드에서 동작하는 주요 로직을 처리하는 곳이다. 쉽게 말하면 데이터를 담당한다. 보통 데이터베이스와 직접적인 연관을 맺으며 동작한다. ORM Object Relational Mapping의 줄임말이다. RDB의 테이블을 객체로 자동으로 매핑하는걸 의미한다. ORM은 이 둘을 호환시키기 위하여 SQL을 자동으로 생성해서 처리를 해주는 역할을 한다. Java진영에서는 JPA(Java Persistence API)를 많이 사용하며, 스프링에서는 JPA를 더욱 쓰기 편하게 만들어놓은 모듈인 Spring Data JPA를 사용한다. 엔터티(Entity) 데이터베이스 테이블과 1:1로 매핑되는 클래스이다. 외부에서 무분별한 getter와 se.. 2021. 1. 3. [스프링부트로 API 만들기]기능을 수행해주는 서비스 앞에서 컨트롤러를 만드는 방법을 확인해 보았다. 이번시간에는 서비스 클래스에 대한 이야기를 해보겠다. 앞에서 MVC는 이야기를 했지만 갑자기 Service가 튀어나와서 당황했을 것이다. 하지만 설명을 들어보면 왜 사용되는 건지 이해가 될 것이다. 서비스 서비스는 해당 도메인의 순수한 비즈니스 로직을 수행하는 레이어이다. 첫장에서 말한POJO를 만들어서 온전히 비즈니스 로직만들 작성하는 클래스인 것이다. 규모가 작거나 초창기 프로젝트라면 기능을 컨트롤러에서 작성해도 큰 영향이 없다. 하지만 점점 기능을 추가해 가면서 순수한 기능 처리 이외의 코드가 들어서기 시작하면서 가독성이 심하게 좋지 않아질 것이다. 또한 다른 컨트롤러에서 같은 기능이 사용될수도 있기 때문에 서비스를 쓰는것이 좋다. 구현해보기 서비스 .. 2021. 1. 3. 이전 1 2 다음