Link
기간 | 2024.08 ~ 2024.09 |
구성원 | BE 2명 | FE 3명 |
담당 역할 | PM / BE / DESIGN |
BE 기술 스택 | Node JS, Nginx, AWS EC2, AWS RDS, AWS CodeDeploy, AWS S3, Github Actions, Figma, API(CoinPaprika, Upbit, Kakao 등) |
팀원 평가 | 대문자 T |
프로젝트
가상화폐를 대표하는 Bitcoin + 성과를 측정하는 기준인 Metrics
=> 나의 첫 가상화폐 웹 애플리이션, 비트릭스(Bitrics)
기능
•
실시간 가상화폐 데이터 및 그래프
•
가상화폐, 주식, 경제 관련 실시간 뉴스
•
초심자를 위한 용어사전
•
가상화폐 ATM 지도
•
가상화폐 자산통합관리
프로젝트
문서
1. 기능명세서
2. API 명세서
3. ERD
4. 개발 아키텍처
개발
•
카카오 로그인(Passport.js 미들웨어 활용)
◦
세션 기반 인증 방식
▪
인증 성공 → 유저ID 세션에 저장, 서버 메모리에 세션 데이터 유지
⇒ express-session 사용해 세션 초기화, secret 키 통해 세션ID 암호화
◦
serializeUser 활용해 유저ID를 세션에 저장
요청이 발생 → deserializeUser사용해 세션ID를 기반으로 데이터베이스에서 사용자 정보 복원
→ 복원된 사용자 정보는 req.user 객체에 저장되어 이후 요청에서 인증 상태를 유지할 수 있도록 함
•
실시간 가상화폐 데이터 제공
◦
현재가, 전일대비 변화율 및 변화량, 24시간 거래대금
•
김치 프리미엄 계산 데이터 제공
◦
한국 내에서 거래되는 가상자산의 시세가 해외 거래소 시세보다 높은 현상 혹은 그 비율
◦
(KRW - USD) / USD * 100
CI/CD 파이프라인 구축 및 배포
AWS EC2, AWS RDS, Nginx, Git Actions, AWS CodeDeploy, AWS S3
회고
신경 쓴 부분
팀원 간 코드 리뷰
Git Pull requests(PR)을 활용
팀 문화 및 팀 내 분위기 형성
•
프로젝트가 처음인 팀원들을 배려하여 상호 질문과 피드백이 자유로운 분위기 형성
•
팀 문화(한숨 금지, 어? 금지 등)를 만들어 긍정적으로 목표 달성하도록 유도
적극적인 에러 해결 및 공유
카카오 간편 로그인 관련 CORS 에러를 해결하고 문서로 정리하여 공유
•
세션을 쓰는 상황에서는 credentails: true로 설정하고 origin에 구체적인 URL입력해야 함. 추가적으로 callback URL에 http/https부터 구체적인 주소를 적어줘야 함
•
프론트에서 withcredentials: true로 설정해야 하고 비동기 요청함수가 아닌 a 태그나 link로 리다이렉트 해야 함
학습 자료 작성 및 공유 및 구체적인 개발 일정 설정
Node.js 학습 및 개발, 백엔드 전체 개발, CI/CD 파이프라인 구축이 모두 처음이였으나 구체적인 개발 일정으로 일주일 개발 기간 동안 전체 개발 완료
CI/CD 파이프라인 구축
1.
작성된 코드가 깃허브의 develop 브랜치에 머지
2.
코드는 자동으로 github actions에서 빌드되며 빌드 파일이 aws s3에 업로드 되고 aws codedeploy를 통해 zip 파일로 전달
3.
이후 codedeploy는 aws ec2 인스턴스에 배포를 진행하며, ec2 인스턴스에서는 nodeJS와 Nginx를 사용하여 서버가 동작
무료 SSL 인증서(Let’s Encrypt)를 발급받아 적용하고 무료 도메인(duck.dns) 연결