간단한 IT 지식

1. TCP (Transmission Conrtol Protocol)란? TCP는 연결 지향적인 특징을 가지는 프로토콜이다. 이러한 특징으로 연결이 성공해야만 통신이 가능하고 그렇기 때문에 송신자와 수신자간의 데이터의 신뢰성 있는 전송을 가능하게 한다. 1 대 1 통신의 유니캐스트를 사용하고 신뢰성이 높은 만큼 패킷 관리가 필요없지만 전송속도가 느리다는 단점이 있다. 2. TCP의 특징 1. 연결 지향적, 가상 회선 연결 방식 2. 데이터 전송의 높은 신뢰성 3. 연결의 설정(3-way handshaking)과 해제(4-way handshaking) 4. 데이터의 흐름 제어(수신자 버퍼 오버플로우 방지), 혼잡 제어(네트워크 내 패킷 수가 과도하게 증가하는 현상 방지) 3. UDP(User Datagra..
1. OSI 7계층이란? OSI 7계층이란 네트워크의 통신 과정을 7단계로 나눈 것이며 계층의 종류로는 물리 계층, 데이터 링크 계층, 네트워크 계증, 전송 계층, 세션 계층, 표현 계층, 응용 계층이 있다. 2. OSI 7계층이 필요한 이유? 만약 네트워크에 문제가 생겼을 때 기능을 나눈 모델이 없다면 어디서 문제가 생겼는지 전체적으로 파악해야 한다. 따라서 통신 프로토콜을 단계별로 분해한 OSI 7계층을 사용한다면 어떤 역할을 담당하고 있는 어느 계층이 문제가 있다는 것을 바로 파악할 수 있다. 또한 OSI 7계층이라는 기준이 생겼기 때문에 서로 독립적인 개발을 할 수 있어 유지 보수성이 증가하고 계층 간의 영향을 최소화할 수 있다. 이외에도, 호환성과 계층의 이해 및 분석 측면에서 장점이 있다. 3..
1. 데드락이란? 프로세스가 다른 프로세스로부터 자원을 얻고 다음 작업을 진행해야 하지만 자원을 얻지 못하고 다음 작업으로 진행하지 못하는 상황을 데드락이라고 한다. 예시로, 프로세스 1, 프로세스 2가 A, B라는 자원이 필요하고 프로세스 1은 A, 프로세스 2는 B를 할당 받았다고 가정하자. 그러면 프로세스 1은 B를 얻기 위해 프로세스 2에게 요청을 하고 프로세스 2는 A를 얻기 위해 프로세스 1에게 요청을 한다. 이에 따라, 프로세스 1과 2는 서로 요청만 할뿐이지 자원을 얻지 못하여 데드락 상태에 걸리게 된다. 2. 데드락의 조건 데드락의 조건으로 총 4가지가 있다. 상호 배제 - 자원은 한 번에 하나의 프로세스만이 사용할 수 있어야 한다. -> 한 번에 자원을 두개 이상의 프로세스가 사용할 수..
1. CPU 스케줄러란? 준비큐에 있는 프로세스에게 CPU를 할당하는 방법을 CPU 스케줄러 라고 한다. 참고로 프로세스는 메모리와 CPU를 할당받아 사용된다. 2. CPU 스케줄러가 왜 필요할까? 만약 카카오톡을 왼쪽 화면에 켜놓고 대화를 보며 유튜브를 듀얼 모니터에 켜놓고 오른쪽 화면에는 게임을 켜놨다고 가정하자. 그럼 카카오톡, 유튜브, 게임을 동시에 하고 있는 것 처럼 느끼지만 사실 아니다. 이 3개의 프로그램은 CPU에서 각 하나 씩 잠깐 실행되는 단계를 정말 빠른 속도로 진행하고 있어서 인간의 눈으로는 인식을 못하고 동시에 실행되는 것 처럼 보이는 것이다. 그럼 동시에 실행되는 것 처럼 빠르게 프로그램을 CPU에 할당하기 위해 어떤 방법이 필요할텐데 이를 CPU 스케줄러 라고한다. 3. CPU..
1. 프로세스란? 실행중인 프로그램을 프로세스라고 부른다. 예를 들어, 컴퓨터에서 카카오톡, 유튜브, 알집이 실행됐다고 하면 프로세스가 3개 실행된 것이라고 말할 수 있다. 2. 스레드란? 프로세스 안의 실행 단위를 스레드라고 한다. 프로세스는 실행 중인 프로그램, 그러니 실행 중인 프로그램의 실행 단위라고 이해하면 된다. 예를 들어 유튜브의 재생 기능, 좋아요 기능 등이 유튜브 라는 프로세스 안에서 실행되는 것이기 때문에 이를 스레드라고 표현할 수 있다. 3. 프로세스의 구조와 특징은? 하나의 프로세스는 CPU와 메모리를 할당 받는다. 참고로 메모리는 코드, 데이터, 힙, 스택 영역으로 이루어져 있다. 그리고 최소 1개의 스레드가 존재하는데 프로세스 안에 있는 스레드들은 데이터를 공유할 수 있지만 스택..
1. 트리의 순회란? 트리 구조 내의 모든 노드를 방문하기 위한 과정을 말한다. 종류로는 전위 순회(Preorder), 중위 순회(Inorder), 후위 순회(Postorder)가 있다. 이러한 순회를 사용하는 이유는 트리 구조에서 데이터 탐색과 출력이 용이해지기 때문이다. 2. 순회 방법 전위 순회 Root - Left - Right (ABDCEFG) 중위 순회 Left - Root - Right (DBAECFG) 후위 순회 Left - Right - Root (DBEGFCA) 전위 순회(Root - Left - Right)를 예시를 들어서 설명하자면 1. Root A노드 시작 (A) 2. Root : A - 왼쪽 자식 노드 B 탐색 (AB) 3. Root : B - 왼쪽 자식 노드 D 탐색 (ABD)..
1. 해시 테이블이란? 데이터를 저장하는 자료구조 중 하나로, 키와 값을 연관시켜 저장하는 구조를 갖고있다. 해시 함수를 사용하여 키를 해시 값으로 변환하고, 이를 통해 데이터를 저장하고 검색할 수 있다. 2. 해시 테이블의 구조 해시 테이블은 배열로 구현되어있으며, 각 배열 요소는 버킷이라고 불리는 키와 값 쌍으로 저장된다. 3. 해시 테이블의 장점 1. 키가 해시 값으로 되어있기 때문에 검색속도가 O(1)로 굉장히 빠르다. 2. 키의 유형은 정수, 문자열, 객체 등 모든 유형이 가능하다. 3. 개방 주소법과 체이닝을 통해 해시 값이충돌되는 문제를 자동으로 해결해준다. 4. 중복된 키가 존재하지 않기 때문에 적절한 해시 함수의 사용은 메모리를 효율적으로 만들어준다.
1. 가비지 컬렉터란? 런타임 환경에서 동적으로 할당된 메모리의 누수를 방지하고 사용되지 않는 메모리를 찾아 회수하며 관리해주는 기능이다. 대표적으로 JAVA와 C#에 존재하며 자동으로 메모리를 관리해주지만 C++과 같은 언어는 직접 사용자가 메모리를 관리해줘야 한다. 2. 가비지 컬렉터의 동작 과정 1. 프로그램의 모든 메모리를 검사하여 객체의 사용여부를 루트 세트의 시작점을 사용하여 표시한다. (루트 세트 - 전역 변수, 지역 변수, 정적 변수 등, 직접적으로 참조되는 객체들) 2. 객체의 사용여부가 표시되지 않은 객체를 메모리에서 제거한다. 제거한 메모리는 프로그램이 다시 사용이 가능하다.(메모리 누수 방지) 3. 사용되지 않는 객체의 메모리 공간을 메모리의 끝쪽으로 이동시켜 단편화 한다. (효율적..
Sh_Blog
'간단한 IT 지식' 카테고리의 글 목록