Skip to content
Go back
🔄 회고

Scrumble 기술 회고 - 0. 들어가며 (Why Golang?)

by Tony Cho
3분 Read in English

핵심 요약

Scrumble 기술 회고 시리즈의 서문으로, Golang·Next.js 조합을 선택한 배경과 바이브 코딩이 준 도움과 한계, 이후 편에서 다룰 백엔드·프런트엔드·LLM 챕터를 어떻게 이어갈지 로드맵을 제시하는 방향 소개 글이다. 독자가 무엇을 기대하면 좋을지와 읽는 순서를 명확히...

들어가며

Why Golang

다들 각자 Primary Language 가 있듯이 나에게 Primary 는 Golang 이다. 한국 개발씬에서는 그런 이미지가 아닌데 해외에서는 꽤나 Boring 한 이미지가 있는 언어이다. 그도 그럴듯이 언어가 꽤 단순하다. 특히 우리나라 백엔드 개발자들 대부분의 Primary 가 Java 인데, Java에 비하면 한없이 단촐한 언어이다.

Golang 은 그래서 “대표적인” 웹 풀-프레임워크(like Spring Boot, Rails, Django)도 없고 “대표적인” ORM (like JPA, Active Record, Django ORM)도 없다. 딱히 웹프레임워크를 안쓰고 net/http 만 가지고 코딩하는 곳도 심심치 않게 보인다. 그만큼 Golang 이 간단하기도 해서 간단 간단한 마이크로 서버를 만들때 유용하게 쓰이는 것도 같다. 또 언어적인 특성 중에 함수형 언어 맹키로 상수 불변성 따위가 없고 (TS의 const/Kotlin val 처럼 “참조 불변” 변수를 선언할 수 없음. Golang의 const 는 컴파일 타임 상수임. 그래서 대부분 변수를 사용하여 코딩) 에러 반환은 try, catch 가 없고 error 를 명시적으로 결과와 함께 보통 tuple-return 해야한다.

얘기를 좀 복잡하게 했지만 이해한 사람은 알겠지만, 그만큼 단순하다. 그래서 해외에서는 Boring 이라고 하는 것도 이해한다. 코딩이 재밌는 언어는 아니니까.

그리고 부트스트래핑을 빨리하기에는 좋은 스크립트 언어(like nodejs, python, ruby)가 즐비해있고 성능과 안정성을 가져가기에는 우리나라는 자바 공화국이기 때문에 대부분 자바를 많이 쓰는 것 같다. 하지만 스크립트 처럼 가볍게 코딩할 수 있고, 컴파일 언어로 정적 타이핑을 가져가면서 성능은 꽤 좋은 또 장점을 두루두루 가지고 있는 언어이고 무엇보다 goroutine 등으로 대표되는 실시간 처리와 성능 면에서 이점이 추후 온서비스에서 운영을 하기에도 굉장히 수월하다. 우리나라에서도 규모나 트래픽이 있는 꽤 큰 회사에서 클라우드 네이티브, 데이터 인프라, 마이크로 서비스, DevOps 도구 영역 등에서 꽤 쓰이는 것을 볼 수 있다. 당근마켓 같은 팀에서 천만이 넘는 채팅 트래픽을 Golang 를 기반으로 한 시스템으로 운영한다 같은 얘기는 우리 같은 구멍 가게들에게는 크게 와닿지 않겠지만, 개인이 쓰기에도 가볍고 좋은 언어라고 생각한다.

(나는 21년도 초에 사실 당근마켓 개발팀 Go언어를 도입하다 | 당근테크 이 영상에 영업당해서 Golang 을 시작했다..) Rails(Ruby) -> Django(Python) 이었다가 Golang을 시작했고, 지난 회사에서는 계속 nodejs(ts)를 사용했지만 당연한듯이 다시 Golang 으로 돌아왔다. 팀에서 쓰기 좋다던가 등등 여러 장점이 있지만.. 길어지는 것 같아서 다음으로 넘어간다.

Nextjs

백엔드와 달리 프론트는 국밥 픽을 했다. Nextjs(TS)를 사용하였고, css를 잘 못하는 나에게 항상 구원이 되는 Tailwindcss, 그리고 한때 graphql 을 쫓았지만(추구미..?) 나의 gql 이해도가 굉장히 떨어진다는 걸 지난 회사에서 크게 깨닫고 Tanstack Query (a.k.a react query)를 사용하였다. 지난 회사야 gql 마스터 프론트엔드 팀장님이 계셨지만 나혼자서 하니 그냥 내가 쓰기 쉽고 이해하기 쉬운걸로 택했다. 그리고 후술하겠지만 react query 를 그렇게 판단한건 나의 큰 실수였다..

국밥 픽이다 보니 Why 가 딱히 없다. React 를 하긴 했었고 예전에 쓰다만 <DataColon 개발 후기> - 1. 들어가며 같은 프로젝트에서도 풀스택을 할때는 고민없이 선택한 스택이고, 아무도 반문을 제기하지는 않을 것 같다. 다만, 대 바이브 코딩 시대에 정말 React/Hook 이 좋은 선택인지는 자료가 풍부하다는 것 외에 많은 고민을 하게된 기간이었다.

순서

글은 다음과 같이 진행할 예정이다. 프로젝트에서 실제 개발한 도메인들을 바탕으로 디테일한 스택들을 파보고 내가 거기서 내렸던 의사결정, 고민 사항들을 적어보겠다. 의외로 프로젝트를 하는 순서가 실제 시간 순이랑도 거의 일치할 것 같다.


자주 묻는 질문

왜 Golang을 선택했나요?
스크립트처럼 가볍게 코딩하면서 컴파일 언어의 정적 타이핑과 성능을 가져갈 수 있습니다. goroutine으로 대표되는 실시간 처리와 성능 면에서 운영에도 수월하고, 당근마켓 같은 큰 기업에서도 검증된 스택입니다.
Golang이 해외에서 'Boring'하다고 불리는 이유는?
언어가 단순하기 때문입니다. Java에 비해 한없이 단촐하고, 대표적인 풀 프레임워크나 ORM도 없습니다. 함수형 언어의 상수 불변성도 없고, try-catch 대신 에러를 명시적으로 tuple-return 해야 합니다.
Next.js를 선택한 이유는?
국밥 픽입니다. React 경험이 있고, 풀스택 할 때 고민 없이 선택할 수 있는 스택이며, 자료가 풍부합니다. 다만 AI 바이브 코딩 시대에 React/Hook이 최선인지는 고민이 되었습니다.
Tony Cho profile image

About the author

Tony Cho

Indie Hacker, Product Engineer, and Writer

제품을 만들고 회고를 남기는 개발자. AI 코딩, 에이전트 워크플로우, 스타트업 제품 개발, 팀 빌딩과 리더십에 대해 쓴다.


Share this post on:

반응

여기까지 읽어주셨다면, 한마디 남겨주세요. 경험, 반론, 질문 뭐든 환영합니다.

댓글

댓글을 불러오는 중...


댓글 남기기

이메일은 공개되지 않습니다

기존 댓글 (Giscus)


Previous Post
Scrumble 기술 회고 - 1. 백엔드 (Golang, DDD, Entgo, Event, Centrifugo)
Next Post
Scrumble 프로젝트 회고 (2025년 6월~8월)