이 프로젝트는 어떻게 만드셨어요? #7 -웰시코딩

DevFoliOh·2021년 12월 3일
2
post-thumbnail

안녕하세요. DevFoliOh 입니다.
DevFoliOh는 개발자들의 토이프로젝트 모아보기 서비스입니다. 이곳에 매주 새로운 프로젝트를 소개하고 있습니다.

🛎 메일로 새로운 프로젝트 알람 받기 🛎
🔍 좋은 프로젝트는 널리 공유해요! 소개하고 싶은 프로젝트를 여기에 공유해주세요 🔍

🎤 개발자 인터뷰 시리즈

이 프로젝트는 어떻게 만들었을까? 혹시 궁금했던적 없나요?
DevFoliOh!의 <개발자 인터뷰 시리즈>는 저희 사이트에 소개된 프로젝트의 개발자를 직접 인터뷰해서 프로젝트를 어떻게 만들었고, 어떤 어려움이 있었는지 등 프로젝트 개발의 생생한 이야기를 담아내려 합니다.

Q1. 프로젝트 소개 간단히 부탁드릴게요

웰시코딩은 IT업계 취준생, 현업자들을 위한 웹앱이며, 혼자 공부하는 것보다 함께 목적달성을 하기 위한 사람들을 매칭 시켜주는 플랫폼이예요. 실명제로 운영이 되고, 스터디장이 신청자의 마이페이지 이력들을 보고 핏이 맞는 사람으로 컨택할 수 있다는 점이 장점인 플랫폼이예요.

Q2. 프로젝트 아이템과 아이디어는 어떻게 얻게 되었나요?

→ 웹 프론트엔드 개발자로 취업 준비를 하면서 혼자 개인 프로젝트를 진행하는 것보다, 실제 현업에서 종사하고 있는 여러 사람들과 함께 사이드 프로젝트를 진행할 경우, 이전 보다 많은 성과를 얻을 수 있다고 생각했어요.

그래서 어떻게 하면 '목적 달성을 위해 나와 "핏" 이 잘 맞는 사람들과 함께 할 수 있을까?' 를 중점을 두고 기획하게 되었어요. 프로젝트를 시작하기에 앞서 디자이너 분께서 설문조사 폼을 만들어 IT 현직 종사자 분들께 부탁하여 많은 의견들을 조합해 프로젝트를 본격적으로 시작하게 됬답니다.

Q3. 팀빌딩은 어떻게 하셨나요?

→ 저희 팀은 프론트 팀은 학생 2명, 백엔드 팀은 현직자 1명, 그리고 디자이너는 1명으로 구성되어있어요. 팀 빌딩 과정을 돌아보자면, 대부분 지인들을 수소문 하는 방식으로 진행됐어요.

Q4. 사전 리서치는 어떻게 하셨나요? 디자인이나 프로젝트 구조 등 레퍼런스로 삼은 프로젝트가 있는지요?

→ 팀원 분 중 한분이 '사이드 프로젝트를 위한 앱'을 만들면 어떨까라고 제안해주셨어요. 아이템을 제안해주신 팀원 분을 통해 개발자들이 기존에 많이 사용하고 있는 'OKKY' 라는 사이트를 알게 되었고, 전체적인 흐름은 개발자들에게 익숙한 'OKKY' 사이트에서 가져오려고 했어요.

초기에는 '소모임', '스터디 메이트' 같은 만남, 동호회 어플을 앱을 벤치마킹 했는데 웰시코딩은 이런 모임앱과 다르게 같이 협업해서 프로젝트를 만들고 개발을 공부하는게 우선인 앱이다보니 취업 어플처럼 사람들의 경력과 어떤 기술을 다룰 수 있는지 등의 프로필이 강조되면 좋겠다는 생각이 들었어요. 그래서 후에는 사람인, 로켓펀치 등을 참고해서 디자인하게 되었습니다.

전체적인 디자인 부분은 어려울 수 있는 개발이 친근하게 다가가면 좋을 것 같아서 따뜻한 색인 주황색을 메인 컬러로 선택 하였고 웰시코딩 이름에서 가져와 웰시코기 캐릭터를 앱 전반적인 부분에 활용했어요.

Q5. 프로젝트 기술스택은 어떻게 선정하셨나요?

프론트엔드

웹 프론트엔드 개발을 기준 가장 많이 사용되고, 중요한 스택을 위주로 고르기 위해 노력했어요. 아무래도, 프론트 팀이 학생으로 구성됐기 때문에, 취직을 위해서는 가장 널리 사용되는 것을 먼저 학습하고 숙달하는 것이 우선이라고 생각했습니다.

'Next.js', '리액트', '리덕스', '리액트-쿼리', '리코일' 등을 사용하였고, 서비스의 상태관리 라이브러리로는 대부분의 회사에서 기본적으로 사용되는 '리덕스'를 사용하였어요.

사전 렌더링을 위한 서버 사이드 렌더링 관련 로직 들이 들어가지는 못했지만, 프레임워크가 제공하는 '핫 리로딩', '타입스크립트 지원', '다이나믹 라우팅' 기능들을 익히는 데 중점을 두었습니다.

백엔드

백엔드 팀은 최신 기술을 경험해보는 것이 목적이었어요. Spring WebFlux 와 Spring Data JPA 를 활용했습니다. 후자는 Transaction 이 하나의 쓰레드에 종속되는 데 반해, 전자는 로직의 처리가 여러 쓰레드를 넘나들 수 있어 구현하는 데 많은 어려움이 있었어요.

Q6.프로젝트를 만드는데에 시간은 얼마나 소요되었나요?

→ 초기 기획안은 기능이 너무 많아 기능을 최소한으로 가져가도 2 개월에서 3 개월 정도로 예상했어요.

다만, 시간이 지남에 따라 팀원들의 몰입도가 떨어지는 문제가 있었어요. 원인은 여러 가지가 있겠지만 프로젝트를 온라인으로 진행했기 때문에, 오프라인으로 직접 만나서 하는 것보다 흥미가 많이 떨어졌던 것 같아요. 또한, 일을 분배해서 각자 따로 진행했던 것도 마치 개인 프로젝트를 진행하는 듯한 느낌을 주었을 것같아요. 그래서 프로젝트 일정이 조금씩 계속 밀리더라구요.

프로젝트 일정이 좀 미뤄지더라도, 프로젝트의 마무리를 위해 구성원들에게 동기를 부여해보고자 했습니다. 시간은 조금 더 걸리더라도, 두 명이서 하나의 기능을 개발해보고, 그 과정에서 시시콜콜한 잡담을 나누며 친해지는 시간을 가지도록 했어요. 또 각자 기능을 개발하는 방식이 아닌, 프론트 엔드와 백엔드가 팀으로 같이 하나의 기능을 완성할 수 있도록 전략을 바꿨어요.

결론적으로, 프로젝트 일정은 초기 예상했던 것보다 조금 지체되서 4개월 정도 걸렸네요

Q7. 만들면서 어려웠던 점 혹은 고민됐던 것들이 많았을텐데, 이 중에 가장 어려웠던건 무엇이었나요? 어떻게 해결했나요?

→ 로그인 관련 작업이 제일 어려웠던 것 같아요. 초기 개발할 때에 로컬 환경에서 프론트, 백엔드 서버를 둘 다 띄워놓고 작업을 했어요. 그래서 로컬에서는 토큰을 넘겨받는 과정에서 문제가 없었는데, 배포 환경(https)에서는 스프링 서버와 로컬 서버와의 통신하는 과정이 어려웠습니다.

노드 환경이 아닌 배포 서버를 고려한 개발 경험이 처음이라 매우 값진 경험이였다고 생각해요.

프로젝트에 대해 더 알고 싶다면 🏄‍
DevFoliOh에서 자세한 내용을 볼 수 있습니다.

profile
개발자 토이프로젝트 모아보기 서비스

0개의 댓글