- 형상 관리: Github
- 이슈 관리: Github Issue
- 진행 관리: Github Project
- Java 11
- Spring Boot
- Spring MVC: 데이터를 처리해 정제된 데이터를 넣는 Model, 데이터를 활용해 사용자에게 보여지는 역할인 View, HTTP Request를 처리하는 부분인 Controller 세가지 구성요소를 사용해 사용자의 다양한 HTTP Request를 처리하고 단순한 텍스트 형식의 응답부터 REST 형식의 응답 제공. 이러한 인터페이스를 사용해 규격화를 통해 유연하고 확정성 있는 어플리케이션을 제공하고자 함
- JPA: 반복적인 SQL문 사용을 배제하고, 구현된 클래스와 DB와의 매핑을 해주기 위해 사용하기로 함. JPA는 인터페이스이기 때문에 이를 구현한 Hibernate를 함께 사용 예정
- JPA에서 자체 DB 방언을 알아서 변환해주기 때문에 DB가 바뀌어도 SQL문을 따로 작성하지 않아도 되는 장점이 있음. ex) MySQL에서 PostgreSQL을 변환해도 ORM사용을 통해 쿼리 수정할 필요 없음
- SQL문이 아닌 Method를 통해 DB를 조작할 수 있어, 객체 모델을 이용하여 비즈니스 로직을 구성하는데만 집중할 수 있음. 오직 객체지향적 접근만 고려하면 되기 때문에 생상성 증가를 기대함
- 매핑하는 정보가 Class로 명시 되었기 때문에 ERD 의존도를 낮출 수 있고, 유지보수 및 리팩토링에 유리하다고 생각
- Ubuntu 18.04
- Mysql
- Github Action: 빌드, 배포 자동화를 위해 사용
출처: https://choseongho93.tistory.com/295- Docker
- Kuberentes: 컨테이너 오케스트레이션 및 Autoscaling
- Prometheus: 백엔드 서버의 트래픽을 모니터링
- xxxCloud (필요하다면)
- slack, Notion
- Intellij
- Git, Github Project