CS 19

[C#/자료구조]스택 , 큐

[eBook] 자료구조와 알고리즘 with C# - 3장. 스택 및 큐 1. 스택1) 정의- 한 쪽 끝(상단)에서만 항목을 추가하고 제거할 수 있는 요소의 모음 - 후입선출(LIFO) : 스택에 마지막으로 추가된 요소가 가장 먼저 제거- 예 : 책 (가장 위에 있는 책이 가장 먼저 제거)- 사용 예시 : 구문 분석(텍스트의 문자열을 분석하여 문법 구조 파악, 지금까지 처리된 텍스트의 기호 추적), 재귀 알고리즘 구현, 산술 표현식 평가, 프로그램 메모리에 호출 프레임 저장 등  2) 연산- Push : 스택의 맨 위에 요소를 추가- Pop : 스택에서 가장 위에 있는 요소를 제거 - Peek : 스택에서 가장 위에 있는 요소를 제거하지 않고 반환- Count : 스택의 요소 수를 반환- Contains ..

CS/자료구조 2024.08.05

모두의 네트워크 - 목차 / 전체 용어 정리(요약)

좋았던 점 :9장까지 있어서, 하루 2장씩 보기 좋았다 네트워크 관련 장비 부분도 다뤄서 좋았다   미즈구치 카츠야 저 / 이승룡 역길벗2018년 06월 30일   * 세부 목차 (더보기)더보기1장 네트워크 첫걸음LESSON 00 네트워크 입문 강의 개강!LESSON 01 네트워크의 구조LESSON 02 정보의 양을 나타내는 단위LESSON 03 랜과 왠LESSON 04 가정에서 하는 랜 구성LESSON 05 회사에서 하는 랜 구성복습하기2장 네트워크의 기본 규칙LESSON 06 네트워크의 규칙LESSON 07 OSI 모델과 TCP/IP 모델LESSON 08 캡슐화와 역캡슐화 .복습하기3장 물리 계층 : 데이터를 전기 신호로 변환하기LESSON 09 물리 계층의 역할과 랜 카드의 구조LESSON 10 케..

CS/네트워크 2024.07.16

[DB]조인의 종류

* 조인(join) : 하나의 테이블이 아닌 두 개 이상의 테이블을 묶어서 하나의 결과물을 만드는 것 - MySQL : JOIN - MongoDB : lookup (되도록 사용하지 말아야) -> 여러 테이블을 조인하는 작업이 많을 경우, MongoDB보다 관계형 DB를 써야 함. 1. 내부 조인(inner join) : 왼쪽 테이블과 오른쪽 테이브르이 두 행이 모두 일치하는 행이 있는 부분만 표기 SELECT * FROM TableA A INNER JOIN TableB B ON A.key = B.key 2. 왼쪽 조인(left outer join) : 왼쪽 테이블의 모든 행이 결과 테이블에 표기 SELECT * FROM TableA A LEFT JOIN TableB B ON A.key = B.key 3...

[DB]데이터베이스의 종류

1. 관계형 데이터베이스(RDBMS)- 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스- SQL 언어를 써서 조작- MySQL, PostgreSQL, 오라클, SQL Server, MSSQL... 1) MySQ- 가장 많이 사용하는 DB 2) PostgreSQL- MySQL 다음으로 개발자들이 선호하는 DB 기술- 특징 : 디스크 조각이 차지하는 영역을 회수할 수 있는 장치(VACCUM)   2. NoSQL - Not Only SQL - SQL을 사용하지 않는 DB - MongoDB, redis 1) MongoDB 2) redis- 인메모리 DB- 키-값 데이터 모델 기반의 DB

[DB]트랜잭션, 무결성

1. 트랜잭션- 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위-> 데이터베이스에 접근하는 방법은 쿼리이므로, 즉 여러 개의 쿼리들을 하나로 묶는 단위트랜잭션에 대한 특징 = ACID 특징 : 원자성, 일관성, 독립성, 지속성 1) 원자성(atomicity) * 커밋(commit) : 여러 쿼리가 성공적으로 처리되었다고 확정하는 명령어* 롤백 : 트랜잭션으로 처리한 하나의 묶음 과정을 일어나기 전으로 돌리는 일(취소) -> 커밋, 롤백 덕에 데이터의 무결성 보장 !  * 트랜잭션 전파 : 여러 트랜잭션 관련 메서드의 호출을 하나의 트랜잭션에 묶이도록 하는 것  2) 일관성(consistency)- 허용된 방식으로만 데이터를 변경해야 하는 것 3) 격리성(isolation)- 트랜잭션 수행..

[DB]데이터베이스 기본

* 데이터베이스(DB, DataBase)- 일정한 규칙(규약)을 통해 구조화되어 저장되는 데이터의 모음- DBMS를 통해 관리되며, DBMS마다 정의된 쿼리 언어를 통해 삽입, 삭제, 수정, 조회 등이 가능- 실시간 접근, 동시 공유 가능 *DBMS(DataBase Management System)- 데이터베이스를 제어, 관리하는 통합 시스템  1. 엔터티(entity)  - 여러 개의 속성을 지닌 명사 (사람, 장소, 물건, 사건, 개념 등)- 서비스의 요구 사항에 맞춰 속성 결정ex) 회원 엔티티 : 이름, 아이디, 주소, 전화번호 등의 속성을 가짐 * 약한 엔터티 vs. 강한 엔터티A : 혼자서 존재 x, B의 존재 여부에 따라 종속적 -> A: 약한 엔터티 / B: 강한 엔터티 ex) 방 : 약한..

[OS]CPU 스케줄링 알고리즘

* CPU 스케줄러 : CPU 스케줄링 알고리즘에 따라 프로세스에서 해야 하는 일을 스레드 단위로 CPU에 할당 프로그램이 실행될 때, CPU 스케줄링 알고리즘이 어떤 프로그램에 CPU 소유권을 줄 것인지 결정 목표 : CPU 이용률은 높게, 주어진 시간에 많은 일을 하게, 준비 큐에 있는 프로세스는 적게, 응답 시간은 짧게 설정 1. 선점형 방식(preemptive) : 지금 사용하고 있는 프로세스를 알고리즘에 의해 중단시켜 버리고 강제로 다른 프로세스에 CPU 소유권을 할당하는 방식, 현재 운영체제가 쓰는 방식 1) 라운드 로빈(RR, Round Robin) : 우선순위 스케줄링의 일종, 각 프로세스는 동일한 할당 시간을 주고 그 시간 안에 끝나지 않으면 다시준비 큐의 뒤로 가는 알고리즘 2) SRF..

CS/운영체제 2023.12.23

[OS]메모리 관리

운영체제의 대표적인 할 일 중 하나 : 메모리 관리 = 컴퓨터 내의 한정된 메모리를 극한으로 활용 1. 가상 메모리(virtual memory) : 컴퓨터가 실제로 이용 가능한 메모리 자원을 추상화하여 이를 사용하는 사용자들에게 매우 큰 메모리로 보이게 만드는 것 (메모리 관리 기법의 하나) - 가상 주소(logical address) : 가상적으로 주어진 주소 - 실제 주소(physical address) : 실제 메모리 상에 있는 주소 -> 가상 메모리는 메모리관리장치(MMU)에 의해 실제 주소로 변환됨 (= 사용자 : 실제 주소를 의식할 필요 없이 프로그램 구축 가능) - 가상 메모리는 가상 주소와 실제 주소가 매핑되어 있고, 프로세스의 주소 정보가 들어 있는 '페이지 테이블'로 관리됨 * TLB(..

CS/운영체제 2023.12.20

[OS]컴퓨터의 요소: CPU(CU, ALU, Register), DMA Controller, Memory, Timer, Device Controller

컴퓨터 : CPU, DMA 컨트롤러, 메모리, 타이머, 디바이스 컨트롤러 등으로 구성 1. CPU(중앙 처리 장치, Central Processing Unit) : 산술논리연산장치, 제어장치, 레지스터로 구성되어 있는 컴퓨터 장치 즉, 컴퓨터 시스템을 통제하고 프로그램의 연산을 실행/처리하는 가장 핵심적인 컴퓨터의 제어 장치(기억, 해석, 연산, 제어) 인터럽트에 의해 단순히 메모리에 존재하는 명령어를 해석해 실행하는 일꾼 운영체제의 커널(관리자)이 프로그램을 메모리에 올려 프로세스로 만들면, CPU(일꾼)가 처리 1) 제어장치(CU, Control Unit) : 프로세스 조작을 지시하는 CPU의 한 부품 - 입출력장치 간 통신을 제어 - 명령어들을 읽고 해석하며 데이터 처리를 위한 순서를 결정 2023..

CS/운영체제 2023.12.15

[OS]운영체제의 역할, 구조

운영체제(OS, Operating System) : 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스 (= 한정된 메모리나 시스템 자원을 효율적으로 분배 -> 소프트웨어를 관리하는 일꾼) cf. 펌웨어(firmware) : 운영체제와 비슷, 소프트웨어를 추가로 설치할 수 x 1. 운영체제 역할 1) CPU 스케줄링, 프로세스 관리 : CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리 2) 메모리 관리 : 한정된 메모리를 어떤 프로세스에 얼마큼 할당해야 하는지 관리 3) 디스크 파일 관리 : 디스크 파일을 어떠한 방법으로 보관할지 4) I/O 디바이스 관리 : I/O 디바이스(마우스, 키보드) - 컴퓨터 간에 데이터를 주고받는 것 관리 2. 운영체제 구조 * 맨 ..

CS/운영체제 2023.12.14