'블렉스 이야기' 시리즈포스트 임시 저장

배진오

@baealex

소비적인 일보단 생산적인 일을 좋아합니다.

이 블로그는 정말 짜증나는게 포스트가 임시 저장이 안된다는 점이 매우 불편하다. 솔직히 지금까진 큰 무리없이 비공개 기능을 활용해서 어찌저찌 여차저차 써왔지만 임시 포스트 저장이라는 기능을 만들어 달라는 요청을 받아들여 해당 기능에 대한 구상과 DB작업은 끝냈음에도 불구하고 일하고 오면 피곤하다는 핑계로 계속해서 미루고 있다. 이번 주말에 만들어버릴 생각으로 계획 좀 해놓으려고 한다.


소설을 써보자

주말에 작업을 끝내버릴 수 있는 희망이 있는게 이미 데이터베이스 작업은 마무리했고 주말에 백프론트만 작업하면 된다. 우선 데이터베이스는 아래 시뮬레이션을 기반으로 구성했다.

  1. 사용자가 글을 작성한다.
  2. 뒤로가기 버튼대신 임시저장 버튼을 만든다.
  3. 임시저장 버튼을 누른다.
  4. 제목과 본문의 상태를 토큰으로 묶어서 저장한다.

  1. 사용자가 글쓰기 버튼을 누른다.
  2. 임시저장 포스트의 목록을 보여주고 새글을 쓸것인지 임시저장 글을 쓸 것인지 선택한다.
  3. 임시저장 포스트는 비동기로 호출하여 제목을 나열하고 고유의 토큰 값을 가지고 있는다.
  4. posts write에 토큰 값을 전송한다. 토큰 값이 있으면 해당 토큰 값의 내용을 불러와 덮혀 씌운다.
  • 사용자가 글을 작성한다.
    • 사용자가 글을 임시저장한다. => 가지고 있던 토큰의 임시저장 포스트에 상태를 저장한다.
    • 사용자가 글을 발행한다. => 가지고 있던 토큰의 임시저장 포스트를 삭제한다.

위와같은 시뮬레이션을 상상하며 필요한건 제목, 본문, 태그, 토큰 필드 정도? 임시 저장이니까 굳이 섬네일이나 설정 상태까지 저장하고 있을 필요는 없을 것 같았다. 차후에 프리미엄 유저에 한해(?) 실시간 저장까지... 🤗


작업해야 할 것

  • (프론트) 뒤로가기 대신 임시저장 버튼 만들기
  • (백엔드) 임시 포스트 생성 작업하기 (POST 토큰, 제목, 본문, 태그, 날짜[timezone.now])
  • (백엔드) 임시저장 목록 뿌려주기 (GET get=list 토큰, 제목, 날짜[timesince])
  • (프론트) 임시저장 목록 가져오기 (제목, 날짜[timesince] 출력)
  • (백엔드) 임시저장 포스트 던져주기 (GET get=detail 토큰, 제목, 본문, 태그)
    • 비동기? or 정적?
    • 정적으로 하려면 템플릿 또 만들어야하니 비동기로 합시다...
    • 잠깐 이부분 구조가 좀 이상해 질 것 같은데?
    • 임시 저장 목록을 누른다.
    • 글쓰기 화면으로 넘어간다. 파라미터 가지고 넘어가겠지?
    • 파라미터가 있으면 서버에서 자바스크립트 영역 만들어주면 되잖...?
    • 굳이 프론트에서 파라미터 체크해서 가져오는 의미가 있나?
    • 굳이굳이 가독성 망치지말고 API 형식으로 만들자...
  • (프론트) 토큰이 있는 상태에서 저장하면 PUT으로 요청
  • (백엔드) 임시 포스트 수정 작업하기 (PUT => if 토큰 ? 제목, 본문, 태그, 날짜[timezone.now])
  • (백엔드) 글 발행시 토큰 읽어서 임시 포스트 삭제 (POST => if 토큰 ? delete())

※ 백엔드 작업에선 생성자와 요청자를 지속적으로 비교할 것
※ 프론트 작업에선 디자인 예쁘게 뽑아낼 것


2020-03-29

내가 구상하던 디자인으로 뽑아내긴 했는데 막상 구현하고보니 좀 과한 느낌?... 여하지간 테스트 중에는 큰 문제없이 사용이 가능하여 실제 서비스에 적용하였다.

'블렉스 이야기' 시리즈

블렉스는 제가 애정을 가지고 개발하는 하나의 취미이자 한명의 자식(?)이며 처음으로 서비스를 시작한 프로젝트입니다. 혼자서 풀사이클 개발을 하다보니 부족한 점이 많을 수 있지만 부족한 점은 채워나가면 된다고 생각합니다. 이곳은 블렉스의 부족한 점을 채워나가는 모습을 그려놓은 시리즈입니다.
hyeon
8개월, 1주전

잘보고있습니다 계속 좋은 블렉스로 발전하길 응원해요 👊

baealex
8개월, 1주전

응원 정말 감사합니다! @hyeon님 덕분에 힘내서 개발할 수 있을 것 같아요 😁

댓글을 작성하기 위해 로그인이 필요합니다.