Software Architecture

Latest posts

Readium 개발기 #2 — 도메인 설계는 왜 반드시 무너지는가

도메인 설계는 처음부터 틀린다. 문제는 틀렸다는 사실이 아니라, 왜 틀렸는지 보이지 않는다는 데 있다. 이 글은 상태 기반 모델이 어떻게 무너지고, 왜 이벤트와 시간 개념으로 재구성될 수밖에 없는지를 구조적으로 추적한다.

Readium 개발기 #0 — 우리는 왜 틀린 설계에서 시작하는가

설계는 처음부터 맞지 않는다. 대부분의 프로젝트는 문제를 정확히 정의하지 못한 상태에서 시작되고, 그 결과 틀린 구조 위에서 개발이 진행된다. 이 글은 Readium 개발기를 시작하기 전에, 왜 이 시리즈가 “정답”이 아니라 “설계가 무너지는 과정”을 기록하려 하는지에 대한 선언이다.

polyfill에서 ponyfill까지 — 환경을 믿지 못한 코드의 역사

우리는 단순히 기능을 구현하는 것이 아니라, 신뢰할 수 없는 실행 환경을 견디기 위한 코드를 함께 작성하고 있다. polyfill에서 ponyfill, 그리고 그 너머까지 이어진 흐름은 JavaScript가 어떻게 불확실성 위에서 진화해왔는지를 보여준다. 이 글은 우리가 작성하는 코드의 상당 부분이 왜 기능이 아니라 ‘환경에 대한 방어’로 존재하는지를 구조적으로 풀어낸다.

코드를 넘어서 생태계로 — 오픈소스가 만들어낸 보이지 않는 전환

오픈소스는 단순한 코드 공개가 아니었다. Linux에서 Android까지 이어진 흐름 속에서, 소프트웨어는 코드가 아니라 생태계로 확장되었고 개발 방식 자체가 다시 정의되기 시작했다.

우리는 왜 아직도 필요 없는 코드를 다운로드하고 있을까 — JavaScript 의존성 비대화의 구조적 착각

우리는 단순히 코드를 작성하는 것이 아니라, 수백 개의 의존성을 함께 다운로드하며 시스템을 구성한다. 문제는 그 중 상당수가 더 이상 필요 없는 코드라는 점이다. 이 글은 JavaScript 의존성 비대화가 어떻게 만들어졌고, 왜 여전히 유지되고 있으며, 우리가 어떤 선택을 해야 하는지를 구조적으로 분석한다.

AI 에이전트의 착각 — 왜 규제 산업에서는 자율성이 금지되는가

AI 에이전트가 모든 일을 대신하는 시대라는 말은 매력적이다. 하지만 금융과 의료 같은 규제 산업에 이 개념을 그대로 적용하는 순간, 그 전제는 무너진다. 이 글은 AI의 한계가 기술이 아니라 책임 구조에 있다는 점, 그리고 AI가 왜 자율적인 존재가 아니라 통제 가능한 구조로 재구성될 수밖에 없는지를 따라간다.