티스토리 뷰
개인적으로 컴퓨터 관련 지식을 쌓을때마다 느끼는건, 기본적으로 용어에 대한 직관적인 이해를 못하기 때문에 이해도가 느린 경우가 많았다.
이걸 깨닫게 된 이후로 항상 무언가에 대해 이해가 잘 되지 않을때는, 그 어원부터 시작해서 아주 직관적으로 이해하고 받아드리는 편이였다.
js를 하면서 처음에 용어적으로 100% 이해가 안되어, 나를 많이 괴롭혔던 비동기 프로그래밍 개념에 대해 정리해보고자 한다.
-----
자바스크립트는 기본적으로 '비 동기' 프로그래밍
일단 '동기' 의 뜻이 정확히 뭔지 풀이부터 해 보자.
同期, 동기
同
한가지 동
- 1. 한가지
- 2. 무리(모여서 뭉친 한 동아리)
- 3. 함께(=同)
- 4. 그
- 5. 전한 바와 같은
- 6. 같다
- 7. 같이하다
- 8. 합치다(合--)
- 9. 균일(均一)하게 하다
- 10. 화합하다(和合--)
- 11. 모이다
- 12. 회동하다
期
기약할 기
- 1. 기약하다(期約--), 약속하다(約束--)
- 2. 기다리다
- 3. 바라다, 기대하다(期待ㆍ企待--)
- 4. 모이다
- 5. 정하다(定--), 결정하다(決定--)
- 6. 적합하다(適合--), 알맞다
- 7. 가르치다
- 8. 더듬거리다
- 9. 기간(期間)
- 10. 기한(期限)
- 11. 기일(期日), 예정(豫定)된 날짜
- 12. 돌, 1주년(周年ㆍ週年)
- 13. 때, 기회(機會)
- 14. 기복(朞服), 기년복(朞年服: 일 년 동안 입는 상복)
- 15. 백 살
- 16. 한정(限定)
정리하자면, 한가지에 대해 기약한다는 뜻이다.
어떠한 한가지에 대해 기다리거나, 바라거나 하는 등의 주로 '약속'의 개념이다.
즉, 동기화적인 이라는 뜻은 어떠한것을 기다려가면서, 균일하게 된다는 뜻이다
(서로 쌍방간에 일치하는)
그럼 비동기는 무엇일까? 간단하다. 위에 설명한 동기의 정 반대의 뜻이다.
js는 비동기 프로그래밍이란 뜻은, 압축 해보자면
"기존의 순차적으로 진행되며 차례되로 진행되는 프로그램과는 달리, 실행에 대한 결과를 기다리지 않고 진행되는 프로그래밍이다."
프로그래밍의 기본이 무엇인가?
어떠한 함수를 실행시키고 해당 결과를 얻는 식이다.
근데 여기서 "결과를 얻는" 방식이 다른 프로그래밍과는 다르게,
"실행"을 시킨뒤 "결과" 가 오는걸 기다리지 않는다는 뜻이 된다.
즉, 위에서 아래로 소스코드에 적힌 로직대로 함수의 실행이 되지만 결과값 반환을 기다리지 않고 쭉 실행이 된다.
왜 자바스크립트는, 이런 방식을 택한 것일까?
자바스크립트의 주 목적, 태생의 이유를 보면 알 수 있다.
자바스크립트는 기본적으로 웹 브라우저에서의 동력, 동적인 작동을 위해 존재하는 스크립팅 언어이다.
즉, 기본 태생과 컨셉이 웹브라우저의 작동을 위해 태어난 녀석인데
우리가 웹 브라우저를 탐색할때, 제일 중요한것은 '속도' 이다.
이 경우, 자바스크립트가 모든 실행에 대해 동기적으로 처리를 한다면 속도의 문제가 발생을 하게 된다.
---
추가작성요망
'Backend' 카테고리의 다른 글
스타벅스에서 MongoDB 접속 불가능 현상 해결하기 (0) | 2020.09.30 |
---|---|
Node.js에서 Youtube API를 이용하여 실시간 스트리밍 방송 채팅 파싱하기 (다른 계정으로) (0) | 2020.09.18 |
ngrok 이용하여 mongodb 연결하기 (tcp 연결 포트 문제 해결) (0) | 2020.08.25 |
- Total
- Today
- Yesterday
- javascript
- nodejs
- IE11
- OAuth
- react
- ngrok
- frontend
- ENODATA
- threejs
- srv
- react-google-login
- webgl
- raycaster
- 접속불가
- three.js
- 앱스크립트
- 포트번호
- 3D
- 포트문제
- 가져오기
- react-app-polyfill
- querySrv
- Oauth2
- createreactapp
- react360
- IE10
- mongodb
- youtubeapi
- app script
- 3Drendering
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |