본문 바로가기

프로그래밍32

바벨(babel)이란 무엇인가? 바벨 (Babel) 웹 개발을 하다보면 바벨(babel)이라는 단어에 대해서 많이 들어보실 수 있을 겁니다. 저도 바벨을 사용해본 경험은 있지만 이게 정확히 어떤 것인지는 잘 알지 못합니다. 그래서 이번 포스팅에서는 바벨에 대해서 이야기해보려고 합니다. 요약하자면 바벨이란 건 자바스크립트 컴파일러라고 표현할 수 있습니다. 컴파일러란 인간 수준의 고언어로 작성된 프로그램을 기계어로 된 프로그램으로 출력하는 번역기입니다. 하지만 대학교 프로그래밍 기초 강의 시간에서 배우듯이 자바스크립트는 컴파일러가 아니라 인터프리터로 동작합니다. 인터프리터와 컴파일러의 차이. 혹시 기억이 나지 않으신가요? 두 녀석 모두 고레벨 언어를 기계어로 변환하는 번역기인건 맞지만 그 과정에서 차이를 보이기 때문에 따로 분류됩니다. 컴.. 2021. 8. 12.
옵저버 패턴(Observer Pattern)이란? 디자인 패턴이라는 건 소프트웨어 개발을 하면서 발생하는 다양한 이슈들을 해결하는데 도움을 주는 기술들입니다. 많은 개발자들의 경험들을 바탕으로 만들어진 증명된 기술들이죠. 개발에 난항을 겪는 사람들에게는 참조할 수 있는 솔루션이 됩니다. 이게 프레임워크, 라이브러리 같은 도구들과 다른점은 순수한 패턴... 즉, 조언자의 역할만 한다는 거겠죠. 자바스크립트에는 대표적인 디자인 패턴들이 있습니다. 싱글톤 패턴, 팩토리 패턴, Iterotor 패턴, Decorator 패턴, 프록시 패턴, Mediator 패턴, Observer 패턴 등등이요. 각 패턴들이 어떤 용도로, 어떤 솔루션을 제공해주는지는 간략하게 요약해보겠습니다. 싱글톤 패턴 : 특정 클래스의 객체를 한개만 유지하는 패턴 팩토리 패턴 : 비슷한 객체.. 2021. 8. 11.
생성자(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.