RESTful API에서 필요한 것(게시판에서만)
본문
자게 올렸더니 별 대답이 없네요. https://sir.kr/cm_free/1658010
자게에 글도 별도 없고, 답변도 없고, QA로 옮겨서 다시 고수님들의 의견 청취합니다.
게시판 구현은 다음과 같이 했습니다. (R이 되면, C, U, D는 금방 될 것 같은 생각에. https://sir.kr/so_restful/367
현재 게시판에서 구현중인 것은 아래 옵션입니다.
게시판에서만 그외에 무엇이 필요할까요? (프런트엔드를 구현해 보신분들 중에서 필요한 것)
그누보드 순정엔 없지만, 태그, 신고 기능등은 생각중입니다.
답변 4
아! 그런 의도로 올리셨군요~ 저는 보고 그냥 다른분이 많이 올리실줄알고 눈팅중이었어요 ㅋㅋㅋ
게시판이외에 다른거는 그냥 흔한건데 연혁 게시판? 이게 따로 없어서.. 그냥 게시판으로 커스텀 해야되는 부분이 있어서.. 불편하고.. 컨텐츠 관리도 좀 인삿말, 개요, 찾아오는길 등 이런거를 다양하게 관리 할 수 있게... 하나 좀 있었으면 좋겠어요
이외에는 예약기능 같은거? 참고해보세요 ㅎㅎ
공지여부도 필요하겠네요..
uri를 보고 드리는 말씀인데 제 생각은
https://node-api.javapad.com/api/v1/free/58
가
https://node-api.javapad.com/api/v1/board/free/58 (or bbs)
으로 되어야 할것 같다는 개인적인 생각입니다.
url을 통해서 free라는 게시판의 58게시물이구나 라고 알수 있게요
한번에 다 게시판의 옵션을 다 불러오면 속도나 처리방법에 문제가 있을수있으니
기본적으로는 테이블별로 정보를 가져오는 형태로 API를 구성하신후
조합형으로 API를 혼합해서 리턴하는 형태로 하시는게 좋을것같습니다.
예를들어
게시글 API - 테이블의 정보
답글 API <- 게시글 API에 답글이 존재할경우
댓글 API <- 게시글 API호출시 댓글이 존재할경우.. 관련내용
첨부파일 API < -- 파일의 정보만 호출하는 형태로 해놓고
게시글 본문에 삽입된 이미지 호출 API와는 별개로 해놔야겠죠
이외에 리스트API에서는 공지목록 API 와 추천/조회수 같은 정보를 라이브러리로 각 API에서 같이 사용하게 하는게 좋을것 같구요
메인화면에 노출할 최신글이라던지, 위젯형태의 특정한 글을 묶어서 가져오는 구조는 별도로 만들어야겟죠
g5_board는 게시판들 정보이듯
g5_write_free 같이 free 게시판의 정보를 토대로 가져오는 내용들은
가급적 기본형을 위주로 만드시고
확장형은 기본형 + 옵션값호출 구조로 별도 api를 구성하시면 좋을것 같다는 생각입니다.
글쓰기는 옵션에따라 게시글, 댓글, 답글 전부다 가능한 구조이니
하나를 가지고 확장하는게 좋을것같고
첨부파일이 존재하면 별도 API를 호출해서 값을 전달하는 패턴맞다고 봅니다.
요즘 게시판을 만들고 있는데 옵션이 갈수록 늘고 있어서 어디까지 늘어날까하고
필드를 계속 추가하고 있습니다 물론 나중에 최적화와 분류를하겠지만
하나씩 추가 해 보니 아래와 같은 분류가 생겨나게 되었습니다
글관련 코드, 글쓴이와 관련된 코드, 게시글의 권한 설정과 관련된 코드,
코멘트 혹은 답글에 관한 2차 생산된 글에 관한 코드,
글읽은사람 좋아요와 같은 글에 대한 기록 수치용 코드,
파일업로드에 관련된 코드, 각종 로그에 관한 코드, 기타 기능에 관한 분류 코드등으로 나뉘더군요
보통 이게 생각날때 마다 추가하다 보니 모두가 섞여 있는데
이것을 차례대로 필드를 정리해서 순서대로 넣는다면
후에 분리하거나 테이블 join할 때도 용이할거 같습니다
서너개의 필드만 필요한데 50여개의 필드가 묶여 있는 테이블을 가져다 쓰는 것 보다는 나을듯 해서 입니다 원본의 그누보드용 글 테이블을 가져다 사용한다면 이 부분에 대한 생각은 좀 더 해야할 듯 합니다 원본 디비 테이블을 그냥 사용할지 추가하거나 혹은 다른 테이블을 만들지
그리고 기본으로 로컬 언어에 대한 지원이 확실히 되어야할 거 같습니다
즉 한국 환경뿐 아니라 미국이나 유럽 중동 환경에서도 쓸수 있도록
나라별 환경 설정이 필요할거 같습니다
워드 프레스 마저도 완벽히 지원할려면 여러번의 손을 타야 한다고 알고 있습니다
아마 이런 저런 기능 넣는거 보다도 환경을 능숙하게 탈수 있다면
기본이 잡혀 있으므로 좀더 빨리 발전하리라 봅니다
기능을 덧붙이는 건 시간이 걸려서 그렇지, 문제가 되지는 않을거라 생각합니다
보안이 겸비된 기본 기능을 기본이 되게 자리 잡게 하는 것이
제일 힘든 작업인거 같습니다.
그 만큼 생각을 바닥 끝까지 해야하니
그리고 하나 더 첨언 하자면
잘 되었을때 어떤 모양의 결과물이 되어 나오는지에 대한 스케치가 있어야할 듯 합니다
아무리 좋은것이라 해도 무엇을 만드는지 무엇을 해야하는지에 대한
접근자의 올바른 인지가 되어 있지 않다면 좋은 호응을 끄집어 내기가 힘들듯 합니다
api로 호출된 데이터뿐 아니라
이것을 어떻게 적용하는지에 대한 간단한 html상으로라도 견본이 될만한 예시가 존재해야할 듯 합니다
그리고 많은 개발자들이 공감하듯
이쁜 겉포장의 결과물이 그안에 담겨진 내용을 압도할 때가 많습니다
도출된 결과물을 잘 포장할 디자인이나 홍보 방법 또한 생각해야할 듯 합니다
잘 만들어진 결과물이라면 여기 그누보드 공홈뿐 아니라
밖에서 홀로서기를 해도 설수 있어야된다고 생각합니다
마젠토님이 주축이 되어서 누구 누구와 협업해서 어느정도 사이즈를 키울까에 대한 생각도
바탕엔 있어야 된다고 생각합니다
여기엔 개발자만이 아닌 협업을 제대로 할수 있도록 백엔드 개발자, 프론트엔드 개발자, 기획자, 웹 디자이너등이 기본으로 팀구성이 되어야할거 같습니다
만약 혼자 진행을 하신다면 저 처럼 시간이 약이다하고 끈기 있게 하시는 수밖에는 없을듯 합니다
덧 붙여 열심히 하시는 마젠토님을 응원합니다 : )