본문 바로가기

프로젝트 3주차 KPT : 기승전결의 ‘전’

프로젝트 3주차 KPT : 기승전결의 ‘전’

이번 주를 되돌아보면 참 다사다난 했던 일주일이었다.

너무 바쁜 나머지 1, 2주차처럼 회고를 틈틈이 작성할 틈도, 여유도 결코 없었다.

모든 일이 잘 해결된 지금의 시점에서 시원한 보리차를 마시며 한 주를 조금이나마 되돌아본다.

 

 

🐱 우리는 현재 가장 힘든 마지막 언덕을 오르고 있다. 그 말을 다르게 하면, 정상 역시 거의 코 앞에 있다는 것이다..

 

기승전결의 ‘전’

 

배포가 안 된다

가장 큰 고민은 배포가 안 되는 것이었다.

 

그래서 백엔드 분들과 밤을 새며, 배포에 대한 과정을 함께 하기도 했고 아서 멘토님이 보실 수 있는 에러 공유 채널에 글을 올리기도 했다.

(아래는 잠을 주무시지 않고 배포에 매달리셨던 백엔드 팀원 분들..)

 

걱정을 잘 안 하는 성격이라 일단 해결 방법은 찾을 것이고 해결은 되겠지, 라고 생각은 했으나 초조해지는 것은 사실이었다. 얼마나 초조했냐면, 백엔드 아서 멘토님께 도움 요청을 하는 것이 어떻겠냐고 몇 번이나 여쭤보기까지 했다.

  • 사실 아서 멘토님께 DM을 날릴 뻔 하기도 했다. (ㅠㅠ)
  • 하지만 백엔드 팀원 분들이 배포는 우선 스스로 부딪혀보고 이것 저것 문제 해결 과정을 경험해본 후에, 마지막에 그 과정을 정리하여 말씀 드려보시겠다는 말씀에 차마 그렇게 하지는 못했다. 어느정도 일리가 있는 말씀이었기 때문이다.
  • 어디까지나 문제 해결은 우리들의 몫이기도 하고, 그 분야를 담당하는 팀원의 의견을 최대한 존중해주는 것이 맞다.

 

하지만, 팀장으로서 지푸라기라도 잡는 심정에 하루 하루 피가 말라가는 심정임은 어쩔 수 없었다. 물론 배포를 담당해주셨던, 그리고 백엔드 분들과 또 모든 팀원 또한 마찬가지 심정이었을 것이다.

  • 너무 답답했던 것은, 내가 할 수 있는 일이 거의 없었다.
    • 내가 그나마 할 수 있었던 일은 배포에서 문제가 생겼고 해당 문제를 핸들링하시는 과정을 같이 보면서 나오는 에러 메시지나, 키워드 등을 구글링하는 것이었다.
    • 그리고 해당 에러에 대한 상황 공유를 누군가 볼 수 있는 에러 공유 채널에 올리는 방법밖에 없었다.

 

어찌됐든, 결론적으로 배포는 성공했고 (오늘!) 내가 구현한 회원가입과 로그인 기능이 너무나 자연스럽게 작동하는 것을 보면서 정말 가슴이 벅차 올랐다. 이제 시작이구나.

 

로컬 테스트의 중요성

 

처음 멘토링 1주차 때, 준프 멘토님께서 ‘로컬 테스트 방법에 대해 백엔드 팀원 분들께 방법을 여쭤보고 어떻게 하는지 알려달라고 요청하시라’고 조언을 주셨다.

  • 그 때까지만 해도 그냥 앵무새처럼 그 다음 회의 때 백엔드 팀원 분들께 ‘로컬 테스트 방법에 대해 여건이 되시면 알려주시면 좋겠다’라고 말씀을 옮겼다.
  • 그 분들도 고개를 끄덕이며(?) ‘’라고 말씀을 주셨다.
  • 말 그대로 아래와 같은 상황이었다. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

  • 사실, 나로서는 로컬 테스트에 대한 정확한 개념이 잡히지 않은 상태였고, 백엔드 쪽에서 이렇게 말하면 아시겠거니~ 했는데 나중에 알고보니 백엔드 팀원 분들 역시 로컬테스트가 뭔지 알고 있지 않으셨다. (ㅋㅋㅋㅋ)
  • 그렇게 로컬 테스트의 존재는 막연했고, 그 때의 우리는 ‘배포’가 되지 않은 것에 대한 압박감에 로컬 테스트에 대한 이야기는 어느새 슬그머니 들어가게 되었다.

 

다시 나온 로컬 테스트 토픽 

그리고, 그렇게 우여곡절 끝에 브랜치 충돌 문제가 발생했던 2주차의 멘토링 때, 원래 백엔드와 프론트엔드 레포지토리는 분리되어 있기도 하다- 의 이야기를 하면서 다시 로컬 테스트에 대한 이야기가 나왔다.

  • 그 때 준프 멘토님께서 레포지토리가 분리된 상태일 때, 로컬 테스트 하는 방법에 대해 직접 시범을 보여주셨는데…!!!
  • 왠걸, 알고보니 그냥 백엔드 레포지토리의 해당 브랜치를 git clone 해서 로컬에서 실행시키면 되는 것이었다…!!!!!
  • 아! 이게 로컬 테스트였구나..! 뭔가 거창하게 생각하고 있었던 것이 아니었구나. 라는 깨달음을 얻게 되었다.

 

그 뒤에 브랜치 전략을 바꾸면서, 테스트를 어떻게 해야하나와 같은 이야기가 나왔다.

  • 그 중 나왔던 의견 중 하나는 로컬 테스트까지 진행하면 너무 좋겠지만 현재 우리 상황이 그렇게 여유있지 않기 때문에 배포 후 테스트를 하며 조율하는 것이 어떻냐는 의견이었고, 어느 정도 공감이 되는 부분이 있었다.
  • 사실 우리 모두는 로컬 테스트가 뭔지 잘 모르는 상태였기 때문에 이 부분에서 별 이상한 점을 찾지 못했고, 결국 배포 링크에서 직접 테스트를 해보며 코드를 고치기로 애매하게 결정을 내렸다.

 

테스트에 대한 내용이 흐지부지된 상황에서, 우여곡절 끝에 일단 H님께서 시도해보신 배포 방법이 애매하게 성공이 되었고, 반절은 배포가 성공한 상태여서 테스트가 가능해진 상황이 되었다.

  • 아래의 내용을 요약하자면 http 요청을 보내면 50%의 확률로 성공하고, 실패하는 것이었다. ㅋㅋㅋ
  • 이유는 모르겠지만 아무튼 50%로 성공이 되기 때문에 테스트는 가능하다는 결론이 났다.

 

배포 서버에서 테스트..?

그 뒤, 백엔드 페어인 H님과 내가 배포 서버로 테스트를 실험적으로 해봤다.

  • 배포 서버기 때문에, 프론트 배포 vercel과 연결해 놓은 dev 브랜치로 바로 push를 해야만 변경 사항이 적용되어 테스트 통과 유무를 확인할 수 있다.
  • 그 과정에서 문득 든 생각은
    • dev로 PR이 아닌, 바로 push를 보내도 되는 걸까?
    • 내가 고친 코드가 build 오류를 일으키면 어떻게 하지?
  • 와 같은 생각이었다.

 

우선 로그인 테스트까지는 해당 방법으로 진행하고, 나는 프론트 회의를 열어 dev로 바로 보내는 것에 대한 위험 부담에 대한 실제 상황에 대한 공유를 했다.

  • 우리는 그때서야 로컬 테스트를 먼저 진행하고, 그 뒤 배포 서버에서 수정할 사항이 생기면 dev로 PR을 날리자, 라는 결론에 다다르게 된다.

 

그 뒤, 다른 프론트 팀원 분들께서는 자바 17을 설치하고 터미널에서 백엔드 서버를 실행시켜서 로컬 테스트를 진행하셨다.

  • 특히 IntelliJ를 직접 설치하셔서 하시는 분도 계셨다.  
  • 나의 경우에는 H님께서 인스턴스를 하나 추가해서 서버를 켜주셔서 로컬 테스트를 진행했다.
  • 하지만, 이 방법에도 불편함이 있었다.

 

인스턴스를 통한 로컬 테스트는 번거롭다 

서버 키셨나요? ㅋㅋㅋㅋ 이 것을 계속 여쭤봐야 했던 것이다..!

 

 

내가 해결해야 했던 문제는 refresh token이 브라우저에 쿠키로 저장되지도 않고, 전달되지도 않는 문제였다.

  • 그리고 아무리 봐도 프론트 쪽 코드 문제가 아닌데.. 백엔드 쪽에 코드를 이렇게 저렇게 고쳐달라고 이야기하기 참 난감한 상황이 있었다.
  • H님도 현재 다른 업무를 진행 중이고, 그렇게 요청하면 흐름이 끊기게 되기 때문이다.
  • 물론 바로바로 문제 해결을 하면 좋겠지만 나도 구글링을 해가며 천천히 문제를 파악하고 이것저것 시도해봐야 했기 때문에 이 방법은 아니라는 생각이 들었다.

 

로컬 세팅

그 뒤, 자바 17을 깔고 터미널로 server 폴더에 들어가 백엔드 코드를 실행시켜서 H님 코드를 뒤져보기 시작했다. (ㅋㅋㅋㅋㅋㅋㅋ)

  • 결론적으로는 쿠키 설정에 문제가 있었다…!
  • 한별님 코드는 완벽했지만, 브라우저에서 아래와 같이 쿠키 설정을 임의로 블락을 하고 있었던 것이다.
  • 즉, secure = false / sameSite = none 은 같이 설정할 수 없었던 상충되는 속성이었다.

 

실험적으로 http 로컬 테스트지만 secure = true / sameSite = none 으로 하니 성공적으로 refresh token이 담겨왔고, http 요청을 보낼 때도 같이 보내졌다..! 드디어 성공한 것이다..!

  • 하지만 의문이긴 했다.
  • http 환경인데 왜 secure = true 가 작동이 되는 것이지?

 

 

3주차의 깨달음

어찌됐든 H님께서 답을 알려주셨고, 이건 정말 소중한 깨달음이라고 할 수 있겠다.

이번 주에 내가 얻었던 깨달음은 ‘로컬 테스트는 필수불가결이고, 무조건 초반에 방법을 여쭤봐야 한다!’ 는 것이다!!

  • 이런 절실한 깨달음을 얻기까지의 소중한 삽질의 과정이 있었다.
  • 멘토님께서 방향을 잡아주셨고, 우리는 급박한 상황의 압박 속에서 이리 저리 흔들렸지만 결국 가야 하는 방향으로 가야 한다는 깨달음 역시 얻게 되었다.

 

초행길의 산이었지만 그래도 멀리서라도 정상이 보였기 때문에, 우직하게 한 발짝 씩 걸음을 내딛을 수 있었다.

  • 멘토님들께서 이정표의 역할을 해주셨기 때문에 도중에 길을 잃어도 다시 방향을 바로 잡고, 할 수 있는 한 힘을 짜내어 올라가면 되었다.
  • 그리고 이제 고지가 눈 앞이다.
  • 비록 정상에 도착해도 보이는 것은 내가 올라가야 할 수 많은 다른 정상들이겠지만, 그래도 이제는 두렵지 않다.
  • 어떻게든 조금씩, 꾸준히 그렇게 올라가다 보면 어느새 정상에 다다른다는 것을 알기 때문이다.
728x90
⬆︎