분류 전체보기

Java/Basic

[JVM - 1] JVM, JRE, JDK

자바의 등장 자바가 등장하기 전 프로그램은 운영체제(플랫폼)에 종속적이었다. 사용자들은 각기 다른 운영체제를 사용했기에 개발자는 각 운영체제에 맞춰 프로그램을 빌드하고 운영체제가 지원하지 않는 코드가 있다면 코드를 다시 짜야했다. 이런 상황속에서 운영체제에 독립적인 프로그램을 만들 수 있는 언어인 자바가 등장했다. 자바의 특징 운영체제에 독립적 JVM을 통해 자바 응용프로그램은 운영체제에 독립적으로 실행된다. 자바 이전의 언어인 C/C++로 만들어진 실행 파일이(.exe)나 목적 파일(.obj)은 운영체제에 종속적이다. 객체지향언어 Garbage collector를 통한 자동 메모리 관리 멀티쓰레드 지원 동적 로딩 (Dynamic Loading) 지원 JVM Java Virtual Machine의 약자로..

Computer Science/Network

[데이터통신 - 9] 네트워크 계층 (2)

서브넷 네트워크를 클래스로 구분하다보니 아래의 문제들이 발생했다. A라는 회사에서는 만개의 호스트 ID가 필요하다. C클래스의 호스트 ID개수는 254개라 어쩔 수 없이 B클래스를 할당받았지만 B클래스의 호스트 ID개수는 약 6만개로 5만개의 ip 주소가 사용되지 않는다. 즉 ip 주소 낭비가 발생한다. A 또는 B클래스를 할당받은 대규모 네트워크에서는 브로드캐스트 전송 시 많은 트래픽이 발생한다. 이런 문제들로 클래스로 구분해놓은 네트워크를 다시 여러 네트워크로 구분하는 기술인 서브넷팅이 나왔고 서브넷팅으로 분할된 네트워크를 서브넷이라 한다. 네트워크를 여러 서브넷으로 분할해 네트워크 마다 원하는 만큼의 ip 주소를 할당받을 수 있어 ip 주소 낭비를 막으며 브로드캐스트 전송 시 트래픽을 줄인다. 서브..

Computer Science/OS

컴파일 VS 인터프릿

프로그래머가 C,JAVA와 같은 high-level 언어로 프로그래밍 하면 컴퓨터가 이해 할 수 있도록 기계어로 번역해주어야 한다. 대표적인 방법으로 Compile와 Interpret가 있다. Compile을 하는 프로그램을 Compiler, Interpret을 하는 프로그램을 Interpreter라 하며 두 번역 방법이 명확하게 다르기 때문에 많은 프로그래밍 언어들은 둘 중 한가지 방식을 통해 기계어로 번역되도록 설계되었다. 하지만 요즘은 자바와 같이 두 가지 방법을 모두 사용하는 언어들이 많다. 원래의 코드를 원시 코드(Source Code), 컴파일 된 코드를 목적 코드(Object Code)라 한다. 컴파일 전체 코드를 Runtime 이전에 기계어로 번역하는 방식이다. 컴파일로 생성된 목적 코드는..

Computer Science/Network

[데이터통신 - 8] 네트워크 계층 (1)

네트워크 계층 OSI 3계층인 네트워크 계층을 알아보자. 네트워크 계층은 서로 다른 네트워크에 있는 목적지로 데이터를 전달하기 위한 계층이다. 앞의 데이터링크 계층글에서 LAN은 데이터링크 계층의 이더넷으로 구축되었다고 언급했다. 그래서 LAN 내에서(하나의 네트워크 안에서) 데이터링크 계층만으로도 통신이 가능하다. 하지만 LAN과 다른 LAN이 통신하려면 추가적인 기능, 프로토콜이 필요하다. 이 기능을 네트워크 계층이 제공한다. 네트워크 계층 핵심 기능 : 라우팅 라우터 LAN과 다른 LAN이 통신하려면 네트워크 계층의 장비인 라우터가 필요하다. 라우터는 IP 헤더의 목적지 주소를 보고 최적의 경로를 찾아주는 라우팅 기능을 제공한다. LAN에 라우터가 연결되어 있어야만 데이터를 다른 네트워크로 보내거나..

Computer Science/OS

환경 변수

환경 변수 (Environment Variable) 변수를 프로그램이 실행되는 환경(시스템)에 저장하여 해당 시스템의 모든 프로그램들이 사용할 수 있는 변수를 말한다. OS내의 프로세스들이 참조해야 하는 변수를 환경 변수로 설정해준다. 대표적인 환경 변수로 Path(경로)가 있다. 환경 변수의 값으로 경로를 지정하고 프로세스가 그 환경 변수를 참조한다. 또한 shell에서 현재 경로에 상관없이 바로 실행, 배치 파일을 실행할 때 그 파일의 경로를 환경 변수로 설정하기도 한다. 유명한 환경 변수로 HOME, USER 등이 있다. 환경 변수는 특정 값을 프로그램 코드에서 숨기기 위해서도 사용된다. github와 같은 온라인 코드 저장소를 사용하면 내가 만든 코드가 온라인에 공유 되는데 이때 DB 계정의 us..

Computer Science/Network

[데이터통신 - 7] 이더넷

등장 배경복사기 사업을 하는 제록스 사는 여러 대 컴퓨터와 복사기를 연결시키려는 연구를 시도하고 제록스 파크 연구소에서 로버트 멧칼프 등에 의해 연구가 진행되었다. 1980년대 첫 이더넷 상용제품이 소개되었으며 이후 DEC, 인텔, 제록스 3개 회사가 힘을 합쳐 DIX라는 표준을 만들게 되고 이를 바탕으로 1983년 IEEE 802.3 표준이 제정되었다.이더넷등장 배경을 보면 이더넷은 여러 단말 장치를 연결시키는 기술이라는 것을 알 수 있다. 이더넷을 통해 LAN을 구축하게 되고 지금에 이르러서는 거의 모든 LAN이 이더넷으로 구축되었다. 때문에 이더넷은 이더넷 프로토콜로 구축된 LAN, 즉 MAC 프로토콜로 CSMA-CD를 사용하는 버스 구조의 LAN이라고도 할 수 있다.이더넷 구조초기 이더넷 토폴리지..

Computer Science/Network

[데이터통신 - 6] 데이터링크 계층

데이터링크 계층 OSI 모델의 2계층인 데이터링크 계층을 알아보자. 데이터링크 계층은 네트워크 장비 간에 신호를 주고받는 규칙을 정하는 계층으로 랜에서 데이터를 정상적으로 주고받기 위해 필요하다. 데이터링크 계층에서 유명한 프로토콜로 이더넷이 있는데 거의 모든 랜이 이더넷 규칙을 따른다. 데이터링크 계층 핵심 기능 : 네트워크 장비 간의 오류제어, 흐름제어 이더넷 : 여러 단말장치를 연결시키는 기술, MAC 프로토콜로 CSMA-CD를 쓰는 버스 구조의 랜 이더넷 헤더 데이터링크 계층에서는 이더넷 헤더와 트레일러를 붙이는데 이더넷 헤더는 표준인 IEEE 802.3 프레임과 Ethernet II라 불리는 DIX 2.0으로 나뉜다. 실제로는 표준을 사용하지 않고 Ethernet II 이더넷 프레임 포맷을 사용..

Computer Science/Network

[데이터통신 - 5] 물리 계층

물리 계층 OSI 1계층인 물리 계층을 알아보자. 물리 계층은 상위 계층에서 내려온 비트열 데이터를 전송하기 위한 계층이다. 물리 계층 핵심 기능 : 비트 변환과 비트 전송 비트 변환은 데이터를 신호(signal)로 신호를 데이터로 변환하는 것을 말한다. 전송 매체에 따라 신호는 달라진다. (TP 케이블 → 전기신호, 광케이블 → 광신호, 무선(공기) → 전자기파) 비트 전송은 비트 단위로 전송하는 것을 말한다. 랜카드 컴퓨터에서 랜카드가 비트 변환과 전송을 수행한다. 송신측은 0과 1로 된 비트열 데이터를 전기 신호(디지털)로 변환해 수신측으로 보내며 수신측은 전기 신호를 원래의 비트열 데이터로 복원한다. 컴퓨터에 랜카드 장착됨으로써 계산만 하는 기계가 아닌 통신도 할 수 있는 기계가 되었다. 물리 계..

gunjoon98
'분류 전체보기' 카테고리의 글 목록 (16 Page)