컴퓨터 사이언스 (CS) 25

02. 좋은 코드란 무엇인가

안녕하세요 한소희입니다. 공부를 통해 배운 내용을 작성하고 있습니다. 혹여 해당 포스팅에서 잘못된 부분이 있을 경우, 알려주시면 빠르게 수정 조치하도록 하겠습니다. 감사합니다. 목차 좋은 코드란 무엇인가? 좋은 코드의 기준 - Naming 좋은 코드의 기준 - Style 좋은 코드의 기준 - 구조화 01. 좋은 코드란 무엇인가? 개발자에게 가장 중요한 능력 중 하나는 간결하고 확실한 의사소통이라고 생각한다. 이때, 개발자는 코드를 이용해 소통을 하기 때문에, 무엇보다 좋은 코드를 짤 줄 알아야 한다는 것이 나의 의견이다. 그렇다면, 좋은 코드란 무엇일까. 사람마다 '좋은 코드'의 정의는 조금씩 다를 수 있다. 따라서 필자는 '다수의 개발자가 생각하는 좋은 코드의 정의'에 대해 소개해보고자 한다. 함께 좋..

01. 프로그래밍 언어 이해하기

무엇이든, 기본이 제일 중요하다. 기본 개념을 제대로 숙지하고 있어야, 새로운 개념을 소화하는 데에 어려움이 없다고 믿는다. 따라서 CS기초지식부터 심화개념까지, 다시 한 번 되짚어보고자 한다. 오늘은 기본적인 프로그래밍 언어를 이해해보고, 분류 기준은 어떻게 정의할 수 있을지 탐색해 볼 것이다. 목차 프로그램과 프로그래밍 언어 프로그래밍 언어의 분류 기준 프로그래밍 언어의 흐름 01. 프로그램과 프로그래밍 언어 음식점을 갔을 때를 떠올려보자. 우리가 키오스크를 통해 주문을 했을 때, 주문서는 주방장에게로 향한다. 주방장은 그 주문서를 읽고 '내가 명령한 주문서'대로 조리를 행한다. 여기에서, 컴퓨터는 주방장을 / 프로그램은 키오스크 주문서를 / 프로그래밍언어는 주문서에 적힌 언어종류를 뜻한다. 즉, 프..

03. 프로세스의 이해

목차 1. 프로세스란? 2. 멀티 프로세스란? 3. 프로그램의 메모리(Address) 구조 4. 프로세스의 생명주기 5. 프로세스 관리방법 (PCB, Context Switch) 6. 프로세스 Tree 관계 (Child, Parent) 1. 프로세스란? 프로세스란, 실행중인 프로그램을 뜻한다 하나의 프로세스가 실행되기 위해서는 자원이 필요하기 때문에, O/S는 프로세스를 관리해야 한다. 2. 멀티 프로세스란? 멀티프로세싱과 멀티태스킹을 가능하게 하는 것이 바로 운영체제의 핵심 기능이다. (하지만 요즘은 멀티프로세싱이 아닌 멀티스레딩이 대세긴 한데, 이는 이후에 더 배울 것이다.) 2-1. 멀티프로세싱의 목적 Time Sharing 통해 동시에 여러 개의 프로세스를 실행시키는 것이다. 듬성듬성 수행되어도,..

02. 운영체제의 개념과 구조

목차 1. 운영체제 정의 및 기능 2. 전통적인 컴퓨터 시스템 2-1. 폰 노이만 아키텍처 (insruction cycle) 3. 저장 시스템 4. 컴퓨터 시스템 구성 5. 운영체제의 2가지 듀얼 모드 6. 현대 컴퓨터 시스템 7. 컴퓨팅 환경 1. 운영체제 정의 및 기능 하드웨어를 운영하는 시스템 어플리케이션, 유저, 하드웨어를 연결하는 시스템 항상 running하는 시스템 kernel에서 시스템과 어플리케이션 간 인터페이스 제공 2. 전통적인 컴퓨터 시스템 CPU, Bus 로 구성되어 있음. (Bus를 통해 RAM, USB Controller, Disk Controller 등과 연결되어 있음) 1. 부트스트랩: 발을 끼워 넣으면 신발이 쏙 들어가듯, CPU로 Memory..

01. 운영체제란 무엇인가

안녕하세요 한소희입니다. 공부를 통해 배운 내용을 작성하고 있습니다. 혹여 해당 포스팅에서 잘못된 부분이 있을 경우, 알려주시면 빠르게 수정 조치하도록 하겠습니다. 감사합니다. 목차 1. 정보란 무엇인가? 2. 컴퓨터란 무엇인가? 3. 운영체제란 무엇인가? 1. 정보란 무엇인가 칼로드 셰년이 정보에 대해 수학적으로 정의한 것. 불확실성한 상황을 측정한 것을 수치적으로 변환한 것 1-1. 정보의 최소 단위 bit (binary digit) 1-2. 정보량 어떤 사건의 정보량(I(x))은, -log2의 해당 사건이 나올 확률 1-3. 정보의 처리 부울 대수(NOT, AND, OR) 활용해 논리 게이트(NOT, AND, OR, XOR, NAND, NOR) 만들어, 논리회로 생성해 정보를 0에서 1로, 1에서 ..