동기와 비동기, 프레임 워크와 라이브러리

김민준·2023년 10월 16일
0

동기와 비동기의 차이

비동기 처리는 한 번에 여러 작업을 하거나, 양자간에 동시에 일을 처리해야하는 논 블록킹 구조에 사용
반대로 동기 처리는 한 작업이 수행되는 동안 다른 작업이 차단되기 때문에 블록킹 구조에 사용한다.

이 둘의 차이는 다음과 같은 곳에 중요하다.

  • API 작성
  • 이벤트 기반 아키텍쳐 작성
  • 길게 작동하는 작업을 어떻게 다룰 것인지

동기처리란?

먼저 시작된 처리가 끝나기 전까지는 다른 것을 처리할 수 없는 것

  • 장점 : 간단하고 직관적이다.
    개발이 편리하다.
  • 단점 : 처리가 끝날때까지 기다려야한다.
    웹/앱 사용자의 경험이 나쁘다.(기다리는 시간이 길다.)

비동기 처리란?

먼저 시작된 처리가 끝나지 않아도 다른것을 처리할 수 있는 것

  • 장점 : 동시에 여러개를 처리할 수 있다.
    웹/앱의 사용자의 경험이 좋다.(기다릴 필요가 없다.)
  • 단점 : 설계가 복잡해진다.
    객체를 선언하거나 수정하기 전에 사용하는등의 버그가 생길 수 있다.

정리

동기 처리는 요청 후 실행이 끝나야 다음 동작을 처리하며, 비동기는 그렇지 않고 다음으로 넘어가는 방식입니다.

동기 방식은

  • 순서에 따라 흐르기 때문에 작성/제어가 쉽고 직관적입니다.
  • 하지만 여러 요청을 동시에 처리할 수 없어 효율과 속도가 나쁩니다.

비동기 방식은

  • 이전 동작의 마무리를 기다리지 않기 때문에 UX에 좋습니다.
  • 자원을 효율적으로 사용합니다.
  • 순차적으로 작동할 필요가 있는 작업의 경우 제어가 힘들어집니다.

동기와 비동기를 적절하게 사용하지 못하면 오류와 나쁜 UX가 뒤따를 것이다.

UX개선을 위해서는 비동기 프로그래밍, 개발 과정의 편의나 이해를 위해서는 동기 프로그래밍을 쓰는 것이 좋을 것이다.

프레임 워크와 라이브러리의 차이

둘 다 공통적으로 재사용이 가능한 코드의 모음이다.
하지만 어떤 차이가 있길래 다른 이름을 가진 것일까?

프레임 워크란?

  • 기본구조를 제공한다.
  • 완성된 기능이 없다.
  • 코더에게 필요한 커스터마이즈를 지시한다.
  • 필요할 때 개발자의 코드를 호출한다.

위의 특성들로 인해 아래와 같은 효과가 생긴다

  • 코드 단축 및 재사용
  • 디버깅, 모니터링 간소화
  • DB연결 간소화
  • 보안 향상

라이브러리란?

  • 미리 만들어진 매서드와 클래스의 모음
  • 개발자는 필요한 기능을 가져다가 쓰면된다.

정리

라이브러리는 개발을 위해 미리 완성된 기능(객체, 메서드, 함수)들을 빌려오는 것이다.
내가 만든 코드가 필요에 따라서 라이브러리의 기능을 가져다 사용한다. 즉, 흐름의 제어권이 개발자에게 있다.

프레임 워크는 개발을 위한 큰 틀을 빌려오는 것이다.
완성된 기능을 제공하지 않고, 개발을 위한 골조를 제공합니다. 프레임 워크는 필요에 따라서 작성한 코드를 가져다 쓴다는 특징이 있다. 즉, 전체적인 흐름을 자체적으로 제어한다. 개발 과정에서 신경쓸 것이 줄어듭니다.
앞의 특성들 때문에 프레임 워크는 쉽게 바꿀 수 없기 때문에 개발 초기에, 개발 목적/방향성에 따라서 어떤 프레임 워크를 사용할지 잘 생각해야합니다.

참조한 페이지

Asynchronous vs. Synchronous Programming: Key Similarities and Differences
동기와 비동기의 차이

Difference Between Framework Vs Library

profile
node 개발자

0개의 댓글

관련 채용 정보