CS Fundamentals

네트워크 통신에 사용되는 계층화 모델 2가지에 대한 개념을 정리한다.Network Protocol네트워크를 통해 서로 성공적으로 통신하기 위해서는 다음 세 가지가 상호 협의되어 있어야 한다.무엇(주제)을 통신할 것인지 상호 협약이 되어 있어야 한다.어떻게(수단) 통신할 것인지 상호 협약이 되어 있어야 한다.언제(시간) 통신할 것인지 상호 협약이 되어 있어야 한다.Protocol 이란 무엇을(데이터 형식), 어떻게(전송 방식), 언제(타이밍, 순서) 통신할 것인지 정의한 규칙과 절차의 집합이다. Network Layering통신에 사용되는 Protocol의 복잡함을 해소하기 위해 네트워크를 계층화 한 다음 계층 별로 Protocol을 정의하게 되었다. 이 때 각 계층은 서로 독립적으로 동작하기 때문에 특정..
2차원 배열이나 그리드 기반의 문제에서 주어진 위치의 4방향(상, 하, 좌, 우) 또는 8방향(상, 하, 좌, 우, 대각선 포함) 으로 이동하기 위한 좌표 값 획득을 위해 사용한다. DFS, BFS, 다익스트라 알고리즘에서 활용할 수 있다.방향 배열 Offset Sample4방향, 8방향 배열을 만들 때는 행, 열을 기준으로 2개의 Offset을 만들어야 한다.4방향 배열 Offset (상, 하, 좌, 우)int[] dRow = {-1, 1, 0, 0}; // 행 방향int[] dCol = {0, 0, -1, 1}; // 열 방향8방향 배열 Offset (상, 하, 좌, 우, 상우, 하우, 하좌, 상좌)int[] dRow = {-1, 1, 0, 0, -1, 1, 1, -1}; // 행 방향int[]..
배열의 인덱스(Index) 값에 의미를 부여해서 사용하는 자료구조다. 저장하려는 데이터의 키(key) 값과 배열의 인덱스 값을 직접 연동시켜 데이터의 저장 위치가 키 값에 의해 결정되고, 데이터를 저장하거나 빠르게 접근하고자 할 때 사용한다.Direct Address Table의 장점배열은 인덱스에 저장된 요소의 값을 꺼내 오는데 필요한 연산의 시간 복잡도가 O(1)이다. DAT 자료 구조를 사용해 값을 저장할 경우 배열의 빠른 연산 속도를 활용해 알고리즘 문제 해결에 적용할 수 있다. 입력 받은 알파벳이 샘플 데이터에 존재하는지 체크하는 예제 코드변수 값 초기화// 샘플 데이터char[][] sampleArr = { {'C', 'D', 'A'}, {'B', 'M', 'Z'}, {'..
Char 자료형에 저장되는 단일 문자는 내부적으로 정수형 아스키 코드 값으로 표현된다. 이 특징으로 문자열 조작, Direct Address Table에서 활용하여 프로그래밍에 활용할 수 있다.ASCII (American Standard Code for Information Interchange) 컴퓨터와 통신 장비에서 문자를 표현하는 데 사용되는 7비트 인코딩 표준이다.128개의 문자를 표현할 수 있다. 각 문자의 순서에 따라서 0부터 127까지 고유 숫자 값이 할당되어 있다. 영문 알파벳, 숫자, 특수 문자, 제어 문자가 포함되어 있다.대문자소문자숫자CharASCII Char ASCII Char ASCIIA65a97048B66b98149C67c99250D68d100351E69e101452F70f..
운영체제가 관리하는 작업의 단위로서, 실행중인 프로그램(프로그램이 메모리에 올라간 상태)을 의미한다.1. Process State LifecyleNew: 새로 생성되어 아직 실행 준비가 완료되지 않은 초기 상태 (스케줄링 대상이 되지 않은 상태)Running: CPU를 점유하여 실제로 실행 중인 상태Waiting: CPU를 점유하고 있지 않으면서, 특정 이벤트(입/출력 완료, 리소스 확보 등) 발생을 기다리며 대기 중인 상태Ready: CPU 할당만 받으면 바로 작업을 실행할 수 있는 상태Terminated: 모든 작업을 완료하고 종료된 상태 1.1 프로세스의 상태 값이 Waiting Status 로 변경되는 경우디스크, 프린터 등 I/O 작업이 완료되기를 기다리는 경우메모리나 다른 리소스가 부족해서 추..
운영체제를 한 마디로 정의한다면 "컴퓨팅 시스템을 운영(Operating)하는 Software(Program)"라고 할 수 있다.1. Computer1.1 Computer의 정의운영체제가 운영/관리 하는 컴퓨터의 정의를 자세하게 살펴보면 다음과 같이 정리할 수 있다.컴퓨터는 정보를 처리하는 장치를 의미한다.정보는 bits, bytes, kilo bytes와 같은 단위로 표현할 수 있고, 논리 게이트(NOT, AND, OR)를 이용해 정보를 처리한다.트랜지스터(논리 게이트)를 이용해서 IC, LSI, VLSI, ULSI와 같은 논리 회로를 만들 수 있다.이 때, 논리 회로를 정보 처리 장치라고 표현한다.논리 회로를 통해서 정보를 처리한 후 플리-플롭으로 저장하거나, 데이터 버스를 이용해 값을 전송하는데, ..
EndiYou
'CS Fundamentals' 카테고리의 글 목록 (2 Page)