본문 바로가기
728x90

분류 전체보기115

[Javascript] 렉시컬 스코프(Lexical Scope), 스코프 체인(Scope Chain), 클로저(Closure) [Javascript] 렉시컬 스코프(Lexical Scope), 스코프 체인(Scope Chain), 클로저(Closure) 먼저 자바스크립트의 실행문맥중 렉시컬환경에 대해 알아보자 렉시컬 환경(Lexical Environment) 자바스크립트 엔진이 실행을 위해 모아놓은 자원환경이다. key-value 형식으로 구성되며, 유효범위에 있는 변수와 함수, 객체들을 모아놓은 곳이라 생각하면 된다. 스크립트 전체, 실행중인 함수, 코드블록 등은 자신만의 렉시컬 환경을 갖는다. 렉시컬 환경 구성 환경레코드 - 렉시컬 환경에서 모든 지역변수를 property로 저장하고 있는 객체이다. (this, 함수일 경우 매개변수 포함) 외부 렉시컬환경 - 현재 렉시컬 환경보다 상위의 렉시컬환경. 스크립트는 최상위 렉시컬환.. 2022. 1. 13.
[네트워크] 인터넷 프로토콜 IP, TCP, HTTP [네트워크] 인터넷 프로토콜 IP, TCP, HTTP TCP : IP 상위 프로토콜. 네트워크 상에서 packet을 전달 받았을 때, 재조립 및 재요청 담당 HTTP : TCP 상위 프로토콜. 메세지를 해석하는 역할. 계층(Layer)? 컴퓨터 통신을 위해 모듈이 세분화되어있다. 기능별로 나누어 관리되며 문제 부분의 모듈만 수정하면 되어 유지/보수가 편하다. OSI 7 계층 (Open Systems Interconnection Reference Model) OSI는 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다. OSI가 설계 원칙이라면, 인터넷 프로토콜 구조는 실제로 구현된 설계도이다. 1. 물리 계층(Physical Layer) - Bit (PDU: Protocol Data .. 2022. 1. 9.
브라우저 렌더링 과정 및 Reflow Repaint 브라우저 렌더링 과정 및 Reflow Repaint 웹 브라우저 동작 순서 1. 웹브라우저에서 DNS를 통해 사이트 IP주소를 얻음 2. 웹사이트 접속하여 서버와 3번의 handshake (random숫자 +1)를 함 3. 서버에 데이터 요청(HTTP Request)해서 받음(HTTP Response) 4. 데이터 해석 (웹 표준화 기구인 W3C의 명세에 따라 해석) 브라우저의 렌더링 엔진이 HTML parsing(해석)하여 DOM Tree 생성 style 태그 만나면 CSS parsing(해석)하여 CCSOM Tree 생성(HTML parsing 멈추고) CSS parsing 마치면 HTML parsing 중단지점부터 다시 parsing 시작 script 태그 만나면 JS 엔진에 제어 권한을 넘겨 pa.. 2022. 1. 7.
javascript 알고리즘을 위한 기본 문법 javascript 알고리즘을 위한 기본 문법 달려보자... push( ), pop( ): 배열 뒤에 추가, 삭제 # 배열 뒤 'hi'추가 arr.push('hi') # 배열 뒤 삭제 (중간값 x) arr.pop() shift( ), unshift( ): 배열 앞에 추가, 삭제 # 배열 앞 'hi'추가 arr.unshift('hi') # 배열 앞 삭제 arr.shift() splice(): 배열 원소 자르기, 제거 - 원래 배열에도 영향 arr = ["hot", "dot", "dog", "lot", "log"]; # 배열 중간 값 제거 (splice(i,length) : i번째부터 length 만큼 제거) arr.splice(1,2); console.log(arr); => [ 'hot', 'lot', '.. 2021. 12. 28.
[알고리즘] LRU (Least Recently Used) 알고리즘_ [1차] 캐시 [알고리즘] LRU (Least Recently Used) 알고리즘 페이지 교체 알고리즘 중 가장 대표적인 것이 LRU 알고리즘이다. 이 알고리즘을 파이썬으로 구현해보고 문제도 풀어보자 ! 페이지 교체 알고리즘 Page fault가 발생하여 새로운 페이지를 할당해야 할 때, Allocated page 중 어느 것과 교체할지를 결정하는 알고리즘이다. 각각 서비스에 맞게 사용하여야 한다. LRU(Least Recently Used) Page fault가 발생했을 때, 가장 오랫동안 사용되지 않은 페이지를 제거하는 알고리즘이다. 이 것은 가장 오랫동안 사용되지 않은 페이지는 앞으로도 사용할 확률이 적다는 가정이 존재한다. 마치 locality ! 기본 파이썬 코드 cacheSize = 3 reference =.. 2021. 12. 26.
[알고리즘_카카오] 표 편집_연결 리스트 [알고리즘_카카오] 표 편집_연결 리스트 이 문제는 linked list로 풀 수 있는 문제이다. 처음에는 dictionary로 풀려고 했는데 실패했다. 첫 번째 풀이 - 실패 구현 끝 단계까지 다 한다고 했는데, 결국 dic는 순서가 없어 dict에서 index로 검색하는 것이 불가능해 실패했다.. 뒤 늦게 깨달아 버렸다.. def solution(n, k, cmd): answer = '' dict = {} stack = [] for z in range(n): dict[z] = 1 for x in cmd: print(x, k, dict) if len(x) == 1: if x == "C": # 제거인 경우 if k == len(dict)-1: dict.pop(k) stack.append(k) # 딕셔너리.. 2021. 12. 26.
728x90