티스토리 뷰

Backend

[Node.js] 동기, 비동기

생전한화우승 2020. 9. 2. 20:55

개인적으로 컴퓨터 관련 지식을 쌓을때마다 느끼는건, 기본적으로 용어에 대한 직관적인 이해를 못하기 때문에 이해도가 느린 경우가 많았다.

 

이걸 깨닫게 된 이후로 항상 무언가에 대해 이해가 잘 되지 않을때는, 그 어원부터 시작해서 아주 직관적으로 이해하고 받아드리는 편이였다.

 

js를 하면서 처음에 용어적으로 100% 이해가 안되어, 나를 많이 괴롭혔던 비동기 프로그래밍 개념에 대해 정리해보고자 한다.

-----

 

 

자바스크립트는 기본적으로 '비 동기' 프로그래밍

 

일단 '동기' 의 뜻이 정확히 뭔지 풀이부터 해 보자.

 

同期, 동기

 

한가지 동

  • 1. 한가지
  • 2. 무리(모여서 뭉친 한 동아리)
  • 3. 함께(=)
  • 4. 그
  • 5. 전한 바와 같은
  • 6. 같다
  • 7. 같이하다
  • 8. 합치다(--)
  • 9. 균일()하게 하다
  • 10. 화합하다(--)
  • 11. 모이다
  • 12. 회동하다

기약할 기

정리하자면, 한가지에 대해 기약한다는 뜻이다.

 

어떠한 한가지에 대해 기다리거나, 바라거나 하는 등의 주로 '약속'의 개념이다.

 

즉, 동기화적인 이라는 뜻은 어떠한것을 기다려가면서, 균일하게 된다는 뜻이다

 

(서로 쌍방간에 일치하는)

 

그럼 비동기는 무엇일까? 간단하다. 위에 설명한 동기의 정 반대의 뜻이다.

 

js는 비동기 프로그래밍이란 뜻은,  압축 해보자면

 

"기존의 순차적으로 진행되며 차례되로 진행되는 프로그램과는 달리, 실행에 대한 결과를 기다리지 않고 진행되는 프로그래밍이다."

 

프로그래밍의 기본이 무엇인가?

 

어떠한 함수를 실행시키고 해당 결과를 얻는 식이다.

 

근데 여기서 "결과를 얻는" 방식이 다른 프로그래밍과는 다르게,

 

"실행"을 시킨뒤 "결과" 가 오는걸 기다리지 않는다는 뜻이 된다.

 

즉, 위에서 아래로 소스코드에 적힌 로직대로 함수의 실행이 되지만 결과값 반환을 기다리지 않고 쭉 실행이 된다.

 

왜 자바스크립트는, 이런 방식을 택한 것일까?

 

자바스크립트의 주 목적, 태생의 이유를 보면 알 수 있다.

 

자바스크립트는 기본적으로 웹 브라우저에서의 동력, 동적인 작동을 위해 존재하는 스크립팅 언어이다.

 

즉, 기본 태생과 컨셉이 웹브라우저의 작동을 위해 태어난 녀석인데

 

우리가 웹 브라우저를 탐색할때, 제일 중요한것은 '속도' 이다.

 

이 경우, 자바스크립트가 모든 실행에 대해 동기적으로 처리를 한다면 속도의 문제가 발생을 하게 된다.

 

---

 

추가작성요망

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함