- 구름톤 트레이닝 풀스택 개발자 과정
- 개발 기간 : 2024/1/29 ~ 2024/2/26
Crendtiial 로그인과 OAuth 로그인. 두 가지 방식으로 로그인 할 수 있습니다. Jwt을 발급하여 인증이 필요한 REST API를 구성하였고, 토큰이 만료되면 쿠키에 있는 Refresh Token을 통해서 새로 발급받을 수 있습니다.
REST API를 통하여 개인 컨테이너 CRUD를 구현하였고 WebSocket API를 통하여 터미널을 사용할 수 있습니다.
@ElementCollection을 활용하여 커뮤니티-유저 혹은 유저-커뮤니티 리스트를 활성화 할수 있습니다. 커뮤니티 내부에서 새 컨테이너를 생성하거나 기존의 개인 컨테이너를 복사하여 불러올 수 있고 한 커뮤니티에서 복수의 컨테이너를 활용할 수 있습니다.
사용자가 접속하면 WebSocket을 연결한 후 토픽을 구독하여 여러 목적으로 사용합니다. 이를 통하여 1:N 채팅 기능, 실시간 접속중인 유저의 정보 확인, 터미널을 사용할 수 있습니다.
유저, 컨테이너, 디렉토리, 파일 간의 연관관계를 설정하여 파일과 디렉토리의 CRUD를 구현하였고, 컨테이너의 최상위 디렉토리 내 전체 파일트리 구조를 제공합니다. 로컬 파일을 업로드 할 수 있습니다.
Amazon Linux2 Instance를 생성합니다. Gradle build를 활용해 jar파일을 생성하여 서버에서 nohup으로 실행하였습니다.
- Instance Size (1GB memory / 2vCPU processing / 40GB SSD storage / 2TB transfer)
- RDS는 별도 사용하지 않고, 인스턴스 내 MySQL 설치하여 사용하였습니다.
- FileZilla를 사용하여 인스턴스 내 파일 업로드를 진행하였습니다.
Ubuntu Instance를 생성합니다. Amazon Lightsail과 동일하게 진행하였습니다.
- 평생 무료티어가 가능하지만, 서버가 자주 다운되고, 성능이 좋지 않아 배포 후 테스트 중 중단하였습니다.
github 레포지토리의 코드를 D2Hub repository에 이미지를 빌드하여 Kargo를 통해 DKOS Cluster에 D2Hub 이미지를 배포합니다.
- FrontEnd Pod : Frontend App
- BackEnd Pod : Backend API Server
- Database Pod : MySQL
- Nginx Pod : Nginx Proxy Server



