본문 바로가기

개발/프로그래머스 데브코스

프로그래머스 데브코스 103일차 with. TS 웹 풀스택

📚요약

지난 시간에 이어 CS 지식을 배워가겠습니다.

 

📖CS 지식 기초

📄컴퓨터 구조와 운영체제

📑컴퓨터 구조의 설계와 구현

하드웨어의 구성

  • CPU(중앙처리장치)
    • 제어장치, ALU, 레지스터
    • ISA(명령어 집합 구조), Microarchitecture(Intel, AMD)
      • 산술&논리 명령, 실행 제어 명령, 데이터 제어 명령, 기타
      • 설계 철학: CISC, RISC
    • 명령어 파이프라인
  • Memory(주기억장치)
  • Storage(보조기억장치)
  • I/O Devices(입출력 장치)

기억장치의 계층 구조

  • 레지스터
  • 캐시 메모리
  • 주기억장치
  • 보조기억장치

📑프로그램의 번역과 실행

고수준, C, 어셈블리, 기계어

원시 코드    어셈블리 코드 → 목적 코드

컴파일러, 인터프리터, 하이브리드(가상 기계)

링커(연결), 로더(실행)

라이브러리

 

📑운영체제의 역할과 구조

시스템 소프트웨어 / 응 소프트웨어

컴퓨터 시스템 자원 관리 → 프로세스 관리, 메모리 관리, 파일 시스템 관리, 입출력 장치 관리

분류

  • 대상: 범용 / 내장형
  • 사용자: 단일 / 다중
  • cpu: 단일 / 다중
  • 작업 방식: 시분할 / 다중

운영체제 커널(kernel)

시스템 콜

 

📑프로세스 관리와 스케줄링

프로세스

생명주기: Start, Ready, Waiting/Blocked, Running, Terminated

스레드: 싱글, 멀티

동시성

스케줄링: FCFS, SJF, SRTF

선점 방식 / 비선점 방식

 

📑메모리와 입출력 관리

프로세스(cpu 시간에 대한 추상화), 가상메모리(메모리 공간에 대한 추상화), 파일 시스템(입출력 장치에 대한 추상화)

가상메모리

MMU

세그먼트

페이징

  • page fault

참조의 지역성(시간적 지역성, 공간적 지역성)

TLB

 

📑동기화 문제

busy waiting

atomic lock

 

📄데이터베이스

📑데이터의 구조화와 관계형 데이터베이스

데이터 베이스: 통합 데이터, 저장 데이터, 운영 데이터, 공용 데이터

특징: 실시간 접근성, 동시 공유, 지속적인 변화, 내용에 의한 참조

개체, 속성, 관계

데이터 중복 최소화, 무결성, 일관성, 독립성, 표준화, 보안 유지

DBMS

관계형 데이터베이스

  • table(2차원 표), Identifier, Attributes, Tuple, Degree, Cardinality
  • Intension(내포), Extension(외포)
  • Key: 기본키(PK), 외래키(FK)
  • 대수 연산: 합집합, 교집합, 차집합, 곱집합, 프로젝션, 셀렉션, 조인
🍯tip! 릴레이션은 데이터베이스 모델링에서 주로 사용하는 용어이고 테이블은 데이터베이스의 데이터가 저장된 물리적 구조를 가리키는 데 주로 사용되는 용어이다.

 

SQL

  • DML
  • DDL
  • DCL
  • TCL

트랜잭션: ACID

 

📑ORM과 데이터베이스의 활용

ORM: 관계형 데이터베이스의 테이블과 객체지향 프로그램의 클래스를 연결.

One to One Relationship

One to Many Relationship

Many to Many Relationship

 

📑벡터 데이터베이스와 유사도 검색

비정형 데이터: '방대한 볼륨, 다양성, 품질, 보안 및 개인정보 보호, 통합'의 문제점

벡터, 벡터 임베딩 ex) word Embeddings

LSH

ANNOY

활용: AI/ML 응용, 유사도 기반 추천 시스템, NLP 응용, 이미지 인식 및 검색 응용 등

 

📑NoSQL 데이터베이스

분산 데이터베이스

 

다음 시간에 계속...

 

출처 & 참고

이시윤 강사님의 강의