최근에 항해 DEV LAB이라는 개발자 행사에 참여할 기회가 생겨서 다녀왔다. 회사 동료분이 항해 출신이신데, 이런 행사가 있다고 알려주셔서 신청했고, 운좋게 200명 안에 선발되었다. 이런 행사에 참여한 적이 처음이라 경험한 것을 기록하기 위해 간단히 정리해보려 한다
객체의 프로퍼티를 변경했을 때 기본형 데이터를 복사한 변수 b의 값을 바꿨을 때, 해당 데이터 참조 값(주소) 자체가 변경되는 반면, 참조형 데이터를 복사한 변수 obj2의 프로퍼티를 바꾸면 참조 값이 가리키는 객체의 프로퍼티가 저장된 곳의 참조 값이 바뀔 뿐, 변수
얕은 복사(shallow copy) : 객체의 참조(주소) 값을 복사하는 것. 1 depth까지만 복사하며, 객체에 중첩되어 있는 객체의 경우 참조 값을 복사한다.깊은 복사(deep copy) : 객체의 실제 값을 복사하는 것. 객체에 중첩된 객체까지 모두 복사한다.s
TypeScript의 타입 | 타입 종류 | 예시 | 설명 | | --- | --- | --- | | number | 1, 5.3, -10 | 모든 숫자들, 정수와 실수형 간 차이 없음 | | string | ‘Hi’, “Hi”, \Hi\ | 모든 문자 값 | | b
2년차 이상 뽑는 기업에 이력서를 넣었는데, 운좋게 서류 합격이 되어서 코테를 볼 기회가 생겼다. 저번에 신입 뽑는 기업의 코테를 봤었을때는 비교적 쉬운 문제들로 구성이 되었음을 느꼈는데, (그럼에도 5문제 중 2.5문제 밖에 못풀긴 했지만...) 이번에 본 코테는 구
정의 : 특정 작업을 달성하기 위한 과정이나 일련의 단계를 의미, 문제를 해결하기 위한 일련의 수학적 단계 (ex. 유튜브 알고리즘)필요성 :프로그래밍에서 수행하는 거의 모든 작업에는 일종의 알고리즘이 포함됨성공적인 문제 해결 및 개발자가 되기 위한 기반면접에 필요함어
어렸을 때는 꿈이 참 많았다.부모님이 아플 때는 간호사, 노래 부를 때는 가수, 피아노 학원을 다닐 때는 피아니스트, 그림을 그릴 때는 화가, 신문부일 때는 기자, 레고를 조립할 때는 건축가가 되고 싶었다. (꿈도 참 많았다...)그런데 어느 순간 부터는 내가 진정으로
1년이 또 금방 지나갔다. 연말이 되어 22년을 돌아보니 뭐 한거 별로 없지 않았나? 라고 생각했는데, 생각보다 많이 돌아다니고, 새로운 것도 많이 시도하고 많은 output을 낸 한 해였다. 생전 하지 않던 운동을 꾸준히 해보기도 하고, 알바도 하고, 2주 동안 웹
자바스크립트는 비동기 처리를 위한 하나의 패턴으로 콜백 함수를 사용하는데, 전통적인 콜백 패턴은 아래와 같은 몇가지 단점이 존재한다.콜백 헬로 인해 가독성이 나쁘다.비동기 처리 중 발생한 에러의 처리가 곤란하다.✔️ setTimeout 함수의 콜백 함수가 실행될 때 s
자바스크립트 엔진은 단 하나의 실행 컨텍스트 스택을 가지고, 한 번에 하나의 태스크만 실행할 수 있는 싱글 스레드 방식으로 동작한다. 그렇기 때문에 처리에 시간이 걸리는 태스크를 실행하는 경우 블로킹(blocking)이 발생한다.동기 처리 : 현재 실행 중인 태스크가
이벤트 핸들러 : 이벤트가 발생했을 때 호출될 함수이벤트 핸들러 등록 : 이벤트 발생 시 브라우저에게 이벤트 핸들러의 호출을 위임하는 것사용자가 언제 이벤트를 발생시킬 지 알 수 없는데 그렇다면 언제 함수를 호출해야 할까?✔️ 브라우저는 사용자의 이벤트를 감지하고 특정
정의 : Document Object Model의 약자로, HTML 문서의 계층적 구조와 정보를 표현하며 이를 제어할 수 있는 API, 즉 프로퍼티와 메서드를 제공하는 노드 객체들로 구성된 트리 자료구조.✔️ DOM은 HTML 문서의 계층적 구조와 정보를 표현하고, 노
파싱(parsing) : 프로그래밍 언어의 문법에 맞게 작성된 텍스트 문서를 읽어 문자열을 토큰으로 분해(어휘 분석)하고, 토큰에 문법적 의미와 구조를 반영해 파스 트리를 생성하는 과정이다. 파싱이 완료된 이후에는 중간 언어인 바이트코드를 생성하고 실행한다.렌더링(re
클로저는 자바스크립트 고유의 개념이 아니므로 클로저의 정의가 ECMAScript 사양에 등장하지 않는다.MDN 정의 :A closure is the combination of a function bundled together (enclosed) with referenc
전역 코드 : 전역에 존재하는 소스코드로, 전역 스코프를 생성하고 전역 객체와 연결되기 위해 코드 평가 시 전역 실행 컨텍스트가 생성된다. (함수, 클래스 등 내부 코드는 포함되지 않음.)함수 코드 : 함수 내부에 존재하는 소스코드로, 지역 스코프를 생성 후 전역 스코
정의 : 자신이 속한 객체 또는 자신이 생성할 인터페이스를 가리키는 자기 참조 변수이다.필요성 : 동작을 나타내는 메서드는 자신이 속한 객체의 상태(프로퍼티)를 참조하고 변경할 수 있어야 하는데, 그러기 위해서는 자신이 속한 객체를 가리키는 식별자를 참조할 수 있어야
변수 중복 선언 허용 : var 키워드로 선언한 변수는 같은 스코프 내에서 중복 선언이 가능하다.함수 레벨 스코프 : var 키워드로 선언한 변수는 함수의 코드 블록만을 지역 스코프로 인정한다. 함수 외부에서 선언한 변수는 코드 블록 내에서 선언해도 모두 전역 변수가
정의 : 메모리 공간이 확보(allocate)된 시점부터 메모리 공간이 해제(release)되어 가용 메모리 풀에 반환되는 시점까지를 변수의 생명주기라고 한다.필요성 : 변수에 생명주기가 없다면 한번 선언된 변수는 프로그램을 종료하지 않는 한 영원히 메모리 공간을 점유
정의 : 모든 식별자는 자신이 선언된 위치에 의해 다른 코드가 자신을 참조할 수 있는 유효 범위가 결정되는데, 즉, 식별자가 유효한 범위를 스코프라고 한다.필요성 : 스코프라는 개념이 없다면, 같은 이름을 갖는 변수는 충돌을 일으키므로 프로그램 전체에서 하나밖에 사용할
정의 : 일련의 과정을 문(statement)으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것필요성 :코드의 재사용성 : 필요할 때 여러 번 호출할 수 있고, 실행 시점을 개발자가 결정할 수 있다.유지보수의 편의성 : 코드의 중복을 제거하여 유지보수에