1. 웹 프로그래밍 기초
1) 웹 프로그래밍을 위한 프로그램 언어들
저급 언어
- 기계 중심의 언어, 2진수(0과 1)로 이루어진 값 : 기계어(Machine Language)
- 숫자로 된 문장 1:1 대응 기호 => 기호로 작성된 문장들을 원래의 숫자로 바꿔야 하는 과정 필요
- 이러한 과정에 사용되는 도구 : 어셈블러(Assembler)
- 기호로 작성된 언어 : 어셈블리어(Assembly Language)
고급 언어
- 사람 중심의 언어, 사람이 좀 더 이해하기 쉬운 문법
- 작성된 소스코드를 번역하는 도구 : 컴파일러(Compiler)
언어 | 특징 |
---|---|
FORTRAN | 최초의 고급 언어 중 하나, 주로 과학 계산용 |
COBOL | 일반 업무 목적, 현재도 은행 등에서 사용 |
PROLOG | 논리형 프로그래밍 언어, 논리식을 토대로 오브젝트와 오브젝트 간 관계에 관한 문제 해결 |
C | 1972년 벨 연구소의 데니스 리치에 의해 개발, 시스템 프로그래밍에 가장 적합한 평가를 받음 |
Erlang | 스웨덴의 에릭슨에서 개발한 함수형 병행성 프로그래밍 언어, 통신 인프라를 위한 언어 |
Lisp | LISt Processor의 약자, 대료적인 함수형 언어 |
Swift | 2014 WWDC에서 공개한 프로그래밍 언어, 현대 프로그래밍 언어의 발전을 대다수 계승한 모던 프로그래밍 언어 |
Kotlin | JetBrains에서 2011년에 개발한 프로그래밍 언어, JVM기반으로 Java와 상호 운영 100% 지원 |
Clojure | 리치 히키가 만든 Lisp 프로그래밍 언어의 방언, 범용 함수형 언어 |
Python | 데이터 과학에서 자주 사용되며 웹사이트 개발에서 많이 사용, 최근 ML(Machine learning)에서도 많이 사용 |
Java | 1995년 썬 마이크로 시스템즈에서 개발한 객체지향 프로그래밍 언어, 세계에서 가장 많이 사용되는 언어 중 하나 |
웹 관련 인기 언어
Python
프로그래밍 입문자에게 유용, 데이터 과학에서도 주로 사용되며 웹사이트 개발에서도 많이 사용
PHP
웹의 80% 이상이 PHP로 만들어졌다고 할 만큼 웹 개발에서 많이 사용
JavaScript
브라우저에서 동작하는 언어로 시작, 현재 서버에서도 작성하는 프로그램으로 점차 영역 확장
Java
엔터프라이즈 소프트웨어 환경에 잘 맞는 언어, 큰 규모의 소프트웨어 개발에 많이 사용
Ruby
빠른 개발에 널리 사용되며, 단순함과 세련된 웹 어플리케이션을 만들 수 있기에 인기 있는 언어 중 하나
2) 웹의 동작(HTTP 프로토콜 이해)
HTTP(HyperText Transfer Protocol)3
- 서버와 클라이언트가 인터넷상에서 데이터를 주고받기 위한 프로토콜(Protocol)
- HTTP/2까지 등장한 상태, v1.1에 대해 학습
- 문서화된 최초의 HTTP버전은 v0.9(1991년)
HTTP 작동방식
- 클라이언트/서버 모델
- 장점
- 불특정 다수 대상 서비스에 적합
- 클라이언트/서버가 계속 연결된 형태X, 클라이언트/서버 간 최대 연결 수보다 많은 요청과 응답 처리 가능
- 단점
- 연결을 끊기 때문에, 클라이언트의 이전 상태 알 수 없음(무상태, Stateless)
- 정보 유지를 위해 Cookie와 같은 기술 등장
URL(Uniform Resource Locator)
- 인터넷 상 자원의 위치
- 특정 웹 서버의 특정 파일에 접근하기 위한 경로 혹은 주소
- 접근 프로토콜 :// 웹 서버명 / 경로 / 파일 이름
Request Message
- Request Method : GET, PUT, POST, OPTIONS 등
- URI(Uniform Resource Identifier) : 요청하는 자원의 위치 명시
- HTTP Protocol Version : 웹 브라우저가 사용하는 프로토콜 버전
Request Method 종류4
Method | 특징 |
---|---|
GET | 정보를 요청하기 위해 사용 (SELECT) |
POST | 정보를 밀어넣기 위해 사용 (INSERT) |
PUT | 정보를 업데이트하기 위해 사용 (UPDATE) |
DELETE | 정보를 삭제하기 위해 사용(DELETE) |
HEAD | (HTTP)헤더 정보만 요청, 해당 자원 존재유무, 서버 문제 확인을 위해 사용 |
OPTIONS | 웹서버가 지원하는 메소드의 종류 요청 |
TRACE | 클라이언트의 요청을 그대로 반환, ex) echo 서비스로 서버 상태 확인을 위한 목적으로 사용 |
Response Message
- HTTP Protocol Version : 웹 서버가 사용하는 프로토콜 버전
- Status Code : 요청의 성공여부 및 그 이유를 나타내는 상태 코드
- Status Message : Status Code에 대한 짧은 설명
Status Code 종류5
Status Code | 특징 |
---|---|
1XX6 | Information responses, 요청 받았으며 작업 요청은 받았으나 클라이언트에 응답X(실험적인 상황 제외) |
2XX7 | Successful responses, 클라이언트가 요청한 동작 수신 후 성공적으로 처리 |
3XX8 | Redirection messages, 클라이언트는 요청을 마치기 위해 추가 동작 수행 필요 |
4XX9 | Client error responses, 클라이언트에 오류가 있음을 나타냄 |
5XX10 | Server error responses, 서버에 오류가 있음을 나타냄 |