computer_science 26

[알고리즘] 03. 순차구조

알고리즘의 세 기본 구조 중 가장 단순한 것이 순차구조다. 명령을 위에서 아래로 차례대로 실행하는, 가장 자연스러운 흐름이다. 단순하지만 모든 프로그램의 뼈대이며, "입력 → 처리 → 출력"이라는 기본 골격을 익히는 출발점이다. 수업에서 Raptor로 직접 그려 돌려본 예제들을 함께 정리했다.1. 순차구조란?순차구조명령어들이 주어진 순서대로 실행되어, 한 방향으로만 진행되는 가장 기본적인 제어구조다. 분기도 반복도 없이 위에서 아래로 흐른다.작성의 기본 절차는 입력 → 처리 → 출력 세 단계다. GET(입력): 값을 변수에 입력받는다.처리(대입문 ←): 입력받은 값으로 계산한다.PUT(출력): 결과를 출력한다. 이때 세 단계를 또박또박 분리해 쓰는 게 좋은 습관이다. 한 줄에 입력·계산·출력을 욱여넣으면..

[컴퓨터구조] 03. 디지털 논리 회로

CPU도 결국 전기 신호를 처리하는 회로 덩어리다. 그 가장 밑바닥에 논리 게이트가 있고, 이들을 조합해 덧셈기·기억소자 같은 더 큰 회로를 만든다. 오늘은 0과 1을 다루는 논리 회로의 기본을 정리했다.1. 논리 게이트논리 회로는 0과 1의 디지털 신호를 처리하는 회로다. 그 기본 부품이 논리 게이트다.게이트동작표기AND모두 1일 때만 1F = A·BOR하나라도 1이면 1F = A+BNOT반전F = A'NANDAND의 반전(A·B)'NOROR의 반전(A+B)'XOR서로 다르면 1A⊕B 이 게이트들을 회로로 만드는 기술이 TTL(Transistor-Transistor Logic, 트랜지스터 기반)과 CMOS(Complementary Metal-Oxide-Semiconductor, 저전력)다. 게이트 동작..

[컴퓨터네트워크] 03. 네트워크 통신

데이터가 실제로 오갈 때는 여러 규칙이 작동한다. 누구에게 보낼지(전송 대상), 어느 방향으로 보낼지, 오류는 어떻게 잡을지, 여러 기기가 한 매체를 어떻게 나눠 쓸지 등이다. 오늘은 네트워크 통신의 이런 기본 메커니즘을 정리했다.1. 통신 방식전송 대상에 따라방식설명유니캐스트특정 1대에만 전송 (1:1). 가장 흔함브로드캐스트같은 LAN의 모든 기기에 전송 (1:전체)멀티캐스트특정 그룹에만 전송 (1:그룹)전송 방향에 따라방식설명예단방향(Simplex)한 방향으로만라디오, 키보드반이중(Half-Duplex)양방향이되 교대로무전기, 허브전이중(Full-Duplex)동시 송수신전화, 스위치 반이중과 전이중의 차이가 허브와 스위치의 차이로 이어졌다. 허브는 교대로만 통신해 충돌이 생기고, 스위치는 양방향 동..

[운영체제] 02. 프로세스 개념과 상태 전이

오늘은 운영체제에서 자주 듣는 단어인 프로세스를 정리했다. 처음엔 "프로그램이랑 프로세스가 뭐가 다르지? 그냥 실행 중인 프로그램 아닌가?" 정도로만 알고 있었는데, 운영체제가 한정된 CPU(Central Processing Unit, 중앙처리장치)를 누구한테 줄지 결정하는 그 "누구"가 바로 프로세스다. 이 개념을 대충 알고 넘어가면 뒤에 나오는 스케줄링이나 동기화가 전부 흐릿해진다.이번 글에서는 내가 짠 코드 한 덩어리가 어떻게 실행 가능한 형태로 메모리에 올라가는지, 일단 올라간 뒤에는 어떤 상태들을 오가며 CPU를 받았다 뺏겼다 하는지를 따라가며 정리했다.1. 시스템 소프트웨어 (번역·연결·적재)내가 작성한 소스 코드는 그 자체로는 CPU한테 한 글자도 의미가 없다. 이 부분이 처음엔 잘 와닿지 ..

computer_science/os 2026.07.19

[알고리즘] 02. 순서도와 Raptor 기초

알고리즘을 코드로 짜기 전에, 처리 흐름을 그림으로 그려보면 논리가 한결 명확해진다. 그 그림이 순서도(Flowchart)다. 오늘은 순서도 기호와, 순서도를 직접 실행해볼 수 있는 도구 Raptor의 동작 규칙을 정리했다.1. 순서도란?순서도(Flowchart)일의 처리 과정을 순서대로 기호와 도형으로 도식화한 것이다. Raptor는 이 순서도를 그려서 바로 실행해볼 수 있는 교육용 프로그래밍 도구다. 기호의미타원시작(Start) / 종료(End)평행사변형입력(INPUT) / 출력(OUTPUT)직사각형처리·대입(assignment)마름모판단(조건/선택) 이 기호들의 조합으로, 알고리즘의 세 기본 구조인 순차·선택·반복을 모두 표현할 수 있다.순차구조: 명령을 주어진 순서대로 실행선택구조: 조건에 따라 ..

[자료구조] 02. 선형 리스트 (배열)

선형 리스트는 원소들이 순서를 가지고 1:1 관계로 나열된 자료구조다. 배열로 구현한 선형 리스트는 메모리에 원소가 연속으로 저장되므로 인덱스 접근이 빠르다.1. 배열 리스트의 특징항목내용저장 방식연속된 메모리 공간에 저장접근iArray[iIndex]로 O(1) 접근삽입삽입 위치 뒤쪽 원소들을 한 칸씩 뒤로 이동삭제삭제 위치 뒤쪽 원소들을 한 칸씩 앞으로 이동단점크기를 미리 정해야 하고 중간 삽입/삭제가 느림 배열 리스트의 핵심은 논리적 순서와 물리적 저장 순서가 같다는 점이다. 그래서 0번, 1번, 2번처럼 바로 접근할 수 있지만, 중간에 값을 넣거나 빼면 뒤쪽 원소들이 움직여야 한다.2. 삽입 연산예를 들어 {10, 20, 30, 40}의 1번 위치에 15를 넣으려면, 기존 20, 30, 40을 오른..

[컴퓨터네트워크] 02. 네트워크의 구성

네트워크는 여러 장치가 매체로 연결되어 이뤄진다. 오늘은 네트워크를 이루는 장치들(스위치·라우터 등), 규모에 따른 구분(LAN·WAN), 연결 형태(토폴로지), 그리고 데이터가 실제로 오가는 전송 매체를 정리했다.1. 네트워크 구성 요소와 규모네트워크는 크게 PC와 애플리케이션(브라우저 등), 접속 장치(스위치·라우터), 전송 매체(유선·무선)로 이뤄진다.여기서 두 핵심 장치를 구분하는 게 중요했다.스위치: 한 네트워크 내부에서 데이터를 전달한다(네트워크의 입구).라우터: 서로 다른 네트워크를 구분하고 연결한다."네트워크"의 기술적 경계는 라우터다기술적 의미에서 하나의 네트워크는 "라우터로 구분되는 범위"를 뜻한다. 집의 인터넷 공유기가 바로 가정용 라우터이고, 그 안의 기기들이 한 네트워크를 이룬다...

[컴퓨터구조] 02. 데이터의 표현

컴퓨터는 0과 1만 안다. 그렇다면 음수, 소수, 한글은 어떻게 표현할까? 오늘은 정수(2의 보수), 실수(부동소수점), 문자(ASCII·유니코드)가 비트로 어떻게 표현되는지, 그리고 오류를 어떻게 잡아내는지를 정리했다.1. 자료 표현 단위단위크기비트(bit)0 또는 1바이트(byte)8비트워드(word)CPU가 한 번에 처리하는 비트 묶음 표현 대상에 따라 방식이 다르다. 정수는 2의 보수, 실수는 부동소수점(IEEE 754), 문자는 ASCII·유니코드를 쓴다.2. 음수 표현: 2의 보수음수를 표현하는 방식은 여러 가지지만, 실제 컴퓨터는 2의 보수를 쓴다. 최상위 비트(MSB, Most Significant Bit)가 부호를 나타낸다(0은 양수, 1은 음수). 방식특징부호-크기MSB가 부호, 나머지..

[인터넷보안] 02. 시스템 보안

시스템 보안은 운영체제와 그 위에서 도는 프로그램, 그리고 자원에 접근하는 사용자들을 지키는 일이다. "누가 들어오는가(인증), 무엇을 할 수 있는가(권한), 무슨 일이 있었는가(로그)"라는 흐름이 그 뼈대다. 오늘은 계정·세션·접근 제어·권한·로그 관리, 그리고 모바일 보안까지 정리했다.1. 계정 관리: 식별과 인증보안의 출발점은 "이 사용자가 정말 그 사람인가"를 확인하는 인증이다. 인증 수단은 크게 네 가지로 나뉜다.방법예알고 있는 것패스워드가지고 있는 것신분증, OTP자신의 모습지문·홍채 등 생체 정보위치하는 곳접속 위치 확인, 콜백 다중 인증(MFA)이 강한 이유한 가지 수단은 뚫리면 끝이다. 패스워드(아는 것)는 유출될 수 있고, 휴대폰(가진 것)은 도난당할 수 있다. 그래서 서로 다른 범주의..

[알고리즘] 01. 알고리즘 개요와 복잡도

같은 문제를 푸는 방법은 여러 가지고, 그중에는 빠른 것도 느린 것도 있다. 알고리즘은 "문제를 푸는 절차"를 다루고, 그 절차가 얼마나 효율적인지를 따지는 게 복잡도다. 오늘은 알고리즘이 갖춰야 할 조건부터 성능을 재는 빅오 표기법까지, 알고리즘 공부의 토대를 잡았다.1. 알고리즘의 정의와 요건알고리즘(Algorithm)어떤 문제를 해결하기 위한 일련의 순서(명령어의 나열)다. 가장 오래된 알고리즘으로는 기원전 300년경 유클리드의 최대공약수 알고리즘이 꼽힌다. 알고리즘이라 부르려면 다음 다섯 조건을 갖춰야 한다.요건설명입력(Input)0개 이상의 외부 입력출력(Output)1개 이상의 출력정확성주어진 입력에 대해 올바른 해를 냄유한성일정 시간 안에 반드시 종료수행성모든 명령이 실제로 실행 가능 입력은..