
NFT기반 재능 기부 플랫폼 DOTORE
개발 기간: 2022. 02. 28 ~ 2022. 4. 08
결과
github : https://github.com/jejinmyeong/dotore
특화 프로젝트를 마무리 하였다.

프로젝트의 시작
평소에 블록체인에 관심이 있었고, 요즘 HOT한 NFT 프로젝트를 해보고 싶다는 마음에 NFT프로젝트를 기획하게 되었다.
공통 프로젝트에서 사용하지 못했던 Typescript 적용과 CDD(컴포넌트 주도 개발), 반응형 웹 적용을 목표로 하였다.
React에 어느정도 익숙해졌기에 보다 정확한 react hook의 사용을 하고자 노력을 하였다.
프로젝트를 진행하면서 좋았던 점
1. TypeScript
블록체인 구현 때문에 프론트엔드 파트를 많이 진행하진 못했지만 TypeScript를 프로젝트에 적용할 수 있어서 좋았다. JavaScript에서의 타입에러를 사전에 예방할 수 있었다.
2. 컴포넌트 주도개발
개발 초기부터 컴포넌트 주도 개발을 잘 해보고 싶었다. 저번 공통 프로젝트 때에는 프론트엔드를 처음 하다보니 페이지를 구성하거나 기능 개발하는데에 급급해 컴포넌트 재사용을 하지 못해 중복된 코드가 많았다. 이를 줄이기 위해 StoryBook을 사용하여 컴포넌트 주도개발을 해보고자 하였다.
3. 블록체인
블록체인이라는 기술이 갖는 장점을 알게 되었을 때 부터 블록체인 기술에 관심이 많았고 특히 요즘 HOT한 NFT를 구현해 볼 수 있어서 좋았다.
4. 반응형 웹 적용
다양해진 디바이스를 고려해 플랫폼에 구애받지 않는 웹을 만들고 싶었다. 이번 프로젝트에서 대부분의 페이지에 반응형을 적용할 수 있었던 점이 좋았다.
아쉬운 점
1. 너무나 오래 걸렸던 블록체인 구현
스마트 컨트랙트를 배포하고 web3js ethereum API를 활용한 구현이 너무 오래 걸렸다. 블록체인의 지식이 부족한 상황에서 레퍼런스가 충분하지 않은 기술을 구현하는 것이 쉽지 않았다. 이 과정에서 많은 시간과 인력이 투입되었고 프론트엔드를 한 명이 거의 도맡아 진행하게 되어 너무 아쉬웠다.
2. TypeScript의 올바른 사용
시간이 촉박하다 보니 기능을 구현할 때 Type을 알 수 없으면 새로운 Type을 정의해서 사용하는 것이 아니라 any를 남발해서 사용한 점이 아쉬웠다. 이렇게 되면 타입스크립트를 사용하는 의미가 없다고 생각이 들었고 앞으로 개발할 때는 주의해서 사용해야겠다.
3. 어정쩡한 컴포넌트 주도 개발
컴포넌트 주도개발을 함에 있어서 중요한 점이 프론트엔드 디자인 패턴에 맞게 조직적으로 구성하는 것이 중요하다는 생각이 들었다.
4. 여전히 부족한 react hook 사용
react 의 life cycle의 이해가 부족했던 것인지 hook을 정확하게 사용하지 못한 것 같다. 공통 때도 아쉬운 점이었는데 여전히 아쉬운 점으로 남았다. 공부를 더 해서 내가 만족스러운 코드를 작성할 수 있도록 해야겠다.

다음 프로젝트에서는
1. 컴포넌트 주도 개발
좀 더 개선된 컴포넌트 주도개발을 해보고 싶다.
2. 웹 성능 최적화
기능 구현에만 급급하다보니 성능을 신경쓰기 쉽지 않았다. 성능 까지 고려한 더 좋은 서비스 개발을 위해 노력해야겠다.
3. Next.js와 서버 사이드 렌더링
요즘 많은 기업들이 서버 사이드 렌더링 구현 역량을 요구하고 있는데 아직 까지 정확한 개념이 부족하지만 공부를 해서 다음 프로젝트에서는 서버 사이드 렌덜링과 검색 엔진 최적화를 적용해 보고 싶다.
총평
두 번째 프로젝트인 만큼 더 잘할 수 있었을 것 같은데.. 하는 아쉬움이 많이 남는 프로젝트였다. NFT라는 분야에 한정된 프로젝트를 기획하다 보니 아이디어를 내는 것도 쉽지 않았고 기획과 설계단계에서 시간을 많이 사용하여 공통프로젝트 때보다 오히려 개발 기간이 더 짧다는 느낌이 들었다. 결과는 1등을 하여 최우수상을 수상하였지만 완성도 면에서 아쉬움이 많이 남는 프로젝트 였다. 하지만 새로운 기술 역량을 경험할 수 있었던 좋은 기회였고 팀원들과 프로젝트를 완성할 수 있어서 좋았다. 끝
'PROJECT' 카테고리의 다른 글
React.JS에서 openvidu 사용하기 (1) | 2022.06.21 |
---|---|
OpenVidu 라이브러리 (0) | 2022.06.20 |
DRAWING DREAM 프로젝트 회고 (4) | 2022.02.23 |