개인 메모장 플랫폼 - 2. 메모 보드 생성 페이지

rzglitch·2024년 5월 31일
0
post-thumbnail

지난 시간에 스택을 설명했다.

이번에는 이 글을 작성하는 시점까지 작업한 내용을 정리했다.

소스 코드

https://github.com/rzglitch/fastrunner

기본 구조는 gurkanakdeniz/example-flask-crud 에서 대충 가져왔고, 패키지를 업데이트 했다.

문법을 Flask 3.x와 SQLAlchemy 2.x 스타일로 교정하고, route, form, service, query 별로 분리했다.

메모 보드 생성 페이지

메모를 모아놓는 공간을 'Board'라는 명칭을 사용하였다.

한국의 웹 환경에서 Board라고 하면 보통 HTML 테이블 형식의 게시판을 뜻하기도 한다.

폴더나 메모공간 같은 명칭도 생각해 봤지만, 뭔가를 꽂아놓는 판이라는 의미의 게시판이 익숙하기 때문에 Board로 정했다.

Form 작성

URL: /board/create

Tachyons Css에서 제공하는 컴포넌트를 사용했다.

기능 구현을 완료하지 못했기 때문에 UI의 틀만 짜놓기 위해서이다.

Flask-WTF를 사용해 폼을 작성한다. Validation을 지원해서 편리하다.

서비스 로직

  • 게시판 이름으로 게시판이 존재하는지 검사
  • 게시판이 존재하지 않다면 BoardQuery의 게시판 생성 쿼리 실행

간단하게 작성한 기본 로직이다. 이후에 더 추가될 확률이 높다.

DB에 기록된 모습

보드 목록

URL: /board/<string:name>

Entry의 parent가 입력받은 name과 같은 메모의 목록를 띄운다.

지금은 구현을 위해 한국형 게시판처럼 테이블 형식이지만, 메모장답게 Google Keep과 같은 형식의 UI로 변경하기로 했다.

서비스 로직

  • 검색 로직은 미구현
  • 게시판 이름으로 게시판이 존재하는지 검사
  • 게시판이 존재한다면 entry_offset을 이용해 특정 id부터 20개까지의 목록을 출력

리밋 카운트는 이후 조정할 수 있음.

마치며

확실히 CRUD는 손이 많이 가는 작업이다.

일을 효율적으로 하기 위한 툴을 만들기 위해 고된 작업이 필요하다.

하지만 나중에는 CRUD와 같은 잡일을 편하게 구현하는 라이브러리가 나오거나, 요즘 핫한 AI로 대체 가능할 거라 믿는다.

다음에 계속.

0개의 댓글