본문 바로가기

반응형

Project/Project_OurWorldCup

(7)
[Project: OurWorldcup] 테스트 및 리팩토링 시작 들어가면서 개발을 시작한 사람들은 영상이나 포스팅에서 "테스트가 중요하다", "TDD로 개발해야 한다"라는 말을 많이 들었을 겁니다. 저도 많이 들었기 때문에, 처음 개발을 시작할 때 각 기능에 대한 테스트를 작성하고자 했죠. 하지만 어떤 기능을 테스트해야 하고, 어느정도까지 테스트 해야 하는지, 어떤 식으로 테스트 해야 하는 지 등에 대한 경계가 명확히 서 있지 않았습니다. 그렇기 때문에 release v1.0까지는 우선 기능 구현에 초점을 맞춰 개발을 진행했습니다. release v1.0을 출시한 후, 리팩토링과 테스트 코드 작성을 하기로 마음 먹었습니다. 리팩토링 & 테스트 리팩토링과 테스트를 위해 유명한 도서들을 읽으며 사전조사를 했습니다. Object도서를 읽으며 객체 지향 프로그래밍 패러다임에..
[Project/OurWorldcup] release v1.0 리뷰 프로젝트 Github: https://github.com/dbwp031/OurWorldCup/tree/release/v1.0 홈페이지: https://ourworldcup.store 기간: 2023.09 (1달) 개발 스택: #Java #SpringBoot #SpringBootJpa #MySQL #OAuth2.0 #JWT #AWS 지난 한 달 동안 개발한 "우리끼리 월드컵"을 정리하고 회고하고자 합니다. 뿐 아니라, 이후 어떤 방향으로 프로젝트를 개선해 나갈지 정리하고자 합니다. 프로젝트 소개 - 개요 근래 서비스되고 있는 (이상형) 월드컵 서비스들은 사용자들의 선택 기록을 공유하지 못합니다. 자신의 지인들과 월드컵을 플레이하고 각자 어떤 선택을 했는지 비교해보는 것이 진정한 묘미인데 말이죠! 본 프로젝..
[Project/OurWorldcup] 로그인 OAuth2 + JWT - #1 도메인 추가 및 수정 본 프로젝트에서는 Spring Security 6 버전으로 OAuth2 + JWT를 사용하여 로그인 시스템을 구축하고자 합니다. 관련 링크: Github Issue: https://github.com/dbwp031/OurWorldCup/issues/10 Github Commit: https://github.com/dbwp031/OurWorldCup/commit/e3141b53ce3da88fc9794aa6675f194285182874 들어가기 앞서, 오늘 구현한 도메인들의 형태는 대략 아래 그림과 같습니다. 그리고 아래 ERD는 오늘 설명과 관련된 테이블들의 구성입니다. 1. Authority 관련 도메인 추가 Authority란 "권한"을 의미합니다. 다양한 아티클에서 Role과 많이 혼동하고 있다고 이..
[Project: OurWorldCup] branch 전략 분석 및 선택 도입 프로젝트를 진행할 때 적절한 브랜치 전략이 필요합니다. 유명한 전략으로 git-flow, gitlab-flow, github-flow이 있습니다. 각각에 대해 간단히 살펴본 후 저에게 맞는 브랜치 전략을 선정하기로 했습니다. https://wiki.yowu.dev/ko/dev/Git/about-git-github-gitlab-flow 블로그에서 이해에 도움을 많이 받았습니다. 아래에 나오는 모든 예시 사진은 이 블로그에서 가져온 그림입니다. git-flow git-flow는 가장 많은 기능을 포함한 브랜치 전략입니다. 완전히 안전한 코드의 main 브랜치 긴급한 수정을 위한 hotfix 브랜치 개발을 위한 develop 브랜치 세부적인 기능을 개발하는 데 사용되는 feature 브랜치 개발 후 품질..
[Project: OurWorldCup] API 명세서 작성하기 API 명세서 작성 로그인 후 메인 페이지는 /{id} 형식으로 작성해야 했습니다. 그런데, 월드컵 정보를 확인하는 페이지를 들어갈 때, /{id}/{wordldcup_name}는 올바르지 않다고 생각했습니다. 저 표현은 worldcup이 id에 종속되어 있는 것으로 오해할 여지가 있기가 때문이죠. 이를 해결하기 위해 github의 형식을 따르기로 했습니다. 하나의 worldcup은 여러 명이 하나를 조직한다는 점에서 github의 organization과 비슷하다고 생각했습니다. organization은 github.com/{organization_name}의 엔드포인트로 되어있었습니다. 이에 따라서 저도 /{worldcup_name}으로 바로 접근할 수 있도록 해주었습니다. 완성한 api 명세서는 아..
[Project: OurWorldCup] ERD 설계하기 설계 계기 Entity Relationship Diagram, ERD는 DB를 구축하는 데 자주 이용하는 다이어그램입니다.이전 프로젝트에서도 사용해서 이해하기 쉬웠던 경험이 있어 이번에도 설계한 후 프로젝트를 진행하고자 합니다. 각 테이블에 어떤 필드가 필요한 지, 테이블끼리의 관계가 어떻게 되는 지 미리 결정해 놓으니 개발할 때 맘 편히 작성할 수 있습니다. 설계 https://app.diagrams.net/에서 ERD를 그릴 수 있습니다. 저는 여기서 ERD 외에도 usecase와 같은 다양한 다이어그램을 작성합니다. participants 테이블은 user_account - worldcup 테이블의 다대다 관계를 분리하기 위하여 생성된 테이블입니다. game 테이블은 월드컵 정보를 토대로 생성된 게..
[Project: OurWorldCup] Figma로 프로젝트 설계하기 설계 계기 개인 프로젝트를 여러 번 진행해보면서, 프로젝트 시작 전 설계의 필요성을 느끼게 되었습니다. 적절한 설계를 해놓고 진행하지 않으면, 마구잡이 식으로 개발을 하게 될 가능성이 높았습니다. 그리고, 기능 구현이 어디까지 필요한 지에 대한 경계선이 없다보니 개발의 끝이 보이지 않고, 쉽게 지치게 되는 느낌을 받았습니다. 그래서 이번 프로젝트에서는 피그마를 활용해서 간단하게 우리 서비스의 틀과, 어떤 기능들이 필요한지 정리하고자 합니다. 설계 과정 피그마를 처음 사용하다 보니, 매우 조잡한 디자인을 구현하는 데에도 꽤 오랜 시간이 걸렸습니다. 그래도, 필요한 웹 페이지를 작성하다보니 머리 속으로만 생각할 때와 달리 필요한 페이지, 기능들이 더 있다는 것을 알 수 있었습니다. 페이지 구성 각 페이지에 ..

반응형