본문 바로가기

전체 글229

[Javascript] 자료구조 - Stack 1. stack이란? stack은 후입선출(LIFO, Last In First Out)의 원칙에 따라 동작하는 자료구조이다. 실생활에서 자주 볼 수 있는 stack 요소들에 기반하여 만들어졌다. 책이나 접시를 한 줄로 쌓아올리는 경우, 쌓아올리고 난 후에 그것들을 사용하려면 가장 위에 있는 것부터 순차적으로 꺼내서 사용할 수 있다. 새롭게 추가된 책 또는 접시 곧 데이터는 항상 가장 위에 위치한다. 이러한 후입선출 원리를 컴퓨터의 자료구조로 만든 것이다. 2. stack이 사용되는 사례 프론트엔드 개발을 하다보면 익숙한 call stack이라는 이름에서 알수 있듯 call stack또 stack으로 만들어진 것이다. stack은 여러가지 사용 사례가 있는데 주로 함수 호출 시 지역변수를 저장하는데 사용.. 2024. 3. 26.
[Javascript] 프로토타입과 상속 1. 프로토타입이란? Javascript에서는 모든 객체가 다른 객체에 대한 참조인 프로토타입을 가지고 있다. 객체는 프로토타입을 통해 다른 객체로부터 속성과 메서드를 상속받는다. Javascript에는 원래 클래스라는 개념이 없어서 기존 객체를 복사하여 새로운 객체를 생성하는 프로토타입 기반의 언어이다. 2. 프로토타입 체인의 역할과 작동방식 프로토타입 체인이란 어떤 프로퍼티나 메서드를 찾을 때, 해당 객체에 그 속성이나 메서드가 없다면 그 원형이 되는 프로토타입을 체인처럼 따라 올라가며 상위 객체에서 그 프로퍼티, 메서드를 찾는 것이다. 예를 들어서 아래와 같은 코드가 있을 때 // 부모 객체 let animal = { name: "Animall", sayHello: function() { conso.. 2024. 3. 21.
[Javascript] 자바스크립트 모듈에 대해 1. 모듈이란? 프로그래밍에서 모듈은 코드를 논리적으로 구분하고 구조화하는 독립적인 단위이다. 보통 특정 기능, 객체, 변수 또는 클래스와 같은 코드의 묶음을 말하는데 이렇게 모듈로 코드를 쪼개서 정리하면 다른 코드와의 결합성을 낮추고 재사용성을 높인다. 2. ES6에서 모듈시스템 Javascript는 ES6에서 모듈시스템에 대한 표준이 도입되었다고 한다. export와 import라는 키워드를 통해 모듈화한 코드를 내보내고, 가져올 수 있게 되었다. 이 이전에는 AMD, CommonJS 등의 모듈시스템을 사용해왔지만 점점 사라지고 있는 추세이다. Export: 모듈 안에 선언한 변수, 함수 등을 다른 모듈에서 사용하고 싶을 때 export라는 키워드를 붙여서 내보낸다. import: 다른 모듈에 선언.. 2024. 3. 20.
Error:0308010C:digital envelope routines::unsupported 에러 1. Error:0308010C:digital envelope routines::unsupported 발생원인 위 에러의 의미는 암호화 루틴에서 지원되지 않는 형식의 디지털 엔벨롭을 처리하려고 할 때 발생한다는 뜻이다. 이러한 오류메시지는 주로 OpensSSL 라이브러리와 관련이 있다고 한다. 대부분의 경우 OpenSSL 라이브러리 버전 충돌 및 설정 문제로 인해 발생한다. 2. 해결 방법 아래의 스택오버플로 링크에서 해결방안을 제시하고 있는데, 첫번째 답변이 가장 추천수가 많았으나 node 버전 다운그레이드 또는 Enable legacy OpenSSL provider와 같은 설정은 뭔가 적용하기 그렇게 깔끔하고 좋은 방법이 아닌 것 같았다. 두번째 답변을 보면 역시나 위의 방법은 보안에 위협이 될 수 .. 2024. 3. 19.
[Javascript] Babel과 트랜스파일링 1. 트랜스파일러란 무엇일까? 트랜스파일러는 특정 프로그래밍 언어로 작성된 코드를 다른 프로그래밍 언어로 변환하는 도구를 말한다. 보통 트랜스파일러는 원시 코드를 다른 언어의 동등한 코드로 변환해서 해당 언어의 특정 플랫폼이나 환경에서 실행할 수 있게 해준다. Babel이 대표적으로 널리 사용되는 트랜스파일러이다. 2. Babel이란? Babel은 Javascript 코드를 변환해주는 트랜스파일러인데, 주로 최신 ECMAScript 표준에 따라 작성된 코드를 구식 브라우저에서 지원되는 호환 가능한 코드로 변환되는 데 사용한다. 브라우저별로 제조사가 다르고, 그에 따른 렌더링엔진 및 Javascript를 파싱하는 엔진 등등의 세부스펙이 다르다. 그래서 같은 코드라고 하더라도 브라우저에 따라 다르게 동작할 .. 2024. 3. 18.
[Javascript] 자바스크립트 코드가 실행되는 순서 1. Javascript 엔진이란? Javascript 엔진은 Javascript 코드를 해석하고 실행하는 소프트웨어이다. Javascript 코드를 파싱 후 컴파일하고 실행해서 브라우저나 그 외 환경에서 Javascript 프로그램을 실행할 수 있게 해준다. 주요 Javascript 엔진으로는 Google의 V8, Mozilla SpiderMonkey, Safari의 Webkit 등이 있다. 이 Javascript 엔진이 Javascript 코드를 실행하는 것이다. 2. Javascript 엔진이 Javascript코드를 해석하고 실행하는 과정 1) 파싱(Parsing) Javascript 코드를 실행하려면 Javascript 엔진이 이해할 수 있게 파싱이 선행되어야 한다. 파싱이란 코드가 토큰화되고 .. 2024. 3. 13.