[GDG] Google Developer Group x Whatever 3주차 회고

2023. 9. 18. 18:58후기

이번주는 좋은 것과 나쁜 것이 무엇이 있었나요?

이번 주도 치열하게 살았던 것 같습니다.

좋은 기회로 교내 데이터베이스 조교 + 연구실에 들어가게 되었고, 대략적인 코드 작성도 마무리 했습니다. 

답답했던 점은 이 많은 일정들을 어떻게 소화해야 하는지 에 대한 고민이 적잖이 스트레스로 다가왔던 것 같습니다.

하지만 뭐 하나하나씩 알차게 처리해 나가고 있어서 지금은 많이 해소된 상태입니다.

이번주 진행했던 학습/개발 내용은 무엇이었나요?

이번 주는 다음과 같은 작업을 진행했습니다.

  1. 서비스 개발
    1. 방 생성
    2. 투표하기
    3. 결과 보여주기
  2. 테스트 작성
    1. 컨트롤러 테스트 작성
  3. API 문서화
    1. Rest Docs 을 사용해 API를 문서화 하였습니다.

가장 고민을 했던 부분은 무엇이었나요?

가장 막막했던 부분은 API 요청을 받아올 때 사용하는 WebClient 라이브러리를 어떻게 사용하는 지에 대한 고민, 테스트를 어떻게 작성해야 하는지에 대한 고민이 가장 컸습니다.

WebClient 는 값으로 Mono라는 클래스에 담겨오는데, 해당 값은 스프링에서 비동기 처리를 위한

클래스라고 합니다.

분명 수업 시간때 동기화 문제에 대해 배웠던 것 같은데,,, 잘 기억이 나지 않아서 헤멨던 기억이 있습니다.

JS 에서는 async await 으로 손쉽게 처리하지만 스프링에서 처리는 조금 차이가 있어 고민이 많았습니다.

다음은 테스트 코드에 대한 걱정이었습니다.

RestDocs 는 컨트롤러 테스트 → 스니펫 생성 → 스니펫을 이용해 .adoc 화 → bootJar을 이용해 html 화

의 과정을 거치는데, 처음 진행하는 방법이다 보니 설정 오류와 이해가 되지 않는 부분이 많았습니다.

지금은 두가지 문제 모두 해결한 상태입니다.

아쉬운 부분을 개선하기 위해서 필요한 것은 무엇인가요?

API 문서를 작성하면서 느낀 점은, 결국에 다 비슷하다는 것입니다.

Java의 Mono도, JS의 async await 도 결국에는 동기화 문제라는 컨텍스트 안에서 나온 해결책을 구현한 형태 입니다.

동기화를 넘어서 프로그래밍 방식이나 라이브러리를 뜯어보면 각 도메인 내에서 언어, 프레임워크 별로 구조만 다를 뿐,

결국에 비슷한 형태를 취하고 있음을 알 수 있습니다.

그러면 결국 ‘프레임워크만 익히는 것은 비효율적인 방법일 수도 있겠다’ 라는 생각이 들어,

이론 공부도 빼놓지 않고 지속하여 기초를 쌓아야 함을 느꼈습니다.

우선은 현재 공부 중인 ‘모던 자바 인 액션’ 을 끝마치고, 디자인 패턴에 대하여 공부 해볼 생각입니다.

가장 하기 싫은거 먼저 해봐야겠죠..

다음주는 어떻게 보낼 예정인가요?

일정이 일정인지라, 서버 파트는 이번 주 내 마무리를 목표로 하고 있습니다.

일단 MVP 파트가 대략적으로 완성이 된 상태라, 변경 사항에 대응하며 마무리를 짓고.

알고리즘과 우테코 스터디에 참여 할 생각입니다.

빠이팅