오랜만의 일기
지난 두달 가까이 진행한 프로젝트가 리얼서버에 배포되었다.
코드롤백 및 긴급배포 등.. 여러가지 우여곡절이 있었지만.. 어제 무사히 코드가 나갔고, 진행하면서 깨달은 것 아쉬운것들 에 대해 기억이 흐려지기 전에 일기로 써본다
프로젝트 목적
- N사 아이디로 로그인 후, 자사 사이트에 회원가입 할때 자사 계정 전용 비밀번호를 입력받 고 있었던것을, 비밀번호를 입력받지 않도록 수정
- 사용자는 회원가입 당시에 비밀번호를 입력하도록 하면 N사 아이디의 비밀번호와 자사 사이트 계정의 비밀번호를 동일하게 입력할 가능성이 있기 때문이다. 자세한 내용은 생략.
어려웠던점 및 느낀점
- 프로젝트 전에 파악된 위험요소는 강하게 주장을 하자.
업계 특성상 인수인계 및 유지보수가 어려운 상태였다.
Oauth 인증 후 리소스 서버로부터 사용자의 개인정보를 가져오는 코드들이 노후화된 상태여서, 현 리얼서버에도 문제점을 가지고 있었고, 이를 프로젝트 전에 인식하고 공유했으나, 의사소통 기타 등등의 문제로 결과적으로는 뒤늦게 수면위로 올라와서 프로젝트 난이도를 급상승 하게 만든 주범이 아니였나 싶다.
좀 더 강력하게 주장을 못했던 점이 아쉽다.
- 3rd party API에 대해 주기적으로 업데이트 체크의 중요성을 깨달았다.
안내 메일이 오기 전에 공지사항을 주기적으로 체크해야 한다. 3rd party사가 때마다 챙겨주기를 기다리지 말자(3rd party사에서 고객사에 안내메일을 전송하는건 꼭 해야할 일이지만..) 주기적으로 크롤링해서 공지사항이 올라왔는지 확인하는 봇을 만들어도 좋을것 같다.
- 코드리뷰 문화의 중요성을 깨달음
리얼서버 배포 이후 수정한 기능에 문제가 발생한 상태에서,
동료개발자분들과 급하게 코드를 살펴봤다.
그 결과 5분- 10분만에 문제점을 잡을 수 있었다. 배포 전에 코드리뷰를 했다면 장애가 발생하기 전에 문제점을 잡을 수 있지 않을까.. 하는 아쉬움이 남았다.
- 실수한것 1
JSON으로 반환해야 하는 응답에 대해 response content type을 json형식으로 설정 및 iterator로 Map에서 값을 꺼내 하나씩 response에 JSON으로 저장하는 공통메서드를 만들었는데. 한군데에서 해당 메서드를 호출해주는 코드를 빠트려서 html 문서가 response로 날아가고 있었다.
절망적이게도 테스트 서버과 리얼서버의 설정이 달라서 테스트 당시에는 정상적으로 동작했었던 코드가 운영서버에서는 문제가 생겼다. TDD로 개발하는것을 고려해 봐야 겠다.
- 실수한것 2
모바일웹서버에는 html파일과 js파일만 있다. 그래서 API서버로 비동기요청을 하고 내려받은 데이터를 화면에 뿌려주는 구조이다.(클라이언트 렌더링?!)
그렇다 하더라도 세션id는 클라이언트의 쿠키로 저장될것이기 때문에 페이지를 종료하더라도 세션을 유지하지 않을까 라고 생각을 했었는데, 생각했던것 과는 다르게 동작을 했다.
코드를 열어보니.. 로그아웃 전까지는 주기적으로 재 로그인을 요청하는 조금 특이한 구조로 되어있었다.
더 의외였고 이슈의 주범이였던 앱에서의 세션 동작은 처음 겪어서 그런지 굉장히 당황스러울 정도였다..
모바일 웹에서는 페이지를 종료하기 전까지는 모든 요청에 대해 세션을 유지하고 있었지만,
앱에서는 매 요청시마다 다른 세션id를 가지고 있는것처럼 동작했다. 이에 대해서는 아직도 이유를 모르겠다. 앱에서는 session이 아니라 JWT이라는것을 사용한다는데. 자료를 찾아봐야 겠다.
그래도 칭찬할만한것, 그외 좋은 경험이 된것들.
- 기획서를 이해하기 위해 개발전에 통합테스트케이스를 먼저 작성한것.
- 대부분 값을 넘기고 주고받는 과정에서 결함이 발견되었고, 서비스 레벨(비즈니스 로직)에서는 이슈가 발생하지 않았다는점이 뿌듯하다. 촘촘한 단위테스트를 한 덕분이라고 생각한다(!)
- 문제가 발생했을때 팀원들이 모여 회의를 했는데 현상분석/원인분석/해야할일을 하나하나씩 적어가며 회의를 했던것이 흥미로웠다. 나중에 다시 문제가 발생했을때도 적용해보고 싶다.
'Today I learned' 카테고리의 다른 글
2020 09 23 (0) | 2020.09.23 |
---|---|
2020 09 21 (0) | 2020.09.21 |
2020 09 01 (0) | 2020.09.01 |
셸스크립트 문법 정리 (0) | 2020.08.25 |
더운여름 셸 스크립트와 함께 해요! 열대야로 잠들기 어려울때! 불면증엔 셸스크립트! (0) | 2020.08.25 |
댓글