꼬리에꼬리를무는질문요정 🧞‍♂️_ 나라리야에게 물어봐!_03

나라리야·2021년 8월 17일
1
post-thumbnail

안녕하세요! 꼬리에꼬리를무는 질문요정 나라리야가 돌아왔어요!
오늘은 더 다양한 질문을 준비해봤는데요!
혹시 잘못 기재된 내용이라면 꼭! 댓글로 알려주시면 감사하겠습니다~!

1. Synchronous execution과 Asynchronous execution의 차이는 뭔가요?

동기적 실행은 한 번에 한 작업만을 수행하고 작업이 종료 될 때 결과물을 가져오게 됩니다. 하지만 비동기적 실행은 동시에 여러가지 작업을 수행할 수 있죠! 그래서 순서에 신경쓰지 않고 작업이 종료되면 그때 결과물을 가져오게됩니다.

2. node.js는 싱글 쓰레드 인가요?

네! 왜냐하면 자바스크립트를 실행하는 쓰레드는 메인쓰레드 하나이기 때문이죠

3.node.js는 이벤트 기반 아키텍쳐인가요?

네! 여기서 이벤트 기반이란 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식을 의미하는데 node.js는 이벤트 리스너에 등록해둔 콜백함수를 실행하는 방식으로 동작하므로 이벤트 기반 아키텍쳐라고 볼 수 있습니다

4. this와 dynamic scoping는 어떻게 연관되어 있죠?

동적스코프는 this와 마찬가지로 런타임 도중에 실행 콘텍스트나 호출 콘텍스트에 의해 결정됩니다.
그때 상황에 맞춰 변할 수 있다는 사실!

5. 객체지향 프로그래밍이란 ?

object oriented programming / 문제를 여러개의 객체 단위로 나눠 작업하는 방식이에요!
(오늘 날 가장 많이 사용하는 대표적인 프로그래밍 방식이죠!)

6. 객체 지향 프로그래밍의 특징은?

객체지향 프로그래밍의 네가지 특징으로는 추상화 캡슐화 상속 다형성을 들 수 있습니다.
공통의 속성이나 기능을 묶어 이름을 붙이고 , 데이터 구조와 데이터를 다루는 방법들을 결합시켜 묶고 상위 개념의 특징을 하위 개념에게 물려주고 하나의 변수명 함수명등이 상황에 따라 다른 의미로 해석될 수 있습니다.
이런 객체 지향 프로그래밍의 장점은 코드 재사용이 용이하고 유지보수가 편하고 협업시 업무 분담의 편리성을 높일 수 있습니다.

7. 자바스크립트 프로토타입 체이닝이 뭔가요?

특정 속성을 찾을 때 상위 프로토타입을 타고 쭉 올라가서 스캔할 수 있는데 이를 프로토타입 체이닝이라고 합니다. 이때 최 상위 프로토타입은 Object의 prototype Object 입니다!

8. 프로토타입이 없는 객체가 있을까요?

프로토타입이 없는 객체 Object.create(null)로 만들어진 객체 ‘아주 단순한(very plain)’ 혹은 ‘순수 사전식(pure dictionary)’ 객체가 있습니다

9. IIFE가 무엇이고 왜 사용할까요?

Immediately-invoked-function expression - 즉시 호출 함수 표현식의 줄임말 입니다!
외부코드로부터 사용되지 않는 단 한번 호출하는 코드들은 IIFE 를 사용하여 전역 스코프 오염을 방지하고 다른 개발자가 실수로 호출할 수 없도록 할 때 사용될 수 있습니다. IIFE를 사용하면 내부에 선언된 변수와 함수는 외부에서 접근이 불가능하기 때문이죠!

10. 이벤트 전파에 대해 설명해주세요! (버블링/캡쳐링)

중첩된 요소에서 이벤트가 발생할 때 이벤트 전파는 두 가지 방식으로 구분되는데
버블링과 캡처링이있어요!
캡처링은 윈도우로부터 이벤트가 발생한 요소까지 이벤트를 전파하고
버블링은 이벤트가 발생한 요소부터 윈도우까지 이벤트를 전파하죠.
둘의 차이는 방향이라고 쉽게 말할 수 있어요!
하위->상위(버블) / 상위->하위(캡처)

11. 스택과 힙의 차이점이 뭔가요?

먼저 프로그램이 운영체제로부터 할당받는 대표적인 메모리공간은 총 4개로 구성되어있는데
코드영역부터 데이터영역, 스택영역, 힙영역 구성되어있다고 볼 수 있습니다.
첫번째 차이점으로 스택 영역은 함수의 호출과 관계되는 지역변수와 매개변수가 저장되는 영역이고
힙 영역은 사용자가 직접 관리할 수 있는 메모리 영역이죠
두번째 차이점으로 스택영역은 후입선출 방식에 따라 동작해서 가장 늦게 저장된 데이터가 가장 먼저 인출되고 메모리의 높은 주소에서 낮은 주소의 방향으로 할당되지만 힙 영역은 사용자에 의해 메모리 공간이 동적으로 할당되고 해제되고 메모리의 낮은 주소에서 높은 주소의 방향으로 할당됩니다.

12. call-by-value가 뭔가요??

함수의 호출방식 중 '값에 의한 호출'을 말합니다.

(추가!)
함수가 호출될 때 메모리 공간안에서는 함수를 위한 별도의 임시 공간이 생성되고 종료되면 해당 공간은 사라지는데 값에 의한 호출방식은 함수호출시 전달되는 변수의 값을 복사해서 함수의 인자로 전달합니다.
복사된 인자는 함수안에서 지역적으로 사용되는 local value의 특성을 가지게 됩니다.
따라서 함수 안에서 인자의 값이 변경되도 외부의 변수의 값은 변경되지 않습니다.
값에 의한 호출방식은 원시자료형으로 동작하고 참조에 의한 호출방식은 참조자료형으로 동작하죠!

profile
Code의 美를 추구하는 개발자 🪞

0개의 댓글