기초 웹 개발 공략서 -제이펍출판사
1.웹 기술 총정리
2.코딩기초지식
3.설계의 첫걸음
4.데이터베이스 & SQL입문
5.클라우드 시대의 인프라 지식
1.웹 기술 총정리
1-1.웹의 세계
Www는 다음 세가지 요소로 부터 시작한다.
Url : 데이터는 어디에 있는가
Http:// 어떤 방법으로 데이터를 가져갈 것인가?
Blog.livedoor.ip //서버(host)는 어떤 것인가?
/danko/serarch //서버내의 위치는 어디인가?
?q=web //질의는 무엇인가?
정보 그 자체를 나타내는 URL
Http : 데이터는 어떻게 손에 넣는가?
Http 이전의 프로토콜은 이것보다 필요 이상으로 복잡함 >> FTP( file Transfer protocol ) 은 메타데이터를 교환하는 포트와 데이터를 교환하는 포트가 별도로 존재하므로
직적접인 커맨드로 서버와 대화한다는 것은 지극히 여러운 일이었다
Html: 데이터는 어떻게 표현하는가?
Html 자체는 언어가 아니며 프로그래밍을 위한 기술방법이다.
초기에 클라이언트는 html의 보기에 전념하고 서버에는 html을 생성하는 프로그램을 만들면 좋지 않을까?
웹 브라우저는 말 그대로 서버가 전송한 html을 그냥 보기만 하는 도구였다. 하지만 현재 웹 브라우저를 탑재하고 있는 현재의 클라이언트는 고급 처리 능력을 지니고 있다.
>> 언어를 추가로 넣을 수 있는 언어가 html이다
예를 들어 펄, php, 파이썬, 루비등 이른바 p 언어에는 정규표현이라는 언어 내 언어가 모두 탑재 되어있다.
현재 html의 필수언어는 자바스크립트 ,css ,html 자신이다.
자바스크립트
자바스크립트는 다른 언어이나 마케팅상의 사정으로 그러한 이름이 되었다. 어디까지나 클라이언트측 웹 프로그래밍은의 주류는 자바 애플릿이었고 자바스크립트는 덤의 위치에 있었다.
자바 애플릿은 먼저 자바를 컴파일하여 클래스파일을 만든후 html파일에 별도의 obj태그등으로 로딩해야한다. 초기의 jvm은 느렸고 이런 이유로 자바 애플릿은 더 무거웠다. 그러던중 자바애플릿이나 자바스크립트냐의 문제에서 새로 화두된것이 플래시였다.
자바스크립트보다 고기능이고 자바보다 가벼운 플래시는 순식간에 보급되었다.
하지마 플래시는 자바 애플릿보다 html의 외부에 있다. 플래시와 같은 웹 브라우저 플러그인의 경우는 웹 페이지 안에 전혀 다른 세계로 구축할 수 밖에 없었다. 그리고 애플은 플래시를 거부했다.
오픈되어 있지 않다. 전혀 웹 적이지 않다. 안정적이지 않다. 전력 소비가 많다. 이런 추가적인 이유이다.
이런 논쟁중에 html5는 플래시를 대체할수있는 언어가 되었다.
1-2.개발 언어 총정리
처음 등장한 것은 CGI( Common Gateway interface) 이다
정적인 문서를 살펴보기 위한 도구였다 말 그대로 어떤 인터페이스여도 상관없다. C. C++, java, 파이선이든 모든 ok 이다.
HTML을 프로그램에 모두 작성하기보다는 HTML 안에 프로그램을 집어 넣으면 좀더 편리 할것이라는 생각으로 적합했던 것이 PHP다.
컴파일 언어 : 소스 코드로 부터 실행파일(바이너리)를 생성한 후 그것을 실행하는 언어이다. 처리속도가 빠르다. ( c.c++ )
스크립트 언어: 자바 스크립트, php, 펄, 파이썬, 루비 대입되 시점에 정해진다.
-펄 : 웹프로그래밍의 첫번째 언어이다. 고부하 환경을 요구하는 곳에서 주로 쓰이며 p언어의 대표적이다.
-루비 : 동적 언어에서는 드물게 공식 규격을 가지고 있다.
-파이썬 : 구글 앱 엔젠의 개발언어
자바스크립트는 웹 브라우저간 다르다. Ie와 firefox의 쓰임은 동일한 중국어라 할지라도 북경어와 광동어 차이처럼 다르다.
이걸 해소시켜주는 것이 j-query이다.
그리고 필요한 데이터만 서버에 질의하여 그것을 클라이언트가 가공하여 표시할 필요가 있다에서 나온 것이 ajax이다.
1-3 서버 총정리
웹 어플리케이션이란 무엇인가?
Http/https라는 프로토콜을 통해 요구돈 기능을 제공하는 것이다.
현재 웹 서비스들은 정적 콘텐츠 + 동적콘텐츠를 조합하여 만들어져있다.
다수의 클라이언트로 부터 접속을 기다리다가 수신된 요청에 대해 적절한 형식을 적절한 응답을 반환한다. 그떄 동시에 접속을 허가하는 클라이언트수의 제한 및 각종 안전과 보안, 로그의 기록, 인증 제어 및 암호화 처리등 http/https의 제어에 필요한 여러가는 기능한다.
애플리케이션 서버(AP) : 클라이언트로부터의 요청을 해석하여 그 클라이언트에 반환해야 할 다양한 정보를 모아 최종적으로 문자 데이터로 교환해 html로 출력한다.
역 프록시 서버 : 받은 요청에 대응하는 어플리케이션 서버중 하나를 선택하여 요청을 보다고 응답을 받아 반환한다.
클라이언트로부터의 접속수를 제한하고 로그의 기록, 페일오버, 라우팅 역할을 한다.
캐시서버 : 클라이언트에 반환되는 응답의 내용을 일시적을 보관하여 동일요청이 있을때 고속으로 반환한다.
실제 웹 어플리케이션은 이러한 각종 서버를 조합하여 구성한다.
그리고 이러한 서버로 자주 사용되는 몇가지가 있다.
-Apache http server
-nginx
-microsoft internet information( IIS ) ..
AP 서버 전용의 소프트웨어
애플리케이션 서버는 동작시키는 프로그램이 어떤 언어로 작성되었는가가 중요하다.
1-4 데이터베이스의 총정리
1-5 클라우드 총정리
인프라 구축/운용
서버 머신의 설치 장소, 전원의 확보
네크워크 회선
Os와 미들웨어
각 하드웨어 고장 시의 대응, 중복화
각종 모니터링
운용 플로우
클라우드란 인터넷 상에서 서비스로서 존재하는 컴퓨팅 리소스를 사용하여 사용자에게 애플리케이션 서비스나 하드웨어 리소스를 제공하는 새로운 컴퓨터의 이용형태를 가르킨다.
>> 인터넷상에서 미리 준비된 서버나 스토리지, 또는 애플리케이션을 이용 시간이나 이용량에 따라 대여할 수 있다는 것이다.
시스템 운용을 아웃소싱하기 >> aws
스토리지의 용량 및 파일 엑세스에 관한 동시접속수, 중복화, 재해복구, 스토리지의 유지보수등 많은 제한이 해결된다.
클라우드의 종류
SaaS software as a service 클라우드 서비스를 제공하는 모델
>> 웹 브라우저만 설치되어 있으면 곧바로 메일 송수신을 할 수 있다 >>지메일, 구글 드라이브등
PaaS platform as a service 시스템의 플랫폼을 클라우드 서비스로 제공하는 모델
>> 애플리케이션을 동작시키기 위한 웹 서버나 엔진, 데이터베이스등이 있고 백업, 중복화, 자동확장, 시스템 관리툴이라는 운용과 관련된 구성이다. 일반적으로 애플리케이션을 구현하고 그것을 구동시키기 위해 설비, 네크워크, 하드웨어, 미들웨어, os 등 플랫폼을 제공할 필요가 있다.
>> 구글 웹 엔진 , 헤로쿠
IaaS - infrastructure as a service
Cpu나 메모리, 디스크 하드웨어 리소스를 클라우드 서비스로 제공하는 모델
이전부터 존재하던 인터넷상의 랜탈 서버 형식의 호스팅 서비스등을 말한다. PaaS와의 차이점은 플랫폼이다 밴더가 제공하는 플랫폼을 사용할수밖에없지만 Iaas에서는 os보다 위의 레이어르 자유롭게 커스터마이즈 할수있다. 플랫폼을 자유롭게 설계할수있으므로 기존 자사의 운용하고있는 시스템을 클라우드로 이행할때는 유용하다.
>>아마존 웹 서비스