01. 네트워크, 인터넷, 웹
- 네트워크
- 네트워크(Network)의 사전적 의미는 "전선이나 혈관, 통로 등으로 이루어진 망형 조직"
- 방송사 네트워크, 인맥을 의미하는 휴먼 네트워크 등
- IT분야에서는 '컴퓨터와 컴퓨터를 연결해 주는 망'의 개념으로 컴퓨터 네트워크의 의미로 사용
- TCP/IP
- TCP/IP(Transmission Control Protocol/Internet Protocol)는 컴퓨터 간에 통신할 수 있도록 만든 프로토콜.
- 인터넷의 기반 네트워크 시스템으로 하드웨어, 운영체제, 접속 매체에 관계없이 동작할 수 있는 개방형 구조.
- IP 주소
- IP 주소(IP Address)는 TCP/IP로 연결된 네트워크에서 각각의 컴퓨터를 구분하려고 사용하는 주소
- 숫자로 구성되어 있고, 네개로 구분된 10진수를 사용
- 인터넷(Internet)
- 인터넷은 전 세계가 하나로 연결된 네트워크를 의미하는 고유명사
- internet은 내부 네트워크를 의미(Internet과 다름)
- 인터넷은 네트워크 인프라이고 www,email 등은 인터넷 기반 서비스임
- 인터넷은 웹과 다름
- 대표적인 인터넷 기반 서비스
- 프로토콜
- 네트워크에 연결된 컴퓨터들 간의 통신 규약
- 인터넷 서비스들은 TCP/IP 4계층 중 응용계층에 해당함
- 포트
- 네트워크 서비스를 접속하기 위한 접점
- 컴퓨터에서 여러 네트워크 서비스를 제공하는 경우 이를 구분하기 위한 용도로 사용
- 은행의 구분된 업무 창구와 유사한 개념
- 도메인 네임 시스템
- DNS(Domain Name System)
- 인터넷에 연결된 컴퓨터 구분을 위해 사용하는 IP주소 대신 알기 쉬운 이름 형태로 컴퓨터를 구분하기 위한 인터넷 서비스/시스템 중 하나
- 호스트(컴퓨터) 이름(www) + 도메인 이름(hanb.co.kr) 형태로 구성됨.
- 예)www.naver.com, www.daum.net, www.hanb.co.kr 등
- 도메인 관리 기관을 통해 일정 비용을 지불하고 사용 가능
- DNS 처리 과정
- 도메인 네임 입력한다.
- 네트워크 서비스 제공 회사(KT, SK, U+등)의 DNS 서버에 도메인 이름을 요청한다.
- DNS 서버는 한빛미디어 DNS 서버인 ns.hanb.co.kr에 www라는 컴퓨터의 IP 주소를 요청한다.
- 한빛미디어 DNS 서버는 DNS zone file에서 www 컴퓨터의 IP 주소를 찾아서 알려준다.
- DNS 서버는 다시 요청한 클라이언트에 IP 주소를 알려준다.
- 웹
- 월드 와이드 웹(World Wide Web ,www)
- 인터넷에서 운영되는 서비스 중 하나로 많은 사람들이 '웹=인터넷'이라고 생각할 정도로 대표적인 인터넷 서비스
- 흩어져 있는 연구자들이 손쉬운 방법으로 정보를 공유하기 위해 HTML이라는 간단한 마크업 언어를 통해 콘텐츠를 제공하고 HTTP라는 프로토콜을 사용해 TCP/IP 네트워크에서 사용하기 시작함
- 웹 브라우저 소프트웨어와 인터넷에 연결만 되어 있으면 PC, 스마트폰, 테플릿 등 운영체제와 하드웨어 상관 없이 동일한 서비스 제공이 가능
- 웹 서버와 HTTP
- 서버(Server)
- 네트워크에서 서비스를 제공하는 컴퓨터
- 웹 서버, FTP 서버, 파일 서버, 프린트 서버
- 클라이언트(Client)
- 서비스를 이용하는 컴퓨터
- PC, 스마트폰, 테블릿 등
- HTTP(Hyper Text Transfer Protocol)
- 웹 서비스에 사용되는 통신 규격
- 간단한 명령어와 헤더 규격으로 되어 있음
- 웹 서비스의 동작 과정
- 웹 서버 소프트웨어
- 서버에서 웹 서비스를 제공하는 소프트웨어
- 아파치(Apache), 마이크로소프트 IIS(Internet Information Server)가 대표적임
- 클라이언트 소프트웨어
- 웹 서비스를 이용하기 위한 클라이언트 소프트웨어 -> 웹 브라우저(Web Browser)
- 인터넷 익스플로러(Internet Explorer), 크롬(Chrome), 파이어폭스(FireFox), 애플 사파리(Safari) 등
- 웹 브라우저에서 http://www.xxx.com/index.html을 입력
- www.xxx.com 도메인의 IP주소를 DNS 서버로부터 받음
- IP 주소의 해당 서버 80번 포트로 접속을 시도
- 웹 서버는 요청 내용을 분석하고 요청된 index.html 파일을 디스크에서 읽음
- 웹 서버는 파일 내용을 텍스트 그대로 요청한 클라이언트에 전송
- 웹 브라우저는 웹 서버에서 보내는 텍스트 내용 중 HTML 태그를 분석해 적절히 변환하여 화면을 구성
02. 웹 프로그래밍 언어와 주요 기술
- 웹 프로그램의 개요
- 일반적인 프로그램
- 컴퓨터에 설치 후 사용(스마트폰, 테블릿도 동일)
- 기본적으로 해당 디바이스에서 프로그램이 실행되고 경우에 따라 필요한 데이터는 서버로부터 수신
- 웹 프로그램
- 별도의 설치 없이 서버에 접속하는 것만으로 필요한 기능/서비스를 이용할 수 있음
- 프로그램은 서버에서 실행되고 실행 결과만 컴퓨터의 브라우저를 통해 보여짐
- 데이터 입력, 메뉴선택, 버튼 클릭 등 사용자와의 상호작용 처리를 위해 클라이언트에서 처리해야 되는 프로그램적인 요소도 있음
- 웹 프로그램은 서버와 클라이언트의 협력에 의해 구현됨
- 웹 프로그램 개발을 위해서는 서버 프로그래밍 기술과 클라이언트 프로그래밍 기술을 모두 알아야함
- 클라이언트 기술
- 기본적으로 브라우저에 의해 처리되는 요소
- 화면 구성, 스타일, 동적 이벤트처리 등 사용자 상호작용 담당
- HTMlL(Hyper Text Markup Language)
- 웹 서비스를 표현하기 위해 사용하는 언어
- <HTML></HTML> 과 같은 마크업 구조
- 최근 HTML5가 널리 사용되고 있음
- 자바스크립트(Javascript)
- 자바와 유사한 문법구조를 제공하는 웹 클라이언트 개발언어, 실제 자바와는 무관
- 웹 브라우저에서 해석, 웹 브라우저 성능 평가에서 매우 중요한 요소
- jQuery와 같은 공개 라이브러리가 유명함
- JSON(JavaScript Object Notation)은 클라이언트 서버간 정보 교환에 널리 사용
- CSS(Cascading Style Sheet)
- HTML에서 레이아웃이나 디자인 요소를 분리
- 최근 웹 클라이언트 개발은 HTML5+CSS3+JavaScript 임
- 서버 기술
- HTML 파일은 파일 내용을 수정하기 전까지는 내용이 변하지 않는 정적인 구조
- 사용자 요청에 따라 다른 정보를 제공하거나 데이터베이스를 통한 서비스를 위해서는 별도의 프로그램 기술이 필요
- ASP.NET
- MS 윈도우 기반의 서버 프로그램 기술
- .NET 기반의 컴포넌트 사용 가능
- MS 윈도우 종속과 상용 라이센스 정책으로 대규모 공개 웹 서비스 개발에는 거의 사용되지 않음
- PHP(Professional Hypertext Preprocessor)
- 처리속도가 빠르고 다양한 운영체제와 웹 서버 환경에서 실행 가능
- APM = Apache + PHP + MySQL
- 오픈소스 게시판, 위키 프로그램, 연구용으로 널리 사용
- JSP(Java Server Page)
- 자바 서블릿 기반의 웹 프로그래밍 기술
- 자바의 모든 기능을 사용할 수 있으며 안정성과 확장성이 뛰어나 가장 많이 사용되고 있는 웹 프로그래밍 기술
- 웹 프로그램의 현재와 미래
- WOA(Web Oriented Architecture)
- 기존 PC 중심의 사용자 환경에서 스마트폰, 태플릿, 스마트TV, 스마트카 등 새로운 기기들이 출현
- 한 사람이 여러 기기를 통해 동일한 서비스와 정보로의 접근이 필요해짐
- 즉 여러 기기 간의 끊어짐 없는(Seamless) 서비스가 요구되면서 One Source Multi Use를 위한 N-Screen 혹은 N-Device 서비스가 요구
- 이러한 요구사항 해결을 위해 다음과 같은 기술들이 급성장 하고 있음
- 하드웨어 인프라적인 측면 : 클라우드라고 불리는 대규모의 공용 컴퓨팅 서비스, 가상화 SW 포함
- 소프트웨어적인 측면 : WOA
- 기존 SOAP(Simple Object Access Protocol) 기반의 SOA(Service Oriented Architecture)에서 REST(Representational State Transfer) 기반의 경량 웹 서비스 모델 발전
- Restful 웹 서비스는 JAX-RS(JSR-311)로 자바 규격에 공식적으로 포함됨
- WOA는 웹을 중심으로 전체 시스템 아키텍처를 설계해 나가는 기술
- 프레임워크(Framework)
- 일반적인 개발의 문제점
- 프로그램의 규모 확대 -> 높은 생산성, 쉬운 유지 보수, 기능의 변경이 확장이 용이한 개발 기술 필요
- 개발방법론, 소프트웨어 디자인 패턴, 리팩토링, 프레임워크 등 소프트웨어 공학적 기술 등장
- 프레임워크(Framework)는 무언가를 만들기 위한 틀
- 소프트웨어적으로는 목적에 맞게 잘 설계된 구조와 미리 구현된 라이브러리가 포함된 소프트웨어 형태
- 프레임워크를 사용하면 정해진 규격에 따라 프로그램 구조를 만ㄷ르어야 하며, 개발자가 신경쓰거나 처리해야 할 많은 일과 이벤트 관리는 프레임워크를 통해 처리
- 여러 유틸리티 라이브러리도 제공하기 때문에 개발자는 비교적 적은 노력으로도 고품질의 소프트웨어 개발이 간으해짐
- 대표적인 프레임워크는 스프링프레임워크로 웹 개발을 포함해 대규모 시스템 개발에 적합한 기술 구조를 제공함
- 모바일 앱 개발과 웹 프로그래밍
- 모바일 기기의 특징
- 화면크기
- 스마트폰의 경우 3.5 ~ 6인치
- 태플릿의 경우 7 ~ 12인치
- 하드웨어 아키텍처
- PC의 x86과 다른 ARM 계열 CPI사용
- 멀티코어, 고성능 GPU, 64bit 지원
- 운영체제
- 애플의 iOS와 구글 안드로이드가 대표적
- 그 외 구글 크롬, WebOS, MS 윈도우 8 등
- 무선통신
- LTE, WIFI 등 고속 무선 인터넷 연결
- 블루투스, NFC 등 근거리 통신 지원
- 입력장치
- 터치 스크린, 터치 펜
- 가속센서, 자이로센서 등
- 배터리
- 대용량 배터리
- 배터리 절약을 위한 각종 저전력 기술
- 모바일 앱 개발 유형
- 네이티브 앱
- 각 운영체제별 별도 개발환경과 실행 파일
- 빠른 속도, 기기별 특화 기능 사용의 편리함
- 웹 앱
- 여러기기와 운영체제 지원의 어려움으로 웹 기술을 사용한 모바일 웹 기술 주목
- 모바일 웹 제약 사항
- 항상 인터넷에 연결되어 있어야 함
- 하드웨어나 운영체제 기능 접근 제한(GPS, 센서, 카메라, 주소록 등)
- 하이브리드 앱
- 메인 프로그램은 네이티브로, 프로그램 구성요소는 웹 기반으로 구현
- 장치 기능 접근을 위해 센차터치, 폰갭 등의 툴킷 사용
'2015-2학기 > 웹데이터베이스구축' 카테고리의 다른 글
제 5장 JSP 기본 문법 (0) | 2015.10.21 |
---|---|
제 4장 서블릿의 이해 (0) | 2015.10.21 |
제 3장 JSP와의 첫 만남 (0) | 2015.10.21 |
제 2장 자바 웹 프로그래밍 개발환경 구축 (0) | 2015.10.21 |