개발 여정

Sprint 1 Start 🚀
(2022.06.27 ~ 2022.07.08)

기술 여정

서비스 여정

브랜치 전략 및 작업 방식 확립

브랜치 전략은 Git Flow 방식으로,
이슈 관리는 Kanban Board로 관리하도록 결정

JWT 토큰 기반으로 로그인 구현


Mob 프로그래밍으로 도메인 설계

🚨 에러 케이스 세분화 및 확립

유연한 에러 핸들링을 위해
HTTP 상태 코드만으로 알 수 없는 상세한 에러를
커스텀한 에러 코드로 정의


회원 가입 기능과 로그인 기능 도입 🔒

챌린지 인증 기능 도입

Sprint 2 Start 🚀
(2022.07.11 ~ 2022.07.22)

기술 여정

서비스 여정

Google Oauth로 구현

디자인시스템 구축

Figma 링크, 스토리북 링크

EC2 인스턴스 생성 및 MySQL 연동

운영 환경과 테스트 환경을 구축


RestDocs 및 Storybook 배포

백엔드와 프론트엔드 간 원활한 협업을 위해 서로의 작업 내용을 공유할 수 있는 수단 도입

깃헙 웹훅과 쉘스크립트를 이용한 원시적 CD 구축

커서 페이징 적용

무한 스크롤 시 중복된 데이터가 렌더링되는 현상을 방지하기 위해
커서 페이징 기법 사용

소셜 로그인 기능 도입 🔑

UI 개편


스모디 배포 시작 🙌

빠른 서비스 공개!

스모디 첫 이벤트 시작 🎊

스모디 방문하기 챌린지에 약 50명 도전! 성공 크루 약 10명!


사용자 통계 정보 구현

사용자의 서비스 이용 내역을 간단하게 확인할 수 있도록 인증/성공 횟수를 보여주는 기능 구현

무한 스크롤 구현


2차 데모데이 영상

2차 스프린트 Release 노트

Sprint 3 Start 🚀
(2022.07.23 ~ 2022.08.05)

기술 여정

서비스 여정


🖼 이미지 압축 및 업로드 기능 구현

이미지 압축 라이브러리를 사용해서 이미지를 압축한 후 업로드 하도록 구현


무료 이미지 호스팅 서버 사용

자체 이미지 서버를 구축하기 전! 따라서 이미지의 경우
무료 호스팅 서버를 이용해서 저장




🔒 HTTPS 적용

젠킨스를 통한 CI/CD

시멘틱 버전닝을 통한 서비스 버전 관리

vaadin 프레임워크 도입

다크모드 🌙

사진으로 인증하기





회원정보 수정 및 탈퇴 ✍️

관리자 페이지 구축

3차 스프린트 Release 노트

Sprint 4 Start 🚀
(2022.08.08 ~ 2022.08.19)

기술 여정

서비스 여정

📱 PWA 도입

모바일에서 편리한 사용자 경험을 위해 PWA 도입


📮 Web Push

앱을 설치하지 않고도 브라우저를 통해 백그라운드에서도 알림 수신



정적 분석도구: Sonarqube

정적분석 도구를 통해 코드 품질 분석 수행


🖼 스프링을 이용한 이미지 서버 구축

무료 이미지 호스팅 서버의 사용을 중단하고 스프링을 기반으로
자체 이미지 서버 구축

리버스 프록시 적용

서버의 IP를 숨기며 확장 가능한 구조를 위해 리버스 프록시 적용

알림 기능 구현 🔔

챌린지 인증 후 또는 댓글 작성 후 알림을 보내주는 기능 구현



피드와 댓글 기능 구현 💬

챌린지 생성, 검색, 기록 조회 기능 구현



챌린지 생성, 검색, 기록 조회 기능 구현

4차 스프린트 Release 노트

Sprint 5 Start 🚀
(2022.08.30 ~ 2022.09.23)

기술 여정

서비스 여정




Canvas API

Canvas API를 이용해서 세 가지 인증 이미지를 합성하는 기능 구현





💯 서버 성능 테스트

적정 Thread Pool 설정

DB Index 적용

Query 개선

QueryDSL 도입

프론트엔드 성능 측정 및 개선

HTTP2 도입, 이미지 최적화, 캐싱, 렌더링 최적화, 코드 스플링팅,
이미지 레이지 로딩 적용

🔔 알림 비동기 처리

피드 UI 개선

성공한 인증의 스타일 개선 및 피드에서 인증 진행 상황을 확인할 수 있도록 UI 수정


성공한 챌린지에 대한 이미지 공유 기능 도입 🖼

사용자에게 더 큰 만족감을 주기위해 성공한 이미지를 다운받고
공유할 수 있도록 구현

오프라인 캐싱 기능 도입

오프란인 상태에서도 스모디 서비스를 이용할 수 있도록
캐싱된 데이터를 제공하는 기능 구현

검색 기능 개선 🔎

엔터를 누르지 않아도 자동으로 검색되도록 기능 구현

🚧 5차 데모데이 영상 준비중 🚧

5차 스프린트 Release 노트

Sprint 5.5 Start 🚀
(2022.09.24 ~ 2022.10.7)

기술 여정

서비스 여정

동시성 문제 해결


🎨 contenteditable 및 Mutation Observer API 활용

주간 랭킹 기능 도입 🥇🥈🥉

사용자에게 인증하고 싶은 느낌을 주기 위해 랭킹 기능 도입

멘션 기능 도입

contenteditable div 및 MutationObeserver API 활용

5.5차 스프린트 Release 노트

Sprint 6 Start 🚀
(2022.10.8 ~ 2022.10.21)

기술 여정

서비스 여정










서비스 레이어 리팩터링

DB replication

Load Balancing

무중단 배포

rolling 전략을 사용한 무중단 배포 구현

장애 발생 시 깃허브 자동 이슈 등록 기능 구현

Connection Pool 설정

Typescript 컨벤션 통일 및 컴파일 방식 결정

웹 접근성을 높이기 위한 서비스 개선

스모디 인스타 개설 🥳

스모디 빅 이벤트 시작 🎊

인스타 이벤트 공유 이벤트 및 주간 랭킹 이벤트 시작

인기 챌린지 조회 기능 도입

참여자 수 기준 정렬

랜덤 챌린지 조회 기능 도입

추천 목적으로 랜덤하게 챌린지 노출

알림 모두 지우기 기능 도입

사용자들의 요청이 많았던 기능

전체 목차