지극히 개인적인 공부 노트/근-본(Roooooooooooot) 10

[React] 'React'의 시작

화면 출력에 특화된 프론트엔드 프레임워크, 리액트 1. 기원 1) 누가 페이스북의 소프트웨어 엔지니어, Jordan Walke 2) 언제 - 2011년 페이스북의 뉴스피드에 첫 적용 - 2012년 인스타그램닷컴에 적용 - 2013년 5월 JSConf US에서 오픈 소스화 3) 어디서 페이스북 및 공동체 4) 왜 리액트를 개발한 Jordan Walke는 PHP용 컴포넌트 프레임워크인 XHP에서 영향을 받았다고 한다. 기존의 자바스크립트는 어떤 속성에 대해 값이 변경될 때, 그 속성에 해당하는 DOM과 요소를 찾은 다음 사용자가 정의한 규칙(함수, 이벤트 등)을 적용한다. 만약 이런 인터랙션이 자주 발생하고, 동적인 UI가 요구되는 상황에서는 이런 규칙이 엄청 많아질 것이고, 개발자는 그런 규칙과 DOM을 ..

[SQL] 'SQL'의 시작

탄생 이후 40년이 지나도 건재한 데이터베이스 조작 언어 1. 기원 1) 누가 도널드 D. 챔벌린, 레이먼드 F. 보이스 2) 언제 1976년 3) 어디서 IBM San Jose 연구소 4) 어떻게 관계형 모델과 그것의 튜플적 해석이라는 이론적 기초로부터 파생되어 설계되었다. 5) 왜 SQL의 시작인 SEQUEL은 IBM의 준 관계형 데이터베이스 관리 시스템 R에 저장된 데이터를 조작하고 수신하기 위해 고안되었다. 입력 릴레이션(테이블)으로부터 원하는 출력 릴레이션을 사상(mapping)시키는 언어로써, 1973년에 SQUARE(Structured Queries as Relational Expressions)이라는 언어가 발표되었다. 하지만 수학적인 표현이 많아서 초보자가 사용하기 어려웠는데 1974년에..

[CSS] 'CSS'의 시작

웹 페이지의 디자인을 책임지는 CSS 1. 기원 1) 누가 하콤 비움 리(Håkon Wium Lie) 2) 언제 1994년 10월 10일 3) 어디서 - 4) 어떻게 - 5) 왜 웹 페이지를 디자인하는 방법으로는 기존에 HTML의 태그 내부에서 또는 태그를 통해 추가하는 방법이 있었다. 하지만 점점 디테일하고 높은 수준의 디자인 수요가 늘어나고, HTML에는 웹 페이지의 정보를 다루는 것에 집중을 하기 위해 CSS(Cascading Style Sheet) 파일을 따로 생성하여 적용하게 된 것이다. CSS는 지금까지 여러 버전을 거쳐왔는데, CSS1은 1996년 12월 W3C의 권고 사항으로 나온 버전으로 모든 HTML의 태그에 대한 간단한 시각적 포맷 모델과 CSS의 언어에 대한 설명이 담겨있다. CSS..

[HTML] 'HTML'의 시작

웹 제작의 설계도, HTML 1. 기원 1) 누가 팀 버너스 리(Tim Berners-Lee) 2) 언제 1990년 말에 명시 3) 어디서 유럽 입자 물리 연구소(CERN) 4) 어떻게 버너스리가 제안한 인콰이어(HTML의 원형)로부터 시작 5) 왜 1980년, CERN의 비정규 계약직으로 일하던 팀 버너스 리는 CERN의 연구원들 사이에서 문서를 이용하고 공유하기 위한 체계로써, 인콰이어라는 것을 제안했다. 그는 이를 더 발전시켜서 1989에는 인터넷 기반의 하이퍼텍스트 체계를 제안하는 메모를 작성, 1990년 말에는 이를 HTML로 명시하며 브라우저와 서버 소프트웨어를 작성했다. 1991년 말에는 버너스 리가 처음으로 인터넷에서 문서를 HTML 태그(tag)라고 부른 것이 HTML 최초의 일반 공개 ..

[JavaScript] '자바스크립트'의 시작

10일 만에 개발된 언어 1. 기원 1) 누가 브렌던 아이크(Brendan Eich) 2) 언제 1995년 3) 어디서 넷스케이프(Netscape) - 웹 브라우저 시장에서 당시 큰 점유율(80%)을 차지하던 넷스케이프 네비게이터(Netscape Navigator) 만든 회사 4) 어떻게 10일 만에 5) 왜 1993년에 처음으로 UI(User Interface) 요소가 더해진 웹 브라우저가 출시되었다. 이 브라우저는 회사 NCSA의 Mosaic Web Browser(모자이크 웹 브라우저)였는데, 당시 모자이크 웹 브라우저의 개발팀을 이끌던 마크 앤드리슨(Marc Andrrssen)은 대학교를 졸업하면서 Netscape(넷스케이프)라는 회사를 설립했다. 그는 모자이크 웹 브라우저의 경험을 살려 조금 더 ..

[Python] '파이썬'의 시작

명시적인 것이 암시적인 것보다 낫다. - 파이썬 철학 중 일부 - 1. 기원 1) 누가 귀도 반 로섬(Guido van Rossum) 2) 언제 1989년 12월 3) 어디서 네덜란드 CWI(Centrum voor Wiskunde en Informatica, 국립 수학 및 과학 컴퓨터 과학 연구기관) 4) 어떻게 최초로 1980년대 말 고안되었고, 반 로섬이 구현하며 파이썬의 주 저자로 계속 중심적 역할을 맡아 파이썬의 방향을 결정. 5) 왜 귀도 반 로섬은 암스테르담대학교에서 컴퓨터과학과 수학을 전공하고, CWI라는 연구소에서 인터프리터 언어(interpreted language)를 개선하는 일을 맡았다. CWI에서는 개발 범용의 명령형 컴퓨터 프로그래밍 언어 ABC를 개발하는 프로젝트를 시작했지만, ..

[Web] '웹'의 시작

내가 만든 것을 전 세계와 함께 1. 기원 1) 누가 팀 버너스-리(Tim Berners-Lee) 2) 언제 1989년 3월 개발, 1993년 4월 세상에 공개 3) 어디서 CERN(유럽 입자 물리 연구소) 4) 어떻게 팀 버너스-리가 만든 프로그램과 인터넷을 통해 5) 왜 근본적으로 웹은 신속한 정보 교환과 공동 연구를 위한 프로그램에서 고안되었다. 팀 버너스-리는 대학에서 물리학을 전공했지만, 컴퓨터에 대한 전문성도 있었던 그는 CERN(유럽 입자 물리 연구소)에서 비정규직 소프트웨어 엔지니어로 근무했다. 비정규직이었기 때문에 그는 10년 동안 연구소를 들어갔다 나갔다를 반복했는데, 이 과정에서 웹의 전신이 되는 프로그램을 만드는 작업을 꾸준히 했다. 그 과정에서 1990년에 인터넷이 연구소에 도입되..

[Git] '깃'의 시작

지옥에서 온 관리자, 깃 1. 기원 1) 누가 리누스 토르발즈(Linus Torvalds) 2) 언제 2005년 4월 3일 개발 시작, 4월 6일 깃 프로젝트 발표, 4월 7일 자체 호스팅 진행, 12월 21일 1.0 릴리스 3) 어디서 토르발즈가 직접 4) 어떻게 아래 기준에 맞추어 - 빠른 속도 - 단순한 구조 - 비선형적인 개발(수천 개의 동시 다발적인 브랜치) - 완벽한 분산 - Linux 커널 같은 대형 프로젝트에도 유용할 것(속도나 데이터 크기 면에서) - 변질에 대비한 매우 강력한 안전 기준을 포함할 것 5) 왜 리눅스 커널(Linux Kernel)은 굉장히 규모가 큰 오픈소스 프로젝트였다. 리눅스 커널은 패치(patch)와 단순 압축 파일로만 관리했는데, 2002년에 비트키퍼(BitKeep..

[Linux] '리눅스'의 시작

자유 소프트웨어와 오픈 소스 개발의 가장 유명한 표본 1. 기원 1) 누가 리누스 토르발즈(Linus Torvalds) 2) 언제 1991년 9월 17일(최초 버전 출시일) 3) 어디서 헬싱키 대학교 4) 어떻게 리누스 토르발즈는 자신만의 운영 체제 커널에 대한 작업을 시작했고, 이는 당시 유행하던 GNU(Gnu is not Unix) 프로젝트의 일환으로 오픈 소스와 자유 소프트웨어로써 개발자들이 함께 참여하며 온전히 기능하는 자유 운영 체제로 완성됨. 5) 왜 1969년에 착안되고, 1971년 처음 출시된 유닉스 운영 체제는 온전히 어셈블리어로 작성되었고, 1973년에는 데니스 리치가 일부 하드웨어 및 입출력 루틴을 제외하고 C 프로그래밍 언어로 재작성했다. 하지만 이 유닉스 운영 체제는 1984년에 ..

[Internet] '인터넷'의 시작

언제, 어디서나 통신이 가능할 수 있게 1. 기원 1) 누가 미국 국방부 산하의 고등 연구국(Advanced Research Projects Agency, ARPA) 2) 언제 2차 세계대전, 핵전쟁이 끝난 후 1960~1970년대 3) 어디서 미국 4) 어떻게 (1) 기존의 회선 교환(circuit switching) 방식보다 패킷 교환(packet switching) 방식이 매우 견고하고, 생존성이 높다는 연구 결과. (2) 1969년 10월 29일 UCLA와 SRI연구소 간 연결(최초의 2 노드 간 상호연결) - 현재 인터넷망의 시초(ARPANET, 아파넷) 5) 왜 핵전쟁까지 끝난 1960년, 미국은 통신시스템의 심각한 취약점(중앙집중적)을 극복하기 위해 분산된 통신시스템을 연구했다. 이 과정 속..