개발자들이 몰랐던 5가지 흥미로운 사실
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

모르고 있던 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"은 버전 관리의 표준이 되었으며, 이와 같은 기술적 흥미사건은 개발자에게 중요한 통찰 제공