r잡초처럼
바른 프로그래밍
r잡초처럼
전체 방문자
오늘
어제
  • 분류 전체보기 (124)
    • FastAPI (7)
    • 끄적끄적 (2)
    • Python (17)
    • Django (31)
    • Database (2)
    • Docker (7)
    • 디자인패턴 (2)
    • CS 공부 (12)
      • 알고리즘 (2)
      • 자료 구조 (1)
      • 네트워크 (7)
      • IT 지식 (1)
      • 운영체제 (1)
    • 기타 팁들 (10)
    • Aws (2)
    • 독서 (1)
    • 코딩테스트 공부 (1)
      • 백준 (0)
      • 프로그래머스 (1)
    • DevOps (13)
    • TIL (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • pycharm
  • 파이썬 클린 코드
  • 물리 계층
  • fastapi
  • 6장
  • 책 리뷰
  • 전기 신호
  • 5장 회사에서 하는 랜 구성
  • 네트워크
  • depends
  • poetry
  • 랜 카드
  • validate
  • dotenv
  • 상속 안티 패턴
  • 모두의 네트워크
  • docker
  • cp949
  • 완벽한 IT 인프라 구축을 위한 Docker
  • Batch
  • query param
  • preonboarding
  • 컴퓨터 기본 지식
  • 상속과 컴포지션
  • pytest
  • 7장
  • encoding
  • CS 지식
  • 케이블의 종류
  • 랜과 왠

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
r잡초처럼

바른 프로그래밍

CS 공부/IT 지식

비동기란?

2023. 4. 12. 00:21

Django 비동기 orm 을 실습하다가 비동기에 대한 이해가 모자란 거 같아서 공부차원에서 글을 써본다.

정의

비동기란 작업의 완료 여부와 상관없이 다음 작업을 수행할 수 있는 방식을 의미한다. 즉 한 작업이 완료되지 않아도 다음 작업을 실행할 수 있는 비선점 방식이다. 하나의작업이 끝나기 전에 다른 작업으로 전환이 일어나면 사용자 인터페이스가 응답하지 않을 수 있기 때문에 비선점 방식을 사용한다.

비선점 방식이란?
비선점 방식은 비동기 프로그래밍에서 사용되는 작업 스케줄링 방식 중 하나이다. 프로세스가 자원을 할당 받았을 경우 자원을 스스로 반납할 때까지 계속 그 자원을 사용하도록 허용한다. 따라서 비선점 방식은 작업이 시작되면 다른 작업이 완료될 때까지 실행되며, 현재 실행 중인 작업이 종료되지 않으면 다른 작업을 실행할 수 없다.

비동기 방식에서는 모든 작업이 병렬적으로 처리되며, 작업이 완료되는 대로 결과가 반환된다. 이는 작업을 순차적으로 처리하는 동기 방식보다 더욱 효율적이다. 예를 들어, 웹 페이지를 로드할 때 비동기 방식으로 작동하면, 페이지가 이미지와 자바스크립트 파일을 로드하는 동안 텍스트 컨텐츠를 표시할 수 있다.

동기와 비동기의 차이

실행 방식

  • 동기: 작업이 순차적으로 진행되며, 이전 작업이 완료돼야 다음 작업을 진행할 수 있다.
  • 비동기: 작업이 병렬적으로 진행되며, 이전 작업이 완료되지 않아도 다음 작업을 진행할 수 있다.

결과 반환

  • 동기: 작업이 완료되면 즉시 결과가 반환된다.
  • 비동기: 작업이 완료될 때까지 대기하지 않고, 결과가 반환되는 시점에 콜백 함수를 호출하여 결과를 처리한다.

대기 시간

  • 동기: 작업이 완료될 때까지 대기해야 하므로, 작업이 오래 걸리는 경우 대기 시간이 길어질 수 있다.
  • 비동기: 작업이 병렬적으로 처리되므로, 작업이 오래 걸리더라도 다른 작업을 실행하여 대기 시간을 최소화할 수 있다.
    r잡초처럼
    r잡초처럼
    오늘보다 내일 더 나은 개발자가 되기 위한 노력을 기록하는 블로그 입니다.

    티스토리툴바