FirstProject 중간 후기

이민택·2020년 5월 24일
2

TIL

목록 보기
40/44

개요

오랜만에 블로그를 작성한다 너무 작성을 안하면 후회할 것 같아서 조금이라도 기록을 써본다
현재 내가 진행하고 있는 프로젝트는 지역화폐의 사용처를 지도위에 표시해주는 웹서비스를 구현하고 있다내가 맡은 파트는 백엔드이고 백엔드의 기능적인 부분은 경기도 api로 부터 데이터를 받아와서 가공한다음 프론트엔드에 보내준다 가공에는 필터링 작업도 들어간다. 백엔드의 스케일 업을 위해서 유저를 관리하는 부분을 추가햇었다 유저는 자기가 원하는 가게를 즐겨찾기로 추가 할 수 있고,회원가입한 유저의 한해서 마켓에 리뷰를 남길 수 있다. 현재 1주일이 지난 시점에서 백엔드는 위의 모든 과정이 구현은 되었다 위과정을 구현하면서 이용한 기술은

  • sequelize
  • sequelize-cli
  • jwt

배포

  • aws - ec2
  • aws - rds
  • aws - s3

등등 있다 서버는 express를 이용해서 구현하였다

SPRINT(초반)

시퀼라이즈의 초반 migration 설정에서 조금 애를 먹었었다 내가 1:n 관계의 시퀼라이즈 설정을 반대로 하고 있었고 또 시퀼라이즈의 migaration을 이용해서 accosiation을 설정하려면 추가적인 migration을 정의해 줘야하는 것을 하루쟁일 구글링을 통해 알아냈다 프로젝트를 딱 처음 들어가서 무엇을 먼저 해야할 지 적응이 안되기도 해서 조금 해맸던 것 같다 마이그레이션을 정상적으로 구현하고 이제 제대로 개발에 들어갔다 제일 먼저 구현한 부분이 경기도 api로 부터 데이터를 가져오는 부분이엇는데 경기도 api는 주소를 기반으로 요청하는 것이기 때문에 주소를 요청하면 원하는 숫자만큼의 데이터를 가져온다 처음에 이 디폴트 페이지 숫자가 1이고 개수가 100이라는 것을 몰라서 일단 정상작동한다 생각하고 계속 진행하였다

SPRINT(중간)

필터링

초반에 필터링하기 위해 직종을 구분해야했지만 경기도에서 제공하는 직종의 분류는 186가지이다 이를 프론트엔드에서 사용자가 선택하라고 선택지를 주는 것은 ux면에 좋지 않다고 판단하여 이를 총 19가지로 분류하는 코드를 짜서 분류하고 이를 코드 내부의 데이터로 저장하여 이용했다

중간에 필터링을 구현하는 작업에서 계속 학원에 대한 데이터만 걸러지는 것을 이상하게 여겨 api문서를 다시 읽어보니 pSize라는 페이지 크기와 pIndex라는 인덱스 위치 요청인자를 생략한 것이었다
이를 해결하기 위해 각자 행정 주소에 대한 1000개의 데이터를 일단 받아오면 전체 마켓 개수에 대한 정보도 제공하기 때문에 이 전체 마켓의 수를 1000으로 나누어서 해당 데이터의 끝 인덱스 까지 요청하는 반복문을 이용해서 리펙토링 하였다

즐겨찾기, 리뷰

즐겨찾기와 리뷰는 모두 유저와 마켓의 정보를 가지고 있는 n:n JOIN 테이블이다 이 부분을 구현하면서 힘들었던 점은 sequelize를 이용해서 데이터를 삽입할 때 어떤 방식으로 해야할지 순서를 정하는 것이 헷갈렸다 그래서 일단 내가 있는 정보가 어떤 것인지 판단을 해보았다 일단 유저 정보가 있는 상태에서 이를 이용해서 즐겨찾기와 리뷰를 추가하는 방식이기 때문에 유저의 정보를 찾아서 이를 sequelize의 promise패턴에 따라서 삽입과정을 짜 주었더니 정상 작동하였다
정보의 조회 get 메소드를 구현하는 것은 그렇게 오래 걸리지 않았다 include의 설정을 조금만 이해하면 응용할 수 있었다 나는 JOIN 테이블이 즐겨찾기와 리뷰에 include 설정을 주어서 user와 market의 정보를 얻어올 수 있었다

더 구현할 내용

소셜 로그인의 대한 구현을 진행해야한다 이 부분은 passport를 이용하면 간다하게 구현이 될 수 있지만 멘토 엔지니어에게 물어보니 passport는 클라이언트의 의존적인 부분이 있기 때문에 s3를 이용하는 SPA의 경우 이상적이지 않은 흐름이 구현될 수 있다 하셨다 그래서 OAuth 2.0의 대한 내용을 공부해서 이를 구현해야 될 것 같다

profile
데이터에 소외된 계층을 위해 일을 하는 개발자를 꿈꾸는 학생입니다

2개의 댓글

comment-user-thumbnail
2020년 6월 30일

재밌네영

1개의 답글