240527(월)
🌱 성장일지 Re 1.0
책 행복한 이기주의자(웨인 다이어)
의 내용에 자극받아 시작하는 소박한 성장기록
- 살아있는 꽃과 죽은 꽃은 어떻게 구별하는가?
- 성장하고 있는 것이 살아 있는 것이다.
- 생명의 유일한 증거는 성장이다!
(1.0) 하루 SoD, EoD를 기록하고 공부한 것을 간단하고 담백하게 기록하자.
Plan
아침 - ✅ 스트레칭 - ✅ 명상 - ✅ 유산균, 양배추즙, 홍삼, 하루 견과, 우유 반 잔 - ✅ SoD 쓰기 오전 - ✅ 메모장 확인(0.1) ✅ ⏰ (10:00 ~ 11:45) 위클리 오후 - ✅ WBR 틀 작성(0.1) - ✅ 코드리뷰(저번 스프린트 테스크 마무리 포함) - 브릿지 페이지 삭제(0.5) - ✅ 메인 상단 ui 삭제(0.1) - 브릿지 관련 파일 삭제 및 정리 - ✅ 커피챗 요청 관련 이벤트 텍소노미 정리(0.5) - ✅ 1on1 준비(0.5) - 🌱 커피챗 요청 버튼 시 클릭 이벤트 심기(3.0) - ✅ 버그 관리 개선(1.0) - 🌱 온보딩 UX 개선 플래닝 이후 테스크 작성 예정 ✅ ⏰ (12:45 ~ 13:00) 청소 데이 ✅ ⏰ (15:30 ~ 17:00) 1on1(솔) ✅ ⏰ (18:00 ~ 18:30) 온보딩 UX 개선 플래닝 저녁 - 개인 점검 ❌ ⏰ (19:00 ~ 19:30) 걸어서 퇴근하기 - 종합운동장역 밤 - ✅ 다이어리: 감정일기 쓰기 - ✅ EoD 쓰기
Learn
개발을 하기 전에 해야할 것
개발을 하기 전에 해야할 것이 있다.
- 개발 진행 - 인수 테스트 작성 - 개발 테스크 작성 - 개발 - 인수 테스트 진행 - 릴리즈
사실 위의 5가지는 굉장히 압축된 경우이고, GPT의 도움을 받아 몇가지 사항들을 추가해보자면 아래와 같다.
- 요구사항 분석 및 명세 작성 - 인수 테스트 작성 - 개발 테스크 작성 - 개발 (단위 테스트 병행) - 통합 테스트 - 시스템 테스트 - 인수 테스트 진행 - 코드 리뷰 및 문서화 - 최종 QA 테스트 - 릴리즈
이 중 우리가 문서로 작성해야하는 부분들에 대해서 크게 감이 오지 않아, 로그인 기능 구현을 예시로 지피티에게 물어보았다.
### 1. 요구사항 분석 및 명세 작성 **목적**: 사용자 및 이해관계자의 요구사항을 명확히 이해하고, 이를 기술 명세로 문서화합니다. **예시**: - **요구사항 분석**: - 사용자는 이메일과 비밀번호를 사용하여 로그인할 수 있어야 한다. - 비밀번호는 최소 8자 이상이어야 하며, 대문자와 숫자를 포함해야 한다. - 로그인 시도가 5회 실패할 경우, 계정은 30분 동안 잠긴다. - 비밀번호를 잊어버린 사용자는 비밀번호 재설정 기능을 통해 비밀번호를 재설정할 수 있어야 한다. - 성공적으로 로그인한 사용자는 대시보드 페이지로 이동한다. - **명세 작성**: - **로그인 화면**: - 입력 필드: 이메일, 비밀번호 - 버튼: 로그인, 비밀번호 재설정 - 링크: 회원가입 - **백엔드 API**: - `POST /login`: 이메일과 비밀번호를 받아 인증을 수행. - `POST /reset-password`: 비밀번호 재설정 요청을 처리. - **에러 메시지**: - 잘못된 이메일/비밀번호 조합 시: "잘못된 이메일 또는 비밀번호입니다." - 계정 잠금 시: "계정이 잠겼습니다. 30분 후에 다시 시도해주세요." ### 2. 인수 테스트 작성 **목적**: 사용자가 기대하는 결과를 기준으로 기능을 검증할 수 있는 테스트 케이스를 작성합니다. **예시**: - **인수 테스트 시나리오**: - **성공적인 로그인**: 1. 이메일과 유효한 비밀번호를 입력한다. 2. 로그인 버튼을 클릭한다. 3. 대시보드 페이지로 이동한다. - **잘못된 비밀번호**: 1. 이메일과 잘못된 비밀번호를 입력한다. 2. 로그인 버튼을 클릭한다. 3. "잘못된 이메일 또는 비밀번호입니다." 메시지를 확인한다. - **계정 잠금**: 1. 잘못된 비밀번호로 5회 로그인 시도한다. 2. 6번째 로그인 시도에서 "계정이 잠겼습니다. 30분 후에 다시 시도해주세요." 메시지를 확인한다. - **비밀번호 재설정**: 1. 비밀번호 재설정 링크를 클릭한다. 2. 이메일을 입력하고 재설정 요청을 보낸다. 3. 이메일을 통해 재설정 링크를 수신하고, 새로운 비밀번호를 입력하여 비밀번호를 재설정한다. ### 3. 개발 테스크 작성 **목적**: 개발할 작업을 구체화하고, 이를 토대로 작업을 분류 및 우선순위를 정합니다. **예시**: - **개발 테스크 목록**: - **프론트엔드**: - 로그인 페이지 UI 구현 (입력 필드, 버튼, 에러 메시지 표시) - 비밀번호 재설정 페이지 UI 구현 - 대시보드 페이지로의 리디렉션 로직 구현 - **백엔드**: - 사용자 인증 API (`POST /login`) 구현 - 비밀번호 재설정 API (`POST /reset-password`) 구현 - 계정 잠금 로직 구현 - 로그인 시도 기록 로직 구현 - **테스트**: - 유닛 테스트 작성 (각 컴포넌트 및 함수 단위) - 통합 테스트 작성 (API 및 UI 연동 테스트) - 인수 테스트 작성 (전체 플로우 검증) ### 4. 인수 테스트 진행 **목적**: 개발된 기능이 초기 요구사항을 충족하는지 최종적으로 검증합니다. **예시**: - **인수 테스트 실행**: - 모든 인수 테스트 시나리오를 자동화된 테스트 툴을 통해 실행 (예: Selenium, Cypress) - 각 시나리오 별로 기대 결과와 실제 결과를 비교 - 모든 테스트가 성공적으로 통과하면 다음 단계로 진행 ### 5. 릴리즈 **목적**: 최종 제품을 사용자에게 배포합니다. **예시**: - **릴리즈 준비**: - 최종 코드 리뷰 및 승인 - 문서화 완료 (사용자 가이드, API 문서 등) - 최종 QA 테스트 및 버그 수정 - **배포**: - 개발 환경에서 스테이징 환경으로 배포하여 최종 검증 - 스테이징 환경에서 프로덕션 환경으로 배포 - 배포 후 모니터링 및 피드백 수집 이러한 단계를 통해 로그인 페이지 개발을 체계적으로 진행할 수 있습니다. 각 단계는 명확한 목적과 검증 과정을 통해 요구사항을 충족시키는지 확인하고, 최종적으로 안정적인 제품을 릴리즈하는 데 기여합니다.
무턱대고 개발에 들어가기보다는, 이러한 단계를 거쳐서 개발을 진행하면 더욱 안정적이고 효율적인 개발이 가능할 것이다.
Review
- 이제 진짜 새로운 기능 개발에 들어간다!
- 회사에서 현재는 React를 주력으로 하는만큼 틈틈히 RN에 대한 공부를 하면 어떨까 싶다.