Flask Board project

Posted by : at

Category : project


프로젝트 사이트 링크 🌌

Flask Board

Git repo


어떤 프로젝트인가? 🤔

Python으로 만든 간단한 게시판 프로젝트입니다. Back end는 python의 flask 프레임워크를 사용하였고 DB는 SQLite를 사용했습니다. Front end는 javascript, HTML, CSS를 사용했습니다. 이 프로젝트는 저 혼자 만들었으며, 2021년 10월 12일부터 시작해 2021년 11월 3일에 마무리되었습니다. 일반적인 커뮤니티 사이트들에 구현된 기능들을 최대한 구현해 보았습니다. 부족해 보일 수 있는 프로젝트이지만 재밌게 봐주세요.😊


왜 만들었는가? 🤔

솔직하게 말하면 포트폴리오 용으로 만들었습니다. 그동안 여러 프로젝트를 만들어보았어야 했는데, 그러질 않아 다른 분들께 제 역량을 어필하기가 매우 어려웠습니다. 그래서 저는 이 프로젝트를 제작하기로 결심했습니다. 하지만, 제대로 된 절차 없이 부랴부랴 만들어서 많이 부족해 보일 수 있습니다.


DB 🏟

DB는 5개의 Table로 심플하게 구성돼있습니다. User 테이블은 회원 정보 테이블, Article은 글 정보 테이블, Comment는 댓글 정보 테이블, Hit_history는 추천 정보 테이블, Image_files는 사진 정보 테이블입니다.



Article_id FK들은 글이 없어지면 필요가 없는 필드가 되기 때문에 CASECADE로 설계하였고, User_id FK들은 유저가 사라져도 글과 댓글은 볼 수 있게 하고 싶어서 SET NULL로 설계해였습니다.


API 🚀

API 주소 요청 이름 설명
/member/join/request POST 회원가입 사이트 회원가입을 위한 API.
/member/login/request POST 로그인 로그인을 위한 API.
/member/logout/request POST 로그아웃 로그아웃을 위한 API.
/member/update/request POST 회원 정보 수정 회원 정보 수정을 위한 API.
/member/delete/request POST 회원 탈퇴 회원 탈퇴를 위한 API.
/board/write_submit POST 글 작성 글 작성을 위한 API. 글 작성 요청은 5초 안에 연속으로 할 수 없습니다.
/article/get GET 글 가져오기 글을 가져오는 API. aid에 해당하는 글을 가져옵니다.
/board/update_submit POST 글 수정 글을 수정하는 API.


Flask board에서 구현된 API들 중 일부입니다. 부랴부랴 만들어서 그런지 API 주소와 요청들이 좀 지저분합니다. 그래도 커뮤니티 사이트들에 구현된 기능들을 제 나름대로 비슷하게 흉내 내보았습니다.


UI 🗺

프로젝트를 위해 가장 먼저 손그림으로 구상해 본 UI입니다.


그림을 기반으로 카카오의 OVEN을 이용해 프로토타입을 만들었습니다. 이곳에서 직접 시연해 보실 수 있습니다.

최종 완성된 Flask board의 UI입니다. oven으로 만든 UI와 비슷하게 만들었습니다. 친구들이 테스트를 도와줬었는데 다행히 알려주지 않아도 게시판의 기능들을 제가 의도한 방향대로 수행해 주었습니다.


호스팅 🥳

릴리즈는 python 프로그램을 전문으로 호스팅 해주는 PythonAnywhere란 사이트를 통해 호스팅 하였습니다. 호스팅 된 프로젝트의 링크는 이곳입니다. 사진 업로드는 pythonanywhere 무료 플랜의 제한된 용량과 관리의 용이함의 이유 (이용하는 분은 없지만 위험한 사진을 올리는 분이 나타날 수도 있기에😅)로 막아두었습니다.


후기 ❤

어찌어찌 완성되었고 호스팅도 되었지만, 아쉬움이 남는 프로젝트입니다. Good 프로그래머라면 Actor 정의와 use case 분석, UML로 시작해 테스트 코드 같은 것들로 철저히 만들었어야 하는데 너무 부랴부랴 만들었는지 까먹고 말았습니다.😥 서버를 만드는 중에도DB를 여러러 번번 갈아엎고 Front도 자주 바꾸고 하나의 Python 파일에 많은 걸 담아버리고… 어찌찌보면 면면 Bad 프로그래머 같은 행위를너무 많이이 한한 것같습니다. 그러다다 보니니 간단한 프로젝트임에도 한 달 정도로 좀 길게 걸린 것 같습니다. 그래도 이번 프로젝트는 헛된 것이 아닌 넘어지면서 배울 수 있는 경험이었다고 생각합니다. 역시프로그래밍은 제대로 된된 분석과 테스트를 준비하는 것으로 시작해야 함을 배울 수 있었습니다.



About Hoseop Lee
Hoseop Lee

성장을 위해 노력하는 프로그래머

Email : ghtjq3909@naver.com

Website : https://velog.io/@fpem123

About Hoseop Lee

I am a programmer who wants to become a person who makes programs that users can enjoy. 😊

Categories
Useful Links