본문 바로가기

Javascript4

컴알못 AJAX 공부 중 AJAX는 비동기 통신 방식 중 하나이다. 이런 비동기 통신 방식은 동기 통신을 사용하기 싫어서 나왔다. 그럼 동기 통신이 왜 쓰기 싫었을까? 그건 동기 통신이 비효율적이기 때문이다. 동기 통신을 살펴보자. 클라이언트는 브라우저를 가지고 있고 이 브라우저를 통해서 서버에 요청을 보낼 수 있으며 문서를 열람할 수 있다. 클라이언트의 브라우저는 클라이언트가 입력한 URL을 따라가서 서버에 도달해 요구사항을 말하고 서버로부터 응답을 받아온다. 응답은 대부분 문서를 받아오는 식이다. HTML은 마크업 언어로서 마크업 언어란 문서를 만드는 언어를 뜻한다. 즉, 브라우저는 서버로부터 받아온 HTML을 해석하여 웹페이지라는 문서를 만들고 그걸 보여준다. 기존의 HTTP 웹 통신은 동기 방식으로 이루어졌는데 효율이 떨.. 2022. 3. 24.
바벨(babel)이란 무엇인가? 바벨 (Babel) 웹 개발을 하다보면 바벨(babel)이라는 단어에 대해서 많이 들어보실 수 있을 겁니다. 저도 바벨을 사용해본 경험은 있지만 이게 정확히 어떤 것인지는 잘 알지 못합니다. 그래서 이번 포스팅에서는 바벨에 대해서 이야기해보려고 합니다. 요약하자면 바벨이란 건 자바스크립트 컴파일러라고 표현할 수 있습니다. 컴파일러란 인간 수준의 고언어로 작성된 프로그램을 기계어로 된 프로그램으로 출력하는 번역기입니다. 하지만 대학교 프로그래밍 기초 강의 시간에서 배우듯이 자바스크립트는 컴파일러가 아니라 인터프리터로 동작합니다. 인터프리터와 컴파일러의 차이. 혹시 기억이 나지 않으신가요? 두 녀석 모두 고레벨 언어를 기계어로 변환하는 번역기인건 맞지만 그 과정에서 차이를 보이기 때문에 따로 분류됩니다. 컴.. 2021. 8. 12.
생성자(Constructor)란?? 자바든 자바스크립트든 클래스를 다룬다면 constructor에 대해서는 꼭 들어봤을 겁니다. 저도 그렇긴하지만 공부를 게을리해서 이 constructor라는 게 뭔지를 잘 이해를 못하고 있었어요. 그러니 이번 포스팅에선 여기에 대해 제대로 이해해두려고 합니다. 공식 페이지에서는 constructor란 클래스 내에서 객체를 생성하고 초기화하기 위한 특별한 메서드라고 소개하고 있습니다. 즉, 객체의 기본 상태(state)를 설정하는 공간인 것이죠. 이건 함수와는 다른 방식으로 클래스 객체가 인자를 전달받도록 할 수 있습니다. class People { constructor(num) { this.age = num; } } let han = new Han(26); console.log(han.age); // 2.. 2021. 8. 11.
번들링(Bundling)이란? 번들링(Bundling) 프로그래밍을 하다보면 자주 마주치는 단어 중에 번들링이란 단어가 있습니다. 번들이라는 것은 묶는다는 뜻으로 뭔가를 묶는 작업이라는 걸 이름에서 유추할 수가 있죠. 그렇다면 이게 당연히 파일을 묶는 것일테고 어째서 파일을 묶는 작업이 필요한걸까 생각해 볼 수 있습니다. 정확하게 번들링이란 모듈들의 의존성 관계를 파악하여 그룹화시켜주는 작업을 뜻합니다. 모듈(module)이란 분리된 파일입니다. 즉, 분리된 녀석들을 하나로 합쳐주는 구나 라고 이해할 수 있습니다. 그렇다면 애초부터 왜 멀쩡한 파일을 모듈로 분리했던 걸까요? 그건 작업의 효율성을 위해서입니다. 스크립트의 크기가 점점 커지고 복잡해지면서 단순히 하나의 파일이나 클래스로만 관리하기에는 그 복잡성이 프로그래머가 감당할 수준.. 2021. 8. 11.