개발 전반 의사결정 및 환경 셋팅 기능 개발 고도화 및 리팩터링 재사용성이 높고 변화에 강한 구조 구현
상세
convention Rule 수립 및 셋팅 : commitConvention(husky), CodeConvention(ESLint + Prettier + Airbnb)
개발 전반적인 의사결정 : 소프트코딩 전략, 형상관리 전략, 폴더 구분 및 개발 방향성 확립
커스텀 Axios 객체 구현
HTTP 프로토콜 통신 errorHandler 구현
비인증 유저의 접속을 차단하는 AuthRoute 구현
routes 객체의 field값에 따라 optional하게 렌더링되는 Router 및 컴포넌트 구현
theme 객체와 layout 상수 값들의 소프트코딩을 적용한 디자인 변화에 유동적인 styled-components 사용 전략
상수 객체 선언에 따른 자동 Type 생성 및
BE와의 데이터 싱크로나이징, 로그인, project, task, ticket 전반
1차 완성 컴포넌트 기술 고도화 / 컴포넌트 분리 및 소프트코딩 리팩터링
Login / Signup의 react-hook-form에 사용되는 type과 register 및 컴포넌트를 자동 생성 및 등록하는 커스텀 react-hook-input 구현
<aside> 🟢 박지현 FE★
</aside>
login페이지 signUp페이지 setting페이지 myTicket페이지
상세
수립된 convention Rule 따라 코드 작성
Login / Signup의 react-hook-form을 이용한 Validation 1차 적용 및 기능 구현
Setting 에서 Nested Routes 적용
Setting/User 에서 profile 및 닉네임 수정기능 구현
Setting/ProjectSetting 에서 thumbnail 및 타이틀 수정기능 구현
Setting/ProjectMember 에서 project에 참여한 멤버 관리기능 구현
MyTicketPage 에서 completedTicket 잔디기능 구현
<aside> 🟢 박성민 BE
</aside>
websecurity 로그인 로그아웃 토큰 재발급 회원 페이지 redis SMTP
상세
권한이 없는 토큰으로 접근하면 exceptionHandling을 적용시켜 401, 403에러로 핸들링 했습니다.
로그인, 로그아웃: Redis를 통한 Access Token, Refresh Token을 관리하며 토큰 만료 2분이내 활동이 있으면 자동으로 Access Token을 재발급 시켰습니다.
SMTP: 이메일을 사용한 인증로직, 초대코드 발송 로직을 구현했습니다.
Redis서버를 구축하고 redis 관련 설정을 했습니다.
redis로 token을 관리하여 서버 부화 최소화 했습니다.
OAuth2를 적용시켜 google login을 구성했습니다.
<aside> 🟢 박현아 BE★
</aside>
CI/CD를 통한 무중단 배포 서버 구축 로드밸런서 리다이렉트 HTTPS websecurity 로드밸런싱을 이용한 리다이렉트 서버 테스트 nginx로 변경을 통해 2개의 포트로 무중단 배포와 proxy 보안강화 티켓, 댓글, 리뷰 구현 및 개선
상세
CI/CD 서버 구축 및 관리: GitHub Actions, Amazon S3, AWS CodeDeploy, 및 Nginx를 사용하여 무중단 배포를 가능하게 만들며, 주기적으로 테스트와 상태 점검을 수행
로드벨런싱을 이용한 리다이렉트 HTTPS 연결, 엔진엑스 HTTPS연결
Redis 서버 실행 : 비용과 용량적인 문제로 다른분 계정으로 프리티어로 따로 관리하고 있습니다.
아키텍처 설계: CI/CD 전략을 적용하여 시스템 아키텍처를 구성
이슈 트래킹, 댓글, 코드 리뷰, 리뷰 댓글, 실시간 알림 구현: 기본 기능을 완성하였으며, MVP 범위를 이슈 트래킹 및 댓글로 축소하여 상태 변경 및 관리 기능을 구현
서버 부하 최소화를 위해 적절한 트랜잭션 처리를 고려하고, Querydsl을 적용
서버 테스트: 여러 상황을 대비에 api가 돌아가는 시간을 적어 수치화하고, 직접 오류를 내보면서 접근이 가능한지 시도했습니다.
Jmeter를 통한 부하 테스트 현재 서버에서 얼마만큼의 쓰레드를 감당할 수 있는지 등을 체크하고 latency를 파악해 2s를 상회하는 요청들은 로직을 재검토 하였습니다.
데이터베이스 관리: 여러 서버 인스턴스를 구축하고, 각 가용 영역에 맞는 Amazon RDS 인스턴스를 연결하며, 주기적으로 데이터베이스 상태를 확인
websecurityConfig에 cors를 만들고 관리했습니다.
회의 및 피드백 정리(서기), 노션 관리(서기), 프레젠테이션(영상제작 및 디자인) 자료 작성 및 준비, 서버 비용 관리(총무), 마케팅 예산 관리(총무) 등을 담당
<aside> 🟢 조영준 BE
</aside>
ERD설계, Exception handling 동시성 이슈 제어 Custom validation, Mapping framework을 통한 dto 변환로직 설계 AOP를 이용한 통신 latency 체크 dynamic query를 통한 데이터 제공 Ticket 점수와 관련된 로직 설계 infra 설계
상세
ERD 설계 Excepiton handling BindingResult를 FieldError와 함께 client에 전송함으로써 어디서 바인딩에러가 발생하였는지에 대해 명시하고, Entity 문제나 custom error에 대한 로직을 작성하였습니다.
Custom validation Custom한 validator를 통해 무분별한 DB 출입을 방지하고 유효성 검사를 조금 더 자세하게 만들었습니다.
Mapping framework를 통한 dto 변환로직 설계 Mapstuct를 통해 자동 매핑을 구현하여 코드의 가독성과 유지보수성을 증가시켰습니다.
dynamic query를 통한 date, status별 티켓 데이터 제공 Querydsl을 이용하여 LocalDateTime 형태로 나누어져 있는 티켓들을 일별로 합산하여 사용자에게 날짜별 완료된 티켓수를 제공하고, 무한스크롤을 이용한 slice 형태의 ticket field를 반환함으로써 원하는 만큼의 데이터를 분할하여 제공하였습니다.
Jmeter를 통한 부하 테스트 현재 서버에서 얼마만큼의 쓰레드를 감당할 수 있는지 등을 체크하고 latency를 파악해 2s를 상회하는 요청들은 로직을 재검토 하였습니다.
ticket score와 관련된 로직 설계 linear algebra의 선형 가중 조합을 사용하여 티켓의 점수를 계산하여 태스크에서 티켓 다량발부에 대한 어뷰징을 방지하였습니다.
infra 설계 slack을 이용한 logback, swagger 기능들을 활성화하여 팀원들과의 응집력을 극대화시켰습니다.