데이터베이스는 원래 ‘선택할 수 있는 것’이 아니었다오늘날 개발자에게 데이터베이스는 너무 당연한 존재다. 프로젝트를 시작하면 자연스럽게 하나를 선택하고, 로컬 환경에서 바로 실행하며, 필요에 따라 클라우드로 옮긴다. 하지만 이 당연함은 비교적 최근에 만들어진 것이다. 한때 데이터베이스는 선택 가능한 도구가 아니라, 일정 수준 이상의 조직만이 다룰 수 있는 인프라였다. 특히 1990년대까지 데이터베이스 시장은 소수의 기업이 지배하는 구조였고, Oracle이나 IBM DB2 같은 제품은 기업 시스템의 핵심으로 자리 잡고 있었다.이 시기의 데이터베이스는 단순한 소프트웨어가 아니라 하나의 시스템이었다. 라이선스 비용은 매우 높았고, 이를 운영하기 위해서는 전문 인력이 필요했다. 데이터 정합성과 안정성을 보장하기..
웹은 준비된 상태에서 시작되지 않았다오늘날 우리는 웹을 하나의 완성된 플랫폼처럼 받아들인다. 브라우저를 열고 주소를 입력하면, 수많은 서비스가 자연스럽게 연결된다. 그러나 이 구조는 처음부터 존재했던 것이 아니다. 오히려 웹은 아무것도 준비되지 않은 상태에서 시작되었고, 그 위에 하나씩 쌓이듯 만들어진 결과물에 가깝다. 이 점을 이해하지 않으면 Apache라는 존재가 왜 중요한지, 그리고 왜 단순한 웹 서버 이상의 의미를 가지는지를 제대로 이해하기 어렵다.초기 웹은 지금과 비교하면 극도로 단순했다. HTML은 문서를 표현하기 위한 최소한의 구조였고, HTTP 역시 상태를 유지하지 않는 단순한 요청-응답 프로토콜에 불과했다. 웹 서버라는 개념조차 명확하지 않았고, 대부분의 시스템은 연구기관이나 대학에서 운..
보이지 않는 비용 위에서 돌아가는 시스템개발자는 언제나 빠른 선택을 한다. 이미 만들어진 것을 가져다 쓰는 것은 합리적이고, 반복을 줄이며, 생산성을 높인다. npm install이라는 한 줄의 명령은 그 선택을 극단적으로 쉽게 만들어 준다. 하지만 이 간단한 선택 뒤에는 우리가 의식하지 못하는 구조가 숨어 있다. 하나의 패키지를 설치하는 순간, 우리는 그 패키지뿐만 아니라 수십, 수백 개의 간접 의존성을 함께 내려받는다. 그리고 그 중 상당수는 우리가 직접 사용하지도 않는 코드다.문제는 이 코드들이 단순히 “존재하는 것”에서 끝나지 않는다는 점이다. 이들은 시스템의 일부로 포함되어 실행 경로에 영향을 미치고, 메모리를 점유하며, 성능과 안정성에 영향을 준다. 더 나아가 보안 관점에서는 공격 surfac..
브라우저 전쟁이 만든 선택 — Netscape는 왜 코드를 공개했는가인터넷 초창기의 풍경을 떠올려보면 지금과는 전혀 다른 질서가 보인다. 오늘날 우리는 웹을 하나의 거대한 플랫폼으로 인식하지만, 당시에는 그 플랫폼을 구성하는 기준이 존재하지 않았다. 웹 표준이라는 개념은 아직 느슨했고, 사용자 경험은 각기 다른 브라우저의 구현 방식에 의해 결정되었다. 이 환경에서 브라우저는 단순한 도구가 아니라, 인터넷이라는 공간을 해석하고 보여주는 하나의 ‘권력’에 가까운 존재였다. 그리고 그 권력을 가장 먼저 장악한 것이 Netscape였다.Netscape Navigator는 단순히 빠르고 편리한 브라우저였기 때문에 성공한 것이 아니었다. 그것은 웹을 사용하는 방식 자체를 정의했다. 개발자들은 Netscape에서 어..
- Total
- Today
- Yesterday
- Readium 개발기
- 로컬 우선 아키텍처
- Flutter 앱 개발
- 티스토리스킨
- 오픈소스
- 앱 도메인 설계
- 웹디자인
- 1인 개발
- 인터넷문화
- 한국인터넷역사
- Windows개발
- 다크모드
- NanoClaw
- AI와인터넷
- SQLite 앱 아키텍처
- Idempotent 처리
- 도메인설계
- ChatGPTCodex
- CodexApp
- WSL개발환경
- 티스토리
- 블로그디자인
- 이벤트아키텍처
- 트랜잭션 설계
- css커스터마이징
- Google Play 출시
- 온라인신원인증
- 프론트엔드
- 로컬우선아키텍처
- Readium개발기
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |