전체 글 527

5장 클로저

클로저 : 어떤 함수에서 선언한 변수를 참조하는 내부함수를 외부로 전달항 경우 함수의 실행 컨텍스트가 종료된 후에도 해당 변수가 사라지지 않은 현상 const outer = function(){ let a = 1 let inner = function(){ return ++a } return inner } const outer2 = outer() console.log(outer2) // 2 console.log(outer2) // 3 그 이유는 가비지 컬렉터의 동작 방식 때문입니다. 가비지 컬렉터는 참조하는 변수가 하나라도 있다면 그 값은 수집 대상에 포함시키지 않습니다. 클로저와 메모리 관리 클로저는 어떤 필요에 의해 의도적으로 함수의 지역변수를 메모리를 소모하도록 함으로써 발생합니다. 즉 그 필요성이 ..

캡슐화/역캡슐화

데이터가 송수신되는 과정에서 각 계층을 지나게 되고 데이터를 상위 하위 계층으로 보내게 됩니다. 이때 상,하위로 보내는 과정을 캡슐화 역캡슐화라고 합니다. 캡슐화 헤더(목적지 정보, 출발지 정보, 에러 체크 등 필요한 정보)를 붙이는 것 역캡슐화 헤더를 제거하는 것 응용 계층 -> 전송 계층 메시지(응용헤더 + userData)에 TCP헤더를 캡슐화하여 TCP 세그먼트를 만듭니다. 전송 계층 -> 네트워크 계층 TCP 세그먼트에 IP헤더를 캡슐화하여 IP 패킷을 만듭니다. 네트워크 계층 -> 데이터 링크 계층 IP 패킷에 이더넷헤더를 캡슐화하여 프레임을 만듭니다. 누군가에게 데이터를 보낼 때 캡슐화 -> 물리 계층 -> 케이블의 전기 신호 -> 역캡슐화 PDU(Protocol Data Unit) 각 계층..

2022.05.06 일기

최근에 멘토링을 해주시는 멘토분께서 무엇을 공부할지 모를때는 작은 기능 같은 것들을 만들어보라고 하셨다 생각해보면 final 프로젝트가 끝나고 거의 이론 공부만 하고 있었다. 실무에 대한 공부도 필요하다고 생각하여 작은 기능들을 덧붙여 프로젝트를 완성해 보려고 한다. 오늘은 검색창 자동완성을 작성하였고 내일은 아마 오토 스크롤을 제작하지 않을까 생각중이다. 단순히 만드는 것에 그치지 않게 타입스크립트와 next.js의 특성을 잘 활용해보려고 해야겠다.

일기 2022.05.06

서버 클라우드 서비스

서버 네트워크를 통해 클라이언트에게 데이터를 제공해주는 프로그램 혹은 장치 서버 운용방식 온 프레미스 사내에서 직접 서버 운용실을 두는 방식 주로 게임사에서 사용하는 방식이다. 클라우드 서비스 직접 운용하지않고 firebase나 aws같은 서비스를 이용하는 방식 IaaS(infratructure as a Service) 인프라형 서비스로 서버의 CPU/메모리/스토리지 등과 같은 하드웨어 부분을 서비스로 이용할 수 있습니다. PaaS(Plateform as a Service) 플랫폼형 서비스로 하드웨어부터 플랫폼에 해당하는 부분까지 서비스를 제공합니다. 그 후 애플리케이션을 추가하여 개발을 진행합니다. 주로 개발자들이 많이 이요합니다. SaaS(Software as a Service) 소프트웨어형 서비스로..

4.5 번역

TypeScript 4.5에는 @type/support의 작동 방식과 유사한 방식으로 특정 기본 제공 lib를 재정의하는 방법이 도입되었습니다. TypeScript에 포함되어야 할 lib 파일을 결정할 때 먼저 node_modules에서 범위가 지정된 @typescript/lib-* 패키지를 찾습니다. 예를 들어, lib의 옵션으로 dom을 포함할 때 TypeScript는 node_modules/@typescript/lib-dom에 있는 형식을 사용합니다. 그런 다음 패키지 관리자를 사용하여 지정된 lib를 대신할 특정 패키지를 설치할 수 있습니다. 예를 들어, 오늘날 TypeScript는 DOM API의 버전을 @type/web에 게시합니다. 예를 들어, 오늘날 TypeScript는 DOM API의 버..

4장 콜백함수 정리

콜백 함수는 다른 코드에 인자로 넘겨줌으로써 그 제어권도 함께 위임하는 함수 map 메서드 Array.prototype.map(callback[,thisArg]) callback: function(currentValue, index, array) 첫번째로 인자로 callback 함수를 받고, 생략 가능한 두 번째 인자로 콜백함수 내부에서 this로 인식할 대상을 특정할 수 있습니다. Array.prototype.map = function(callback, thisArg){ var mappedArr = [] for(let i = 0; i < this.length; i++){ let mappedValue = callback.call(thisArg || window, this[i], i this) mapped..

사설 네트워크/공용 네트워크

네트워크 분리는 다양합니다만 사설 네트워크(Private Network), 공용 네트워크(Public Network)가 있습니다. 네트워크(Private Network) 접속하는 사용자를 제한하는 사설 네트워크, 주로 회사 혹은 가정 내의 네트워크 - 사설 IP를 사용 공용 네트워크(Public Network) 접속하는 사용자를 제한하지 않는 공용 네트워크, 인터넷 접속 가능 - 공인 IP사용 - ISP(Internet Service Provider)를 사용 공인 IP주소, 사설 IP주소 집 -> Internet -> 집 사설 네트워크 공인 IP 주소 공용 네트워크 공인 IP 주소 사설 네트워크

3장 this 정리

정리 다음 규칙은 명시적 this 바인딩이 없는 한 성립 전역 공간에서의 this는 전역 객체(브라우저에서는 window, Node.js에서는 global)를 참조합니다. 어떤 함수를 메서드로서 호출한 경우 this는 메서드 호출 주체를 참조합니다. 어떤 함수를 함수로서 호출한 경우 this는 전역객체를 참조합니다. 메서드의 내부함수에서도 같습니다. var obj1 = { outer: function(){ console.log(this) // (1) var innerFunc = function(){ console.log(this) // (2) (3) } innerFunc() var obj2 = { innerMethod: innerFunc } obj2.innerMethod() } } obj1.outer()..

프로토콜

사람과 사람이 대화할 때 언어가 필요한 것처럼 컴퓨터도 서로 통신을 할 때 네트워크 아키텍츠를 이용해야합니다. 프로토콜 대화를 할 때에도 발음, 문법, 문자를 어떻게 사용할지 규칙이 필요합니다. 네트워크 통신도 데이터 형식, 통신절차등이 필요한데 세부적으로 데이터 형식, 통신 절차등의 규칙이 필요합니다. 그러한 규칙들을 프로토콜이라고 합니다. 주요 프로토콜 DNS, HTTP, SMTP, POP3, IMAP, SNMP, FTP, DHCP 응용계층(세션, 표현, 응용 계층) TCP, UDP 전송계층 IP 네트워크 계층 이더넷 데이터링크 계층 RS-232, RS-449 물리계층 이러한 프로토콜이 여러 개가 모여서 조합하면 하나의 네트워크 디자인인 '네트워크 아키텍쳐'가 됩니다.