-
인터넷
-
네트워크와 인터넷
-
IP 주소
-
IPv4와 IPv6 주소 체계
-
Domain
-
인터넷과 www(web)
-
웹 서버와 클라이언트
-
HTTP(Hyper Text Transfer Protocol)
-
인터넷 프로그래밍 기술
-
Client Side Language
-
Server Side Language
-
HTML과 클라이언트 스크립트 기술
-
클라이언트 스크립트(Client Script)
-
서버 스크립트 기술
-
Web Server와 WAS
-
Web Server
-
WAS(Web Application Server)
-
무선 인터넷 프로그래밍
-
2G 시대의 통신사별 무선 인터넷 언어(1996년 ~ 2012년)
-
2G 시대의 이동 통신사별 플랫폼(VM)과 개발 언어
-
개방형 모바일 애플리케이션 플랫폼
-
Android(구글)
-
iOS(애플)
-
TIZEN(인텔/ 삼성전자)
-
Windows 10 Mobile(마이크로소프트)
-
Full Browsing과 모바일 웹
-
모바일 웹
-
하이브리드 앱
-
DOS 명령 프롬프트상에서 네트워크 명령어
-
ping (packet internet groper) 명령어
-
tracert (trace route) 명령어
-
netstat (network stats) 명령어
-
기타 유용한 네트워크 명령어
인터넷
네트워크와 인터넷
통신망과 통신망을 연결해 놓은 망들의 집합체를 말한다.
정보 교환을 위한 프로토콜이 요구된다.
※ TCP/IP
▷ OSI 7계층: 응용 계층, 표현 계층, 세션 계층, 전송 계층, 네트워크 계층, 데이터 링크 계층, 물리 계층
▷ TCP/IP 4계층: 응용 계층, 전송 계층, 인터넷 계층(IP 계층), 물리 계층
- 응용 계층: 네트워크를 사용하는 WWW, FTP, 텔넷, SMTP 등의 응용 프로그램으로 구성된다.
- 전송 계층: 도착지까지 데이터를 전송한다. 각각의 시스템을 연결(분할과 재조립, 연결/오류 제어)를 하면서 TCP나 UDP 프로토콜을 이용하여 데이터를 전송한다.
- 인터넷 계층: 주소를 정의하고 라우팅을 정의하는 계층이다. 데이터그램 정의(신호구성) 및 경로 지정(routing)을 하고 정확한 라우팅을 위해 IP 프로토콜을 사용한다.
- 물리 계층: 물리적 전송 매체나 장비를 통해 비트스트림 전송에 필요한 기준을 정의(Physical Address)한다. 또한, 비트 표현방법, 데이터 전송속도, 접속 형태 등을 정의한다.
IP 주소
네트워크에 연결된 컴퓨터를 구분하기 위해 사용한다.
4개의 구분된 10진수를 사용한다(예: 255.255.255.255).
사설 IP는 NAT(Network Access Translator) 등을 이용해서 인터넷 접속 시 공인 IP로 매핑된다(일부 인터넷 서비스에 제약이 있을 수 있음).
IPv4의 IP 주소 문제를 해결하기 위해 IPv6가 논의되었다. → 32비트 주소 체계(약 43억개)에서 128비트 주소 체계(43억 * 43억 * 43억 * 43억)으로 확장
구분 | 범위 | 사용목적 |
클래스 A | 1.0.0.0 ~ 127.0.0.0 | 대형 통신망 |
클래스 B | 128.0.0.0 ~ 191.255.0.0 | 중형 통신망, 주소 65536개 할당(256 * 256) |
클래스 C | 192.0.0.0 ~ 223.255.255.0 | 소형 통신망, 주소 256개 할당 |
클래스 D | - | 멀티 캐스트용으로 예약, 배포 중지 |
클래스 E | - | 실험 목적, 배포 중지 |

IPv4와 IPv6 주소 체계
구분 | IPv4 | IPv6 |
길이 | 32bits | 128bits |
표시 방법 | 1byte씩 4 부분으로 10진수 예: 192.168.10.100 |
2bytes씩 8부분으로 16진수 예: 1234:abcd:0000:ffff:55aa:1111:ffff0000 |
주소 개수 | 약 43억개 | 약 (43x43x43x43 억)개, 3.4x10^8 |
주소 할당 | A, B, C D 등 클래스 단위의 비순차적 할당 | 네트워크 규모 및 단말기 수에 따른 순차적 할당 |
품질 제어 | best effort 방식으로 품질 보장 곤란(타입이나 서비스에 대한 QoS 일부 지원) | 등급별, 서비스 별로 패킷을 구분할 수 있어 품질 보장이 용이(Traffic class, 폴로 라벨에 의한 QoS 지원) |
보안 기능 | IPsec 프로토콜 별도 설치 | 확장 기능에서 IPsec 기본 제공 |
IP 자동구성 | 없음 | MAC 주소를 사용하여 IP 주소 자동 생성 |
모바일 IP | 상당히 곤란(비효율적) | 용이(효율적) |
라우팅 처리 | 헤터가 짧지만, 가변적이어서 라우팅 코드 복잡 | 헤더가 길지만, 일관성이 있어, 주소로 라우팅하는 코드가 간단하고 H/W 처리도 간단함 |
Domain
IP 주소를 알기 쉬운 이름으로 바꾼 것이다.
DNS(Domain Name System) 서버가 필요하다: 도메인 이름을 관리하고 필요시 IP 어드레스로 변환해 주는 역할을 하는 서버를 말한다.
인터넷과 www(web)
인터넷은 TCP/IP 기반의 네트워크가 전세계적으로 확대되어 하나로 연결되어 있다 → 소위 '네트워크의 네트워크' 라 한다.
인터넷은 www가 아니고 www는 인터넷 기반의 서비스 중 하나를 말한다.
이름 | 프로토콜 | 포트 | 기능 |
www | http | 80 | 웹 서비스 |
SMTP/POP3/IMAP | 25(587)/110/114 | e-mail 서비스 | |
FTP | ftp | 21 | 파일 전송 서비스 |
telnet | telnet | 23 | 원격 로그인 |
DNS | DNS | 83 | 도메인 이름 변환 서비스 |
News | NNTP | 119 | 인터넷 뉴스 서비스 |
▷ 'http://www.inha.ac.kr' 에서 http가 80 포트를 의미해서 포트를 명시하지 않아도 기본적으로 80 포트를 사용하게 된다.
웹 서버와 클라이언트
서버
네트워크에서 서비스를 제공하는 컴퓨터를 말한다.
그 중에서 웹 서버란 웹(www) 서비스를 제공하는 컴퓨터를 말한다.
▷ 서버는 보통 Host라고도 부른다.
클라이언트
네트워크에서 서비스를 제공받는(요청하는) 컴퓨터를 말한다.
최근에는 클라이언트와 서버의 하드웨어적인 구분이 없어지고 있다.
▷ Terminal: 터미널은 클라이언트와 비슷하지만, 엄밀히 말하면 제공 받아서 가공하지 않고 그냥 출력하는 것에 차이가 있다.
HTTP(Hyper Text Transfer Protocol)
프로토콜
네트워크에 연결된 컴퓨터가 서로 통신(대화)하기 위한 규약을 말한다.
HTTP
인터넷 상에서 웹 서버와 클라이언트 간에 하이퍼텍스트(Hypertext) 문서를 전송하기 위해 사용되는 프로토콜을 말한다.
이는 1989년 팀 버너스 리(Tim Berners Lee)에 의해 설계되었다.
※ telnet 명령어로 HTTP 테스트
telnet demo.testfire.net 80
인터넷 프로그래밍 기술
Client Side Language
사용자의 최종 단말에서 실행되는 언어(웹 브라우저에서 실행)를 말한다.
문서 출력, 사용자의 이벤트 처리, 입력 내용 서버 전송 등을 한다.
HTML5, CSS3, JavaScript(JQuery), VB Script 등이 예시다. 이들 모두 프로그래밍 언어가 아닌 단순한 문자열을 의미한다.
Server Side Language
서버 측에서 실행되는 언어를 말한다.
클라이언트로 전송하기 위한 문서 생성(Client Side Language 구성), 클라이언트로부터 전송받은 데이터를 처리한다.
JSP, ASP/ASP.NET, PHP, 파이썬(Python), Perl, C/C++, Java, C#, Ruby 등이 예시다.
HTML과 클라이언트 스크립트 기술
HTML은 www 서비스에서 하이퍼텍스트 문서를 만들기 위해 사용되는 프로그래밍 언어이다.
www를 통해 서비스하는 모든 내용은 HTML로 표현되어야 한다.
HTML은 텍스트 파일로 정적인 정보만 처리할 수 있다. 즉, HTML은 동적으로 변하는 정보를 처리할 수 없다.
동적인 컨텐츠를 처리하기 위해 PHP, ASP.NET, JSP, Python 등의 서버측 프로그래밍 기술이 사용된다.
클라이언트 스크립트(Client Script)
자바스크립트(JavaScript)가 대표적이다.
웹 브라우저가 스크립트 해석의 주체가 된다.
또한, 웹 브라우저 핸들링은 가능하지만 서버 스크립트와의 연동은 불가능하다.
서버 스크립트 기술
HTML과 웹 서버에서 해석되는 스크립트 언어를 함께 사용할 수 있는 기술을 말한다.
데이터베이스 연동 처리 등 다양한 구현이 가능하다.
별도의 컴파일 과정이 없으며, HTML 태그를 수정이 가능하다.
서버 스크립트 언어와 같이 기술되는 클라이언트 사이드 언어는 서버에서 실행되지 않으며, 출력할 문서를 구성하기 위해 사용된다.
Web Server와 WAS
Web Server
클라이언트의 HTTP에 대한 응답을 수행한다.
보안 처리(SSL), 파일 전송, 로그 축적(Data Capture) 등의 부가 기능을 수행한다.
클라이언트의 비즈니스 요청을 WAS로 이관하고, WAS의 처리 결과를 HTTP에 의해 클라이언트로 전달하는 역할을 수행한다.
Apache, MS IIS(Internet Information Server), WebToB, i-plane, Google Web Server, Django, Lighttpd, LightSpeed, NGINX, Node.js 등이 예시다.
WAS(Web Application Server)
HTTP를 통해 동적 컨텐츠를 생성하거나 동적 처리를 수행하는 미들웨어를 말한다.
비즈니스 로직 수행, 데이터베이스 접속 및 트랜잭션 관리 등의 기능을 수행한다.
Web Sphere(IBM), Web Logic(BEA), Jeus(TMax), Tomcat, JBoss, Bluestone, Gemston, inprise, Oracel PowerTier, Apptivity, SilverStream 등이 예시다.
무선 인터넷 프로그래밍
2G 시대의 통신사별 무선 인터넷 언어(1996년 ~ 2012년)

2G 시대의 이동 통신사별 플랫폼(VM)과 개발 언어
추진사 | 플랫폼 | 개발 언어 | 수행방식 |
LG(Sun) | KVM (ez- Java) |
Java | 인터프리터(VM) |
LG(아로마소프트) | 키티호크 | Java | 인터프리터(VM) |
SKT | SK- VM | Java | 인터프리터(VM) |
SKT(신지소프트) | GVM | C/C++ | 인터프리터(VM) |
SKT | WITOP | 자바, C/C++ | 인터프리터(VM) |
KTF(모빌탑) | MAP | C/C++ | 바이너리(Native) |
KTF(퀄컴) | Brew | C/C++ | 바이너리(Native) |
대한민국 표준 플랫폼 WIPI(Wireless Internet Platform for Interoperability)
한국의 무선 인터넷 표준 플랫폼으로 2005년 ~ 2009년 이동통신 단말기에 의무 탑재 되었다.
콘텐츠 중복 개발 비용 감소와 콘텐츠 활성화를 위한 단일 플랫폼 제공 목적이었다.
복수 개발 언어 지원: C/C++ (Clet), Java(Jlet)
모든 컨텐츠가 binary code로 다운로드 되어 실행되었다.
Multi Tasking 및 안정된 플랫폼 보안을 지원하였다.
고수준의 메모리 관리, 다국어 지원, 응용 프로그램 관리 기능 등을 제공하였다.
개방형 모바일 애플리케이션 플랫폼
Android(구글)
리눅스 3.10 커널 기반의 완전 개방형 모바일 플랫폼이다.
휴대장치를 위한 운영체제, 미들웨어, 응용프로그램을 묶은 포괄적인 소프트웨어 플랫폼이다.
2007년 11월 SDK 공개 이후, 현재는 안드로이드 15.x(개발 버전은 16) 버전이 배포되고 있다.
개발 언어: Kotlin, Java(JNI를 활용한 C++), 개발 도구: Android Studio
iOS(애플)
Mac OS X 기반의 아이폰, 아이팟 터치, 아이패트 OS를 지원한다.
코코아 터치, 미디어, 코어 서비스 등의 애플리케이션 프레임 워크를 지원한다.
2008년 6월 SDK 공개 이후, 현재는 18.x 버전이 배포되고 있다.
개발 언어: Swift, SwiftUI, Object-C, C, C++, 개발도구: XCode
TIZEN(인텔/ 삼성전자)
리눅스 모바일 운영체제를 기반으로 인텔의 "니모"와 삼성전자의 "Bada" OS를 통합한 플랫폼이다.
2012년 공개 이후, 현재는 9.x 배포 중이다.
삼성전자는 웨어러블, 스마트 TV, 전자가전 등에 도입하였다.
개발 언어: C/C++, Python, Lua, HTML5, JavaScript, 개발도구: Tizen Studio
Windows 10 Mobile(마이크로소프트)
2000년 4월 포켓 PC 2000(윈도 CE 3.0)에서 2010년 터치 인터페이스와 메트로 UI를 지원하는 임베디드용 윈도 CE 기반의 Windows Phone을 출시하였다.
2015년 PC 화면의 통합성이 증대된 Windows 10 Mobile를 출시하였으나, 2020년 1월 공식 지원 종료 이후 .NET Core 기반의 Universal Window Platform으로 통합되었다.
개발 언어: C#, 실버라이트
Full Browsing과 모바일 웹
모바일 웹
일반 컴퓨터 브라우저에서 실행되는 웹 애플리케이션을 모바일 스크린 크기로 줄인 것으로 모바일 홈페이지라고도 부른다.
HTML5, CSS3, JavaScript 등의 클라이언트용 언어와 JSP, PHP, ASP.NET 등의 일반적인 웹 기술이 사용된다.
스마트폰에 내장된 모바일 브라우저에 출력된다.
장점
- 하나의 결과물로 다양한 모바일 플랫폼에서 접근이 가능하다.
- 배포할 필요가 없다.
- 즉시 반영된다.
- 유지보수 비용이 저렴하다.
단점
- 모바일 기기의 제어와 활용에 제한이 있다.
- 일반적으로 느리다.
- 오프라인시 기능 제약이 있다.
하이브리드 앱
네이티브 앱으로 모바일 웹을 포장한 앱을 말한다.
외부 형태는 네이티브 앱이지만 실제 내부는 모바일 웹으로 실행되어 모바일 웹 앱인 첫 페이지와 UI 파일, 이미지 등 실행에 필요한 모든 리소스가 모바일 파일 시스템으로 저장되어 서버에서 따로 받을 필요가 없다.
스마트 기기의 제어를 iOS SDK나 Android SDK를 이용하여 수행한다.
애플 앱 스토어나 구글 플레이 마켓에 등록하여 판매가 가능하다.
장점
- 모바일 웹보다 속도가 빠르나, 네이티브 앱에 비해 성능이 떨어진다.
- 앱 스토어나 마켓을 통해 배포가 가능하다.
- 변동되는 컨텐츠만 다운로드가 가능하다.
- 네이티브 앱에 비하여 유지보수 비용이 적다.
단점
- 자체 사이트만 지원 가능하므로 타 사이트 브라우징이 불가능하다.
※ 프레임워크란?
어도비 폰캡(Adobe PhoneGap), 아파치 코도바(Apache Cordova), 아이오닉(Ionic), React, Flutter 등 예시가 있다.
JavaScript 언어로 모바일 앱 개발이 가능하다.
DOS 명령 프롬프트상에서 네트워크 명령어
ping (packet internet groper) 명령어
상대방 컴퓨터, 네트워크 장비, 서버 장비까지 통신이 잘 되는지 확인하는 명령어이다.
※ options
옵션 | 내용 |
-t | [Ctrl+C] 키로 중단시키기 전까지 계속 ping 패킷을 보낸다. |
-a | IP 주소에 대한 Host Name을 보여준다. |
-n count | Ping 패킷을 몇 번 보낼지 패킷 수를 지정한다. |
-l size | 패킷의 크기를 지정한다. |
-i TTL | 중간의 라우터 장비를 몇 번 경유할 지를 지정(Time To Live) |
※ Example
ping -a 127.0.0.1
※ TTL
- Solaris/AIX: 200번대
- Windows 계열: 100번대
- Linux/Unix: 64번대 이하
tracert (trace route) 명령어
최종 목적지 컴퓨터(서버)까지 중간에 거치는 여러 개의 라우터에 대한 경로 및 응답 속도를 표시한다.
내부 네트워크가 느린지, 회선 구간이 느린지, 사이트 서버에서 느린지 확인할 수 있으며, 전용 회선 관리나 장애 복구시 많이 사용된다.
※ options
옵션 | 내용 |
-d | 경유되는 hop들의 IP 정보만 보여준다. |
-h maximum_hops | 최대 hop 카운트를 지정한다(기본은 30개). |
※ Example
tracert www.youtube.com
netstat (network stats) 명령어
현재 서비스를 대기하고 있는 'LISTENING'된 정보들과 TCP 통신을 하는 서비스의 연결 상태를 도메인 정보 없이 보여준다.
- ESTABLISHED: 다른 컴퓨터와 연결됨
- CLOSED: 연결 종료
- TIME-WAIT: 연결은 종료되었지만 잠시 동안 소켓을 열어 놓은 상태
웹 서비스에서 사용되는 포트를 확인하거나 바이러스 공격이나 외부 해킹 등을 확인할 때 주로 사용한다.
옵션 | 내용 |
-a | 현재 다른 PC와 연결(ESTABLISHED) 되어 있거나, 대기(LISTENING) 중인 모든 포트 번호를 확인한다. |
-r | 라이팅 테이블 확인 및 커넥션이 되어 있는 포트 번호를 확인한다. |
-n | 현재 다른 PC와 연결되어 있는 포트 번호를 확인(IP 주소로 화면 출력)한다. |
-e | 랜 카드에서 송수신한 패킷의 용량 및 종류를 확인한다. |
-s | IP, ICMP, TCP, UDP 프로토콜 별의 상태를 보여준다. |

※ 사용 예: 10초 주기로 랜카드의 송수신 패킷 확인하는 명령어
netstat -e 10
기타 유용한 네트워크 명령어
nslookup 명령어
DNS로부터 IP 주소에 대한 도메인 이름이나 도메인 이름에 대한 IP 주소를 검색한다.
nslookup www.google.kr
ipconfig 명령어
현재 TCP/IP 네트워크 구성 값을 모두 표시하는 명령어다.
IPv4 또는 IPv6 주소, 서브넷 마스크, 기본 게이트웨이 등에 대한 정보를 표시한다.
ipconfig -all
nbtstat (NetBIOS over TCP/IP state) 명령어
NetBIOS가 사용하는 컴퓨터 이름 정보를 표시한다.
사내 네트워크 망에서 IP 주소가 충돌하는 컴퓨터를 확인할 때 유용하다.
nbtstat -A 127.0.0.1
※ options
옵션 | 내용 |
-a | 지정한 컴퓨터 이름을 사용하는 원격 컴퓨터의 이름 테이블을 표시한다. |
-A | 지정한 IP 주소를 사용하는 원격 컴퓨터의 이름 테이블을 표시한다. |
-n | 로컬 NetBIOS 이름 목록을 표시한다. |
'대학 강의 > 인터넷 프로그래밍' 카테고리의 다른 글
JavaScript 개요 (0) | 2025.04.02 |
---|---|
CSS3 (0) | 2025.03.23 |
HTML5 기본 (0) | 2025.03.17 |
인터넷
네트워크와 인터넷
통신망과 통신망을 연결해 놓은 망들의 집합체를 말한다.
정보 교환을 위한 프로토콜이 요구된다.
※ TCP/IP
▷ OSI 7계층: 응용 계층, 표현 계층, 세션 계층, 전송 계층, 네트워크 계층, 데이터 링크 계층, 물리 계층
▷ TCP/IP 4계층: 응용 계층, 전송 계층, 인터넷 계층(IP 계층), 물리 계층
- 응용 계층: 네트워크를 사용하는 WWW, FTP, 텔넷, SMTP 등의 응용 프로그램으로 구성된다.
- 전송 계층: 도착지까지 데이터를 전송한다. 각각의 시스템을 연결(분할과 재조립, 연결/오류 제어)를 하면서 TCP나 UDP 프로토콜을 이용하여 데이터를 전송한다.
- 인터넷 계층: 주소를 정의하고 라우팅을 정의하는 계층이다. 데이터그램 정의(신호구성) 및 경로 지정(routing)을 하고 정확한 라우팅을 위해 IP 프로토콜을 사용한다.
- 물리 계층: 물리적 전송 매체나 장비를 통해 비트스트림 전송에 필요한 기준을 정의(Physical Address)한다. 또한, 비트 표현방법, 데이터 전송속도, 접속 형태 등을 정의한다.
IP 주소
네트워크에 연결된 컴퓨터를 구분하기 위해 사용한다.
4개의 구분된 10진수를 사용한다(예: 255.255.255.255).
사설 IP는 NAT(Network Access Translator) 등을 이용해서 인터넷 접속 시 공인 IP로 매핑된다(일부 인터넷 서비스에 제약이 있을 수 있음).
IPv4의 IP 주소 문제를 해결하기 위해 IPv6가 논의되었다. → 32비트 주소 체계(약 43억개)에서 128비트 주소 체계(43억 * 43억 * 43억 * 43억)으로 확장
구분 | 범위 | 사용목적 |
클래스 A | 1.0.0.0 ~ 127.0.0.0 | 대형 통신망 |
클래스 B | 128.0.0.0 ~ 191.255.0.0 | 중형 통신망, 주소 65536개 할당(256 * 256) |
클래스 C | 192.0.0.0 ~ 223.255.255.0 | 소형 통신망, 주소 256개 할당 |
클래스 D | - | 멀티 캐스트용으로 예약, 배포 중지 |
클래스 E | - | 실험 목적, 배포 중지 |

IPv4와 IPv6 주소 체계
구분 | IPv4 | IPv6 |
길이 | 32bits | 128bits |
표시 방법 | 1byte씩 4 부분으로 10진수 예: 192.168.10.100 |
2bytes씩 8부분으로 16진수 예: 1234:abcd:0000:ffff:55aa:1111:ffff0000 |
주소 개수 | 약 43억개 | 약 (43x43x43x43 억)개, 3.4x10^8 |
주소 할당 | A, B, C D 등 클래스 단위의 비순차적 할당 | 네트워크 규모 및 단말기 수에 따른 순차적 할당 |
품질 제어 | best effort 방식으로 품질 보장 곤란(타입이나 서비스에 대한 QoS 일부 지원) | 등급별, 서비스 별로 패킷을 구분할 수 있어 품질 보장이 용이(Traffic class, 폴로 라벨에 의한 QoS 지원) |
보안 기능 | IPsec 프로토콜 별도 설치 | 확장 기능에서 IPsec 기본 제공 |
IP 자동구성 | 없음 | MAC 주소를 사용하여 IP 주소 자동 생성 |
모바일 IP | 상당히 곤란(비효율적) | 용이(효율적) |
라우팅 처리 | 헤터가 짧지만, 가변적이어서 라우팅 코드 복잡 | 헤더가 길지만, 일관성이 있어, 주소로 라우팅하는 코드가 간단하고 H/W 처리도 간단함 |
Domain
IP 주소를 알기 쉬운 이름으로 바꾼 것이다.
DNS(Domain Name System) 서버가 필요하다: 도메인 이름을 관리하고 필요시 IP 어드레스로 변환해 주는 역할을 하는 서버를 말한다.
인터넷과 www(web)
인터넷은 TCP/IP 기반의 네트워크가 전세계적으로 확대되어 하나로 연결되어 있다 → 소위 '네트워크의 네트워크' 라 한다.
인터넷은 www가 아니고 www는 인터넷 기반의 서비스 중 하나를 말한다.
이름 | 프로토콜 | 포트 | 기능 |
www | http | 80 | 웹 서비스 |
SMTP/POP3/IMAP | 25(587)/110/114 | e-mail 서비스 | |
FTP | ftp | 21 | 파일 전송 서비스 |
telnet | telnet | 23 | 원격 로그인 |
DNS | DNS | 83 | 도메인 이름 변환 서비스 |
News | NNTP | 119 | 인터넷 뉴스 서비스 |
▷ 'http://www.inha.ac.kr' 에서 http가 80 포트를 의미해서 포트를 명시하지 않아도 기본적으로 80 포트를 사용하게 된다.
웹 서버와 클라이언트
서버
네트워크에서 서비스를 제공하는 컴퓨터를 말한다.
그 중에서 웹 서버란 웹(www) 서비스를 제공하는 컴퓨터를 말한다.
▷ 서버는 보통 Host라고도 부른다.
클라이언트
네트워크에서 서비스를 제공받는(요청하는) 컴퓨터를 말한다.
최근에는 클라이언트와 서버의 하드웨어적인 구분이 없어지고 있다.
▷ Terminal: 터미널은 클라이언트와 비슷하지만, 엄밀히 말하면 제공 받아서 가공하지 않고 그냥 출력하는 것에 차이가 있다.
HTTP(Hyper Text Transfer Protocol)
프로토콜
네트워크에 연결된 컴퓨터가 서로 통신(대화)하기 위한 규약을 말한다.
HTTP
인터넷 상에서 웹 서버와 클라이언트 간에 하이퍼텍스트(Hypertext) 문서를 전송하기 위해 사용되는 프로토콜을 말한다.
이는 1989년 팀 버너스 리(Tim Berners Lee)에 의해 설계되었다.
※ telnet 명령어로 HTTP 테스트
telnet demo.testfire.net 80
인터넷 프로그래밍 기술
Client Side Language
사용자의 최종 단말에서 실행되는 언어(웹 브라우저에서 실행)를 말한다.
문서 출력, 사용자의 이벤트 처리, 입력 내용 서버 전송 등을 한다.
HTML5, CSS3, JavaScript(JQuery), VB Script 등이 예시다. 이들 모두 프로그래밍 언어가 아닌 단순한 문자열을 의미한다.
Server Side Language
서버 측에서 실행되는 언어를 말한다.
클라이언트로 전송하기 위한 문서 생성(Client Side Language 구성), 클라이언트로부터 전송받은 데이터를 처리한다.
JSP, ASP/ASP.NET, PHP, 파이썬(Python), Perl, C/C++, Java, C#, Ruby 등이 예시다.
HTML과 클라이언트 스크립트 기술
HTML은 www 서비스에서 하이퍼텍스트 문서를 만들기 위해 사용되는 프로그래밍 언어이다.
www를 통해 서비스하는 모든 내용은 HTML로 표현되어야 한다.
HTML은 텍스트 파일로 정적인 정보만 처리할 수 있다. 즉, HTML은 동적으로 변하는 정보를 처리할 수 없다.
동적인 컨텐츠를 처리하기 위해 PHP, ASP.NET, JSP, Python 등의 서버측 프로그래밍 기술이 사용된다.
클라이언트 스크립트(Client Script)
자바스크립트(JavaScript)가 대표적이다.
웹 브라우저가 스크립트 해석의 주체가 된다.
또한, 웹 브라우저 핸들링은 가능하지만 서버 스크립트와의 연동은 불가능하다.
서버 스크립트 기술
HTML과 웹 서버에서 해석되는 스크립트 언어를 함께 사용할 수 있는 기술을 말한다.
데이터베이스 연동 처리 등 다양한 구현이 가능하다.
별도의 컴파일 과정이 없으며, HTML 태그를 수정이 가능하다.
서버 스크립트 언어와 같이 기술되는 클라이언트 사이드 언어는 서버에서 실행되지 않으며, 출력할 문서를 구성하기 위해 사용된다.
Web Server와 WAS
Web Server
클라이언트의 HTTP에 대한 응답을 수행한다.
보안 처리(SSL), 파일 전송, 로그 축적(Data Capture) 등의 부가 기능을 수행한다.
클라이언트의 비즈니스 요청을 WAS로 이관하고, WAS의 처리 결과를 HTTP에 의해 클라이언트로 전달하는 역할을 수행한다.
Apache, MS IIS(Internet Information Server), WebToB, i-plane, Google Web Server, Django, Lighttpd, LightSpeed, NGINX, Node.js 등이 예시다.
WAS(Web Application Server)
HTTP를 통해 동적 컨텐츠를 생성하거나 동적 처리를 수행하는 미들웨어를 말한다.
비즈니스 로직 수행, 데이터베이스 접속 및 트랜잭션 관리 등의 기능을 수행한다.
Web Sphere(IBM), Web Logic(BEA), Jeus(TMax), Tomcat, JBoss, Bluestone, Gemston, inprise, Oracel PowerTier, Apptivity, SilverStream 등이 예시다.
무선 인터넷 프로그래밍
2G 시대의 통신사별 무선 인터넷 언어(1996년 ~ 2012년)

2G 시대의 이동 통신사별 플랫폼(VM)과 개발 언어
추진사 | 플랫폼 | 개발 언어 | 수행방식 |
LG(Sun) | KVM (ez- Java) |
Java | 인터프리터(VM) |
LG(아로마소프트) | 키티호크 | Java | 인터프리터(VM) |
SKT | SK- VM | Java | 인터프리터(VM) |
SKT(신지소프트) | GVM | C/C++ | 인터프리터(VM) |
SKT | WITOP | 자바, C/C++ | 인터프리터(VM) |
KTF(모빌탑) | MAP | C/C++ | 바이너리(Native) |
KTF(퀄컴) | Brew | C/C++ | 바이너리(Native) |
대한민국 표준 플랫폼 WIPI(Wireless Internet Platform for Interoperability)
한국의 무선 인터넷 표준 플랫폼으로 2005년 ~ 2009년 이동통신 단말기에 의무 탑재 되었다.
콘텐츠 중복 개발 비용 감소와 콘텐츠 활성화를 위한 단일 플랫폼 제공 목적이었다.
복수 개발 언어 지원: C/C++ (Clet), Java(Jlet)
모든 컨텐츠가 binary code로 다운로드 되어 실행되었다.
Multi Tasking 및 안정된 플랫폼 보안을 지원하였다.
고수준의 메모리 관리, 다국어 지원, 응용 프로그램 관리 기능 등을 제공하였다.
개방형 모바일 애플리케이션 플랫폼
Android(구글)
리눅스 3.10 커널 기반의 완전 개방형 모바일 플랫폼이다.
휴대장치를 위한 운영체제, 미들웨어, 응용프로그램을 묶은 포괄적인 소프트웨어 플랫폼이다.
2007년 11월 SDK 공개 이후, 현재는 안드로이드 15.x(개발 버전은 16) 버전이 배포되고 있다.
개발 언어: Kotlin, Java(JNI를 활용한 C++), 개발 도구: Android Studio
iOS(애플)
Mac OS X 기반의 아이폰, 아이팟 터치, 아이패트 OS를 지원한다.
코코아 터치, 미디어, 코어 서비스 등의 애플리케이션 프레임 워크를 지원한다.
2008년 6월 SDK 공개 이후, 현재는 18.x 버전이 배포되고 있다.
개발 언어: Swift, SwiftUI, Object-C, C, C++, 개발도구: XCode
TIZEN(인텔/ 삼성전자)
리눅스 모바일 운영체제를 기반으로 인텔의 "니모"와 삼성전자의 "Bada" OS를 통합한 플랫폼이다.
2012년 공개 이후, 현재는 9.x 배포 중이다.
삼성전자는 웨어러블, 스마트 TV, 전자가전 등에 도입하였다.
개발 언어: C/C++, Python, Lua, HTML5, JavaScript, 개발도구: Tizen Studio
Windows 10 Mobile(마이크로소프트)
2000년 4월 포켓 PC 2000(윈도 CE 3.0)에서 2010년 터치 인터페이스와 메트로 UI를 지원하는 임베디드용 윈도 CE 기반의 Windows Phone을 출시하였다.
2015년 PC 화면의 통합성이 증대된 Windows 10 Mobile를 출시하였으나, 2020년 1월 공식 지원 종료 이후 .NET Core 기반의 Universal Window Platform으로 통합되었다.
개발 언어: C#, 실버라이트
Full Browsing과 모바일 웹
모바일 웹
일반 컴퓨터 브라우저에서 실행되는 웹 애플리케이션을 모바일 스크린 크기로 줄인 것으로 모바일 홈페이지라고도 부른다.
HTML5, CSS3, JavaScript 등의 클라이언트용 언어와 JSP, PHP, ASP.NET 등의 일반적인 웹 기술이 사용된다.
스마트폰에 내장된 모바일 브라우저에 출력된다.
장점
- 하나의 결과물로 다양한 모바일 플랫폼에서 접근이 가능하다.
- 배포할 필요가 없다.
- 즉시 반영된다.
- 유지보수 비용이 저렴하다.
단점
- 모바일 기기의 제어와 활용에 제한이 있다.
- 일반적으로 느리다.
- 오프라인시 기능 제약이 있다.
하이브리드 앱
네이티브 앱으로 모바일 웹을 포장한 앱을 말한다.
외부 형태는 네이티브 앱이지만 실제 내부는 모바일 웹으로 실행되어 모바일 웹 앱인 첫 페이지와 UI 파일, 이미지 등 실행에 필요한 모든 리소스가 모바일 파일 시스템으로 저장되어 서버에서 따로 받을 필요가 없다.
스마트 기기의 제어를 iOS SDK나 Android SDK를 이용하여 수행한다.
애플 앱 스토어나 구글 플레이 마켓에 등록하여 판매가 가능하다.
장점
- 모바일 웹보다 속도가 빠르나, 네이티브 앱에 비해 성능이 떨어진다.
- 앱 스토어나 마켓을 통해 배포가 가능하다.
- 변동되는 컨텐츠만 다운로드가 가능하다.
- 네이티브 앱에 비하여 유지보수 비용이 적다.
단점
- 자체 사이트만 지원 가능하므로 타 사이트 브라우징이 불가능하다.
※ 프레임워크란?
어도비 폰캡(Adobe PhoneGap), 아파치 코도바(Apache Cordova), 아이오닉(Ionic), React, Flutter 등 예시가 있다.
JavaScript 언어로 모바일 앱 개발이 가능하다.
DOS 명령 프롬프트상에서 네트워크 명령어
ping (packet internet groper) 명령어
상대방 컴퓨터, 네트워크 장비, 서버 장비까지 통신이 잘 되는지 확인하는 명령어이다.
※ options
옵션 | 내용 |
-t | [Ctrl+C] 키로 중단시키기 전까지 계속 ping 패킷을 보낸다. |
-a | IP 주소에 대한 Host Name을 보여준다. |
-n count | Ping 패킷을 몇 번 보낼지 패킷 수를 지정한다. |
-l size | 패킷의 크기를 지정한다. |
-i TTL | 중간의 라우터 장비를 몇 번 경유할 지를 지정(Time To Live) |
※ Example
ping -a 127.0.0.1
※ TTL
- Solaris/AIX: 200번대
- Windows 계열: 100번대
- Linux/Unix: 64번대 이하
tracert (trace route) 명령어
최종 목적지 컴퓨터(서버)까지 중간에 거치는 여러 개의 라우터에 대한 경로 및 응답 속도를 표시한다.
내부 네트워크가 느린지, 회선 구간이 느린지, 사이트 서버에서 느린지 확인할 수 있으며, 전용 회선 관리나 장애 복구시 많이 사용된다.
※ options
옵션 | 내용 |
-d | 경유되는 hop들의 IP 정보만 보여준다. |
-h maximum_hops | 최대 hop 카운트를 지정한다(기본은 30개). |
※ Example
tracert www.youtube.com
netstat (network stats) 명령어
현재 서비스를 대기하고 있는 'LISTENING'된 정보들과 TCP 통신을 하는 서비스의 연결 상태를 도메인 정보 없이 보여준다.
- ESTABLISHED: 다른 컴퓨터와 연결됨
- CLOSED: 연결 종료
- TIME-WAIT: 연결은 종료되었지만 잠시 동안 소켓을 열어 놓은 상태
웹 서비스에서 사용되는 포트를 확인하거나 바이러스 공격이나 외부 해킹 등을 확인할 때 주로 사용한다.
옵션 | 내용 |
-a | 현재 다른 PC와 연결(ESTABLISHED) 되어 있거나, 대기(LISTENING) 중인 모든 포트 번호를 확인한다. |
-r | 라이팅 테이블 확인 및 커넥션이 되어 있는 포트 번호를 확인한다. |
-n | 현재 다른 PC와 연결되어 있는 포트 번호를 확인(IP 주소로 화면 출력)한다. |
-e | 랜 카드에서 송수신한 패킷의 용량 및 종류를 확인한다. |
-s | IP, ICMP, TCP, UDP 프로토콜 별의 상태를 보여준다. |

※ 사용 예: 10초 주기로 랜카드의 송수신 패킷 확인하는 명령어
netstat -e 10
기타 유용한 네트워크 명령어
nslookup 명령어
DNS로부터 IP 주소에 대한 도메인 이름이나 도메인 이름에 대한 IP 주소를 검색한다.
nslookup www.google.kr
ipconfig 명령어
현재 TCP/IP 네트워크 구성 값을 모두 표시하는 명령어다.
IPv4 또는 IPv6 주소, 서브넷 마스크, 기본 게이트웨이 등에 대한 정보를 표시한다.
ipconfig -all
nbtstat (NetBIOS over TCP/IP state) 명령어
NetBIOS가 사용하는 컴퓨터 이름 정보를 표시한다.
사내 네트워크 망에서 IP 주소가 충돌하는 컴퓨터를 확인할 때 유용하다.
nbtstat -A 127.0.0.1
※ options
옵션 | 내용 |
-a | 지정한 컴퓨터 이름을 사용하는 원격 컴퓨터의 이름 테이블을 표시한다. |
-A | 지정한 IP 주소를 사용하는 원격 컴퓨터의 이름 테이블을 표시한다. |
-n | 로컬 NetBIOS 이름 목록을 표시한다. |
'대학 강의 > 인터넷 프로그래밍' 카테고리의 다른 글
JavaScript 개요 (0) | 2025.04.02 |
---|---|
CSS3 (0) | 2025.03.23 |
HTML5 기본 (0) | 2025.03.17 |