[WIL] 실전프로젝트 4주차

박민우·2022년 4월 3일
0

항해

목록 보기
33/33


실전프로젝트

이번주 삽질

  • Refactoring, refactoring, refator, ...
  • Error, Error, Error, ..

삽질 회고

이번주는 이런 느낌 아니었을까?

"우리 내일 모레 쯤 배포할까요?", "유저 테스트 해야죠."
"어? 여기 에러"
..

"다시 배포할까요?", "사용자들이 써봐야 ..."
"어? 이거 안 되는데 .."
..

뭐 이런 식의 반복이랄까

주 초에는 refactoring에 공을 들이고 싶었다.
BE 3명이 스타일이 다르고 변수마다 이름을 정하지 않았었기에 통일감을 주려고 노력했던 것 같다.
api를 restful하게 ! 라는 생각으로 api부터 코드 안에 있는 변수명 등을 통일하려고 거침없이 코드를 쳐나갔다. (이러한 과정에서 에러는 없었다 - 휴우)

그리고 Exception. 우리가 만들어 놓은 exception은 왜 허접한가, 라는 의문으로 exception 전략에 대해 찾아보고 enum 타입을 적용하기로 했다.
그리고 enum 타입의 전략이 코드가 깔끔하게 정리되는 것 같아서 ResponseEntity를 각 자리에서 만들던 것도 enum 타입으로 다시 정리하였다.

그렇게 return 값까지 리팩토링하는데 오랜 시간이 걸리진 않았다. 다른 팀원들은 Test Code를 짜거나 NginX에 몰빵하기도 했다.
나는 refactoring에 꽂힌 상태였다.

그렇게 한 주가 흘러갈 때, 디자이너분들이 먼저 테스트를 하고 싶다고 했고 디자이너들이 만지면서 기능면에서 예외와 에러도 많이 발견하기 시작했지만 프론트 입장에서는 더욱 "완성!"이라고 말하는 시간은 미뤄지게 되었다.

그래서 가까운 지인들로 테스트를 하고 피드백을 받으면서 기능면에서 에러를 먼저 잡았다.

UserTest에서 가장 큰 어려움은 토큰이었다. (이거 완전 처음으로 돌아가는 느낌인데..? 토큰이라니..)
토큰이 중간에 사라졌다, refresh가 안 왔다, 제대로 된 거 맞냐, 프론트에서 에러냐, 500인데 서버 에러 아니냐 .. 등등
에러를 잡기 시작하는데 프론트는 백의 도움을 받아야 테스트를 할 수 있고, 백은 프론트의 도움을 받아야 테스트를 할 수 있는 상황들도 여러 번 만나게 되었다.

그래서 프론트는 웹으로 배포해놓고, local로 바꿔서 토큰을 인터셉터에 직접 넣어서 테스트하는 방식으로 진행하고, 백은 배포된 웹으로 User Test를 하면서 로컬을 돌려서 빠르게 수정하는 방식으로 진행했다. (이렇게 좋은 것을 이제야 생각해내다니 ㅜㅜ 다 끝나고 생각난 게 아님에 감사하자!)

에러는 곳곳에 숨어있었다. 그래서 로직을 중간중간 계속 수정하고 수정하고, 그 와중에도 refactoring 해야 할 것들이 더 보여서 method를 묶기도 하면서 작업을 했다.

토큰 말고 다른 곳에서 큰 어려움은 배포였다. NginX를 돌리는 conf는 왜 이렇게 말을 안 듣는가 ....! 한 팀원이 정말 땅굴을 파듯 nginx만 깊-게 파면서 시도하고 시도하고, 잘 다루는 다른 팀 사람에게 직접 묻고 같이 보기도 하면서 시도했는데.
"다 똑같이 설정을 해도 왜 안 되지?"라는 말이 튀어나올 정도로. 말을 안 들었다.

지금은 우리가 구상한대로 완전하게 돌아가고 있지는 않지만 일단 잘 도는 중 .. !


원하는 결과만 가져오던 테스트가 아닌 User Test를 하니 불편감에 대한 feedback 뿐만 아니라 기능 사이에 비어있던 것들이 있었다.

이런 에러, 저런 에러 잡는 것은 재미있다. 물론 안 잡히고 구글링을 계속 해도 답이 없는 것 같은 상황에서 당황스러울 때도 있지만. 분명 되게 할 수 있다, 라는 생각이 아직은 ..? 아직은. 더 많이 든다. (나 스스로 희망 고문을 하고 있는 건 ...... 아니겠지?)

그래서 삽질은 꽤나 즐겁다. 물론 실무로 넘어가면, 되게 하는 것에 대한 책임감이 주어지고 기술부채가 생기고 늘어나면 그에 따른 부담이 더하게 되는 것일테지만. 삽질은 꽤나 즐거운 것이라고 말하고 싶다. (모든 시간에 완전한 공부를 하고 적용한다는 것은 실무에선 좀.... 아니라고 생각한다. 완전한 공부란 건 없고, 써보질 않으면 어떻게 내가 아는 것을 확인할 수 있겠는가!? 사회에 찌든 탓일까..?)

아, 마지막으로 삽질을 할 때 정말 나 스스로도. 함께 하는 팀원도. 하지 않았으면 하는 발언(?) 또는 행동/태도 같은 것을 찾았다.

"음 ... 이게 제가 (특정 동작)을 할 때 에러가 났는데. 전 고친 게 없는데, 이거 좀 고쳐주세요."(에러 메시지를 보는게 아니라 그 특정 동작 코드만 계속 본다고?)

"이거 근데, 뭐 #)(@)#(-$=(#@!$% 같은 느낌인데 .." (느낌으로 에러를 찾는다고?)

"제가 알기론 )#(-$=(#@라고 하던데" (구글링도 아니고 뇌피셜?)

그냥 .. 그랬다고 ...
뭐가 안 되는데 내가 모르겠으면,
"에러 메시지 한 번 볼까요?",
"구글링 해볼게요. 에러 메시지 좀 보내줄 수 있어요?",
"어떤 동작 했을 때 에러 났죠? 오류 메시지가 안 나는 거면 제대로 돌고 있는 거 같긴 한데, 테스트코드나 포스트맨으로 확인 한 번 해볼게요."

등등 해결을 위한 사고와 질문을 해야겠다고 다짐, 또 다짐해본다!

에러 앞에서, NO_BACK_GO(노빠꾸) !

profile
KingdomOfGod newPerson = new KingdomOfGod();

0개의 댓글