본문 바로가기

분류 전체보기

(177)
[230803] [파이널] 프로젝트 진행 (2) 테스트 코드 ✔ 테스트 코드 적용 이유 💬 CI에는 자동 테스트가 있을 때 더 빛을 발한다고 생각한다. 테스트 코드는 합칠 때 작성한 코드들이 문제가 없음을 보여줄 수 있는 근거이기 때문이다. 팀원들과 논의를 거쳐 이러한 이점을 위해 각 기능을 구현할 때 비즈니스 로직은 테스트 코드를 작성하기로 했다. ✔ 테스트 코드 이점 💬 테스트 코드는 비즈니스 로직을 짤 때 가장 이점이 많은 것 같다. 중요한 로직에서 발생할 수 있는 버그를 사전에 예방할 수 있다. 코드에서 빼먹은 로직을 확인하고 보충할 수도 있다. ✔ Mock의 사용 💬 실제로 테스트 코드를 짜다 보니 Service에 들어가는 비즈니스 로직에는 DB 통신 부분이 대부분 들어간다는 것을 알았다. 통신 부분을 그대로 유지한 체 테스트를 한다면 우리가..
[230802] [파이널] 프로젝트 진행 (1) 환경 설정 ✔ local 전용 application.yaml 설정 💬 중요한 정보가 들어있는 application.yaml를 보안 처리를 하기 위해 GitHub의 Private Repository에 저장을 하고 Sub Module로 사용을 했다. 빌드를 할 때마다 Sub Module에 있는 application.yaml를 resource에 복사를 해서 사용하도록 설정을 했다. 💢 로컬 DB 정보를 입력해서 사용하려고 하면 Sub Module에 있는 application.yaml 내용을 바꿔야 하는 문제가 발생했다. ✅ resource에 application-local.yaml 파일을 하나 만들어 로컬 환경 정보를 사용하도록 만들었다. ➡ application-local.yaml에 정보가 없는 경우 app..
[230801] [파이널] 기획 및 S.A 작성 (5) CI/CD 스펙 선정 ✔ Git Action 💬 코드가 저장된 곳에서 CI/CD를 한 번에 처리할 수 있다. 제한된 자원을 가지고 있는 우리에겐 비용이 들지 않는다는 것도 큰 장점으로 다가왔다. 프로젝트 개발과 성능을 개선하는 데에 집중을 하는 것이 목표였기에 빠른 구축도 중요하게 작용했다. ✔ Docker 💬 Docker는 다양한 환경에서 동일한 동작을 보장하는 것이 큰 장점이라고 생각한다. AWS Freetier부터 사용을 해서 상황에 따라 Scale-up을 통한 성능 향상을 생각하고 있었다. 그러다 보니 매번 환경설정을 다시 해주는 것보다 Docker 이미지를 사용해 컨테이너에서 동일하게 동작할 수 있도록 하려고 한다. ✔ ECR 💬 Git Action과 EC2 사이에서 Docker 이미지의 공유 ..
[230731] [파이널] 기획 및 S.A 작성 (4) S.A 피드백 적용 ✔ 스코프 추가 💬 현재 스코프가 4명이서 하기에는 다소 적다는 피드백이 있었다. 팀원들과 추가 기능들에 대해서 논의를 했다. 후보군을 먼저 선정을 했다. 후보군 중에서 결정을 했다. 아이디어 경매에 얼마나 어울리는가를 기준으로 삼았다. ➡ 채팅 기능 ( 아이디어 토론장 ) ➡ 아이디어 경매 예약하기 ✔ ERD 피드백 💬 나누어져 있는 테이블을 단일 테이블로 합치는 것을 피드백으로 주셨다. 확장 가능성이나 성능면에서 장점이 있다고 하셨다. 하지만 우리는 테이블 분리했을 때 검색 성능을 향상할 수 있어서 적용한 것이었다. 우리의 의견과 반대되기에 정확한 이유를 듣고 싶어 질문을 했다. ✔ ERD 질문 답변 ✅ ERD를 작성할 때 테이블을 무조건 분리한다고 해서 좋은 것이 아니다. 정합성..
[ 230730 ] 33주차 회고 일주일 간 진행한 내용 1. 클론 코딩 진행 2. 테스트 코드 작성 3. 파이널 프로젝트 진행 클론 코딩 진행 [진행] 인스타그램을 클론 코딩을 했다. 내가 맡은 로그인, 회원 가입 기능을 끝내고 CI/CD를 환경을 구성했다. Git Action, Code Deploy, S3를 사용했다. 팀원 분들이 기능 구현을 하고 브랜치를 Pull Request를 하면 코드 리뷰를 했다. 클래스, 메서드, 변수 명에 대한 것과 잘못된 로직 등에 대해 다루었다. [생각] 클론 코딩은 생각보다 도움이 많이 되지는 않았다. 기본적인 CRUD를 작성하는 데에 그쳤기 때문이다. 그리고 S.A를 다시 작성하는 데에 시간을 쓰다 보니 기본적인 기능만 구현하는 데에도 시간이 부족했다. 저번 주에 했던 미니 프로젝트를 가지고 확장..
[230730] [파이널] 기획 및 S.A 작성 (3) MVP 작성 💬 처음부터 생각한 기능들을 전부 구현하기보다는 최소 기능들로 먼저 만들기로 했다. 개발 주기를 짧게 잡아 빠르게 서비스를 내놓기 위함이다. 성능 향상을 목적으로 하는 팀이기에 MVP 통해 성능적인 문제를 빠르게 알수 있고 개선해 볼 수 있다. ✔ MVP 스펙 Tech Stack Java, Spring Boot, JPA, Security, JWT DB MySQL DevOps AWS EC2, AWS RDS, AWS S3, AWS CodeDeploy, Git Actions, Docker Test Junit5, Mokito, Jmeter ✔ MVP 스펙 1주차 기획 마무리, Git, CI/CD, AWS 서버 환경 구성 2주차 API 개발, 더미 데이터 수집 및 저장 3주차 API 성능 테스트, A..
[230729] [파이널] 기획 및 S.A 작성 (2) Git 컨벤션 💬 팀원들과 Git Repository를 생성하기 전에 컨벤션을 정하기로 했다. 좋은 컨벤션은 협업을 원활하게 해 주기 때문이다. ✔ Git Branch main : 배포 환경 develop : 개발 환경 feature/기능명 : 기능 구현 refactor/기능명 : 코드 리팩토링 fix/기능명 : 버그 해결 ✔ Git Comment Type feat : 새로운 기능 추가 fix : 버그 수정 docs : 문서 수정 refactor : 코드 리팩터링 test : 테스트 코드, 리팩터링 테스트 코드 추가(프로덕션 코드 변경 X) chore : 빌드 업무 수정, 패키지 매니저 수정(프로덕션 코드 변경 X) design : CSS 등 사용자 UI 디자인 변경 comment : 필요한 주석 추가 ..
[230728] [파이널] 기획 및 S.A 작성 (1) 주제 선정 ✔ E-Commerce Service 💬 대규모 트래픽 / 데이터를 동시에 다뤄볼 수 있을 뿐만 아니라 취업 시장에서 가장 많은 부분을 차지하는 것으로 보였다. ✔ 주제 결정 💬 아이디어를 판매하는 서비스는 있지만 경매하는 사이트는 없는 것으로 보인다. 처음에는 경매를 통해서 순간적으로 생기는 많은 트래픽을 경험해 볼 수 있을 거라고 생각했다. 그로 인해 생기는 데이터를 가지고 많은 데이터를 다뤄볼 수 있다고 생각했다. ✔ 아이디어 경매 기능 로그인 아이디 비밀번호를 통해 로그인한다. 회원가입 회원가입을 한다. 아이디어 등록 아이디어 최소 경매입찰금액, 이미지, 제목, 내용, 카테고리를 설정하고 등록한다. 특허 데이터를 통해서 등록이 가능한 아이디어인지 확인을 해준다. ( 10분 고정 시간은 ..