본문 바로가기

개발일지

(102)
[ 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분 고정 시간은 ..
[230727] [클론] Lifegram 테스트 코드 작성 (3) 테스트 코드 결과 ✔ CI/CD 자동 테스트에 커버리지 적용 결과 💬 CI/CD 배포 시 Jacoco에서 측정한 코드 커버리지를 적용되었다. Main에 적용한 코드에 대해 테스트 통과 및 코드 커버리지 도달을 못했을 시 배포가 되지 않았다. 이를 통해 발생할 수 있는 버그를 배포 전에 해결할 수 있었다. ✔ 테스트 코드 커버리지를 모두 채운 결과 💬 3일 동안 팀원 분들과 테스트 코드를 작성하는 데에 시간을 많이 사용했다. Junit5, Mokito를 사용해서 작성을 했다. 처음에는 서툴렀지만 차근차근 하나씩 해 나갔다. 성공, 실패 케이스를 하나하나 작성을 해가면서 코드 커버리지를 채워나갔다. 80~100 퍼의 코드 커버리지를 모두 채울 수 있었다. ✔ 테스트 코드 커버리지 결과 생각 오늘 오후 1시까..
[230726] [클론] Lifegram 테스트 코드 작성 (2) 테스트 코드 해보니? 💬 무작정 작성해 보았던 테스트 코드에서 많은 것을 배울 수 있었다. 내가 알지 못했던 버그를 발견해 수정을 할 수 있었다. 필요 없던 코드들을 발견할 수 있었다. 코드를 조금 더 나은 구조로 변경할 수 있었다. ✔ 알지 못했던 버그 💬 Postman 같은 API 테스트 툴을 사용해 통과하는 경우 제대로 코드를 작성했다고 생각했다. 그런데 이번 테스트 코드를 작성하다가 잘못된 코드가 있다는 것을 발견하게 되었다. 잘못된 코드를 수정해 버그를 예방할 수 있었다. // 수정 전 if (!StringUtils.hasText(jwt)) { request.setAttribute("unauthorization", "401 인증키 없음."); } else if(JwtUtils.validateTo..
[230725] [클론] Lifegram 테스트 코드 작성 (1) 테스트 코드를 하는 이유? 💬 테스트 코드는 유지보수의 비용을 줄여주는 것이 핵심인 것 같다. 문제를 발견하는 것은 개발부터 애플리케이션 배포 단계까지 모두 가능하다. 하지만 문제 발견 시점이 애플리케이션 배포 단계까지 가까워질수록 드는 비용이 기하급수적으로 높아지는 것 같다. 테스트 코드를 작성하여 개발 단계에서 가장 적은 비용으로 문제를 해결해야 한다. 그동안 테스트를 작성하지 않았던 이유..? 💬 모든 테스트 코드가 옳은 건 아닌 것 같다. 코드 작성하는 데 드는 비용이 유지보수에 드는 비용보다 높다면 좋지 않은 테스트라고 생각한다. 이러한 기준 때문에 나는 테스트 코드를 작성해야 하는 것과 아닌 것을 선택하기가 어렵다. 테스트 코드를 멀리하게 되고 애플리케이션 동작 확인으로만 유지보수를 했다. 이..
[230724] [클론] Lifegram CI/CD 이슈 CI/CD 구성 Git Action, AWS S3, CodeDeploy, EC2를 사용해서 CI/CD를 구성을 했다. ✔ Git Action Deploy.yml 적용 및 결과 name: deploy on: push: branches: [ main ] env: S3_BUCKET_NAME: lifgram-deploy-bucket PROJECT_NAME: lifegram JAR_PATH: ./build/libs JAR_NAME: lifegram-0.0.1-SNAPSHOT.jar jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 with: token: ${{ secrets.ACTION_TOKEN }} subm..