게시물 리스트, 게시물 보기, 글쓰기 등에서의 문제 정보
게시물 리스트, 게시물 보기, 글쓰기 등에서의 문제본문
단순히 메뉴 데이터를 불러오거나 하는 부분은 그누보드 API에선 크게 문제 없으나
글쓰기, 글 수정, 리스트, 글 보기에서는 여러가지 문제가 생깁니다
현재 그누보드는 $config, $board, $member, $is_guest, $is_member, $is_admin, $group 값에 의해 레이아웃이 유동적으로 변하는 부분이 있습니다.
그리고 이러한 부분들은 파일이 나뉘어져있다고는 하나 board.php에서 처리되기도, list.php에서도 처리되기도 하고
또 실제로 보여지는 부분인 list.view.skin 등의 파일에서도 처리가 되어집니다.
리액트 뷰같은 프론트앤드에서는 이러한 값을 유동적으로 받아 처리하기 어려운 부분이 있지만 해당값의 변동에 의해 출력되는 값이 달라지는걸 무시하기는 힘듭니다.
삭제 이벤트 검색 등 새로운 요청이 발생할시에는 백앤드에서 권한 체크를 하면되지만 단순한 레이아웃요청시에도 이러한 권한에 따라 보여줘야할 값이 달라지는것이 개발 할 때 가장 번거로운 부분입니다.
대표적으로 현재 구조에서 프론트앤드와 백앤드를 구분할때 번거로운것들이
캡챠, ip 보이기, 닉네임보이기, 추천, 비추천 설정 등입니다
파일용량제한이나 금지어 등은 요청을 보냈을때 안된다고 리턴 해주면 충분하지만
해당 부분들은 설정에 따라 값을 유동적으로 리턴해줄것이냐, 아니면 그냥 다 전달해주고 프론트앤드에서 해당 설정값을 반영할것이냐라는 문제가 생깁니다.
유동적으로 API에서 다 걸러줘서 건네준다면 백앤드 코딩도 코딩이지만, 프론트앤드쪽에서도 마찬가지로 상황에 따라 오거나 오지 않는 데이터에 대해 예외처리를 해야하므로 귀찮아지고,
좀 더 편하자고 다 전달해주고 설정값에 따라 레이아웃을 감추거나 하는것도 개발자도구의 네트워크탭에서 데이터가 다 드러나버리기에 보안상 큰 문제가 생깁니다.
특히 그누보드에서 get_member를 활용하는 커스텀스킨이나 부분이 많은데 이대로 API구조에서 사용한다면 해당 회원을 조회하는경우 프론트앤드로 가려봐야 개발자 키면 바로모든 개인정보를 드러내는 형태가 되어버립니다.
이러한 자잘한 문제는 직접 부딪히지 않으면 어떻게 처리할지 상상만으로는 어렵기 때문에 개인적으로 프론트쪽 개발을 최근에는 좀 더 하고 있습니다.
이러한 부분이 귀찮아서 vue2로 그냥 개발할때는 common.php를 include하고 대충 코딩했습니다만.
아직 백앤드쪽도 많이 남았지만, API부분 다 개발해봐야 결국 프론트앤드쪽에서 요청데이터를 보내면서 생기는 문제 레이아웃 처리 문제등 도 있고
백앤드도 모든 부분에서 하나하나 손봐야하는 경우가 생기고 API 개발에 어느정도 틀을 만들었기 때문에 프론트와 백앤드의 작업을 맞춰나가려 합니다.
하지만 vue3로만 개발하려 했으나 개인사정 등 여러가지 상황이 겹쳐
react vue3 둘 다 같은 레이아웃으로 개발 중이며 그에 따라 개발속도는 더욱 더 늦어지고 있네요.
개발된 프론트 예제소스만 봐도 구조 파악이 쉽게 모두 typescript로 작업 중입니다
덕분에 언제 완성될지는 전혀 감이 안잡히네요
2
댓글 2개

