지난 2월 2일, 멋쟁이사자처럼에서의 인턴에 지원하고 합격되었습니다. 선택한 업무는 OpenAI GPT를 연동한 AI 챗봇 서비스 구축입니다.

이때 저에게는 두 가지 선택지가 있었습니다.

  1. 프론트엔드 중심: 이미 경험이 있어 익숙한 화면 구현에 집중하고, 백엔드는 최소한으로 처리한다.
  2. 백엔드 중심: 낯설지만 데이터 설계와 API 서버 구축에 집중한다.

저는 고민 끝에 백엔드 프로젝트를 선택했습니다. 


백엔드 선택이유

프론트엔드 개발 경험이 있었기에 오히려 'API 생산자'의 관점이 절실히 필요했습니다.

'API 소비자'에서 'API 생산자'로

지금까지의 프로젝트에서는 백엔드 개발자가 만들어준 API 명세서를 보고 데이터를 화면에 구현습니다. 또한, 팀 프로젝트에서 백엔드의 역량 부족으로 구현에 한계가 있었습니다. 그러다 보니 서버 내부에서 데이터가 어떻게 가공되는지, 왜 이런 구조로 내려오는지에 대한 이해가 부족했습니다. 이번 기회에 반대로 직접 API를 설계하고 명세서를 작성하여, 클라이언트가 사용하는 API에 대해서 배워보는 것을 경험하고 싶었습니다.

화면은 그려본 경험은 있으나, 백엔드에 대한 이해도가 현저히 부족하면 서비스 전체가 흔들린다는 것을 인지하고 있었습니다.

이번 과제를 통해 API 명세, ERD 설계, 인증/인가 로직 등 백엔드의 역할을 다져놓아, 이 경험을 통해 어떤 프론트엔드를 붙여도 완성도 높은 풀스택 프로젝트로 확장할 수 있을 것이라 생각했습니다.

코드보다 설계를 먼저

백엔드 개발이 처음인 만큼, 무작정 코드를 작성하기보다 설계 단계에 집중했습니다. 이는 프론트엔드 개발 시 API 명세가 바뀔 때마다 겪었던 비효율을 줄이기 위함이기도 합니다.

  • 요구사항 정의: "사용자는 대화의 맥락(Context)이 유지되기를 원한다"는 니즈를 파악하고, 이를 기술적으로 구현하기 위한 데이터 모델을 고민했습니다.
  • API 명세서 작성: 요청(Request)과 응답(Response)의 JSON 스키마를 미리 정의하여, 인터페이스를 명확히 했습니다.
  • ERD 설계: User - Conversation - Message로 이어지는 관계형 데이터베이스 구조를 정규화하여 설계했습니다.

정리

익숙한 프론트엔드가 아닌 백엔드 프로젝트를 선택햇습니다. 이번 인턴 기간의 목표는 '보여주기식 결과물'이 아니라 '개발자로서의 기초 증진'에 있습니다.

약점이라 생각했던 백엔드 영역을 정면으로 마주하고, 설계부터 구현까지 스스로의 힘으로 완주해보려 합니다. 이 4주간의 과정이 끝났을 때, API를 이해하고 설계할 줄 아는 개발자로 성장하길 바랍니다.

728x90