We will find a way, we always have.

-interstellar

우아한테크코스

[우테코 레벨2] 14 ~ 15주차 회고 (레벨2 마지막 미션)

Redddy 2024. 6. 2. 19:47

14주차 주중에 있었던 일들이 기억나지 않고, 주말에 있었던 일만 기억에 남아서 유연하게 15주차에 업혀가기로 했다. 
 

아야

 

빠퇴

레벨1과 레벨2의 귀가 시간을 비교해보면, 레벨1 때 더 오랜 시간 캠퍼스에 남아 있었다. 미션 난이도는 레벨 2가 더 어려웠었는데, 빠퇴할 수 있었던 이유가 무엇일까? 
 
이제 우테코에 완벽적응해서 코라밸(코딩 라이프 밸런스)를 잘 지킬수 있었던 것인가? 그건 아닌거 같다. 빨리 집가도 집에서 코딩할 때가 많았다. 👨‍💻
 
그럼 이제 슬슬 우테코에 몰입력이 떨어져 오래동안 못버티고 있는 것인가? 그렇다하기엔 아직 지각이나 결석을 한번도 하지 않았다. 
 
레벨 2와서 적절한 우테코 생할과 개인 생활 밸런스 조절에 성공한 걸로 하자😃
 

SCPC 대회

 
5월 25일 토요일엔 SCPC에 참가했다. 알고리즘 안한지 얼마나 됐다고 바로 오프라인 대회에,,,
 
잘보진 못했지만 그래도 재밌었다. 어떤 문제에선 N 제한에 속아 백트래킹 밖았지만 계속 시간초과가 났다. 다시 문제 꼼꼼히 읽고 그냥 기본 BFS였다는 걸 깨달았다. (감 다 죽음...) 
 
그래도 그 덕에 알고리즘 상을 받았다. 
가장 많은 시간초과를 받은 사람에게 알고리즘 공부하라고 주는 상이었는데 상품이 알고리즘 디자인 도서였다 😂
 

영문 원서,,




대회 끝나고 근처 피자집에서 피맥을 했다.
 

갓들과 함께

 
오랜만에 코드포스 이야기를 하다보니 다시 하고 싶어졌다. 하지만 시간이 안난다 😥 주말에 여유 있을 때 다시 달려봐야 겠다. 🤸‍♂️
 
 

마지막 미션

 
월요일에 방탈출 예약 대기 미션이 끝나고 화요일에 레벨 2 마지막 미션, 방탈출 결제 미션이 시작되었다. 벌써 레벨 2 마지막 미션이라는게 믿기지가 않는다. 
페어는 폭포, 리뷰어는 피케이였다. 미션 이름이 결제이긴 하지만 핵심은 결제가 아니라 외부 API 연동이였다.
토스의 API 문서는 너무나도 친절했고, 프론트코드도 솔라가 다 맹글어주어 연동까지는 순조롭게 진행되었다. 하지만 문제는 테스트였다. 외부 API를 사용하는 부분을 어떻게 테스트 해야할지가 관건이었다. 
 
가짜 객체 혹은 Mock을 사용하지 않고, 직접 외부 API를 호출하는 테스트를 만들어 보고 싶었다. 그래야 결제 관련 동작이 올바르게 동작한다는 믿음을 가질 수 있을테니. 하지만 쉽지 않았다. 예외 상황 같은 경우는 토스가 제공하는 에러 재현하기를 통해 테스트해볼 수 있었지만 해피 케이스에 대해선 할 방법을 찾지 못했다. 
 
그래서 어쩔 수 없이 Mock을 사용하는 방식으로 테스트를 작성하였다. 이번 미션에서 Mock을 처음 사용해보았는데, 제공하는 애노테이션도 다양하고 사용 방법도 다양하여 빈 생성하는데 애를 먹었다. 어찌저찌 PaymentClient를 Mocking하는데 성공하고 테스트를 돌려보았는데 멋지게 통과했다. 약간 소름도 돋았다.

 

테스트 코드 일부

 

 

위 그림 처럼 @MockBean 애노테이션으로 모킹하고 싶은 객체에 붙이기만 하면 스프링이 알잘딱깔센으로 paymentClient에 대한 빈 등록을 할 때 모킹한 빈을 컨텍스트에 등록해주었다. 다른 거 건들인거 하나 없고 애노테이션 하나 추가해줬을 뿐인데 빵빵 터지던 테스트들이 다시 초록빛을 띈게 새삼 놀라웠다. 

 

 
 

  • Keep
    • 커리큘럼 키워드 확인하며 학습하기

 

  • Problem
    • 자바 코드를 짜는 시간이 줄어들은 거 같다. 자바 권태기인듯 하다

 

  • Try
    • 공부하고 경험한 내용 작성하기
    • 내 생각을 표현하기
    • 충분히 고민한 후 기술적 의사결정 하기