본문 바로가기

깊은복사/얕은복사 # 자바스크립트 참조 복사와 값 복사 자바스크립트에서 =를 이용하여 객체를 복사하면 값을 복사하는게 아니라 그 값의 위치를 참조만 하게 된다. 1.자료형의 값 복사(깊은 복사) 자바스크립트는 기본 자료형(숫자, 문자, boolean)의 값을 복사할 때 값을 완전히 복사한다. 따라서 =을 이용하여 값 복사를 쉽게 할 수 있다. var originValue = 100; var newValue = originValue; originValue = 200; console.log(originValue); //200 console.log(newValue); //100 -> 이렇게 두 변수가 완전히 독립성을 갖는 것을 ‘값 복사’ 또는 ‘깊은 복사’라고 한다. 값을 복사하고 변경했을 때, 다른 값에 전혀 영향을 주지 ..
용어 및 구문 # while구문 특정 조건을 만족하는 한 코드를 반복해서 실행 # do..while구문 while구문과 사용법은 크게 다르지 않으나, 내부 코드를 무조건 한 번은 실행시킨다는 차이점이 있다. # for구문 초기값을 정할 수 있고 갱신을 위한 코드가 짧을 경우에 사용 # 참조(reference) 객체가 컴퓨터 메모리 상에서 어디에 저장되었는지를 가리키는 값 # 클로저(Closure) 보통의 경우, 안쪽 스코프에서 정의된 변수는 바깥 스코프에서 접근할 수 없다. # 큐(Queue) 데이터를 집어넣을 수 있는 선형(linear) 자료형 먼저 집어넣은 데이터가 먼저 나온다. 이 특징을 줄여서 FIFO(First In First Out)라고 부른다. 데이터를 집어넣는 enqueue, 데이터를 추출하는 deque..
예외 처리 예외(exception) 예외(exception)란 프로그램이 실행 중에 발생하는 런타임 오류를 의미합니다. 이러한 예외가 발생하지 않도록 미리 방지하는 것도 중요하지만, 발생한 예외를 처리하는 방법 또한 매우 중요합니다. 오류(error)란 프로그램 구문의 문법적인 오류를 의미합니다. 예외 발생 예외를 발생시킨다는 것은 명시적으로 오류를 발생시킨다는 의미뿐만 아니라 예외 상황을 알린다는 의미도 있습니다. 자바스크립트에서는 throw 키워드를 사용하여 예외를 발생시킬 수 있습니다. throw 표현식; 표현식에는 예외 코드를 나타내는 숫자나 오류 메시지를 담고 있는 문자열, Error 객체 등이 올 수 있습니다. 예외 처리(exception handling) 자바스크립트에서는 프로그램이 실행되는 도중 발생..
매개변수와 인수 매개변수와 인수 매개변수(parameter) 자바스크립트에서는 함수를 정의할 때는 매개변수의 타입을 따로 명시하지 않습니다. 함수를 호출할 때에도 인수(argument)로 전달된 값에 대해 어떠한 타입 검사도 하지 않습니다. 함수를 호출할 때 함수의 정의보다 적은 수의 인수가 전달되더라도, 다른 언어와는 달리 오류를 발생시키지 않습니다. 이 같은 경우 자바스크립트는 전달되지 않은 나머지 매개변수에 자동으로 undefined 값을 설정합니다. 매개변수(parameter)란 함수의 정의에서 전달받은 인수를 함수 내부로 전달하기 위해 사용하는 변수를 의미합니다. 인수(argument)란 함수가 호출될 때 함수로 값을 전달해주는 값을 말합니다. 다음 예제는 3개의 매개변수를 가지는 함수에 각각 다른 수의 인수를..
쿠키와 세션 [ 쿠키(Cookie) ] - 클라이언트 로컬에 저장되는 키와 값이 들어있는 파일 - 이름, 값, 유호 시간, 경로 등을 포함 - 클라이언트의 상태 정보를 브라우저에 저장하여 참조 *구성 요소 - 쿠키의 이름(name) - 쿠키의 값(value) - 쿠키의 만료시간(Expires) - 쿠키를 전송할 도메인 이름(Domain) - 쿠키를 전송할 경로(Path) - 보안 연결 여부(Secure) - HttpOnly 여부(HttpOnly) *동작 방식 1. 웹브라우저가 서버에 요청 2. 상태를 유지하고 싶은 값을 쿠키(cookie)로 생성 3. 서버가 응답할 때 HTTP 헤더(Set-Cookie)에 쿠키를 포함해서 전송 4. 전달받은 쿠키는 웹브라우저에서 관리하고 있다가, 다음 요청 때 쿠키를 HTTP헤더에 ..
github * git clone은 Github의 모든 파일들을 가져오기만 함 * git pull은 local repository와 비교하여 병합하고, local repository에 저장(add)까지 수행 git pull = git fetch + git merge git fetch : local에 연결된 remote repository의 브랜치 목록과 그 파일 내용을 최신으로 업데이트 하는 명령어(local과 remote의 싱크를 맞추는 새로고침 역할) git merge : 두 개의 branch를 병합하는 명령어 → 즉, 단순히 원격 저장소의 내용을 확인만 하고 로컬 데이터와 병합은 하고 싶지 않은 경우에는 fetch 명령어를 사용 *zip파일 : .git 폴더가 없는 채로 소스만 받을 수 있으므로, local에서..
[GIT] 실행취소와 Commit 삭제: reflog, reset, checkout, revert 작업 실행취소 GIT에서 수행한 작업은 작업 History에 저장되고, 이 History를 토대로 작업 실행취소(Ctrl+Z)를 할 수 있습니다. 작업 내역 확인하기 가장 최근에 수행한 작업부터 순서대로 작업 History를 볼 수 있습니다. git reflog 작업 실행취소하기 다음과 같이 입력하면 작업 History의 가장 최상단에 있는 1개 작업을 실행취소 합니다. git reset HEAD@{1} 파일 수정 내용 초기화하기 작업을 하다가 문득 수정한 특정 파일을 초기화 하고 싶은 경우가 있을 것입니다. 이 경우 다음과 같이 입력하면 해당 파일을 HEAD 상태로 되돌립니다. git checkout -- {되돌릴 파일 이름} Commit 삭제하기 - Hard reset 이미 수행한 Commt을 삭제하..
git ignore https://gbsb.tistory.com/11 1. 처음부터 igtignore 파일을 만들 경우 프로젝트 디렉터리로 이동한 뒤 아래의 명령어를 쳐보자. $vim .gitignore 그러면 아래와 같이 보일것이다. 이제 [입력모드]로 들어가서 Git 에게 무시받을 정보를 입력해보자. (확장자, 폴더 등) a, i, o 중 아무거나 누르면 입력모드가 된다. -a : 다음 글자 -i : 현재 커서 -o : 윗줄 이제 파일을 저장해보자. [Esc] 키를 누른뒤, :wq를 입력하여 나가면 된다. -ESC : 입력모드 나가기 -:wq : 저장 후 나가기 실제 저장한 곳에 가서 파일을 확인해볼 수 있다. C:\Users\사용자명\프로젝트명 내부에 .gitignore 파일이 있다. 또는 cat .gitignore를..