들어가며
개인적으로 무협만화를 좋아하는 편이라 자주 나오는 말을 인용해보자면 "만류귀종(萬流歸宗)"이라는 말이 있습니다. 모든 물줄기가 결국 한 근원으로 돌아간다는 의미인데, 웹 개발도 이와 같다고 생각합니다. 프론트엔드, 백엔드라는 구분을 넘어서, 전체 시스템을 이해하고 통찰할 수 있을 때 더 나은 개발자가 될 수 있다고 믿습니다.
최근 네이버 부스트캠프에서 새로운 프로젝트를 시작하게 되었는데요, 우리 팀은 저를 제외한 4분의 백엔드 개발자들로 구성되어 있습니다. 물론 다른 분들이 프론트엔드를 일부 협업 작업을 해주시겠지만, 저 또한 4분의 이야기에 참여하여 의견을 나눌려면 스스로의 이해도를 올려야 된다고 생각합니다.
이러한 생각을 가지고 있던 중, 지난 4월 GDSC 건국대학교의 컨퍼런스에 참석했던게 생각이 났고, "CS와 함께하는 BE 이야기" 세션에서 값진 인사이트를 얻었던 것이 기억이 났습니다. 이 글은 컨퍼런스에서 배운 내용을 정리하면서, 동시에 제가 프론트엔드 개발자로서 지난 컨퍼런스 내용을 바탕으로 백엔드를 좀 더 이해하고 학습해나가는 과정을 공유하고자 합니다.
시리즈 구성
컨퍼런스에서 다룬 내용은 크게 다음과 같은 주제들로 나눌 수 있습니다:
Part 1. 2024년, 왜 CS인가?
- 현업 개발자들이 말하는 CS 지식의 중요성
- "이제는 프로그램을 만드는 것이 아니라 잘 만들어야 한다"
- 성능과 최적화에 대한 고민
Part 2. 서버 성능의 이해
- TPS(Transaction Per Second)란 무엇인가
- 실제 서비스에서 성능이란?
- 동시 접속자 처리의 실제
Part 3. 네트워크 통신의 진화
- HTTP/TCP/UDP 프로토콜의 특징
- HTTP/3가 선택한 UDP, 그 이유는?
- 프론트엔드 개발자가 알아야 할 네트워크 지식
Part 4. 실전 시스템 설계
- Scale-Out vs Scale-Up
- 이미지 처리 서버 설계 사례
- 프론트엔드와 백엔드의 효율적인 협업 포인트
Part 5. 성능 최적화의 실제
- 캐시 활용 전략
- 데이터베이스 최적화
- 실전 성능 개선 사례
앞으로 다룰 내용
이 시리즈를 통해 다루고자 하는 핵심은 단순히 기술적인 내용의 나열이 아닙니다. 프론트엔드 개발자의 시각에서 바라본 백엔드 시스템의 이해, 그리고 이를 통해 어떻게 더 나은 협업과 개발을 이끌어낼 수 있는지에 초점을 맞추려 합니다.
특히 현재 진행 중인 부스트캠프 프로젝트에서 마주하는 실제 상황들과 연결지어, 컨퍼런스에서 배운 내용들이 실제로 어떻게 적용될 수 있는지 함께 고민해보고자 합니다.
마치며
무협만화의 "만류귀종"처럼, 웹 개발에서도 모든 지식과 경험이 하나로 모여 더 나은 서비스를 만들어내는 데 기여합니다. 이 시리즈가 저와 같은 고민을 하는 개발자들에게 작은 도움이 되길 바랍니다.