모르고 있던 5가지 개발자 흥미로운 사실
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- 개발자, 프로그래밍 역사 및 기술 흥미자
- 중급 수준 이상의 기술 이해가 필요
핵심 요약
- 1971년에 ARPANET에서 생성된 첫 번째 자가 복제 프로그램인 "Creeper virus"는 이후 "Reaper"로 대응
- 8개의 기호만으로 구성된 "Brainfuck" 언어는 계산 이론의 한계를 보여주는 실험적 언어
- Google Sheets의 "Google Apps Script" 엔진은 튜링 완전하지만, 생산 환경에는 적합하지 않음
- "Heisenbug"는 디버깅 시 시스템 관찰이 버그 행동에 영향을 주는 현상
- "Git"은 Linus Torvalds가 BitKeeper 라이선스 철회에 대응한 버전 관리 시스템으로 유명해짐
섹션별 세부 요약
1. 초기 바이러스와 안티바이러스의 출발
- 1971년 BBN Technologies의 Bob Thomas가 작성한 "Creeper virus"는 ARPANET에서 자가 복제하는 프로그램
- "Reaper"는 Creeper와 동일한 네트워크 환경에서 작동하며 최초의 안티바이러스로 간주됨
- Creeper와 Reaper는 현대 인터넷의 기반인 ARPANET에서 실행됨
2. Brainfuck 언어의 특징
- "Brainfuck"는 8개의 기호(
< + - . , [ ]
)로 구성되어 있으며, 간단하지만 읽기/작성이 어렵다 - 예시: "Hello, World!" 프로그램은 단순한 명령어로 복잡한 코드를 생성
- 이 언어는 계산 이론의 한계를 시연하기 위해 설계되었으며, 실용성은 없음
3. Google Apps Script의 튜링 완전성
- Google Sheets 자체는 튜링 완전하지 않지만, "Google Apps Script" 엔진은 튜링 완전
- 이를 통해 폼 생성, 사용자 데이터 처리, JSON 서빙 등 가능
- 하지만 성능, 보안, 확장성 제한으로 인해 생산 환경에는 적합하지 않음
4. Heisenbug 현상
- "Heisenbug"는 디버깅 시 시스템 관찰이 버그 행동을 변화시키는 현상
- 예: 스레드 경쟁 상태에서
print()
사용이 임의 동기화를 유발 - 실제 해결 방법은 잠금(Lock) 또는 뮤텍스(Mutex) 사용
5. Git의 기원
- Linus Torvalds가 BitKeeper 라이선스 철회에 대응해 10일 만에 개발한 버전 관리 시스템
- 자기 자신을 "a git"이라고 표현하며 이름을 붙임
- 현재 세계에서 가장 널리 사용되는 버전 관리 시스템
결론
- "Creeper virus"와 "Heisenbug"는 역사적/기술적 교훈을 제공
- "Brainfuck"는 계산 이론 이해에 유용, "Google Apps Script"는 프로토타이핑에 적합
- "Git"은 버전 관리의 표준이 되었으며, 이와 같은 기술적 흥미사건은 개발자에게 중요한 통찰 제공