Front-end
Vue3 5.0.8
Node js 16.16.0
NPM 8.11.0
Back-end
Java 11
Spring Boot
JPA
MySQL
Spring security
Data
Python
Django
MySQL
CI/CD
Docker
Jenkins
Infra
Nginx
AWS
IDE
Visual Studio Code
Intellij
Tool
MobaXterm
postman
mattermost
jira
git
notion
figma
기술 스택 선택 이유
- Spring Boot를 사용하는 이유 : 복잡한 설정없이 쉽고 빠르게 스프링 프레임워크를 사용할 수 있다.
자주 사용되는 라이브러리들의 버전 관리 자동화, AutoConfig로 복잡한 설정 자동화, 내장 웹서버 제공, JAR파일 통해 바로 개발을 가능하게 함으로써 복잡한 설정 없이 쉽고 빠르게 스프링 프레임워크를 사용할 수 있어서 사용했다.
- JPA를 사용하는 이유 : SQL 중심적인 개발에서 객체 중심적인 개발을 가능하게 한다.
자바에서 사용하는 ORM 기술 표준으로 사용되는 인터페이스 모음으로 SQL 중심적인 개발에서 객체 중심적인 개발이 가능하게 하면서 개발자는 객체 모델을 이용하여 비즈니스 로직을 구성하는데만 집중할 수 있다. 그래서 코드의 가독성을 높이고 유지보수 및 리팩토링에 유리하다.
- Spring Security를 사용하는 이유 : 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장에서 보안 관련 로직을 작성하지 않아도 된다는 장점이 있기 때문에 사용했다.
Spring 기반 애플리케이션에 인증과 권한 부여를 모두 제공하는 데 중점을 둔 프레임워크로 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장에서 보안 관련 로직을 작성하지 않아도 된다는 장점이 있기 때문에 사용한다.
우리 프로젝트에서는 인증, 인가를 사용하여 사용자 권한에 따라 URI의 접근을 제한하고 비밀번호를 저장할 때 패스워드 암호화할 때 사용한다.
- MySQL 사용 이유 : 오픈소스로 무료로 사용이 가능하고 안정적인 서비스를 제공하고 대용량의 데이터 처리가 가능하고 사용하기 간단하기 때문에 mysql을 선택하였다.