본문 바로가기

컴퓨터 과학(CS)

(14)
[알고리즘] 그래프 탐색: DFS, BFS 그래프 탐색 알고리즘 중 가장 기본이 되는 DFS(깊이 우선 탐색)과 BFS(넓이 우선 탐색)에 대해 알아보겠습니다. 트리 구조에서 탐색이 어떻게 이루어지는 지를 통해 소개하겠습니다. 동작 설명을 위해 트리 구조에서 하는 것일 뿐 그래프 종류와 관련없이 사용 가능합니다.DFS(깊이 우선 탐색)이란?DFS는 그래프의 한 노드에서 시작해 가능한 깊이까지 탐색을 진행한 뒤, 더 이상 갈 수 없을 때 다음 경로를 탐색하는 방식입니다. 재귀나 스택을 사용하여 구현할 수 있으며, 후입선출(LIFO) 구조를 따릅니다.DFS의 동작 방식시작 노드를 방문하고, 방문 처리를 합니다.방문하지 않은 인접 노드가 있다면 그 노드로 이동합니다.더 이상 방문할 노드가 없으면 이전 노드로 돌아갑니다. DFS를 통해 트리를 구성한다면..
[네트워크] OSI 7계층 OSI 7계층(Open Systems Interconnection)은 국제표준화기구(ISO)에서 개발한 모델로 네트워크 통신 과정을 7단계로 나눠 각 계층이 특정 역할을 담당하도록 정의한 모델입니다. 실제로 OSI 7계층이 많이 사용되지는 않습니다만, 이를 기반으로 한 프로토콜을 통해 통신이 이루어집니다.Physical Layer (물리 계층)역할: 데이터를 비트(Bit) 단위로 변환하여 실제 전송 매체를 통해 전송하는 역할.주요 기능:데이터 인코딩:디지털 → 디지털: Line Coding (Unipolar, Polar 등)디지털 → 아날로그: 변조(ASK, FSK, PSK 등)아날로그 → 디지털: 샘플링(PCM, DM 등)아날로그 → 아날로그: AM, FM, PM전송 매체를 통한 신호 전달.예시: RS..
[자료구조] C++ STL(Container): set, map, multiset, multimap, hash C++ 표준 라이브러리(STL)에서 제공하는 set, map, multiset, multimap 등의 컨테이너와 해시 기반 컨테이너에 대해 소개하겠습니다. 연관 컨테이너(Associative Containers)정해진 정렬 기준에 따라 정렬된 자료구조를 의미합니다.이 컨테이너들은 Red-Black Tree 기반으로 구현되며, 모든 요소는 정렬된 상태를 유지합니다. 자가 균형 이진 트리를 사용하므로 삽입, 삭제, 조회에 O(log n)의 시간 복잡도를 가집니다.레드-블랙 트리 (red-black tree)는 자가 균형 이진 탐색 트리 (self-balancing binary search tree)로서, 대표적으로는 연관 배열 등을 구현하는 데 쓰이는 자료구조다. 1978년 레오 귀바스(Leo J. Guib..
[알고리즘] 재귀(Recursion) 재귀란?재귀는 자기 자신을 호출하는 프로그래밍 기법입니다. 큰 문제를 더 작은 하위 문제로 나누어 해결하는 알고리즘이라 할 수 있습니다.재귀 함수는 호출될 때 스택 구조를 사용합니다.각 함수 호출로 인해 콜 스택에 쌓이고, 함수가 종료되면 제거됩니다.재귀의 기본 구조재귀 함수가 자기 자신을 무한히 호출하면 콜 스택이 계속 쌓이게 됩니다. 결국에는 멈추는 지점이 필요합니다. 이 지점을 기저 조건(Base Case)라 부릅니다.재귀 함수를 구성하는 데 필수적인 구성 요소는 다음과 같습니다. 기저 조건(Base Case):재귀 호출을 멈추는 조건입니다.기저 조건을 명확히 정의하지 않으면 무한 루프에 빠질 수 있습니다.재귀 호출(Recursive Call):자기 자신을 다시 호출하는 부분입니다.아래는 재귀 함수..
[운영체제] 교착상태(Deadlock, 데드락) 데드락이란?두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태입니다.쉽게 말해, 무한히 자원을 기다리는 상태로, 한정된 자원을 여러 프로세스가 사용하려고 할 때 발생합니다.예를 들어, 외나무 다리 양 끝에서 서로가 비켜주기를 기다리는 상황을 떠올리면 이해하기 쉽습니다. 데드락 발생 예시상황:프로세스1은 자원1과 자원2가 필요합니다.프로세스2도 자원1과 자원2가 필요합니다.시간별 진행:t1: 프로세스1이 자원1을, 프로세스2가 자원2를 점유합니다.t2: 프로세스1은 자원2를 기다리고, 프로세스2는 자원1을 기다립니다.서로 상대방이 점유한 자원을 기다리며 무한정 대기 상태에 빠지는 상황이 발생합니다.→ 이것이 바로 Deadlock(교착 상태)입니다.데드락 발생 조건데드락..
[네트워크] Wireless LANs(무선 랜) Wireless LANs란?어디를 가도 통신할 수 있도록 만드는 기술입니다.(근거리 무선 통신) 유선 LAN vs 무선 LANWireless는 AP(Access Point)로 연결되어 있고, 유선랜은 스위치 혹은 라우터로 연결되었습니다. 여기서 AP는 유선으로 연결되어 있습니다. 즉, 무선 통신은 AP와 기기 사이에서만 이루어집니다. *AP(Access Point) vs Router- 라우터 : 하나의 공인 IP를 여러 가상 IP 주소로 변환, 외부 네트워크와 내부 네트워크 연결- AP : 무선 기기를 연결 후 AP와 연결된 유선 네트워크와 통신을 도와줌, 가상 IP 할당 기능은 없음 → DHCP 서버에서 할당해주어야 함   무선 환경에서는 변수가 많습니다. 즉, 문제 해결이 중요합니다.Access Co..
[네트워크] IPv6 IPv6란?기존 32비트의 IPv4의 주소 고갈 문제를 해결하기 위하여 기존 IPv4 주소 체계를 128비트 크기로 확장한 차세대 인터넷 프로토콜 주소 IPv6주소 구성표기법일반적으로 16비트 단위로 나눠지고, 각 16비트 블록은 다시 4자리 16진수로 변환되고 콜론으로 구분됨예) 2001:0DB8:1000:0000:0000:0000:1111:2222각 필드의 맨 앞의 연속된 0은 생략 가능예) 2001:DB8:1000::1111:2222 RFC 2373에 의거한 기술적 경계인 64비트를 기준으로 앞 64비트를 네트워크 주소, 뒤 64비트를 인터페이스 주소로 활용함네트워크 주소내에서 앞 48비트는 상위 네트워크 주소, 나머지를 하위 네트워크 주소로 활용함 프리픽스IPv6의 ‘프리픽스’는 IPv4에서 사용..
[웹] 쿠키와 세션 쿠키와 세션을 이해하기 위해 HTTP의 특징을 이해하면 도움이 된다. HTTP비연결성, 비상태성→ 서버의 자원을 절약하기 위해 모든 사용자의 요청마다 연결과 해제의 과정을 거치기 때문에 연결 상태가 유지되지 않고, 연결 해제 후에 상태 정보가 저장되지 않음→ 이로인해 매번 새로운 사용자를 인식해야 하는 단점이 있음근데??우리가 사용하고 있는 사이트는 기억하고 있음 → 쿠키와 세션덕분.. HTTP의 비연결성과 비상태성을 보완하여 서버가 클라이언트를 식별해주는 것이 쿠키와 세션쿠키웹 사이트에 접속할 때 생성되는 정보를 담은 임시 파일String 타입의 Key와 value로 구성되어 있음쿠키는 서버를 대신해 정보를 로컬(웹 브라우저)에 저장하고 서버가 사용자를 식별할 수 있도록 함 브라우저마다 저장되는 쿠키가..