Skip to content

cyzest/find-books

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

find-books

Build Status Code Coverage Quality Gate

OpenAPI를 활용한 책 검색 서비스

  1. Java 8 버전을 사용
  2. Spring Boot 2.0 사용 (Spring Framework 5.0 기반)
  3. Spring Data JPA 사용 (Hibernate 5.2 구현체 사용)
  4. Spring Boot 에서 제공하는 임베디드 Undertow 사용
  5. H2 DB 사용

Back-end 추가 라이브러리

  1. OkHttp3 - Rest API 커넥션 용도
  2. Lombok - Boilerplate 코드 자동생성 용도
  3. ModelMapper - 오브젝트 변환 용도
  4. thymeleaf3 - 화면 뷰 템플릿 용도
  5. Spring Cloud Vault - 시크릿 설정 정보 분리 용도

Front-end 추가 라이브러리

  1. Bootstrap3 - 화면 구성을 위해 이용

Vault로 관리하는 설정정보

findbooks.searcher.kakaoApiKey          // Kakao API Key
findbooks.searcher.naverClientId        // Naver API ID
findbooks.searcher.naverClientSecret    // Naver API Secret
spring.datasource.username              // DB User
spring.datasource.password              // DB User Password
  • Vault 정보를 자신의 환경에 맞게 변경해야 합니다. (bootstrap.properties 에서 수정가능)
  • 테스트 및 실행 시 Java System Property로 Vault Token을 추가해야 합니다.

설치

$ git clone https://github.com/cyzest-sub/find-books.git
$ cd find-books

테스트

$ mvn clean test -DVAULT_TOKEN={VAULT_TOKEN}

실행 (Local)

$ mvn clean package -Dmaven.test.skip=true
$ java -DVAULT_TOKEN={VAULT_TOKEN} -jar ./target/find-books-1.0.0.jar
  • http://localhost:8080 으로 접속하여 확인
  • 포트는 8080 을 사용합니다. (application.properties 에서 수정가능)

실행 (Dev)

$ mvn clean package -Pdev -Dmaven.test.skip=true
$ java -DVAULT_TOKEN={VAULT_TOKEN} -Dsentry.dsn={SENTRY_DSN} -jar ./target/find-books-1.0.0.jar
  • Dev서버는 에러트래킹을 위해 Sentry를 연동
  • Java System Property로 Sentry DSN을 추가해야 합니다.

Docker 빌드 및 실행 (Dev)

$ mvn clean package -Pdev -Dmaven.test.skip=true
$ docker build -t find-books:1.0.0 ./
$ docker run -d --name find-books -p 8080:8080 -e VAULT_TOKEN="{VAULT_TOKEN}" -e SENTRY_DSN="{SENTRY_DSN}" --link valut find-books:1.0.0

About

OpenAPI Based Book Search Demo Application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published