Object Oriented Programming 객체 지향 프로그래밍 이전의 프로그래밍 패러다임을 살펴보면, 중심이 컴퓨터에 있었다. 컴퓨터가 사고하는대로 프로그래밍을 하는 것이다. 하지만 객체지향 프로그래밍이란 인간 중심적 프로그래밍 패러다임이라고 할 수 있다. 즉, 현실 세계를 프로그래밍으로 옮겨와 프로그래밍하는 것을 말한다. 현실 세계의 사물들을 객체라고 보고 그 객체로부터 개발하고자 하는 애플리케이션에 필요한 특징들을 뽑아와 프로그래밍 하는 것이다. 이것을 추상화라한다. OOP 로 코드를 작성하면 이미 작성한 코드에 대한 재사용성이 높다. 자주 사용되는 로직을 라이브러리로 만들어두면 계속해서 사용할 수 있으며 그 신뢰성을 확보 할 수 있다. 또한 라이브러리를 각종 예외상황에 맞게 잘 만들어두면 ..
HTTP는 HyperText Tranfer Protocol로 WWW상에서 정보를 주고 받는 프로토콜이다. HTTP 는 평문 통신이기 때문에 도청이 가능하다. TCP/IP 구조의 통신은 전부 통신 경로 상에서 엿볼 수 있다. 패킷을 수집하는 것만으로 도청할 수 있다. 평문으로 통신을 할 경우 메시지의 의미를 파악할 수 있기 때문에 암호화하여 통신해야 한다. 통신 상대를 확인하지 않기 때문에 위장이 가능하다. HTTP 에 의한 통신에는 상대가 누구인지 확인하는 처리는 없기 때문에 누구든지 리퀘스트를 보낼 수 있다. IP 주소나 포트 등에서 그 웹 서버에 액세스 제한이 없는 경우 리퀘스트가 오면 상대가 누구든지 무언가의 리스폰스를 반환한다. 완전성을 증명할 수 없기 때문에 변조가 가능하다. 여기서 완전성이란 ..
command + F12 or command + 7 : 파일 구조 보기 F2 : 에러 하이라트 된 곳으로 바로 이동 command + F8 : BreakPoint 토글 Control + opt + N : 새로운 파일 추가 Shift + F6 : 이름 재정의 Command + Y - 함수 미리보기? Commond + Shift + [,] : 열린 이전 / 다음 탭으로 이동 Command + Control + G : 드래그한 블록과 일치하는 코드 모두 선택 Command + Shift + U : 문자 대/소문자 변경 Alt + F7 : Find Usages Method, Class, File을 사용하는 리스트 보기 Command + Delete : Line Delete 한줄 삭제 Command + . : F..
기본 단축키 cmd/ctrl + n : 새 페이지 만들기 cmd/ctrl + shift + p : 새 페이지 경로 지정 cmd/ctrl + shift + n : 새 창에서 열기 cmd/ctrl + p : Quick Find 기능 실행 cmd/ctrl + [ : 뒤로 가기 cmd/ctrl + ] : 앞으로 가기 cmd/ctrl + u : 상위 페이지로 이동 cmd/ctrl + shift + l : 다크모드 실행 cmd/ctrl + \ : 사이드바 숨기기/보이기 마크다운 스타일 문법 - 문서편집 단축키 입력 시 사용가능한 문법: ** 로 텍스트를 묶으면 굵게(bold) 처리 됩니다. * 로 텍스트를 묶으면 기울임꼴 처리 됩니다. ``` 로 텍스트를 묶으면 인라인 코드처리가 됩니다. (보통 숫자 "1"키 옆에..
Closure(클로저)는두 개의 함수로 만들어진 환경으로 이루어진 특별한 객체의 한 종류이다. 여기서환경이라 함은 클로저가 생성될 때 그범위에 있던 여러 지역 변수들이 포함된context를 말한다. 이 클로저를 통해서 자바스크립트에는 없는 비공개(private) 속성/메소드, 공개 속성/메소드를 구현할 수 있는 방안을 마련할 수 있다. 클로저 생성하기 다음은 클로저가 생성되는 조건이다. 내부 함수가 익명 함수로 되어 외부 함수의 반환값으로 사용된다. 내부 함수는 외부 함수의 실행 환경(execution environment)에서 실행된다. 내부 함수에서 사용되는 변수 x 는 외부 함수의 변수 스코프에 있다. function outer() { var name = `closure`; function inne..
ssh로 서버로 접근 할 때 보통 ID/PW 방식을 많이 사용한다. 하지만 요즘은 ID/PW보다 좀더 보안에 좋은 key를 이용한다. AWS의 경우에는 기본적으로 서버에 접근하기 위해서 ssh key 를 사용하는데 서버를 private network에 두게 되면 VPN을 이용해서 AWS VPC 내부로 접속을 하거나 별도의 베스천 서버를 두어서 연결을 해야 한다. AWS VPC를 VPN으로 연결하였다면 굳이 ssh-agent를 이용하지 않아도 된다. 하지만 베스천 서버와 같이 중간 다리 역활을 하는 서버를 거쳐서 내부 서버에 접근 해야 한다면 내부 서버에 접근하기 위한 키를 어떻게 해야 할지 고민일 것이다. 베스천서버에 키를 둔다면 베스천서버에 접근 가능한 모든 사람들은 내부 private network ..
JavaScript 라는 언어의 특성을 가장 잘 보여주는 특성 중 하나이기에 정리. Hoisting 이란? hoist 라는 단어의 사전적 정의는 끌어올리기 라는 뜻이다. 자바스크립트에서 끌어올려지는 것은 변수이다. var keyword 로 선언된 모든 변수 선언은 호이스트 된다. 호이스트란 변수의 정의가 그 범위에 따라 선언과 할당으로 분리되는 것을 의미한다. 즉, 변수가 함수 내에서 정의되었을 경우, 선언이 함수의 최상위로, 함수 바깥에서 정의되었을 경우, 전역 컨텍스트의 최상위로 변경이 된다. 우선, 선언(Declaration)과 할당(Assignment)을 이해해야 한다. 끌어올려지는 것은 선언이다. function getX() { console.log(x); // undefined var x = ..