Learn in Public이라는 개념을 처음 접한 건 Swyx(Shawn Wang)의 블로그 글이었다. 2024년 말, 트위터에서 누가 공유한 걸 타고 들어갔다. 핵심은 간단하다. 뭔가를 배우면 그 과정을 공개적으로 기록하라. 블로그, 트위터, 유튜브, 깃허브, 뭐든 좋다. 완벽하지 않아도 된다. 틀린 내용이 있어도 된다. 배우는 중이라는 걸 드러내라. 그러면 같은 레벨의 사람들이 공감하고, 더 높은 레벨의 사람들이 피드백을 주고, 기회가 찾아온다.
읽었을 때 "그래, 좋은 말이네" 하고 넘길 뻔했다. 블로그에서 읽고 감명받았다가 일주일 뒤에 까먹는 건 한두 번이 아니니까. 근데 마침 2025년 새해 목표를 세우는 시점이었고, 기술 블로그를 시작하려던 참이었다. "한번 해보자. 1년 동안 해보고 아무 일도 안 생기면 그만두지 뭐."
첫 글의 조회수: 7
2025년 1월 둘째 주에 첫 블로그 글을 썼다. "Next.js App Router에서 삽질한 기록"이라는 제목이었다. 업무에서 App Router 마이그레이션을 하면서 겪은 문제들을 정리한 거다. 서버 컴포넌트에서 useEffect를 쓰려다 에러난 것, layout.tsx에서 metadata를 dynamic하게 설정하다 삽질한 것, fetch 캐싱이 예상과 다르게 동작해서 한 시간을 날린 것. 전부 내가 직접 겪은 삽질.
글을 쓰는 데 3시간 걸렸다. 말이 3시간이지, 실제로는 토요일 오후 내내 붙잡고 있었다. 머릿속에 있는 걸 글로 옮기는 게 생각보다 어려웠다. 알고 있다고 생각한 것을 설명하려면 다시 공식 문서를 열어서 확인해야 했다. "이게 너무 기초적인 내용 아닌가?" "틀린 말 쓰면 어쩌지? 이 블로그 하나 때문에 내 커리어가 망하면?" "누가 이걸 읽겠어?" 하는 생각이 계속 들었다.
어쨌든 올렸다. 심장이 뛰었다. 퍼블리시 버튼을 누르는 게 PR 올리는 것보다 긴장됐다.
일주일 후 조회수를 확인했다. 7. 일곱 명. 그중 몇 명은 내가 다른 브라우저로 접속한 건지 봇인지도 모르겠다. 트위터에도 공유했는데 좋아요 1개. 아마 자동 좋아요 봇.
실망하지 않았다고 하면 거짓말이다. 3시간을 들여서 일곱 명한테 읽혔다. 시급으로 따지면 끔찍한 숫자다. 근데 Swyx의 글에 이런 말이 있었다. "대부분의 사람들은 한 번 글을 쓰고 반응이 없으면 그만둔다. 계속 하는 것만으로도 상위 1%에 든다." 그 말을 믿기로 했다.
3개월: 아무도 안 읽는 시기
1월부터 3월까지 총 8개의 글을 올렸다. 2주에 한 개 꼴. 평균 조회수는 2030. 댓글은 0. 진짜 단 한 개도 없었다. 트위터에도 학습 내용을 올리기 시작했다. "오늘 배운 것: React Query에서 staleTime과 gcTime의 차이" 같은 짧은 글. 좋아요 12개. 가끔 0개.
이 시기가 제일 힘들었다. 글을 쓰는 건 시간이 드는 일인데, 아무도 안 읽으니까 의미가 없는 것처럼 느껴졌다. 토요일 오후를 투자해서 글을 썼는데 조회수 23. "그냥 혼자 노션에 정리하는 게 낫지 않나?" 하는 생각이 매주 들었다. 두 번째 달 말에는 진심으로 그만둘까 고민했다.
그래도 계속한 이유가 하나 있었다. 글을 쓰는 과정 자체가 학습에 도움이 됐기 때문이다. 뭔가를 설명하려면 정확히 이해하고 있어야 한다. "내가 안다고 생각하는 것"과 "남에게 설명할 수 있는 것" 사이에는 꽤 큰 간극이 있다. 블로그 글을 쓰면서 "아, 나 이거 대충 알고 있었네"를 깨닫는 순간이 많았다. React의 Fiber 아키텍처에 대해 글을 쓰다가 "재조정(reconciliation)과 커밋(commit) 페이즈의 차이가 뭐지?"를 스스로 답하지 못해서 2시간을 더 공부한 적도 있다. 그 2시간의 공부는 글을 안 썼으면 하지 않았을 거다.
독자가 아무도 없어도 글 쓰는 행위 자체가 공부의 일부라는 걸 이 시기에 배웠다. 그래도 조회수가 0이면 허탈하다.
4개월 차: 첫 번째 반응
4월에 쓴 "CSS Container Query를 실무에서 써본 후기"라는 글이 의외의 반응을 얻었다. 트위터에서 프론트엔드 개발자 커뮤니티에 공유했는데, 리트윗이 15개 정도 됐고 조회수가 800을 찍었다. 나한테는 엄청난 숫자였다. 조회수 20에서 800. 40배.
이유를 분석해봤다. Container Query를 실무에 적용한 사례가 당시에 많지 않았다. 대부분 "Container Query란 무엇인가", "Container Query 사용법" 같은 개념 설명 글이었는데, 내 글은 실제 프로덕션 코드에서 어떻게 쓰고, 어떤 문제를 겪었는지를 다뤘다. 반응형 사이드바에 적용했다가 Safari에서 안 되는 문제를 만났던 이야기, 결국 @supports로 폴백 처리한 이야기. 이런 실전 경험이 가치 있었던 거다.
이 경험에서 배운 게 있다. 주니어 개발자의 콘텐츠가 가치 있는 이유가 따로 있다. 시니어가 쓰는 글은 추상적이고 개념적인 경우가 많다. "좋은 아키텍처란 무엇인가", "확장 가능한 코드의 원칙" 같은 것들. 물론 좋은 글이지만, 주니어가 바로 적용하기 어렵다. 반면에 주니어가 쓰는 글은 "실제로 해봤는데 이런 삽질을 했다"는 구체적인 경험담이다. 이게 같은 레벨의 개발자들한테 훨씬 더 와닿는다. "아 나도 이거 겪었는데!" 하는 공감.
6개월 차: 커피챗 제안
6월에 트위터 DM이 왔다. 스타트업 CTO라고 자기 소개를 한 분이 "블로그 글 잘 읽고 있습니다. 특히 성능 최적화 시리즈가 좋더라고요. 커피챗 한 번 하실래요?" 라고 메시지를 보냈다.
처음에는 스팸인 줄 알았다. 요즘 DM 스팸이 많으니까. 프로필을 확인해보니 실제 회사의 CTO였다. 50명 정도 되는 시리즈 B 핀테크 스타트업. 프론트엔드 팀을 3명에서 6명으로 확장하고 있는데 관심이 있으면 이야기를 나눠보고 싶다고 했다.
강남역 근처 카페에서 커피챗을 했다. 채용 제안까지는 가지 않았다. 내가 아직 이직 생각이 없다고 솔직히 말해서. 근데 프론트엔드 아키텍처에 대한 이야기를 나누면서 내가 모르는 것들을 많이 배웠다. 마이크로 프론트엔드 도입 경험, 디자인 시스템 구축 과정, 프론트엔드 팀의 코드 리뷰 문화. 1시간이 순식간에 갔다. "나중에 이직 생각이 생기면 언제든 연락해"라는 말과 함께 끝났다.
이 경험은 Learn in Public의 가장 큰 장점을 체감하게 해줬다. 내가 먼저 기회를 찾아 나선 게 아니라, 기회가 나를 찾아온 거다. 이력서를 넣지 않았는데 CTO가 DM을 보냈다. 블로그가 일종의 포트폴리오이자 비동기 네트워킹 도구가 된 셈이다. 내가 자는 동안에도 블로그 글은 일하고 있었다.
9개월 차: 밋업 발표
이건 진짜 예상 못했다. 9월에 국내 프론트엔드 밋업 운영진으로부터 이메일이 왔다. "10월 밋업에서 20분 정도 발표를 해주실 수 있을까요? 블로그에서 다루신 LCP 최적화 주제로 이야기해주시면 좋을 것 같아서요."
심장이 멈추는 줄 알았다. 나는 사람 앞에서 발표하는 걸 좋아하지 않는다. 대학교 때 조별 발표도 겨우 했던 사람이다. 목소리가 떨리고, 대본을 까먹고, 얼굴이 빨개진다. 50명 앞에서 발표를 하라고?
2주를 고민하다가 수락했다. 거절하면 이런 기회가 다시 오지 않을 것 같아서. 그리고 Learn in Public의 정신이기도 하니까. 불편한 걸 해야 성장한다는 거.
준비하는 한 달이 고통이었다. 슬라이드를 만들고 부수고 다시 만들고. 20분 분량인데 처음에는 45분 분량으로 만들어서 반을 잘라냈다. 혼자서 발표 연습을 열 번은 한 것 같다. 발표 당일에는 떨려서 물을 5잔을 마셨다. 화장실을 세 번 갔다.
발표 자체는... 괜찮았다고 해야 하나. 훌륭하지는 않았다. 중간에 한 번 말이 막혔고, 시간 배분을 잘못해서 마지막 파트를 좀 급하게 넘겼다. 근데 끝나고 나니까 "내가 이걸 했다"는 사실 자체가 자신감을 줬다. 그리고 발표 후에 몇 명이 와서 질문하고 이야기를 나누면서 네트워크가 생겼다. 한 사람은 같은 회사에서 비슷한 성능 이슈를 겪고 있다면서 서로 연락처를 교환했다.
1년이 지나고
2025년 1월에 시작해서 지금 2026년 2월. 블로그 글이 30개 정도 쌓였다. 트위터 팔로워는 400명 정도. 유명 개발자의 기준에서 보면 아무것도 아닌 숫자다. 근데 1년 전 0에서 시작한 걸 생각하면, 그리고 내가 목표로 했던 건 유명해지는 게 아니라 학습 효과를 높이는 거였다는 걸 생각하면, 나쁘지 않다.
가장 큰 성과는 숫자가 아니다. "나도 공유할 만한 경험이 있다"는 자기 인식이 생긴 거다. 주니어라서, 아직 많이 모르니까, 내 경험은 별 거 아니니까 — 이런 생각이 Learn in Public을 방해하는 가장 큰 벽이다. 근데 2년 차인 나의 삽질 기록이 1년 차한테는 보물이다. 5년 차의 아키텍처 글은 1년 차가 이해하기 어렵지만, 2년 차의 삽질 기록은 바로 공감이 된다.
한 가지 주의할 점도 생겼다. 공개 학습에 조회수나 반응이 목적이 되면 동기가 왜곡된다. 조회수 높은 주제만 쓰게 되고, 진짜 배우고 싶은 것과 글로 쓸 것이 분리된다. 나도 한때 "React vs Vue 비교" 같은 떡밥 글을 쓸까 고민한 적이 있다. 조회수는 높겠지만, 내 학습과는 아무 관련이 없다. 그건 콘텐츠 마케팅이지 Learn in Public이 아니다.
배우고 싶은 걸 배우고, 그중에 글로 쓸 만한 걸 쓰는 거다. 순서가 중요하다. 학습이 먼저고, 공유는 그 다음이다.
아직도 글을 쓸 때마다 "이거 올려도 되나" 하는 불안이 있다. 완전히 사라지지는 않을 것 같다. 그래도 올린다. 올리고 나서 후회한 적은 아직 한 번도 없으니까.
