스레드와 동시성

김두현·2022년 12월 2일
1

Backend Curriculum

목록 보기
10/16
post-thumbnail

Goal

  • 스레드의 개념을 파악한다.
    • 멀티스레드
  • 동시성의 개념을 파악한다.
    • vs 병렬성

스레드(Thread)

  • 스레드 : 프로세스 내에서 작업을 수행하는 주체이자, CPU 이용의 기본 단위
    • 즉, 모든 프로세스는 한 개 이상의 스레드를 가진다.
      이때, 두 개 이상의 스레드를 가지는 것을 멀티 스레드라고 한다.
    • 멀티 스레드 예시 : 워드 프로세서에서 UI을 표시하는 스레드, 입력에 응답하는 스레드, 맞춤법 검사를 수행하는 스레드가 있을 수 있다.

동시성(Concurrency)

  • 동시성 : 싱글 코어에서, 멀티 스레드를 동작시키기 위해 여러 개의 스레드가 번갈아가며 실행되는 성질
    • 즉, 동시에 실행되는 것이 아닌 빠르게 번갈아가며 실행된다.

  • 병렬성 : 멀티 코어에서, 멀티 스레드를 동작시키기 위해 여러 개의 스레드가 번갈아가며 실행되는 성질
    • 즉, 두 개 이상의 스레드가 실제로 동시에 실행된다.
      • 데이터 병렬성 : 전체 데이터를 작게 나누어 병렬적으로 처리한다.
      • 작업 병렬성 : 서로 다른 작업을 병렬적으로 처리한다.


✨오늘 내용은 여기까지✨


커리큘럼 남은 일정

인터넷

  • 인터넷 작동 원리
  • HTTP란?
  • 브라우저 동작 원리
  • DNS 작동 원리
  • 도메인 네임이란?
  • 호스팅이란?

    기본적인 프론트엔드 지식
  • HTML
  • CSS
  • JavaScript

    OS 및 일반적인 지식
  • 터미널 사용방법
  • OS 작동 방식
  • 프로세스 관리
  • 스레드와 동시성
  • 기본적인 터미널 명령어
  • 메모리 관리
  • 프로세스간 통신 (IPC)
  • 입출력 관리
  • POSIX 기초
  • 기본적인 네트워크 개념

    버전 관리
  • Git 기본 사용법

    DataBase
  • PostgreSQL (변경 가능성 있음)
  • MongoDB

    DataBase 상세 정보
  • ORM
  • ACID
  • Transaction
  • N + 1 Problem
  • DataBase 정규화
  • Index와 작동 방식

    API
  • 인증
  • REST
  • JSON APIs

    캐싱
  • CDN
  • Server side
  • Client side

    웹 보안 지식
  • MD5, SHA family, scyrpt, bcrypt
  • HTTPS, CORS, SSL/TL, 보안 정책

    Testing
  • 통합 테스트
  • 단위 테스트
  • 기능 테스트

  • CI/CD

    개발과 설계 원칙
  • SOLID
  • KISS
  • YAGNI
  • DRY

    아키텍처 패턴
  • 모놀로틱 앱
  • 마이크로서비스
  • SQA
  • Serverless

    검색 엔진
  • ElasticSearch

    메세지 브로커
  • RabbitMQ, Kafka

    컨테이너화 vs 가상화
  • Docker

    GraphQL
  • Apollo

  • 웹 소켓

  • 웹 서버

    확장성
  • 측정, 모니터링, 원격측정
  • 마이그레이션 전략
  • 수평적 확장 vs 수직적 확장
  • 관찰 가능성을 고려한 확장

참고 자료

JuHyeong.dev님 tistory


💕오류 지적 및 피드백은 언제든 환영입니다. 복제시 출처 남겨주세요!💕
💕좋아요와 댓글은 큰 힘이 됩니다.💕
profile
I AM WHO I AM

0개의 댓글