목록2022/08 (15)
치춘짱베리굿나이스
콜 스택 (호출 스택) 개념 프로그램이 함수 호출을 추적할 때 사용한다 현재 어떤 함수가 동작하고 있는지, 그 함수 내에서 어떤 함수가 동작하는지, 다음에는 어떤 함수를 동작하여야 하는지 등을 제어한다 스택의 LIFO (후입선출) 특성을 생각하면 호출 스택도 비슷한 원리로 동작함을 알 수 있다 메모리 구조에서 스택이 의미하는 것이 바로 이 콜 스택이다 힙이랑 다른 점 스택은 액세스가 빠르고, 힙은 상대적으로 느리다 힙은 사용자가 직접 변수 할당 및 해제를 관리해줘야 하지만, 스택은 관리할 필요가 없다 (CPU가 알아서 관리해줌) 힙은 메모리 단편화가 일어날 수 있지만, 스택은 그렇지 않다 스택 내의 변수는 해당 스코프 내에서만 접근할 수 있지만, 힙 내의 변수는 (주소값만 알고 있다면) 전역적으로 접근 ..
일반 함수 vs 화살표 함수 (람다식) 참고로 필자는 자바스크립트 입문을 let, const, 화살표함수로 했기에 그것만 주구장창 썼는데 이걸 왜 쓰는지는 명확히 이해하지 못했다 (그냥 일반함수랑 똑같이 작동한다고 생각했음) 언젠가 두 개의 차이를 정리해봐야겠다 막연한 생각은 했었는데 그게 지금이 될 줄은 일반 함수 function foo() { console.log("foo"); } 평범하게 작성한 함수이다 const bar = function foo() { console.log("foo"); } 변수에 할당하고 싶다면 이렇게 작성한다 화살표 함수 const foo = () => { console.log("foo"); } 화살표를 이용해서 조금 더 간결하게 작성되는 함수이다 ES6에서 추가되었으며, 람..
Symbol 뭐 하는 녀석인지? 태초에 자바스크립트는 원시 자료형 5개와 객체 자료형 1개 총 6개의 자료형으로 이루어져 있었다 Number, String, Boolean, null, undefined 그리고 객체 Object가 그것이었는데, ES6 (2015년) 에 원시자료형팀 환상의 식스맨으로 Symbol이 합류했다 심볼은 객체의 고유 식별자로 활용할 수 있는 원시자료형으로, 쉽게 말해 객체 내부 프로퍼티의 키를 설정할 때 사용할 수 있다 심볼을 사용하면 프로퍼티 키가 겹치지 않고 고유한 값으로 설정되므로, 키가 중복으로 설정됨으로써 발생하는 충돌을 막을 수 있다 프론트엔드에서 클래스명을 겹치지 않게 설정하기 위해 CSS module을 사용하거나, CSS-in-JS 라이브러리들 (Styled Comp..
자바스크립트에서의 싱글톤 패턴과 static 싱글톤의 의미 Singleton 이름의 ‘Single’ 에서 뭔가 한 개..? 하나의…? 라는 뜻이 연상된다 싱글톤은 특정 클래스에 인스턴스를 단 하나만 생성 (메모리를 단 한 번만 할당) 하여 사용하는 패턴을 의미한다 (= 메모리를 단 한 번만 할당한다) 특징 인스턴스가 딱 하나만 생성된다 (대개 private, static 등의 키워드를 이용하여 구현한다) ‘단 한 개’ 만 생성되는 인스턴스는 전역으로 참조될 수 있으며, 다른 객체들이 이 공유된 인스턴스에 접근할 수 있어 데이터 공유가 편리하다 메모리를 한 번만 할당하면 되기 때문에 효율이 좋다 인스턴스가 ‘단 하나' 임을 보장하고 싶을 때 주로 사용한다 단점 일반 클래스보다 더 복잡하며, 비동기적인 상황..
근 한두달동안 바쁘다는 걸 핑계로 브론즈 5 ~ 4 문제만 실컷 풀었는데 풀다보니까 이게 뭐하는짓인가 싶더라구요 차라리 이틀걸리더라도 실버3 이상 문제를 푸는 게 나을거같은데... 실력향상엔 도움도 안되는것 같고 그래서 그만두었습니다 그래도 꾸준히 코딩을 한다는 것 자체는 중요한거같아서 깃허브에 매일 잔디심는건 계속 해보려고요
HTTP 기본 HTTP 소개 Hypertext Transfer Protocol 응용 계층 (Application Layer) 에서 사용되는 프로토콜로, 1989년에 팀 버너스 리에 의해 고안되었다 참고로 www랑 URL 개념도 이분이 고안하셨다 역시 CERN인가? 대박천재시다 처음에는 웹 브라우저 - 웹 서버 간 하이퍼미디어 문서 (이름에도 나와있듯, 말그대로 Hypertext 문서) 를 주고받기 위해 만들어진 프로토콜이지만, 지금은 일반 텍스트나 JSON 객체, 이미지 등 미디어 파일들도 주고받을 수 있게 확장되었으며, 어플리케이션이나 IoT 등 웹과 관계없는 분야에서도 이 프로토콜을 이용하여 데이터를 주고받는다 HTTP는 www (월드 와이드 웹) 에 내재되어 있으며, 일반적인 웹 브라우저에는 htt..