티스토리 뷰

일상:

2018년 상반기 회고 및 스타트업 개발자 5개월차 회고



| 시작하기에 앞서


6월이 되어, 2018년 상반기의 대부분이 지났다. 올해들어, 스타트업에 입사하여, 이런저런일들이 있었고 여러 내용들을 학습했다. 3개월차가 되었을때 http://ideveloper2.tistory.com/70?category=646723 과 같은 비교적 규모가 작은 이슈들을 처리해 나갔었다. 이후에는 큰 프로젝트를 매니징하고, 설계부터 프론트 백엔드 모두 참여하는 프로젝트들이 대부분이었는데, 어떤 프로젝트와 이슈들을 처리했는지 적어보겠다.


| 진행한 사내 프로젝트


1. 신규 런칭 서비스 관련 백반 사이트 [react web app + 기존 중앙 api 서버 결제관련 코드 수정 및 추가 + 버전업 api 서버에 새로운 없던 기능 추가]


설계부터, 프론트, 백엔드를 총망라해서 다 했다. 확실히 조금이나마 결제관련 flow를 설계를 잡고 개발해서 다행이었다....(워낙 급하게 개발해서 생각치 못한 부분들이 계속 생겼다. ㅠ)


개발 설계 초기 주문관련 logic 내가 설계를 해보았던 부분이다. 지금은 꼴도 보기싫다... (천재는 악필)





  • 백반사이트 베타버전을 계속 수정해나갔음, 잔버그들이 많았음 [급하게 진행한 프로젝트였음]

(처음 베타버전으로 출시했어서, 많은 수정이 있었음 -> 거의 2주만에 기본골격을 토대로 기존 결제연동사이트를 활용해 웹사이트를 뽑아냈다.. 추후 최소 주문수량 조절기능, 예약기능, ui 관련 무~~~수히 많은 변경작업)


한 작업들 (이것보다 훨씬 많은데 막상 적으려니 기억이 잘안난다.. 작업한 것은 commit 히스토리에 있을텐데 커밋을 워낙 많이해서...)

  • 운영에서 쉽게 백반 최소주문수량이나 주문가능한시간 조절
  • 최소주문수량에 도달하지 않은 주문도 dms(운영툴) 올라가게하기
  • 매진되었을시, 재고가없을시 고객이 쉽게 알수있게 보여주는 작업
  • 기존 b2b 쉐프의 요리 주문과 백반 주문이 주소가 꼬이는 오류가 발생했는데 대다수 잡았음
  • [주문성공]주문했을시 요약해서 주문완료전에 보여주게하는작업
  • [주문실패] 주문실패시 (재고가없거나, 남은재고가 없어서 최소주문수량이 되지않아 주문을 할수 없다던지) 유저경험 좋게하기위해 보여주는 작업
  • 예약기능 -> 주문갯수를 미리 체크 , 키친에서 미리 대비 http://ideveloper2.tistory.com/93?category=650925 관련해서 작성했던글

느낀점:  제대로된 계획없이, 명세없이 개발을 진행하면 나중에 코드를 수정하거나, 기획이 바뀌는 상황이 발생하면 코드를 건드려야 하는 부분이 많아져, 고생한다....ㅠ + production, development 환경잡기 및 테스트과정의 중요성을 다시한번 깨닫게 되었다.. 테스트 코드는 과연 언제쯤 짤까......


2. 배송현황판 [react web app + node.js api server + 다른 회사 외부 api 연동 (polling 방식)]


  • 예전에는 각각 배송 허브마다 서초면 서초, 강남이면 강남 프로그램을 들어가서, 일일히 배송현황을 확인하고 있었는데 이런 불필요한 시간을 줄이기 위해서, 업체측에서 데이터를 받아서 배송현황을 확인하여, 배송접수시각, 기사배정시각, 기사정보 등등을 사이트에서 확인 있는 사이트를 구축함. -> 운영 효율이 많이 증가했을듯
  • 처음엔 실시간으로 데이터를 받아오고, 그 데이터를 소켓을 통해 웹에 뿌려주려했으나, 외부 회사 api 서버쪽에 무리가 있을것이라, 판단되어 배송 status가 바뀔때마다 그 변경된 배송관련 data를 뿌려주는식 (polling?!)으로 방식이 변경되었다.

[설계 관련 본인이 적었던 내용중 일부 발췌]

1.delivery_id 파악하기

현재는 delivery_id는 데이터에 쌓이고 있지 않다. 배송업체 api에 배송요청을 하면 third_party_delivery_log에 데이터가 쌓이고 있다. 여기에 컬럼을 추가하여서, delivery_id 를 받아오는 방식으로 바꿔서 데이터를 먼저 쌓아봐야겠다. 아래와 같이 ec2-gateway에서 저장하고 있는데, 여기서 delivery id 관련 항목을 추가해줘야겠다.

이렇게 데이터가 잘 쌓이는지 확인이 끝나면, 이렇게 쌓은 데이터를 바탕으로, delivery_id로 배송중조회 api서버에 데이터를 요청해볼예정이다.


2.받아온 delivery_id를 바탕으로, 어디에 배송현황판을 만들어줄지 생각해보자.

아래와 같이 써드 파티 오더 부분 아래가 비어있으므로, 여기다 일단 배송현황판을 넣어줄 예정이다. (이름도 써드파티오더 말고 배송관리?같은 이름으로 바꿔야 할듯) 그리고 dms처럼 소켓을 통해 실시간으로 데이터를 연동해서 보여주는 것처럼 해야 할것  같은데, 아래의 배송업체 api 요청 권장사항에 대해서 살펴보면, 실시간 조회의 갱신주기를 1분이상, 3분 권장으로 진행하기 때문에, 바로바로 데이터가 업데이트 되게하는것을 불가능할 것 같다...(내 판단), 일단은 1분뒤에라도 데이터가 업데이트 되게 구현해보자. 사용제한을 증가시켜야 한다고 판단되면 문의해달라 했으니, 그건 나중에 요청을 시도해보자.

-dms에서 실시간으로 데이터 어떻게 받아오는지 코드 확인하기

-dms나 배차고 같은 소켓통신으로 실시간으로 데이터를 받아오는 서비스들은 몽고db와 소켓서버를 바탕으로 데이터를 보여주고있는데, 만약 배송현황판을 만든다면 디비에 저장한 delivery_id로 배송관련 데이터를 요청해서, 이데이터를 몽고디비에 쌓고, 실시간으로 소켓서버와 통신하면서 데이터를 받아오는식으로 해야하지 않을까..? (따라서 dms 몽고디비,소켓부분 보기)

...... etc

느낀점: 다른 회사에서 만든서버에서 요청을 받고, 또 내가 만든 서버에서 요청하는 식의 연동 작업을 처음 해봤는데, 내가 짠 코드가 다른 회사서버에 문제라도 일으키면 어쩌지하고 조마조마 했다.ㅎㅎ..(잠깐 서버 reload과정에서  요청이 들어와 잘못된 status 를 바탕으로 요청을 계속 보냈던 경우가 있긴했다..ㅎ)

3. 새벽배송 관련 임시 배송가능지역 체크하는 부분 중앙 서버에 기능 추가

새벽배송을 해주던 업체에서 배송을 안한다는 통보를 받아 부랴부랴 배송가능지역 리스트를 엑셀로 받아 미친듯한 속도로 (if 문의 향연) 배송 가능지역을 체크해주는 api서버부분을 만들어 추가해주는 작업이었다.

느낀점: 이가 안되면 잇몸으로 하라 라는 말을 이럴때 쓰는구나 라는것을 몸소 깨달았다. 지금도 어찌저찌 돌아가고는 있는중이다.(왜지..)

4. etc 매우 작은 프로젝트 및 이슈, 한작업들

  • 외주사에게 서버 용량 down 시키는 작업 요청, 보안관련 작업 요청....또 머있었드라...
  • 미친듯한 디버깅과 코드리딩..하... (디버깅의 황제가 될거 같다)
  • 기존 서비스에서 발생한 오류들 수정 (꽤 많았던거 같은데 기억이 안난댜.. )
  • ...etc (요청 데이터 조회해서 드리기..)
개발자가 더 필요해..


| 진행중인 사이트 프로젝트 및 학습내역

> 학습관련
  • 네이버 부스트코스 에이스 web fullstack developer 과정 (반성해야한다..ㅠ 강의는 거의 들었는데 과제를 흡흡)
  • 윤지수 교수님 오프라인 강의 (es6를 활용한 웹 미니 프로젝트)참여 (코드 스쿼드 내에서 진행 (약 2시간 가량 진행http://ideveloper2.tistory.com/86 참고
  • 멋사 세션진행(매주 화수 참여 (수요일은 격주로 수업진행) 및 외부 강사 초청 세션 참여 (노우현님 론트엔드관련 강의 , 이한결(astro)님의 창업관련 강의 , 자소설 대표 박수상님의 대용량스케일링 관련 강의 )
  • 매달 10회이상은 블로그 포스팅 중 (es6, 자바스크립트, 리액트 관련 ...)
  • js 알고리즘 공부(프로그래머스 사이트 참고) 5월부터는 뜸하다...반성반성
  • 일일 커밋(4월부터진행)이건 뿌듯해서 뒤에서 더 적을거다..ㅎ
  • ...etc 더 많은데 기억이 잘안난다 ㅠ.. 계속 채워나가야겠다
> 진행중 사이드 프로젝트

리액트+ firebase 를 바탕으로한 펜션 웹앱 

: (확장성을 고려해 리액트 펜션 웹앱 템플릿(?)이 될수 있도록 개발(하려노력)중이다

  • 현재는 꽤 뼈대가 잡혀졌고 ui도 반응형도 고려하고, 기능면에서도 오시는길 관련(naver map api활용), 게시판 기능,댓글기능(firebase store, firebase realtime db) 로그인 관련 (firebase auth) 등등 어느정도는 잡혀졌다.
  • 그리고, ux면에서 발생하는 오류들은 왠만한 것들은 다 잡아놓은 상황이다.(api 요청에서 데이터가 받아오는 시점과 렌더링이 되는시점이 잘 맞지 않아 발생한 오류,그리고 redux와 관련하여 데이터관리가 잘안되는 것이 대부분이었다.
  • 이제 상세기능 들이나, 미세한 오류들을 좀 잡고 도메인만 연결하면 될것 같다. (최소한의 기능들만 포함한 첫번쩨 버전..ㅎ)

이와 관련 진행중 포스팅 했던글
  • http://ideveloper2.tistory.com/90?category=650925 link to 와 navbar 연동 관련
  • http://ideveloper2.tistory.com/92?category=650925 네이버 맵 api연동 관련
firebase와 관련해서는 웹앱을 다 제작하고 튜토리얼?식으로 crud기능을 어떻게 구현했는지 제대로 포스팅 할 예정이다.

> 일일커밋

일일커밋은 4월부터 매일매일 최소 하루 한개의 커밋은 하자하여, 혼자 시작해보았다. 2개월째 매우 순항중이다! (뿌듯)
앞으로도 될때까지 계속 해볼예정이다..ㅎㅎㅎㅎ

  • 알고리즘 학습내역이나, 그외학습내역, 그리고 사이드프로젝트와 사내 private 리포에 올라가는 커밋들로 구성되어있다!


| 마치며,


학습이나, 사이드 프로젝트들이나 블로그 포스팅등등 많은것을 한 상반기였던것 같긴하다!! 하지만 뭐랄까 뚜렷한 성취나 결과물이 없는것 같았다. 하반기에는 결과물을 바탕으로 성취해내보자!.. 사실 내일 출근해야되서 여기까지... 할말이 많지만..위에 뭐라쓴지 몰으겠다..






댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함