architecture

5 posts

아키텍처 다이어그램은 이미 거짓말이다

아키텍처 문서는 저장하는 순간부터 썩기 시작한다. 코드로부터 다이어그램을 생성하고, ADR을 남기며, 자동화된 아키텍처 테스트로 문서를 정직하게 유지하는 방법을 알아본다.

위키에서 본 모든 아키텍처 다이어그램은 틀렸다. 극적으로 틀린 건 아니다. 조용히, 점진적으로 틀린 것이다. "Auth"라고 적힌 서비스는 6개월 전에 세 개의 microservice로 쪼개졌다. "sync call"이라고 표시된 화살표는 이제 queue를 통해 async로 동작한다.…

왜 Cursor에서 NativeWind로 Vibe Coding 하면 React Native 앱이 규모가 커질수록 망가지는가

주말 동안 Cursor로 MVP를 배포했지만 이제 색 하나 바꾸려면 47개 파일이 흔들린다. 그 출혈을 멈추는 styling contract를 설명합니다.

Cursor를 열고 prompt를 입력하자, Claude Code가 순식간에 완전한 React Native UI를 만들어 냈습니다. flex layout, 둥근 버튼, color theme까지 첫 시도에 모두 동작했습니다. TestFlight에 올렸고, 사용자가 다운로드하기…

왜 Claude Code가 당신의 코드를 리뷰하면 안 되는가 (대신 무엇을 써야 하는가)

LLM 코드 리뷰는 비결정적이고 느리며 아키텍처 위반을 놓친다. 실제로 코드를 깨끗하게 유지하는 O(1) guard stack을 설명합니다.

제 네트워크에 있는 한 개발자가 CI 코드 리뷰어로 Claude Code를 붙였습니다. "PR은 그냥 Claude한테 보게 하면 돼요"라고 하더군요. "제가 놓치는 것도 잡아 줘요." 그래서 같은 PR을 Claude에게 두 번 돌려 보라고 했습니다. 첫 번째 리뷰는 error…

마이그레이션하지 말고 삭제하라: Vibe-Coded React Native 앱의 리팩터링 전략

AI가 생성한 코드를 리팩터링한다는 건 애초에 없던 의도를 역으로 해석하는 일이다. 삭제를 안전하게 만드는 interface 중심 replacement 패턴을 설명합니다.

생물학에서 autotomy는 더 이상 유용하지 않은 신체 일부를 스스로 떼어 내는 행동입니다. 도마뱀은 포식자를 피하려고 꼬리를 버립니다. 한때는 유용했지만, 살아남으려면 놓아줘야 합니다. 그리고 새 꼬리가 다시 자랍니다. Vibe-coded React Native 앱을 리팩터링할…

Cursor와 Claude Code가 React Native 아키텍처를 망가뜨리는 방식 (그리고 고치는 법)

AI가 만든 auth는 새 feature가 잘못된 service를 건드리기 전까지는 멀쩡해 보입니다. vendor 교체와 feature 작업이 login을 깨뜨리지 않게 만드는 interface 중심 architecture를 설명합니다.

Vibe-coded React Native 앱에서 반복해서 보이는 failure mode 중 하나는, 새 feature가 기존 service를 직접 import하고 자기 소유가 아닌 state를 건드린 뒤 전혀 관계없는 flow를 깨뜨리는 것입니다. auth가 특히 자주 희생되는…