3주 동안 진행한 프로젝트 "오채완" 회고록을 시작하겠다.
- 1편에서는 전체적인 서비스 소개와 진행내용 & 결과물을 소개하고,
- 2편에서는 개발하는 과정에서 마주한 문제와 배운 점 등을 작성하였다.
1. 프로젝트 소개: "오채완"
서비스 소개
💡 일상생활에서 쉽게 환경 보호를 실천할 수 있는 방법을 고안했습니다. 지구온난화는 전 세계적인 이슈로, 이산화탄소나 메탄 같은 탄소가스가 대기의 열을 붙잡음으로써 일어나는 온실 효과가 주된 원인입니다. 이로 인해 지구의 평균 기온이 상승하고, 이상기후가 나타나고 있습니다. 원인별 탄소배출량과 연관성을 분석해 본 결과, “채식”을 함으로써 탄소배출 감소에 기여하고자 만든 “오늘 채식 완료"라는 서비스가 탄생하였습니다.
🌱 환경이라는 주제로 프로젝트 기획을 시작하였다. 실생활에서 많은 유저가 서비스를 이용하면서 환경에 기여하고, 나중에 확장성을 고려하고, 수익의 구조가 생길만한 서비스를 기획하고 싶었고, 결론적으로 채식을 통해 포인트를 얻고, 포인트를 사용할 수 있는 농가 쇼핑몰 기능 그리고 랭킹 기능이 있는 서비스를 기획하게 되었다.
🚀 Stacks
- HTML
- CSS
- TailwindCSS
- JavaScript
- React.js
- Node.js
- Express.js
- MySQL
🛠 Tools
- VSCode
- PhotoShop
- Figma
- Git
👥 Collaboration
- GitLab
- Notion
- Discord
구현기능
- 회원가입, 로그인 기능: 사용자의 회원 가입 및 로그인 기능 제공
- 식단 업로드 기능: 비건, 베지테리언 식단 업로드 기능
- 피드 댓글, 대댓글 기능: 식단 피드에서 댓글, 대댓글을 통해 유저들과 소통 기능
- 탄소 배출 감소량에 따른 포인트 부여: 식단 피드 업로드하면 포인트 부여
- 마이페이지 기능:
- 개인 정보, 포인트, 좋아요 등을 확인할 수 있는 마이페이지 기능 제공
- 개인 정보, 포인트, 좋아요 등
- 올린 식단 사진 archive
- 좋아요한 피드 archive
- 개인정보수정 기능: 닉네임, 프로필사진, 자기소개 수정 기능
- 건강 배틀 sns: 포인트 적립 순위 리스트(랭킹) 기능
- Infinite Scroll: 스크롤을 통해 오래된 피드도 볼 수 있게 하여 사용자의 몰입도를 높이기 위한 기능
- 게시물 검색 기능: 검색한 내용과 일치하는 모든 피드들을 볼 수 있는 기능
2. 프로젝트 진행과정
- 데이터셋 정하고 가공하기
어떠한 서비스를 시작할지 결정하기 전, 서비스를 뒷받침할 수 있는 객관적이고 신뢰성 있는 데이터 셋을 찾고 그것을 가공하였다. 서비스를 기획하는 단계에서 가장 중요한 작업이라는 것을 이번 프로젝트를 배웠다. 데이터를 시각화하여 서비스의 내용과 접목시켰을 때, 모두가 납득할 수 있어야 하기 때문이다. 그러기 위해서는 적절하고 충분한 양의 데이터 셋이 필요했다.
처음에는 총 4가지의 주제를 선정하였고, 가장 실질적이고 확장성이 있다고 판단한 "채식장려를 통한 탄소배출량 감소"가 선정되었다.
주제를 정한 후, 서비스의 내용을 뒷받침 해줄 수 있는 객관적인 데이터를 찾아서 가공해 보았다.
이 과정에서, 어려웠던 점은 "이 데이터가 적절한 데이터일까?" 판단하는 부분이었다.
사람들에게 우리의 서비스가 어떤 문제점을 파악하였는지, 어떤 인사이트를 얻어서 무엇을 할것인지에 대해 설득을 할 수 있어야 하는데,
서비스의 주제가 광범위한 내용을 다루는 편이여서 찾아본 데이터셋들이 정확히 우리의 서비스 내용에 핏 하지 않아서 자칫 잘못하면,
서비스내용에 데이터를 억지로 연결시키는 방향으로 갈 수도 있었다.
이러한 이유때문에, 결론적으로 총 2개의 데이터 셋을 찾아, 3개의 그래프를 가공할 수 있었다. (풍부한 데이터를 찾지 못했다...)
- IA 설계 및 프로토타입 제작
"채식장려를 통한 탄소배출량 감소"라는 주제를 정하고 어떤 서비스 내용을 전달할지 간단한 그래프를 그려보고, 구체적인 IA설계와 프로토 타입을 기획하였다.
기획을 완료하고 개발하는 과정 중 팀원들과의 회의와 코치님의 조언을 통해 많은 기능을 만드는 것보다, 하나의 기능을 제대로 개발해 보는 경험을 하고 공부하는 프로젝트가 되었으면 좋겠다는 결론을 내려서, 필수 기능과 서브 기능을 나누었다. 위의 설계도에서 빨간 줄로 그어진 것들이 빠진 기능들이다.
- 미래에 서비스 규모가 커지는 것을 고려해서 확장성 있게 설계하는 것도 좋지만, 현재 기획하고 있는 서비스의 규모를 판단했을 때 오버스펙인 부분을 과감히 제외하는 것도 능력이라는 코치님의 조언을 듣고, 순간 머리가 띵한 깨달음을 얻었다.
항상 제한된 시간과 자원을 가지고 개발을 하기 때문에, 서비스의 본질을 잘 파악하고 분석한 후 기술을 도입해야 하는 것이 좋은 기획이라는 것을 배웠다. 편리한 부가 기능을 많이 개발할수록 좋을 수도 있지만, 구현하는데 시간이 오래 걸려 다른 중요한 서비스의 퀄리티가 떨어질 수도 있기 때문에 가성비? 측면도 고려해야 한다.
- 결과물