Week 0 미니프로젝트 요구사항 정리
1. 인증 기능 추가 및 JWT 사용
- 사용자 기반 인증 기능 구현
- JWT (JSON Web Token) 사용하여 인증 처리
2. 서버 사이드 렌더링 방식 적용
- Flask + Jinja 사용하여 페이지 이동 방식을 서버 사이드 렌더링(SSR) 방식으로 전환
3. 발표 준비
- 발표 시간: 4분 (Q&A 1분 포함, PPT 띄우는 시간도 발표 시간에 포함)
- 기능별 우선순위를 고려하여 정상 작동 여부 확인
기획 발표 자료 준비 : 모두의 메모장 v3
1. 기획 의도
기존 블로그 글의 문제점
작성자 입장
- 학습 기록이 지속되지 않음 → 학습 히트맵(기록 시각화) 기능 제공
- 검색과 정리가 어려움 → 태그, 자동 요약 기능 제공
독자 입장
- 검색과 정리가 어려움
- 각자 블로그, 깃허브, 노션 등 다양한 사이트에서 글을 찾아야 함
- 원본을 다 읽기 어려움 → 요약 기능 제공
해결 방안
- 매일 공부한 내용을 기록하고 학습 히트맵으로 시각화
- 내가 쓴 글을 간편하게 공유 (키워드 기반 요약 제공)
- 댓글과 좋아요 기능 추가하여 사용자 반응 확인 가능
- 관심 있는 키워드 기반으로 관련 블로그 글을 쉽게 탐색 가능 (3줄 요약 활용)
2. 서비스 소개 및 시연
- 전체 흐름 설명: 어떤 서비스인지 개요 제공
- 기획 발표 시: 와이어프레임을 활용하여 설명
- 여러 장의 와이어프레임을 통해 흐름 표현
DB 설계 및 아키텍처 개요
서비스 구성 요소
- 데이터 검증 및 변환
- 데이터 저장 및 조회
- 여러 개의 데이터베이스 호출을 조합하여 하나의 비즈니스 로직 수행
- 복잡한 연산 처리
컨트롤러 역할
- HTTP 요청 처리
- 요청 데이터 수신 후 서비스에 전달
- 서비스로부터 받은 데이터를 JSON 응답 또는 HTML 템플릿 렌더링
- 비즈니스 로직 수행 X
Flask Repository & Service 구조 설계
- Repository: 데이터베이스 관련 처리 (CRUD)
- Service: 비즈니스 로직 처리
- Controller: 요청을 받아 Service로 전달하고 응답 반환
JWT 인증 필요 영역
- JWT Access Token, Refresh Token 발급
- Access Token 서버 저장
- Refresh Token 클라이언트 저장
- Access Token 만료 시, Refresh Token을 이용한 재발급 처리
- Refresh Token 검증 후 새로운 Access Token 생성 및 전달
What I Did (이번 주 작업 내용)
- MyPage 구현
- Web Crawling 기능 추가
- Heatmap (잔디) 기능 개발
- Likes Increment (좋아요 증가 기능 구현)
What I Learned (이번 주 학습 내용)
Git 사용법 정리
- 원격 저장소 클론
git clone "git link"
- 원격 브랜치 가져오기
git fetch origin branch명
- 특정 브랜치로 이동
git checkout branch명
- 파일 추가 및 커밋
git add 파일명 git commit -m "feat: 로그인 기능 구현"
- 변경 사항 푸시
git push origin branch명
- 최신 코드 가져오기 및 병합
git pull origin branch명
추가 학습 과제
- JWT 토큰 인증 유지 방법
- 데코레이터 활용
- Access Token & Refresh Token 관리
- Controller - Service - Repository 간의 관계
- 역할과 책임 분리
- 데이터 흐름 최적화
- 웹 크롤링에서 Selenium 사용법
- 노션과 같은 JavaScript 렌더링 페이지 크롤링 시도 후 실패 → 추가 연구 필요
'Today I Learned' 카테고리의 다른 글
[크래프톤정글] Week0 : 입소 3일차 TIL (3/12) (0) | 2025.03.13 |
---|