반응형

Computer Engineering 44

[Network] TCP와 UDP 개념 정리 및 특징

TCP와 UDP TCP와 UDP는 OSI 7 계층에서 전송 계층(4 계층)에 해당하는 프로토콜로 IP 프로토콜의 계층인 네트워크 계층의 상위 계층에서 동작한다. TCP와 UDP는 네트워크 계층에서 동작하는 IP와 응용 계층에서 동작하는 애플리케이션(HTTP, FTP, …)을 중개하는 역할을 한다. TCP와 UDP는 똑같이 중개하는 역할을 하지만 각각의 서로 다른 특징이 있다. 구분 TCP UDP 서비스 타입 연결 지향적 프로토콜 비연결성 프로토콜 신뢰성 신뢰할 수 있는 데이터의 전송을 보장 신뢰성 보장이 안되므로 전송에 필요한 신뢰성을 제공해야 함 순서 보장 승인 및 순차적인 데이터 전송을 보장 전송 승인 및 순서를 보장하지 않음 속도 많은 오버헤드가 필요로 하며 느림 오버헤드가 적으며 빠르고 효율적임 ..

[Network] IPv4 주소 체계의 구조와 할당 (+ 서브넷 마스크)

IP 주소 (IP Adress) 만약, 시청이나 구청에 찾아가기 위해서는 해당 시청이나 구청의 주소를 알아야 한다. 마찬가지로 네트워크 상에서 PC에 접속하기 위해서는 PC를 가리키는 주소를 알아야 한다. 네트워크에 연결되어 특정 PC의 주소를 나타내는 체계를 IP 주소라 한다. IP 주소는 TCP/IP 네트워크 모델 구조에서 컴퓨터를 식별하기 위해 사용하는 주소이다. IPv4 기준으로 192.xxx.xxx.xxx 등과 같이 나타낸 주소가 바로 IP 주소이다. 컴퓨터나, 핸드폰, 서버, 인터넷 라우터 등 네트워크 장비에 각각의 IP 주소가 할당된다. IP 주소에는 private 주소와 public 주소가 있으며, LAN 네트워크 내부에서 사용되는 것이 Private IP 주소, 인터넷에서 사용되는 것은 ..

[Network] IPv6 주소 체계 개념 정리 및 특징 - IPv4와 IPv6의 차이

IP 주소 (IP Adress) 만약, 시청이나 구청에 찾아가기 위해서는 해당 시청이나 구청의 주소를 알아야 한다. 마찬가지로 네트워크 상에서 PC에 접속하기 위해서는 PC를 가리키는 주소를 알아야 한다. 네트워크에 연결되어 특정 PC의 주소를 나타내는 체계를 IP 주소라 한다. IP 주소는 TCP/IP 네트워크 모델 구조에서 컴퓨터를 식별하기 위해 사용하는 주소이다. IPv4 기준으로 192.xxx.xxx.xxx 등과 같이 나타낸 주소가 바로 IP 주소이다. 컴퓨터나, 핸드폰, 서버, 인터넷 라우터 등 네트워크 장비에 각각의 IP 주소가 할당된다. IP 주소에는 private 주소와 public 주소가 있으며, LAN 네트워크 내부에서 사용되는 것이 Private IP 주소, 인터넷에서 사용되는 것은 ..

[Network] TCP/IP 4계층 네트워크 모델이란?

TCP/IP TCP/IP 네트워크 모델은 인터넷에서 사용하는 대표적인 프로토콜이다. TCP/IP 네트워크 모델은 OSI 7 계층에서의 물리 계층과, 데이터 링크 계층에 대해서는 특별히 규정하고 있지 않다. IP (Internet Protocol) IP는 OSI 7 계층에서의 네트워크 계층(3 계층)에 해당하는 프로토콜로 TCP/IP 프로토콜에서 전송 메커니즘을 제공한다. 그러나 IP는 비신뢰성 비연결성 데이터그램 프로토콜로, 오류제어 기능을 수행하지 않고 최선의 전달 서비스를 제공한다. TCP(Transmission Control Protocol) TCP는 OSI 7 계층에서의 전송 계층(4 계층)에 해당하는 프로토콜로, 종단간의 흐름 제어 및 오류제어를 통해 데이터 전송의 신뢰성을 제공하는 프로토콜이다..

[Network] LAN과 WAN의 차이 (+ 인터네트워킹)

인터네트워킹(Internetworking) 우리가 매일 일상적으로 사용하는 인터넷은 사실 네트워크끼리 연결하는 네트워크라는 의미의 인터네트워크이다. 네트워크를 확장하는 방식은 크게 두 가지 방법이 있다. 한 네트워크를 확장하는 방법 네트워크와 네트워크를 연결하는 방법 (인터네트워킹) 즉, 여러 네트워크를 연결하는 것을 인터네트워킹이라고 한다. 인터네트워킹은 그 네트워크의 일부에서 고장이 나도 영향이 광범위하게 퍼지지 않는다. 또한, 불필요한 통신이 네트워크 전체로 확산하지 않으며, 개별 네트워크를 각각의 방침에 따라 관리가 가능하다는 등의 장점이 있다. 그리고 전 세계적으로 인터네트워킹 하는 것이 우리가 사용하는 인터넷(The Internet)이다. LAN (Local Area Network) LAN은 ..

[CS] 네이티브 앱과 웹 앱의 개념 정리 및 장단점 (Native App & Web App)

네이티브 애플리케이션(Native-application) 네이티브 애플리케이션은 모바일 환경에서 모바일용 애플리케이션을 설치해서 사용하는 애플리케이션이다. 즉, 특정 기기에 설치하여 사용하는 애플리케이션을 네이티브 애플리케이션(Native-application)이라 하며, 네이티브 앱(Native App)이라고도 한다. 네이티브 앱은 애플의 iOS, 안드로이드 OS, Windows 등과 같은 특정 운영체제의 실행환경에 종속되게 된다. 즉, 아이폰에서 설치하도록 만들어진 애플리케이션은 갤럭시나 윈도우에서 실행할 수 없다. 따라서, 같은 애플리케이션이라도 iOS용과 안드로이드 OS용으로 만들어야 한다. 네티이브 애플리케이션의 장단점 장점 웹 앱(웹 애플리케이션) 보다 빠르다. 애플리케이션이 설치된 기기의 시..

[Network] 크롬 브라우저의 에러 종류

Aw, Snap! (앗, 이런!) Chrome 브라우저가 웹 페이지를 로드하는 데 문제가 발생한 경우이다. 페이지가 느리게 로드되거나, 열리지 않을 수도 있다. ERR_NAME_NOT_RESOLVED 웹 주소(호스트 이름)가 존재하지 않을 경우 발생하는 에러이다. ERR_INTERNET_DISCONNECTED 사용 중인 디바이스가 인터넷에 연결되지 않았을 때 발생하는 에러이다. ERR_CONNECTION_TIME_OUTERR_TIMED_OUT 페이지에 접속하는 데 걸리는 시간이 초과한 경우 발생하는 에러이다. 인터넷 연결이 느리거나, 웹 페이지에 접속한 사용자가 많을 경우 발생할 수 있다. ERR_CONNECTION_RESET 웹 페이지 연결을 방해하는 요소가 있을 경우 발생하는 에러이다. ERR_NET..

[CS] 객체지향 프로그래밍이란?

객체란? (Object) 사람과 동물, 어떤 논리나 사상, 개념 등 눈에 보이는 것부터 보이지 않는 것까지 객체라는 범주에 포함될 수 있다. 즉, 사람이 보고 느끼고 인지할 수 있는 모든 것을 의미한다. 자바와 같은 객체지향 프로그래밍은 이러한 객체로부터 시작된다. 프로그래밍 언어에서의 객체는 클래스에 의해 정의되고 설계된 내용을 기반으로 생성된다. 객체는 속성과 행위(기능)를 가진다. 즉, 클래스를 통해 만들어진 객체가 실제로 사용할 수 있는 주체가 된다. 객체의 속성은 필드(변수), 행위는 메서드에 해당한다. 속성과 행위는 이너 클래스와 함께 객체의 멤버이다. 클래스를 통해 생성된 객체를 클래스의 인스턴스(instance)라 부른다. 객체지향 프로그래밍 (OOP: Object Oriented Prog..

[CS] 의사코드의 개념과 작성법 (슈도코드, Pseudo-code)

의사코드 (슈도코드, Pseudo-code) 의사코드는 프로그래밍 언어를 코드로 작성하기 전에, 무엇을 어떻게 동작하도록 자성할 지에 대하여 사람이 이해할 수 있는 언어로 작성하는 것이다. 의사코드를 작성하기 전에 문제를 이해하고 논리적으로 해석할 줄 알아야 한다. 이후 컴퓨팅 사고로 전환하여 의사코드를 작성하고 개발 언어로 코드를 작성한다. 두 수를 더하는 코드를 작성 예시로 다음과 같이 나타낼 수 있다. // 1. 단순 명세 1. 두 가지 숫자를 준비한다. 2. 더하기를 수행한다. 3. 결과값을 도출한다. // 2. 두 수를 더하는 함수 만들기 입력 : 두 가지 정수(num1, num2) 처리 : num1 + num2 출력 : 두 가지 정수를 더한 값(result) 이러한 코드를 프로그래밍 언어로 작..

[CS] 프로그래밍의 이해

프로그래밍이란? 프로그래밍은 컴퓨터에게 문제 해결을 맡기는 일종의 커뮤니케이션으로, 정의는 프로그래밍이란 프로그램을 만드는 과정으로, 특정 목적을 달성하기 위해 설계된 알고리즘을 프로그래밍 언어를 사용하여 코드로 작성하는 과정을 의미한다. 프로그램 프로그래밍의 결과로 만들어진 산출물로, 프로그램은 어떠한 목적을 달성하기 위한 컴퓨터 명령문의 집합체이다. 프로그래밍 언어 컴퓨터가 이해할 수 있는 언어. 컴퓨터는 기계어를 사용하며 사람이 이해하기 어렵다. 따라서 컴퓨터의 언어와 사람의 언어를 매개해주는 역할을 하는 것이 프로그래밍 언어이다. 컴퓨터에게 가까운 언어일수록 저수준 언어, 사람에게 가까운 언어일수록 고수준 언어 컴파일 사람이 프로그래밍 언어로 작성한 소스 코드를 컴퓨터가 이해할 수 있도록 기계어 ..

반응형