프로그래밍언어/WEB

웹 프로그래밍 언어와 주요 기술

헬로월드! 2020. 3. 26. 01:50

웹  프로그래밍은 서버와 클라이언트의 협력에 의해 구현

구분 종류
클라이언트 기술 HTML, 자바스크립트, CSS
서버 기술 서블릿, JSP, ASP.Net, PHP
클라이언트/ 서버 공통 기술  자바, C, C# 

1. HTML (HyperText Markup Language) :

그림으로 비유하자면 스케치 

웹 사이트에 접속하면 나타나는 그림, 동영상, 텍스트, 링크 등이 내부에서 HTML 로 표현된 것 

HTML5 : HTML 에 비해 간결, 스마트 디바이스와 같은 새로운 모바일 환경에 적합한 문서 구조와 확장성 제공, 

멀티 미디어와 다양한 UI 제공

 

2. CSS (Cascading Style Sheet) :

그림으로 비유하자면 색칠

HTML 로 표현되는 콘텐츠를 더욱 효과적으로 관리 하려고 만들어진 기술 

HTML 은 정보를 표현하는데 집중해야하기 때문에 화면 디자인이나 레이아웃 관련 요소는 스타일 시트로 사용하는게 좋다. CSS3 + HTML5 는 최적의 조합! 

 

3. JavaScript :

자바와 문법 구조가 유사한 웹 클라이언트 개발 언어 

해석의 주체가 클라이언트( 즉, 브라우저) 라는 점에서 서버 스크립트와 구분된다.

HTML 로 표현되는 정적 콘텐츠를 서버 연결 없이 동적으로 처리하기 위한 목적으로 만들어진 간단한 프로그램

자바스크립트는 브라우저에 의해 실행되므로 데이터베이스 처리 등 서버가 필요한 기능은 직접적으로 구현할 수 밖에 없으며, 필요한 경우 서버 호출을 통해 JSON (JavaScript Object Notation) 규격의 데이터를 수신해 동적으로 처리 가능 

 

데이터베이스의 내용을 웹 서비스로 어떻게 보여줄까? 서버 기반의 웹 프로그래밍 기술의 필요!! 

 

4. 서버 스크립트 기술:

HTML 에 프로그램 언어를 스크립트 형태로 사용할 수 있게 해주는 기술,

프로그램의 해석이나 컴파일 과정을 섭서버에서 담당하는 방식

 

5. CGI (Common Gateway Interface):

초기 웹 프로그램 개발에 사용된 개발 방식

셸 스크립트, C언어, 펄 등 다양한 프로그래밍 언어를 지원한다는 장점, 하지만 지금은 거의 안씀! 

CGI 의 문제는 각각의 클라이언트 호출에 따른 개별 프로세스를 생성한다. 프로세스가 많아진다는 것은 그만큼 시스템에 부하를 주는 요인이다. 예를 들어 100 명이 접속하면 프로세스 100개가 생성되므로 동일한 프로그램이 100번 실행되는 것과 같은 원다. 또 하나의 문제는 C언어 등을 이용할 경우 시스템에 종속되어 윈도우에서 개발된 CGI 프로그램을 리눅스에서 사용할 수 없고 같은 유닉스라고 하더라도 서로 다른른 하드웨어 플랫폼을 사용하는 시스템에서는 사용할 수 없다. 유지보수가 어려운 구조 -> 문제점을 해결하기 위해 서버 스크립트 기술이 출현하게 됨 

 

6. ASP.Net(Active Server Page.Net) :

윈도우 기반의 서버 인프라 사용가능, .Net 기반의 프로그램 컴포넌트를 서버 측에서 사용할 수 있음 단점) 윈도우 서버만을 사용해야 한다는 제약, 서버 라이센스 정책 등 주로 기업 내부에서 사용하는 업무용 개발에 활용됨

 

7. PHP (Professional Hypertext Preprocessor):

오픈소스 프로젝트, 다양한 운영체제와 웹 서버 환경에서 운영가능,

APM (웹 프로그램을 위한 기본적인 환경) : Apache (웹서버) ,PHP, MySQL(db) 를 의미할 정도로 대표적임 

PHP 는 처리 속도가 빠르고 메일 ,db 처리등 다양한 기능을 자체적으로 지원

 

8. JSP (Java Server Page):

서블릿이라고 하는 자바로 구현된 웹 프로그래밍 기술,

Java 의 모든 기능을 사용할 수 있음, 기본적으로 서블릿으로 변경되어 실행됨, 메모리 상에 적재된 서블릿을 스레드로 실행함으로써 시스템 자원을 절약하고 효율적인 공유 가능 (최근에는 스프링 프레임워크 등과 결합하여 많이 사용됨) 

 

이 외에도 ruby on rails , node.js, Django, 스프링 루 등 다소 변형된 웹 프로그래밍 기술도 있다.