본문 바로가기

Computer Science18

[네트워크] 2. TCP/IP TCP/IP는 서로 다른 회선끼리 통신할 수 있게 하는 통신 프로토콜 세트 입니다.TCP/IP에서 다루는 범위는 역할에 따라 4개의 계층으로 나뉘는데, 이를 TCP/IP 4계층 모델이라고 하며, 데이터 송수신에 필요한 작업을 각 층에서 분담해서 처리합니다. TCP/IP 4계층 모델구분계층명주요 프로토콜역할4층 (사용자에 가까움)응용 계층HTTP, DNS 등애플리케이션에 맞추어서 통신3층전송 계층TCP, UDPIP와 애플리케이션을 중개해서 송신된 데이터를 전달2층인터넷 계층IP, ICMP, ARP 등네트워크 주소를 기반으로 수신 측 컴퓨터까지 데이터 전송1층 (기기에 가까움)네트워크 접속 계층이더넷, Wi-Fi 등컴퓨터를 물리적으로 네트워크에 연결해서 기기간 전송  OSI 참조 모델은 TCP/IP 4계층 .. 2025. 3. 12.
[자료구조] 큐(Queue) 큐는 선입선출(FIFO) 자료구조이며, 스택과 마찬가지로 큐도 삽입하는 연산은 push, 꺼내는 연산은 pop이라고 합니다. 큐의 동작 방식은 작업 대기열, 이벤트 처리 등에서 사용하고 있습니다.   큐의 동작 이해구분정의설명연산boolean isFull()큐에 들어 있는 데이터 개수가 maxsize인지 확인해 boolean값을 반환합니다.boolean isEmpty()큐에 들어 있는 데이터가 하나도 없는지 확인해 boolean값을 반환합니다.void push(ItemType item)큐에 데이터를 푸시합니다.ItemType pop()큐에서 마지막에 푸시한 데이터를 팝하고, 그 데이터를 반환합니다.상태int front큐에서 가장 마지막에 팝한 위치를 기록합니다.int rear큐에서 가장 최근에 푸시한 데.. 2025. 3. 12.
[자료구조] 스택 (Stack) 스택은 데이터를 쌓고 꺼낼 수 있는 선입선출(FILO) 자료구조 입니다. 먼저 들어간 데이터가 나중에 나오는 규칙으로 스택에 삽입하는 연산을 푸시(push), 꺼내는 연산을 팝(pop)이라고 합니다. 스택의 연산과 동작 이해구분정의설명연산boolean isFull()스택에 들어있는 데이터 개수가 maxsize인지 확인해 boolean값을 반환(가득차 있다면 True, 아니면 False)boolean isEmpty()스택에 들어있는 데이터가 하나도 없는지 확인해 boolean 값을 반환(데이터가 하나라도 있으면 False, 아니면 True)void push (itemType item)스택에 데이터를 푸시itemType pop()스택에서 최근에 푸시한 데이터를 팝하고, 그 데이터를 반환상태int top스택에.. 2025. 3. 11.
[네트워크] 1. 네트워크란? 과거에는 사람이 담긴 정보를 전달하기 위한 수단으로 주로 우편과 같은 물리적 수단을 사용했습니다. 이후 통신 회선이 생겨나고 전세계적으로 연결되면서 컴퓨터간의 데이터를 교환하는 네트워크를 구축하게 되었습니다. 복수의 네트워크를 연결하는 것을 "인터네트워킹"이라고 하는데, 우리가 흔히 사용하는 "인터넷"이라는 용어가 이 "인터네트워킹"에서 파생되었습니다. AS(조직)인터넷은 여러 조직의 네트워크가 서로 연결된 것이기 때문에 조직간의 네트워크 접속 정책은 공통된 규칙을 따르지만, 조직 내부를 어떤 정책으로 운영할지는 각 조직에게 맡겼습니다. KT, SKT, LG 같은 인터넷 서비스 제공자(ISP)가 조직에 속합니다.  컴퓨터 네트워크는 범위에 따라 LAN과 WAN으로 나눌 수 있는데, LAN은 가정이나 사무.. 2025. 3. 11.
[자료구조] Big-O (빅오) 소프트웨어 내 저마다의 알고리즘이 있을텐데, 동일한 기능을 수행하는 알고리즘이라도 어떻게 코딩을 했는지에 따라 성능은 천차만별일 것 입니다. 그렇다면 성능을 어떻게 평가 할까요? 요구사항이나 제약 조건에 따라 다르겠지만, 주로 시간복잡도(Time Complexity), 공간복잡도(Space Complexity)를 통해서 성능을 평가할 것 입니다. 이렇듯 '알고리즘 실행에 얼마나 걸리는지',  '사용하는 메모리 양이 얼마나 되는지를' 나타내는 지표는 "가장 효율적으로 문제를 해결하는 알고리즘"을 의미하기도 합니다.  1. 시간 복잡도를 표현하는 방법은 무엇이 있을까요? 가장 많이 사용하는 표기법이 바로 Big-O 표기법이라고 합니다. 어떤 프로그램의 연산 횟수가 f(x)라고 할 때, 함수의 최고차항을 남기.. 2025. 2. 25.
[자료구조] 배열 (Array) 배열은 인덱스와 값을 대응하여 관리하는 자료구조 입니다. 데이터를 저장할 수 있는 공간은 인덱스로 관리되므로 데이터에 한 번에 접근할 수 있습니다. 그리고 인덱스를 통해 빠른 탐색이 가능하며, 동적으로 크기 조절이 가능합니다. (feat. python)  1. 2차원 배열 코드 (feat. python)# 2차원 배열을 비스트로 표현arr = [[1, 2, 3, 4], [5, 6, 7, 8]]# arr[2][3]에 저장된 값을 출력print(arr[2][3])# arr[2][3]에 저장된 값을 15로 변경arr[2][3] = 15  2. 리스트 컴프리헨션# 크기가 3 * 4인 리스트를 선언하는 예arr = [[i] * 4 for i in range(3)] #[[0,0,0,0],[1,1,1,1],[2,2.. 2025. 2. 24.
[CS] 3. 컴퓨터 작동 방식 ※ 책에 더 자세한 내용이 있으므로 책을 추천드립니다. 컴퓨터가 프로그램을 실행하고 데이터를 처리할 때, 문자와 숫자를 어떻게 인식할까요? CPU는 기본적으로 0과 1만 이해할 수 있는데, 0과 1을 나타내는 가장 작은 정보의 단위를 비트(bit)라고 합니다. 즉, 1비트는 2개의 정보를 표현할 수 있고, 2비트는 4개, 3비트는 8개의 정보를 표시할 수 있습니다. 흔히 프로그램 관점의 크기를 말할 때 사용되는 단위는 TB, GB, MB, kB, byte가 있는데, 모두 최소단위인 bit로부터 시작된 것 입니다. 그리고 CPU 관점에서 정보 단위를 말할 때, CPU가 한 번에 처리할 수 있는 데이터의 크기를 의미하는 워드(word)가 있습니다. 만약 CPU가 한 번에 16비트를 처리할 수 있다면 1워드는.. 2024. 10. 3.
[CS] 2. 컴퓨터 구조 컴퓨터를 구성하는 핵심 부품의 역할과 작동 방법에 대해 알아보며, 컴퓨터 구조의 큰 그림을 이해해봅시다.1. 컴퓨터가 이해하는 정보프로그램을 개발하기 위해서는 프로그래밍 언어로 소스 코드를 작성해야 합니다. 하지만 컴퓨터는 프로그래밍 언어를 직접 이해하지 못합니다. 컴퓨터는 기본적으로 0과 1만 이해할 수 있기 때문에, 소스 코드는 컴퓨터가 이해할 수 있는 형태로 컴파일되어 실행됩니다. 컴퓨터에 정보를 저장하거나 주고 받기 위해서는 데이터와 명령어를 활용합니다. 데이터는 컴퓨터와 주고받는 정보, 컴퓨터에 저장된 정보 자체를 의미하고 명령어에 종속적인 정보이며, 명령의 대상이자, 명령어의 재료라고 할 수 있습니다.  그리고 명령어는 이 데이터를 활용하는 정보입니다. 명령어를 이해하고 실행하는 주체는 CPU.. 2024. 10. 2.
728x90