요즘 점점 작은 팀, 소규모 스쿼드로의 조직 개편 이야기가 많이 들린다.
우리 팀만 하더라도 그렇고, 주변의 다른 스타트업이나 대기업을 가릴 것 없이 스쿼드 단위로 조직이 작게 쪼개지고, 한 스쿼드에 직군별 1명씩만 들어가는 구조가 점점 흔해지고 있다.
AI가 구현 속도를 끌어올리면서 같은 직군을 2~3명씩 넣는 팀 구성은 더 어려워졌고, 결국 옆자리에 시니어가 없는 채로 백엔드 전체를 한 사람이 책임지는 환경이 늘어나는 것이다.
사람이 많아질수록 커뮤니케이션과 동기화가 큰 병목이 되니, 더 작은 팀으로 갈수록 이 큰 병목이 사라지니, AI로 인해 생산성이 높아지는 시점에 당연한 수순인 것 같다.
다만, 이런 변화가 개인적으로는 아쉽긴 하다.
예전에 옆자리 사수에게 흘러가듯 배우던 것들
"이 엔티티는 왜 이렇게 자르지 않느냐",
"이 비즈니스 로직은 어디에 두는 게 맞냐",
"이 트랜잭션 경계는 왜 거기서 끊느냐"
같은 판단의 근거들은 AI가 정답을 명료하게 짚어 주지는 않는다.
구현은 빨라지는데, 그 코드의 구조와 판단 근거는 결국 본인이 혼자 채워 가야 한다.
도제식으로 개발자를 훈련시키는 것만이 정답이라고 생각하진 않는다.
다만, 도제식으로 배워야만 알 수 있는 암묵지는 점점 배우기 어려워진다는 생각이 들었다.
미국에 "Dad, How Do I?" 라는 유튜브 채널이 있다.
롭 케니라는 분이 운영하는 채널인데, 아버지 없이 자란 사람들을 위해 면도하는 법, 넥타이 매는 법, 타이어 가는 법 등 옆에서 보고 배워야 할 만한 것들을 한 영상씩 짚어주는 채널이다.
영상 하나하나는 평범한데, 그 평범함이 누군가에게는 "처음으로 이걸 알려주는 사람" 이 되는 채널이다.
작년에 토비님이 "클린 스프링" 시리즈를 시작한다고 했을 때 이 생각이 많이 들었다.
총 7편의 강의로 이루어지는 이 시리즈는 "토비님과 함께 가상의 스타트업 개발팀이 되어 Splearn(스프런)이라는 가상의 온라인 교육 서비스를 만들어가는 과정" 이다.
새로 시작된 스타트업의 서비스가 처음 만들어지고, 시간이 지나며 성장하는 동안에 매 단계에서 어떤 것을 고려하고 결정하며 빠르게 적용해 나가는지를 체험할 수 있다.
어떤 기술과 접근 방법이 문제를 풀기 위해 언제 등장하는지를 함께 고민하고,
주어진 상황에서 최선의 선택과 트레이드오프가 어떻게 이루어지는지 함께 보고 경험할 수 있다.
도메인 이벤트와 스프링 시큐리티,
멀티 모듈과 성능 최적화,
스프링 모듈리스를 이용한 모듈화,
MSA와 스프링 클라우드,
관측성(Observability)까지, 한 서비스가 성장하면서 마주하는 진화 과정을 단계별로 정리한다.
옆자리에 사수가 있었다면 1~2년에 걸쳐 흘러가듯 따라가며 배웠을 코드의 진화 과정을, 토비님께,같은 코드베이스로 압축해서 보여주는 시리즈인 셈이다.
현재 시리즈의 첫번째 강의인
"토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1" (https://t.co/imFRUYjicx) 가 출시되어있다.
(곧 2편이 출시될 예정이다.)
첫 번째 강의에서는 크게 5가지 흐름을 따라간다.
도메인 모델이 무엇이고 왜 필요한지를 보편 언어부터 시작해 코드로 옮기는 과정.
헥사고날 아키텍처에 대한 흔한 오해를 풀고, 계층과 의존관계 규칙을 어떻게 설정할지.
JPA 엔티티를 DB 매핑 객체가 아니라 도메인 모델로 어떻게 설계할지.
애그리거트로 일관성 있는 데이터 변경 단위를 어떻게 묶을지.
최신 스프링 웹 기술로 API 어댑터를 어떻게 설계할지.
팀의 사수, 팀장님에게 리뷰 받던 암묵지를 토비님을 통해 받아볼 수 있다.
스프링은 쓰고 있는데
서비스 클래스가 점점 비대해지거나,
엔티티가 사실상 DTO처럼 쓰이거나,
헥사고날·DDD를 한 번 시도했다가 폴더만 늘고 본질이 안 잡히거나,
"팀장님 이건 어떻게 해야 해요?" 를 경험해보고 싶은 분들이라면
이번 Part 1부터 시작해 보시길 추천드린다.
https://t.co/imFRUYjicx
세계 최초의 웹사이트 (1992)
- CERN이 만든 세계 최초의 웹사이트로, 월드 와이드 웹의 출발점을 보여줌
- 원본 형태의 최초 웹페이지를 브라우징하거나, 라인 모드 브라우저 시뮬레이터로 당시 환경을 체험할 수 있음
- 추가로 웹의 기원과 웹이 탄생한 CERN 연구…
https://t.co/4EvWtcL94B
"2>&1"은 무엇을 의미하나?
- 표준 오류(stderr) 와 표준 출력(stdout) 을 하나의 스트림으로 합치기 위해 사용하는 리디렉션 구문
- 숫자 1은 stdout, 2는 stderr를 의미하며, `&`는 파일 디스크립터를 참조한다는 표시로 사용됨
- `2>&1`은 “st…
https://t.co/qsANQIoDBs
Show GN: 무설치/무서버로 동작하는 브라우저 네이티브 메모장 (Vim 모드 지원)
무거운 Electron 기반 IDE를 켜기는 부담스럽고, 클라우드 기반 노트 앱은 보안이 우려되어 직접 개발한 순수 로컬 웹 에디터 WebMemo Pro를 소개합니다.
React나 Webpack 같은 빌드 …
https://t.co/Z9monknpdY
왜 시니어 엔지니어들은 나쁜 프로젝트를 그냥 두는가
- 시니어 엔지니어는 ‘옳음’보다 ‘효과적 행동’을 중시, 모든 잘못된 프로젝트를 막으려 하지 않음
- ‘나쁜 프로젝트’ 는 기술적·정치적·UX적 문제를 포함하며, 종종 주관적 판단에 따라 달라짐
- 영향력…
https://t.co/jzKaSZ0D5L
위키백과 25주년
- 인터넷 지식의 중추 역할을 해온 위키백과는 2001년 빈 웹사이트에서 출발해 25년간 자원봉사자들의 협업으로 성장한 온라인 백과사전
- 현재 300여 개 언어, 6,500만 개 문서, 25만 명의 편집자가 참여하며 매달 약 150억 회 조회되는 세계 최대 규…
https://t.co/K1SqugL7Xe
Date는 사라지고 Temporal이 온다
- JavaScript의 기존 Date 객체의 불완전성과 비일관성을 지적하며, 이를 대체할 Temporal API를 소개
- Date는 가변 객체(mutable object) 로 동작해 실제 날짜 개념과 어긋나며, 파싱 오류·시간대 처리 한계 등 구조적 문제가 있음 …
https://t.co/tzAnOENguk
자바스크립트를 HTML만으로 대체하기
- 웹에서 JS 의존 기능을 HTML/CSS로 대체할 수 있는 최신 방법들을 소개
- `details`·`summary` , `datalist` , `popover` 등 표준 요소를 활용해 아코디언, 자동완성, 모달, 오프스크린 내비게이션을 구현
- 이러한 접근은 다…
https://t.co/wzBLwXE9B6
AI는 개발 속도를 높이지만 버그는 1.7배 더 많다
- 오픈소스 470개 PR 분석 결과, AI가 작성한 코드가 인간 작성 코드보다 평균 1.7배 더 많은 문제를 포함
- 논리 오류·가독성 저하·보안 취약점 등 주요 결함이 AI 코드에서 현저히 많았으며, 특히 가독성 문제는 3배…
https://t.co/BMfAegbRua
Windows 11로 업그레이드할 수 없으니 이제 그만 괴롭히세요
- Windows 10 지원 종료 이후에도 많은 사용자가 여전히 해당 버전을 사용 중이며, 일부는 TPM 2.0 보안 칩이 없어 Windows 11로 업그레이드할 수 없음
- 하드웨어가 충분히 강력함에도 불구하고, TPM 2.0 미…
https://t.co/Cd0DnOzpgT
SQLite는 어떻게 테스트되는가
- SQLite는 철저한 자동화 테스트 체계를 통해 높은 신뢰성과 견고성을 유지하며, 코드보다 590배 많은 테스트 코드가 존재함
- 네 가지 독립 테스트 하니스(TCL, TH3, SQL Logic Test, dbsqlfuzz) 가 핵심 라이브러리를 검증하며, 수억 …
https://t.co/rkyV0zZuOR
모질라는 자멸하려고 애쓰고 있는 걸까?
- 새 Mozilla CEO의 인터뷰 발언이 Firefox에서 광고 차단기(AdBlocker) 를 막을 가능성을 시사해 논란이 확산
- CEO는 광고 차단기를 차단하면 1억5천만 달러 수익 증가가 가능하다고 언급했으나, “그렇게 하고 싶지는 않다”…
https://t.co/z4KDy2wBNn
<br> 태그로 돌아본 웹의 30년
- 1990년대 정적 웹부터 2010년대 JavaScript 중심 웹, 2020년대 AI 시대의 웹까지의 변화를 따라가며, 웹 개발이 어떻게 진화해왔는지 정리한 글
- `<br>` 태그와 FTP로 시작한 웹은 PHP·MySQL을 거치며 누구나 만들 수 있는 플랫…
https://t.co/VOgTELErI1
Fresh - 강력하고 쉬운 터미널용 텍스트 에디터
- 터미널 환경에서도 GUI 수준의 사용성을 제공하기 위해 개발된 텍스트 편집기
- 네이티브 UI, 풀 메뉴 시스템, Command Palette를 지원하며, 전체 마우스 조작 가능하여그래픽 편집기 사용자가 전환해도 자연스러움
…
https://t.co/ylYlzbihnJ