🎯 목표
인센티브 기반 커뮤니티 사이트를 만들자!
👩👩👧👦 팀명
HALP ME
( 성을 따서 하나씩 모으니까 HALP 가 되길래 HELP ME가 떠올라서 인센티브 기반 질문 & 답변 사이트를 만들면 어떨까 해서 지었다. )
나의 담당 파트
Back - End 를 담당했다.
서버 구조
기존의 MVC 패턴에서 추후에 리팩토링할 때 편리하자는 마음으로 MVSC 패턴을 택했다.
Model : 데이터베이스
View : 사용자에게 보여지는 화면 ( 클라이언트 , React.js )
Service : Model과 연동되는 서비스 로직
Controller : 사용자에게 요청을 받아서 서비스에 전달하고 서비스에게서 응답을 받아서 사용자에게 전달

프로젝트 구현 화면

메인화면
전체 게시글을 가지고 오는 API 를 사용했다.

특정 게시글 페이지
게시글의 PostId 값을 받아 특정 게시글을 가져오는 API 를 사용했다.

게시글 작성 페이지
제목, 카테고리, 내용을 입력받아 게시글을 작성하는 API 를 사용했다.
원래는 쿠키를 통해서 사용자 정보를 추출하여 DB 에 저장하려고 했는데
OS 차이 문제로 쿠키 생성이 안되는 현상이 있었다.
그래서 query parameter로 직접 Id 를 전달했다.

댓글작성
댓글내용을 입력받고, 사용자 id 를 query parameter로 받아서 처리했다.

댓글 채택
댓글의 CommentId를 받아서 특정 댓글의 상태를 0 -> 1로 변경해주었다.
그리고 스마트컨트랙트와 연동해 HALP 토큰을 지급했다.

마이페이지
가장 많은 API 가 사용되었다.
나의 지갑 정보를 가지고 오는 API
나의 게시글을 가지고 오는 API
나의 NFT 목록을 가지고 오는 API
토큰 전송을 위한 API 가 들어갔다.
좋았던 점,
이번엔 정말 협업을 하는 느낌을 받은게, 프론트 작업을 하시는 분에게 엔드포인트와 요청시 필요한 파라미터들을 API 명세서를 작성해서 전달해드렸다는 점에서 참 좋았다.
아쉬운 점
이번엔 많은 라이브러리를 못써봤고 기술도 많이 못써본것같아서 아쉬움이 많이 들었다.
시간이 부족했던 점도 있지만 학습시간을 너무 길게 가졌던게 문제였던것 같다.
우선 MVSC 구조를 쓰기위해 어떻게하면 코드를 알아보게 작성할지 좀 알아보다가 이틀을 썼고,
Truffle 을 통해 개발을 할 때 노드를 직접 운용하지 않는 이상은 지갑을 맘대로 막 만들수도없고, 전송을 맘대로 막 할 수도 없는 현실을 마주해버렸다.
이더리움 테스트넷(Rinkeby)을 직접 사용해서 개발해보고 싶었는데 노드를 직접 운용하기엔 내 맥북의 저장공간이.. 너무 작아서 현실적으로 불가능해서 Infura를 통해 하려고 했지만 RPC를 지원하는 서비스들에서는 보안상의 이유로 private key를 저장하지 않고 유저 생성조차 지원하지 않는다고 한다. 그래서 실제 테스트넷에 배포를 못하고 개인 네트워크인 Ganache에 배포를 하게 되었다. 이게 왜 안되고 이게 어떤 구조인지 알아가는데에도 이틀이 소모되어 이론의 헛점으로 인해 필요이상의 시간이 소모된것같아 내 자신에게 좀 아쉬운 감이 컸다.
같은 팀원분들 중 한분이 윈도우즈를 사용하시는데, 윈도우 환경에서는 Https 적용 부터해서 cookie를 생성하는 과정까지 A to Z 가 모두 달라서 굉장히 애를 먹었다. Docker를 사용할 줄 알면 참 좋겠지만 사용법을 몰라 좀 많이 막혔다..
다음 프로젝트에서는 반드시 위에 아쉬웠던 점을 다 해결해보겠다.
'B4 Junior' 카테고리의 다른 글
| Image compress, Format convert with Sharp Library (0) | 2023.01.03 |
|---|---|
| 🍞 Image upload ( Toast Editor ) (0) | 2023.01.02 |
| BEB 5기 첫 프로젝트 회고 🧐 (0) | 2022.08.16 |
| 코드스테이츠 블록체인 과정 27일 ~ 32일차 후기 💻 (0) | 2022.06.16 |
| 코드스테이츠 블록체인 과정 26일차 후기 💻 (0) | 2022.06.11 |
백엔드는 못말려
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!