프로젝트 깃허브 링크
프로젝트 SA, API
심플한 SNS를 만들었다..!
시작 단계
- 와이어프레임 작성
- 백엔드보다 프론트엔드에 더 유용했지만, 팀원들과 같이 와이어프레임을 만드니까 내가 만드는 기능이 어디에 들어가는지 정확하게 알 수 있었다.
- API 작성
- RESTful API를 자세하게 작성해야하는 것은 튜터님들에게 항상 강요 받았지만, 이번 프로젝트를 통해 왜 중요한지 이해했다. API를 작성하니까 페이지 별로 무슨 기능이 들어가는지 쉽게 파악할 수 있었고, 할 일이 끝나면 다음으로 구현할 기능을 한 눈에 볼 수 있고, 받거나 주는 변수를 쉽게 볼 수 있었다.
- 데이터베이스 설계
- MySQL 기반으로 데이터베이스를 설계했다
- 데이터베이스를 팀원들 개인으로 로컬호스트 안에 만들었다보니 데이터베이스를 통일하는 것이 매우 중요했다. 물론 데이터베이스가 바뀌는 부분도 있었지만, 바꾸는게 까다로워서 SQL은 왜 처음부터 설계를 완벽하게 해야하는 점을 깨달았다.
- 필수 기능 파악
- 변수 이름 방식 정하기
- CamelCase 쓰기
- 업무 부담
기술 스택
- 프론트엔드: HTML, CSS, Bootstrap
- 백엔드: Flask (Python), Ajax (Javascript)
- 협업툴: Github, Sourcetree, Notion, excalidraw
- DB: MySQL
내가 담당한 기능
- CRUD
- 피드 불러오기, 저장하기, 수정하기, 삭제하기 (GET, POST, PUT, DELETE). 미니프로젝트 때 구현해본 기능들이여서 다시 구현하기 수월했다.
- 외부 API 사용
- 날씨 API: Open Weather Map API와 브라우저 위치 기능을 사용해서 사용자 IP에 따른 위치의 날씨 (온도, 체감온도, 최저온도, 최고온도,
- 이미지 불러오기: 랜덤으로 생성되는 르탄이 URL을 가져와서 프로필 사진으로 쓰게 됐다. URL를 byte 객체로 바꿔서 MySQL에 blob 형태로 저장하고, 불러올 때는 byte를 Base64로 변환해서 img src로 썼다.
다른 멤버가 구현해서 조금 더 공부해볼만한 기능들
- Pagination
- 로그인 세션
- 비밀번호 암호화