분류 전체보기

스코프 체인 - 함수에서 어떤 값에 접근이 가능/불가능한가 따져보기

스코프 (체인)은 함수에서 어떤 값에 접근이 가능/불가능 한가 따져볼 때 사용되는 개념이다.이때 판별하는 범위는 블록 단위인데, 블록은 중괄호로 감싸여진 범위다. const x = "x";function c() { const y = "y"; console.log("c"); function b() { const z = "z"; console.log("b"); c(); }}function a() { const x = "x"; console.log("a"); b(); // b를 선언 안했다는 ERROR}a(); c();위 코드를 실행하면 함수 a 안에 있는 b를 호출할 때 b를 선언하지 않았다는 에러가 발생한다.b가 a의 스코..

JavaScript 2023.02.03

호출 스택 분석하는 법

호출과 선언 명확히 구분할 줄 알아야 하고, 아래 코드를 실행 하기 전에 어떤 결과가 나오는 지 알 수 있어야 한다.const x = "x";function c() { // 선언 const y = "y"; console.log("c"); // 호출 // debugger; // 호출 스택 보는 법}function a() { // 선언 const x = "x"; console.log("a"); // 호출 function b() { // 선언 const z = "z"; console.log("b"); // 호출 c(); // 호출 } b(); // 호출}a(); // 호출 - a, b, cc(); // 호출 - c호출 스택은 호출할 때만 쓰이는 스택이다.함수를 호출할 때마다 스택이 밑에서부터 쌓이..

JavaScript 2023.02.02

투 포인터(Two Pointers) 알고리즘

투 포인터란? 배열에서 원래 이중 for문으로 O(N^2)에 처리되는 작업을 2개의 포인터의 움직임으로 O(N)에 해결하는 알고리즘이다. 여기서 포인터는 C언어의 포인터가 아니라 작업을 처리하기 위해 생성한 변수이다. 포인터라는 변수를 두개를 선언해서 투 포인터라고 부른다. 이분탐색 문제를 투 포인터로도 해결 할 수 있다. 완전 탐색 알고리즘으로 하면 O(N^2)의 수행시간이 나오는데, 투포인터로 시간복잡도를 O(N)으로 줄일 수 있다. 예시 문제: N개의 자연수로 구성된 수열이 있을 때, 합이 M인 부분 연속 수열의 개수 구하기. 수행 제한 시간은 O(N) 투 포인터로 문제 해결하는 방법 시작점(start)과 끝점(end)이 첫 번째 원소의 인덱스(0)를 가리키도록 한다. 현재 부분 합이 M과 같다면,..

함수 호출한 것을 보면, 그 자리에 return한 값을 대체해보자.

함수 선언 방법 중에는 다음과 같이 화살표 함수 방식이 있다.중괄호를 생략하면 return이 포함되어 있다.주의해야 할 점은, 객체를 return할 때는 꼭 소괄호로 감싸줘야 한다. js 엔진은 중괄호를 return이 아닌 함수의 몸체로 보기 때문이다.// 아래 세 개는 같은 표현const add = (a,b) => { return a + b };const add = (a,b) => a+b;const add = (a,b) => (a+b);// 객체를 리턴할 땐 꼭 소괄호로 감싸줘야 함const add = (a,b) => ({a + b}) 함수를 호출할 때, 매개변수에 함수를 넣는다면 주의해야 할 점이 있다. 함수이름 뒤에 () 를 붙으면 함수 호출이 된다는 것이다.const add = (a,b) =>..

JavaScript 2023.01.31

.gitignore | git 추적 제외할 파일 지정하기, 패턴 형식

git 추적 제외할 파일 지정하기 .gitignore은 git의 추적을 제외할 파일을 지정하는 파일이다. git에서 이미 추적한 파일은 영향을 받지 않는다. 특정 파일을 원격 repository에 push하지 못하도록 제외할때 유용하게 쓰인다. 해당 파일은 test.js를 제외시킨 것이다. 패턴 형식 예 *.a # 모든 .a 파일을 무시한다. !lib.a # 위의 .a 파일을 무시하더라도 lib.a를 추적하도록 한다. /TODO # subdir/TODO가 아닌 현재 디렉토리의 TODO 파일만 무시한다. build/ # build라는 디렉토리의 모든 파일 무시한다. doc/*.txt # doc/notes.txt를 무시, 하지만 doc/server/arch.txt는 무시하지 않는다. doc/**/*.pdf ..

Git 2023.01.25

git add | 파일을 staging area에 올려 commit 할 수 있는 상태로 만드는 방법, staging area에서 제거하는 방법

파일을 staging area에 올리는 법 파일을 commit하기 위해 staging area에 올리려면 다음 명령어를 입력하면 된다. git add [파일명] # 해당 파일을 stage에 올린다. git add . # 모든 파일을 stage에 올린다. git add [파일명1] [파일명2] # 해당 두 파일을 stage에 올린다. git add *.txt # 파일 확장자가 txt인 파일을 statge에 올린다. 파일을 staging area에서 제거하는 법 rm [파일명] 위 명령어는 파일 자체를 삭제하는 것이다. 파일 자체를 삭제하므로 당연히 staging area에서도 제거가 된다. git rm [파일명] working directory와 staging area에서만 제거하는 명령어다. git rm..

Git 2023.01.25

git status | 파일 추적 상태 확인하기, 간단하게 확인하는 법

다음 명령어로 파일 추적 상태를 확인 할 수 있다. git status 파일 추적 상태에 뭐가 있는지 모른다면 다음 글을 참고하길 바란다. git의 workflow(추적 상태) - Untracked, Tracked, modified, staged git을 잘 이해하려면 먼저 git의 workflow를 알아야한다. git은 크게 아래와 같이 세가지의 작업환경으로 나뉘어져 있다. working directory: 파일들을 작업(수정)하고 있는 공간 staging area: 버전 history에 저 sanghee01.tistory.com 간단한 버전으로 확인하고 싶으면 명령어 뒤에 -s를 붙이면 된다. git status -s A는 staging area에 있다는 뜻이고, ??는 아직 tracking이 되지 ..

Git 2023.01.25

git init | git이 내 파일을 추적할 수 있도록/없도록 설정하기

git이 추적하도록 설정하기 다음과 같이 git과 연동되어있지 않은 폴더가 있다. 다음 명령어를 통해 git과 연동시킬 수 있다. git init 폴더에 .git이라는 숨김폴더가 생성된걸 확인할 수 있다. 혹시나 보이지 않는 사람은 다음과 같이 보기에서 숨긴 항목도 보이도록 체크를 하면 된다. 이를 터미널에서 확인하려면 ls -al 를 입력하면 된다. -al는 ls 명령어의 옵션으로, a는 숨김파일과 디렉토리를 모두 표시하고 l은 상세 정보를 모두 표시하라는 것이다. git이 추적하지 않도록 설정하기 rm -rf .git rm은 remove의 줄임말로 해당 디렉토리를 삭제할 때 사용한다. -rf는 recursive force의 약자로, 사용자가 지정한 위치 내의 모든 파일과 폴더를 강제로 삭제하는 옵션이..

Git 2023.01.25