우아한테크코스 5기 팀바팀 Project

우아한테크코스 5기 팀바팀 Project/설계

팀바팀 무중단 배포 구현기 (feat. 무중단 배포 3가지 방식)

0. 들어가기 전 팀바팀 서비스 요구사항 중에 다음과 같은 요구사항이 존재했습니다. 서비스를 배포하는 중간에도 사용자는 서비스를 계속해서 사용할 수 있어야 한다. 이러한 요구사항을 구현하기 위해서는 서비스 배포 시에 무중단 배포를 구현해야 했습니다. 그래서 기존 팀바팀 서비스의 배포 시 문제 상황과 무중단 배포 방식들을 살펴보고 팀바팀에는 어떤 무중단 배포 방식을 사용했는지 기록하고자 합니다. 1. 팀바팀 서비스의 배포 시 문제 상황 기존 팀바팀 서비스의 배포 시에는 '다운 타임'이라는 시간이 존재했습니다. 다운 타임 : 서비스가 중단되는 시간 이처럼 다운 타임 시 사용자들은 정상적인 서비스 이용이 불가능하게 됩니다. 팀바팀 서비스의 다운 타임을 측정해본 결과, 약 15초 정도의 다운 타임이 발생했습니다..

우아한테크코스 5기 팀바팀 Project/Trouble Shooting

[Spring] 팀바팀 회원 탈퇴 기능 Trouble Shooting (feat. 스프링 이벤트)

0. 문제 상황 팀바팀에서는 회원을 나타내는 'Member' 엔티티와 RefreshToken을 나타내는 'Token' 엔티티가 존재했습니다. 엔티티 설계를 진행할 때, Member와 Token 엔티티는 1:1 관계로 설계를 진행했습니다. Member가 생성될 때 Token이 생성되고, Member가 삭제될 때 Token도 삭제되므로 생명주기도 비슷해서 직접 참조를 하는 것으로 설계를 진행했습니다. 이때, Member라는 엔티티에서 Token을 직접 참조하면 편하긴 하겠지만, 닉네임, 이메일 등 회원 정보가 담겨있는 Member 테이블에 인증 정보인 Token 정보가 담긴다는 것이 조금 이상했습니다. 이후에 Token만 만료시킬 상황에도 Member에서 참조를 하게 된다면 token_id를 null로 처리..

우아한테크코스 5기 팀바팀 Project/설계

[설계] 팀바팀 이미지 업로드 설계 (1) - 이미지 Storage, 업로드 주체 결정

0. 들어가기 전 현재 팀바팀 서비스에서는 사용자들이 소통을 하는 '피드' 도메인이 다음과 같이 존재합니다. 현재 피드를 작성할 때는 시간 상의 문제로 이미지 없이 텍스트로만 작성이 가능하도록 구현했었습니다. 이후 기능 개선 회의에서 피드에 이미지가 필요할 것 같다는 의견이 나왔고, 해당 의견이 반영되어 '피드에 이미지를 업로드 할 수 있다.'라는 요구사항이 도출되었습니다. 추가적으로, 아래의 슬랙처럼 '이미지를 피드 등록 창에 업로드했을 때, 이미지 미리보기를 할 수 있다.'라는 요구사항도 있었습니다. 해당 요구사항을 구현하기 위해 어떠한 고민을 거쳤는지 기록해보고자 합니다! 👍🏻👍🏻👍🏻 1. 이미지 Storage : 서버 내부 Stroage or S3 결과적으로 이미지 Storage로는 AWS의 S3..

우아한테크코스 5기 팀바팀 Project/Trouble Shooting

구글 로그인 Trouble Shooting (feat. Base64 / Base64Url)

❌ 0. 문제 상황 서비스를 배포하고 나서 피드백을 받을 때, 일부 사용자의 구글 로그인이 정상적으로 작동하지 않는 문제가 발생했습니다. 서버의 로그를 확인해보니, 다음과 같은 에러가 발생하고 있었습니다. 구글 로그인에 관한 에러인데 왜 Base 64 에러가 뜨는지 상당히 궁금했었습니다. 그래서 구글링을 거쳐 'Base64와 Base64Url의 차이'라는 키워드를 알게 되었고, 위의 키워드가 문제 원인 & 해결 방법을 제시해주고 있었습니다. 📘 1. Base64와 Base64Url의 차이 Base64와 Base64Url의 차이를 알아보기 전에, Base64와 Base64Url이 무엇인지 간단하게 살펴봅시다. ✅ 1-1. Base64 Base64는 8비트 이진 데이터를 텍스트(ASCII 문자)로 인코딩하는..

우아한테크코스 5기 팀바팀 Project/회고

팀바팀 프로젝트 4주차 회고

✌🏻 23.07.18 (화) ~ 23.07.19 (수) - CI & CD & 인프라 구조 구축 이 날은 CI, CD, 인프라 구조 구축을 진행했다!! 개인적으로 CI, CD와 인프라쪽은 지식이 많이 없었어서 걱정했는데, 백엔드 모두가 하나의 모니터를 보면서 같이 몹 프로그래밍을 진행해서 잘 진행했다!! CI CD를 1~2명이 작업 분배를 해서 구축한 팀도 있었지만 나는 관련 지식이 많이 없었기 때문에 몹 프로그래밍으로 다같이 구축한 게 도움이 많이 되었다!! 처음에는 하루 만에 다 끝낼 수 있을 거라고 생각했는데 역시나 처음 일정 추정의 2~2.5배는 걸리는 것 같다 ㅋㅋㅋㅋ 이틀 정도를 야근해서 겨우 끝낼 수 있었다,, CD 과정에서 Github actions를 사용해서 CD를 사용하는 레퍼런스가 많이..

우아한테크코스 5기 팀바팀 Project/설계

[설계] Git Branch 전략이란? & Git Branch 전략 알아보기 (Git Flow, GitHub Flow)

🙇🏻‍♂️ 0. 들어가기 전 이번 팀바팀 프로젝트에서 협업을 처음 경험하고, Git Branch 전략에 대해 처음 들어보게 되었습니다. 이전까지는 협업을 하지 않고, 해봤자 페어 프로그래밍이 전부였기 때문에 Git Branch에 대해 신경쓰지 않았습니다. 팀원들께 죄송하게도, Git Branch 전략을 정하기 전에는 지식이 많이 없었습니다. 원래 정하기 전에 많은 것을 알아갔어야 하는데 반대로 되어버려서 죄송할 따름이네요,, 🙇🏻‍♂️ 현재 팀바팀의 Git Branch 전략은 정한 상태이지만, 학습 측면에서 어떤 Git Branch 전략이 있는지 자세하게 알아보도록 합시다! 📘 1. Git Branch 전략이란? 다양한 Git Branch 전략을 알아보기 전에, Git Branch 전략이 무엇인지 간략하..

우아한테크코스 5기 팀바팀 Project/회고

[회고] 팀바팀 프로젝트 3주차 회고

✌🏻 23.07.10 (월) - 첫 스프린트 회의 & 파트별 회의 우리 팀은 팀 문화를 정할 때 스프린트 방법을 사용해서 프로젝트를 진행하기로 했다! 1차 데모데이 기간에는 팀의 전체적인 방향을 정하느라 스프린트 개발 회의를 하지 못했다. 그래서, 이번 주차 시작인 월요일에 첫 스프린트 회의를 가졌다. 우리 팀의 스프린트 기간은 데모데이 주기인 2주로 설정했다. 그래서 회의에서 2주동안 어떤 기능을 개발할지 정했다. '캘린더' 기능을 완성해보기로 했고, 이 과정에서 일정 추산을 진행하기로 했다! 일정 추산은 내가 제안한 '스토리 포인트' 방법? 을 사용하게 됐다. 진행해보고 아쉬운 점은, 나도 처음 해보고 다들 처음이다 보니 명확한 기준 없이 진행이 됐던 것 같다. 내가 제안한 만큼 내가 좀 더 알아보고..

우아한테크코스 5기 팀바팀 Project/Trouble Shooting

[Spring] LocalDateTime 원하는 Format으로 바인딩하기 (feat.@DateTimeFormat, @JsonFormat)

이 글은 팀바팀 기술 블로그에 작성된 글입니다. https://team-by-team.github.io/local-date-time-binding/ LocalDateTime 원하는 Format으로 바인딩하기 (feat.@DateTimeFormat, @JsonFormat) 해당 글은 우아한테크코스 5기 팀바팀 크루 성하가 작성했습니다! 📘 0. 일정 등록 API Request Body API 명세를 정할 당시에는 LocalDateTime이 요청으로 들어왔을 때 어떻게 Request Dto의 필드로 바인딩되 team-by-team.github.io 📘 0. 일정 등록 API Request Body API 명세를 정할 당시에는 LocalDateTime이 요청으로 들어왔을 때 어떻게 Request Dto의 필..

우아한테크코스 5기 팀바팀 Project/회고

[회고] 팀바팀 프로젝트 2주차 회고

✌🏻 23.07.03 (월) - 서비스 컨셉 디자인 정하기 이 날은 우리 팀바팀 서비스의 전체적인 컨셉 디자인을 정하는 날이었다! 이벤트 스토밍을 통해 기능 컨셉을 도출하고, 해당 기능을 어떻게 디자인할지 모든 팀원 각자가 피그마에 디자인을 해오기로 했다! 나 같은 경우는 진짜 디자인에 소질이 1도 없었는데 레퍼런스도 많이 찾아보고 시간 박치기를 했다 ㅠㅠ 이렇게 디자인 시안을 만들고, 모두가 만든 디자인을 소개하면서 취합해나갔다. 감사하게도 기능별 디자인은 내 디자인 시안을 참고해서 만들기로 결정이 났다! ✌🏻 팀원 모두가 각자 너무 잘해와서 너무 감사했다!! 😃 디자인을 취합할 때, 나는 이런 분야에 너무 문외한이라서 의견을 많이 못 냈던 것 같다. 뭔가 말하려고 했었는데 자꾸 다시 삼킨 적이 많았던..

우아한테크코스 5기 팀바팀 Project/회고

[회고] 팀바팀 프로젝트 1주차 회고

프로젝트를 시작하고, 최대한 주차별로 가벼운 회고를 남겨보려고 한다! 프로젝트의 시작, 회고의 시작... 1주차 시작해보자구~ ✌🏻 23.06.27 (화) - 프로젝트 시작 🏃🏻‍♂️ 1. 팀원 대면 드디어 팀원들을 처음 보게 되었다! 우리 팀은 나, BE 엔델, BE 로이, BE 필립, FE 유스, FE 요술토끼, FE 루루 이렇게 총 7명이다! 프론트엔드와는 친분이 없는게 당연했지만 백엔드에서도 그렇게 친한 사람은 없었어서 조금 걱정이 되었다. 단지 친하지 않아서 어색할 것 같았을 뿐이지, 그래도 이전에 몇 번 얘기를 나눴을 때 다들 괜찮았던 사람들이라서 좋은 사람이라는 인식은 있었다!! 😃 4~5개월 동안 같은 목표를 가지고 잘 달려보자고 혼자 다짐했다 ㅋㅋㅋㅋ 👍🏻 🌈 2. 팀 자리 배치 10시에..

BE_성하
'우아한테크코스 5기 팀바팀 Project' 카테고리의 글 목록