본문 바로가기

개발61

[JavaScript] Event Loop(이벤트 루프) Event Loop(이벤트 루프) 자바스크립트는 단일 스레드 기반의 인터프리터 언어이다. 스레드가 하나라는 말은 하나의 작업을 처리하면 다른 작업은 하지 못한다. 하지만 자바스크립트는 동시에 여러 작업이나 이벤트를 보여줄 수 있다. 어떻게 단일 스레드 기반에서 동시에 요청과 이벤트들을 처리하는 것일까? 자바스크립트에서는 이벤트 루프(Event Loop)라는 개념을 사용해 여러 이벤트들을 처리할 수 있다. 이 이벤트 루프(Event Loop)는 비 동기 방식을 지원해 동시에 처리할 수 있다. 비동기(Asynchronous , 동시에 일어나지 않는) 비 동기는 요청과 결과가 동시에 일어나지 않을 거라는 약속이다. 보통은 요청이 온 뒤 결과가 나타나는 방식인데 비 동기방식은 요청을 보낸 후 결과가 오는지 안오.. 2022. 10. 7. 22:34
REST API는 무엇일까? REST API REST API를 알아보기 전에 우선 API의 개념부터 정리해보자. API(Application Programming Interface) API는 프로토콜 및 정의된 규칙을 따라 두 소프트웨어 간 통신할 수 있게 하는 메커니즘이다. 기상청의 open api를 예로 들어 기상청에서 정해놓은 규칙을 가지고, 기상청의 일일 데이터를 받아올 수 있도록 서로 통신하는 것이다. 웹 API는 클라이언트(사용자)와 웹 리소스 사이의 게이트웨이라고 생각할 수 있다. 클라이언트(사용자) 클라이언트는 웹에서 정보를 요구하는 사용자이다. 클라이언트는 API를 사용하는 사람 또는 소프트웨어 시스템이다. 개발자가 만약 날씨를 가져오는 프로그램을 만들 수도 있고, 사용자가 날씨 데이터를 불러오는 웹 사이트를 접속할.. 2022. 10. 7. 14:44
[Network] DNS(Domain Name System)란? DNS(Domain Name System)? 우리가 일반적으로 보는 www.naver.com과 같이 우리가 사용하는 주소가 도메인이다. 도메인 네임 시스템은 이 주소를 사용자가 입력하면 IP 주소로 변환해주는 역할을 한다. 그 반대의 역할도 수행한다. IP 주소 우리의 컴퓨터는 네트워크 상에서 숫자를 사용하여 통신하게 된다. 192.xx.x.x 이렇게 흔히들 본 적이 있을 것이다. 이를 IP주소라고 한다. 하지만 이러한 숫자를 입력하게 되면 우리는 그 숫자들을 다 기억해야 한다. 그렇기 때문에 도메인이 나온 것이고, 그 도메인을 IP주소로 변환하는 DNS(Domain Name System)이 탄생하게 된 것이다. DNS의 동작 방식 DNS는 다음과 같은 동작 방식으로 동작한다. 동작 방식을 보기 이전에 .. 2022. 10. 6. 23:56
[JavaScript] 호이스팅(Hoisting) 호이스팅(Hoisting) 호이스팅(Hoisting)은 인터프리터가 변수와 함수의 메모리 공간을 선언전에 미리 할당하는 것이다. var로 선언한 변수는 undefined let과 const는 호이스팅시 변수를 초기화 하지않는다. 간단히 요약하자면 호이스팅은 변수의 선언 / 초기화를 분리하고 선언을 코드의 최상단으로 옮기는 것이다. 변수의 선언단계 호이스팅의 예제를 보기전 변수의 선언 단계를 먼저보자 1. 선언 단계(Declearation phase) 선언단계에서는 변수를 실행 컨텍스트 변수 객체에 등록한다.이 변수 객체는 스코프가 참조하는 대상이된다. 2. 초기화 단계(Initalization phase) 변수 객체에 등록된 변수를 위한 공간을 메모리에 확보하고 변수를 undefined로 초기화한다. 3.. 2022. 10. 6. 14:21
[JavaScript] 클로저(Closure) 클로저(Closure) 클로저는 함수내에서 함수가 선언된 어휘적 환경의 조합이다. 클로저를 이해하기 위해선 우선 자바스크립트의 변수의 유효 범위의 지정을 먼저 이해해야 한다. 어휘적 범위 지정(Lexical scoping) 어휘적 범위 지정은 변수가 어디에서 사용 가능한지 알기 위해서 그 변수가 소스 코드 내에 어디에 선언되었는지 고려하는 것을 의미한다. function init() { var name = "Mozilla"; // name은 init에 의해 생성된 지역 변수이다. function displayName() { // displayName() 은 내부 함수이며, 클로저다. alert(name); // 부모 함수에서 선언된 변수를 사용한다. } displayName(); } init(); ini.. 2022. 10. 6. 00:20
브라우저의 동작원리 브라우저의 동작원리 브라우저(browser) ? 브라우저는 흔히 우리가 현재 사용하고있는 크롬, 마이크로 소프트 엣지, 파이어폭스 등을 지칭하는 말로 월드 와이드 웹에서 정보를 검색 및 탐색하기 위한 소프트웨어이다. 위키 백과는 웹 브라우저를 웹 서버에서 이동하며 쌍방향으로 통신하고 HTML 문서나 파일을 출력하는 그래픽 사용자 인터페이스(GUI) 기반의 응용 소프트웨어라고 설명하고 있다. 브라우저의 주요 기능 브라우저의 주요 기능은 사용자가 선택한 자원을 서버에 요청하고, 브라우저에 표시하는 것이다. 자원은 보통 HTML 문서이고, 이미지나 PDF 등 다른 형태일 수도 있다. 자원의 주소는 URI(Uniform Resource Identifier)에 의해 식별 된다. 브라우저는 웹 표준화 기구인 W3C.. 2022. 10. 5. 15:37
728x90