개인 프로젝트 Calming Signal 회고

MinWoo Park·2021년 5월 2일
1

Retrospect

목록 보기
9/11
post-thumbnail

🏠 Homepage
📝 Notion 문서
💻 GitHub

개인 프로젝트 Calming Signal에 대한 회고를 하며 앞으로 어떻게 성장해 나갈지 고민하는 시간을 가져보겠습니다.


아이디어 선정 ✍️

'반려견과 소통할 수 있다면 얼마나 좋을까?'

하지만 “이미 많은 반려견 교육 기관이 있지 않나?”라는 의문이 드실 수 있습니다.

맞습니다. 이미 많은 반려견 교육 기관이 있습니다.

그럼에도 calming signal을 기획한 이유는 다음과 같습니다.

첫 째, 보호자와 반려견의 관계 형성은 타인에게서 비롯될 수 없습니다.

전문가의 도움으로 반려견의 행동을 교정할 수 있습니다.
하지만 행동 교정이 끝난 이후가 진짜 문제입니다.
기본적인 반려견의 카밍 시그널을 알지 못한다면 교정된 상태를 지속할 수 없고 근본적인 문제를 해결할 수 없습니다.
반려견을 이해하는 첫 걸음은 카밍 시그널을 이해하는 것입니다.

둘 째, 사람과 마찬가지로 반려견에게도 교육이 효과적인 시기가 있습니다.

반려견의 문제 행동이 나타났을 때는 이미 습관화가 진행 되었기때문에 전문가의 행동 교정으로도 쉽게 변화시키지 못합니다.
이러한 이유로 가족으로 맞이하기 전부터 카밍시그널에 대한 이해가 필요합니다.
교육을 하기 위해선 반려견과 소통을 할 줄 알아야 합니다.

셋 째, 교육기관의 도움을 필요로 하지만 현실적으로 어려운 경우가 있습니다.

부담스러운 금액 혹은 이미 유명 훈련사들은 예약이 수 개월 전 부터 가득 찬 상태입니다.


스택 🔧

프론트엔드에서 리액트와 리덕스를 사용했습니다.
리덕스를 사용한 이유는 리액트를 통해서만 상태 관리를 할 때 상태 끌어올리는 점이 번거롭고 비효율적으로 느꼈기 때문에 상태 관리 라이브러리를 사용해야 겠다고 생각했습니다.

후보로는 리덕스, 모벡스가 있었는데 리덕스를 선택한 이유는 다음과 같습니다.
리덕스가 가파른 러닝커브가 있다고 하지만 모벡스에 비해 많은 유저들을 확보하고 있다는 점이 신뢰할 수 있었습니다.
전 프로젝트에서 리덕스를 사용했는데 굉장한 편리함을 느꼈고 아직까지 아쉬운 점을 느끼지 못했기에 한 번 더 사용해 보기로 했습니다.

백엔드에서는 node, express, MySQL, sequelize를 사용했습니다.
ORM을 통해 자바스크립트로 쿼리문을 작성할 수 있는 점이 편리하여 사용했습니다.
그리고 이전 첫 번째 프로젝트에서 시퀄라이즈를 처음 사용하면서 associate를 도전했지만 실패하여 SQL문과 워크벤치를 통해 작업했던 기억이 있습니다.
다시 한 번 시퀄라이즈로 associate를 하기 위해서 사용하기도 했습니다.


고민 🤔

'어떻게 하면 반려견주들을 위한 커뮤니티를 만들 수 있을까?'

게시판을 통한 소통

저는 먼저 유저들이 카밍 시그널 웹에 머무를 이유에 대해서 고민했습니다.
왜냐하면 특정 카밍 시그널이 궁금하면 구글링 한 번으로 쉽게 정보를 얻을 수 있는데 굳이 번거롭게 웹에 들어와서 정보를 찾을 필요가 없다고 생각했기 때문입니다.

그래서 저는 단순히 일방적으로 정보를 제공하는 웹 서비스가 아닌,
서비스와 유저의 소통, 그리고 유저와 유저간의 소통을 통해 더 많은 정보가 공유되길 원했습니다.

그래서 게시판을 만들어 유저들이 자유롭게 글을 쓰고 소통하는 공간을 만들었습니다.

초기인 지금은 자유 게시판, 요청 게시판, 소형견, 중형견, 대형견으로 총 5개의 게시판을 만들었습니다.

자유 게시판을 통해서는 반려견에 대한 정보 이외에도 유저들의 자유로운 소통을 통해 카밍 시그널 웹에 더 많은 시간 머무를 수 있도록 유도하였습니다.

요청 게시판은 유저들의 목소리를 귀 담아 듣고 개선해 나가기 위한 장소입니다.
특정 카밍 시그널에 대한 정보를 추가 요청을 하거나, 서비스를 이용하면서 겪는 문제점, 좋은 점등을 얘기할 수 있는 공간입니다.

소,중,대형견으로 구분된 게시판은 반려견의 크기에 따라 특징적인 부분이 다르기 때문에 구분하여 게시판을 만든다면 조금 더 공감하는 대화를 할 수 있을 거라고 생각했습니다.


반려견 체감 온도 정보 제공

사람들이 매일 사용하는 어플 중 하나는 날씨 어플일 겁니다.
특히 반려견주들은 매일 산책을 하기 때문에 더 자주 볼 거라고 생각했습니다.

하지만 보통 날씨 어플은 사람을 기준으로만 정보를 제공하기 때문에 오늘의 온도가 반려견이 산책하기 적정한 온도인지 잘 모르는 경우가 있습니다.

그래서 날씨를 보면서 반려견을 산책시키기 적당한 날씨인지도 확인할 수 있도록 반려견 체감 온도에 대한 정보를 같이 제공했습니다.


Sequelize associate 도입 🔥

'ORM을 통해 편리한 쿼리문을 작성'

제가 이번 프로젝트에서 꼭 시도하고 성공하고 싶었던 것은 Sequelize를 통해 associate를 하여 테이블간의 관계를 설정하는 것이였습니다.

첫 번째 프로젝트에 실패했던 경험이 있기 때문에 왜 실패했는지를 분석하고 다시 시도하는 시간을 가졌습니다.

이에 대한 정리는 간단하게 TIL로 정리하였습니다.
TIL - Sequelize associate


프로젝트의 결과물 📺

  • Landing Page

  • Calming Signal Page

  • Sign in / Sign up Page

  • MyPage

  • Board Page(User)

  • Board Page(Guest)

  • Weather Page


아쉬운 점 🥲

유저의 접속 시간을 늘리기 위해서 게시판과 날씨 정보를 제공하지만 해당 서비스의 본질은 카밍 시그널에 대한 정보를 제공하는 서비스입니다.

그럼에도 카밍 시그널에 대한 정보가 아직 부족한 점이 아쉽습니다.

이는 지속적으로 카밍 시그널을 공부하며 프로젝트를 개선해 나갈 때 마다 정보도 업데이트 하는 식으로 유지보수를 해 나가야 겠습니다.


앞으로는 어떤 개발자? 🏃‍♂️

이번 프로젝트를 통해서는 혼자서 모든 걸 작업할 수 있었습니다.
이를 통해 많은 복습과 자신감을 얻을 수 있었습니다.
이제는 정말 머릿속에 있는 상상을 실제로 구현할 수 있게 되었습니다.
앞으로는 새로운 아이디어가 생기면 혼자서 작게부터 시작해서 서비스를 만들어 보는 실천적인 개발자가 되려고 노력해야 겠습니다.

이번에 머릿속에 있는 아이디어를 실제로 구현을 해 보니 프로젝트를 진행하면서 더 많은 아이디어들이 생기고 정리가 되는 느낌을 받았습니다.

그리고 최근 TypeScript와 Nest.js를 배웠는데 새로운 스택들을 프로젝트에 적용하면 공부하는 것도 좋은 공부 방법이기에 메인 프로젝트를 몇 개 잡고 나머지는 사이드 프로젝트로 다작을 하며 공부하면 지루하지 않고 흥미롭게 공부할 수 있을 거 같습니다.

머릿속의 아이디어를 밖으로 꺼내는 개발자가 되야겠습니다.

profile
물음표를 느낌표로 바꾸는 순간을 사랑하는 개발자입니다.

0개의 댓글