2022 Masters Course/Project Course

2022 마스터즈 코스(백엔드) 117일차 회고(2022. 6. 28.) - "API 문서 직접 만들기 vs 자동화 생성"

ikjo 2022. 6. 29. 00:54

해당 글은 코드스쿼드 2022 마스터즈 코스 "Java 웹 백엔드" 과정을 수강하면서 학습한 내용 등에 대한 회고 글입니다. :)

 

수강 회고

D-4, 오늘은 수료하기까지 4일이 남은 날이다. 🤣 이번 팀 프로젝트 과제의 경우 마지막 미션 과제답게 애플리케이션 개발 부분에서 해야할 작업들이 굉장히 많았다. 마스터즈 코스를 하는 동안 여유로웠던 적은 많지 않았음에도 불구하고, 단언컨대 이번 미션 과제를 수행할 때가 가장 정신없이 하루하루를 보내고 있는 것 같다. 😂

 

이제 어느 정도 애플리케이션 개발을 마치고 부랴부랴 배포를 하면서 클라이언트와의 연동을 테스트 해봐야하는 단계이다. 이제부터는 추가 기능 구현 보다는 연동 과정에서 일어나는 오류들을 처리하는데 많은 시간을 할애하게 될 것 같다.

 

요즘 수면패턴도 붕괴(?)되어 밤낮이 바뀐채로 하루를 지내고 있는데, 이러한 상황을 이해해주시고 스크럼 시간을 탄력적으로 조정해주시는 프론트 엔드 팀원들께 감사한 마음이 든다.

 

 

학습 회고

마지막 미션 과제인 이번 이슈 관리 서비스의 경우 지금까지 했었던 팀 프로젝트들 중 가장 많은 API를 만들고 관리해야했다. 이 때문에 더욱이 앞선 1주차 때 설계에 대한 고민을 많이 했었던 것 같다. 단순히 API를 만드는 것도 만드는 거지만 각각의 용도별로 이들을 나누어 문서로 관리함으로써 프론트 엔드와 협의를 원활하게 할 필요성이 있었다.

 

나의 경우는 노션을 통해 각각의 도메인(용도)별로 API를 나누고 API 호출 시 유의해야 할 점이나 API 사용 방법에 대해 나름대로 상세히 기록하여 프론트 엔드와의 커뮤니케이션에 따른 오버헤드를 최소화하고자 하였다. 프론트 엔드 팀원들의 경우 이러한 문서에 대해 굉장히 만족한다곤 하지만 이걸 작성하는 사람이 걱정된다고 하셨다. 🤣 이렇게 직접 API 문서를 만드는데 도와주는 노션 외에도 여러 툴들이 있다고 한다.

 

아울러 이러한 API 문서화를 자동으로 만들어주는 기능을 제공하는 기술도 있는데, 그 중에는 swagger, spring rest docs 등이 있다. 아직 이 기능들을 사용하지 않아 잘 모르지만, 적어도 메서드, URI, 파라미터 등 API 호출에 필수적인 항목들은 자동화해서 만들어주는 것 같다. 다만, 이를 위해서는 개발 시 기존 코드 상에 일부 로직들이 작성해야한는 단점(?)이 있다고 한다. 과연 프로젝트를 진행하는 팀원이 보는 입장에서 자동화되어 만들어진 API 문서가 얼마나 와닿을지 궁금하다.

 

직접 API를 문서화 하는 것과 이처럼 자동화 해주는 툴을 이용하는 것간에는 각각의 장단점이 있는 것 같다. 이에 대해서 현업에 따라 방식이 모두 상이하다고 한다. 어떤 회사의 경우 하나의 툴을 사용하여 모두가 같은 형식의 API 문서를 주고받는 경우도 있고, 또 어떤 회사의 경우에는 각각의 개발자마다 자기만의 툴(수동 or 자동)을 사용한다고 한다.

 

마스터즈 코스 과정 동안에는 자동화해주는 툴을 사용해보지 못해 어느 게 더 낫다라고 판단하기 힘든데, 다음 프로젝트를 할 때는 자동화 툴을 적용하여 내가 (노션 등으로) 직접 작성하는 것과 비교하여 어떤 장단점이 있는지 직접 느껴보고싶다.

 

 

좋았던 점

  • 지난 약 3주라는 시간 동안 나름대로 정신 없이 미션 과제를 수행했었는데, 이제 어느 정도 이번 미션 과제에서 필요로 하는 API는 다 구현할 수 있었습니다. ✨ (기능 개선의 여지는 많음...😂)

 

아쉬웠던 점

  • 이번 미션 과제의 경우 애플리케이션 구현에 집중하느라 인프라 구성 부분에는 많은 신경을 쓰지 못했었던 점이 아쉬웠습니다. 💦

 

이전 보다 개선되었던 점

  • 이전 보다는 배포하는 과정에서 발생하는 오류를 좀 더 빨리(?) 찾을 수 있게 된 것 같습니다. 👀