202010 프로젝트_SR_2일차

Hazel_Song·2020년 10월 10일
0

202010_PR

목록 보기
3/7

드디어 대망의 첫 프로젝트가 시작했다.
단순히 서비스 하나를 시작했다는 사실 하나만으로도 긴장되는데, 프로젝트 협업을 위해 준비해야
하는 것이 많아서 정신 없었던 하루였다.
혼자서 포폴용 웹사이트 만들 때를 생각해보면, 이렇게 초반에 작업해두지 않아서
고생고생을 했었기 때문에 이 작업이 무엇보다 중요하다는 사실을 알고 대충 하려하지 않고 집중했던 것같다.

우선 내가 동기들과 진행하게 된 스터디는 "SW부트캠프 후기공유 사이트"이다.
최근 SW개발공부가 열풍이 되면서, 다양한 부트캠프가 생겨나고있고, 그에 따라 선택의 폭이 너무도 많아지면서 사용자들이 정보의 바다에서 허우적대고 있을 것이다.
대학원의 경우도, 교수평가 사이트가 있는데 이제는 부트캠프도 후기를 공유하고 평가하는 사이트가 있으면 좋겠다고 생각하여 이 아이디어를 구현하기로 결정했다.

기능 리스트업

필요한 기능들에 대해서 생각나는 대로 나열해보았다. 그리고 꼭 필요한 기능/ 이건 조금 복잡하지만 있으면 좋을것 같은 기능들로 나누었다.
이렇게 필요한 기능들을 생각할수록 꼬리에 꼬리를 물고 기능들이 더 떠올랐고,
후기를 입력할때, 단순히 텍스트로 작업하게 할 것인지, 드랍박스로 선택하게 할 것인지에 대해서도
논의가 이루어져야 할 정도로 많은 이야기가 나왔다.

평소에는 별로 생각하지 못했지만 의외로 중요했던 기능들은,

  1. 비속어 필터링 기능
    -> 후기를 입력하게 한다면, 당연히 최악의 상황까지도 고려해서 서비스를 구축해두어야 한다.
    즉 비속어에 대한 우려가 생기기 마련이었다.
    물론 한줄평을 쓰지 않게 하면 되지만 이 기능을 어떻게 안 쓸수 있을까...
    -> 구글링해보니 역시나 필요로 하는 사람들이 많았다.
    -> 딥러닝으로 비속어 API를 만든 사람도 있다고 하던데, 역시 딥러닝...프로젝트 끝나고 파이썬을 해볼까 생각이 들었다.

  2. 검색 기능
    -> 비슷하지만 서로 다른 검색을 했을 때도 모두 같은것으로 인식하게 하는 검색어 기능 또한 어렵다는 생각이 들었다. 실생활에서는 너무 당연하지만 띄어쓰기 하나로 다른 것으로 인지될 수 있으므로
    같은 것으로 인지하도록 설정해두는 것이 너무 중요했다.

기능플로우 작성하고 컴포넌트 기획하기

어떻게 보면 내가 포폴사이트 만들 때 제일 고려하지 못하고 지나쳐서, 고생했던 부분이 아닐까 했다.
figma를 활용해서, 페이지 구성 및 기능플로우까지 그리고 더하여 디자인 적인 요소까지 한번에 해결할 수 있어서 앞으로 프로젝트할 때 계속 써야겠다는 생각이 강하게 들었다.
후에 디자인 작업 후, css코드까지 작업해주는 zeplin에까지 피그마가 연동된다고 하니 매우 간편한듯 하다. 역시 가능한 프로그램을 쓸 수 있으면 써야 한다고 생각한다!

굉장히 간단한 서비스라고 생각했지만 꼼꼼하게 페이지를 따라가며 필요한 기능을 생각하니 생각보다 복잡했다.

메인 페이지 -> 회원가입 -> 로그인 은 기본적인 기능이자 페이지였고,
우리는 권한이 있는 사람에게 후기작성이 가능하도록 하여야했기 때문에 로그인 후, 보여지는
메인 페이지 또한 따로 작업해야했다.
그렇게 (로그인 후)메인페이지 -> 후기 작성 -> 마이페이지 -> 카드 수정 / 개인정보 수정
더하여서, 아이디 찾기/비번 찾기 기능까지 구현하기 위해 추가 페이지가 필요했다.
그리고 서버단으로는 비번찾기 하면 입력한 메일로 비밀번호를 전송해주는 기능까지 구현해야겠다 생각했다.

사실 기능플로우를 구성하고, 페이지를 다 기획하니 컴포넌트 작성은 생각보다 어렵지 않았다.
필요한 부분까지 세세하게 짜고 나니 얼추 그림이 그려지는 듯 했다.

과거에 포폴 사이트 만드느라 고생했던 것을 생각하면 페이지 기획 및 컴포넌트, 그리고 기능플로우를 꼼꼼하게 짜고 갔어야 프론트단에서 고생을 하지 않았을 것이라는 생각이 들었다.

스키마 작성

dbdiagram.io 를 활용해서 데이터베이스 테이블을 작성해주었다.
솔직히 처음에 해당 사이트를 어떻게 활용해야할지 몰라서, 예시로 주는 코드를 수정해가며 활용했다.
오히려 처음부터 작성해가는 것보다 쉽게 이해되고 금방 작성하여서 나름 팁인듯?
유저테이블/기업정보테이블 그리고 이 두 테이블이 N:N 관계로 이 둘을 이어주는 하나의 테이블을
만들었다. 또한 작성한 후기를 보관하는 테이블을 만들어서 유저와 기업정보 테이블에 또 연결해 주었다.

API 작성

gitbook이란 사이트를 활용해서 필요한 api를 작성했다.
피그마로 만들어둔 기능 플로우들을 따라 필요한 api를 미리 작성해봤는데, 이렇게 코드작업하기 전에
미리 api까지 작성해두면 매우 편하고 전체적인 틀을 잡는데 좋다는 생각을 했다.
(차후에 사이드 프로젝트 할 때 참고해야지)
api를 작성하면서 실제로 있어야 한다고 깨닫지 못했던 필요한 기능들이 생각나서 추가하고 수정하는 작업도 거쳤다. 가장 대표적으로 로그인 및 회원가입 당시의 유효성 검사였다.

원래 사용자로서 사이트를 이용할 때, 왜그렇게 이메일과 휴대폰 번호를 인증하는 건가 했는데,
전부 차후에 정보 수정 및 업데이트 등등을 위해 필요한 유효성 검사였다.

태스크카드 작성&마일스톤 작성

가장 중요한 스케쥴링 작업! 가이드에는 태스크카드를 우선 작성하고 마일스톤을 짜라고 했지만,
처음에 어떻게 작업을 진행하고 각 태스크 카드를 나눠야 하나 고민하다가
마일스톤을 먼저 짜서 틀을 정하고 세부적으로 정하는 것이 좋겠다고 생각했다.

처음에 마일스톤을 짤 때, 단순히 시간단위를 기준으로 주차별로 짤까 고민하다가
팀원들과 논의하여, bare minimum 완료(10일) -> advanced 구현(5일) -> 최종배포 및 오류 해결(4일)의,기능리스트 업 기준으로 마감 기한 내에서 마일스톤을 쪼갰다.

그리고 태스크 카드를 짤 때, 사실 처음해보는 일이라서 막막했었다.
고민하다가 client는 페이지 기준으로, 그리고 server는 메소드 기준으로 나눈 후,
각 페이지/메소드마다 처리해야하는 기능들을 정리하였다.
그리고 페이지/메소드 별로 태스크 카드를 작성했다.

client는 css를 가장 뒤로 태스크 카드를 뺐고, server는 초기 배포작업을 가장 앞으로 두었다.


이렇게 다 진행하고 나니 어느새 일곱시간이 흘렀다...ㅎㅎ
이제 일차 프로젝트인데, 이차 프로젝트가 벌써부터 걱정되지만 한편으론 기대되고 설렌다

profile
코드 한 줄로, 세상의 가치를 만들자🌟

0개의 댓글