프로젝트/웹

[포트폴리오 스프링 프로젝트] 0. 시작

저세상 개발자 2022. 5. 16. 22:19

1. 배경

업무에서 스프링을 쓰고는 있지만 신규 프로젝트 경험이 없어 스프링에 대한 전반적인 이해도가 떨어진다고 느꼈다.

그 동안 눈으로 보기만 하고 어설프게 이해하고 넘어갔던 것들을 이번 기회에 직접 환경 세팅, 구현해보면서 내 것으로 만들고자 한다.

 

2. 목표

전에 국비 교육에서 플라스크 + 리액트로 진행했던 프로젝트를 재활용하여 플라스크로 구현된 백엔드를 스프링으로 리팩토링한다.

https://github.com/unfunhy/MakeYourPortfolio

 

GitHub - unfunhy/MakeYourPortfolio

Contribute to unfunhy/MakeYourPortfolio development by creating an account on GitHub.

github.com

 

이유

1. 프론트를 재사용하여 백엔드에만 집중할 수 있다.

2. 구현 요구사항이 명확하여 기술적인 부분에만 집중할 수 있다.

3. 구현이 간단하여 비교적 빠른 시일 내에 진행할 수 있다.

4. 저 허접한 코드가 맘에 안들었다.

 

3. 계획

1차 계획

  • 기본적인 Spring Rest Api 서버 구현
  • 로컬 H2 DB 사용, Spring Data JPA 사용
  • application.yml 에 환경변수 저장

 

2차 계획

  • DB 변경: H2 -> MySQL / dev용으로 H2, 배포용으로 MySQL 사용
  • Swagger api docs
  • AWS에 배포 (k8s)

 

3차 계획 (고려해보기)

  • 환경변수, secret 값에 vault 적용
  • sentry로 로그 적재
  • Redis cache, EHCache 적용
  • devops: CI, CD 환경 구성 (jenkins)
  • ELK 적용?

 

3차는 시간이 너무 오래걸릴 수도 있을 것 같아 일단은 2차까지 진행하는게 목표다. 퇴근하고 부지런히 해서 한 달안에 끝내고 싶다. 과연?

새 레포

https://github.com/unfunhy/spring-portfolio

 

GitHub - unfunhy/spring-portfolio

Contribute to unfunhy/spring-portfolio development by creating an account on GitHub.

github.com

 

화이링~

 

---

 

22.05.28 수정

- 멀티 모듈 프로젝트로 분리 (common / user-api, contents-api)

- vault 적용 2차 -> 3차로 이동

- Swagger 1차 -> 2차 이동