all category

javascript

요약 정리는 못 참지 않을까요?(8) 자바스크립트의 클래스

🙄클래스는 프로토타입의 문법적 설탕일까요? 자바스크립트는 프로토타입 기반의 객체지향 언어이고 프로토타입 기반 객체지향 언어는 클래스가 필요 없는 객체지향 언어입니다. 자바스크립트의 클래스는 사실 함수이고 기존의 프로토타입 기반의 패턴을 클래스 기반 패턴처럼 사용할 수 있도록 해주는 문법적 설탕이라고 볼수도 있습니다. 다만 자바스크립트에서의 클래스는 생성자 함수 기반의 객체 생성보다 명료하다는 장점이 있습니다. 따라서 클래스는 단순 문법적 설탕이라기보다는 새로운 객체 생성 메커니즘으로 보는게 좀 더 합당하다네요 🙄클래스와 생성자 함수의 차이에 대해 말해주세요 구분 클래스 생성자 함수 new연산자 new 연산자 없이 호출 시 에러 new 연산자 없이 호출하면 일반 함수로 호출 됨 에러 안남 상속키워드 ext..

Network/간단 정리 시리즈

(2) 네트워크의 구분

🙄네트워크의 구분 LAN(Local Area Network) MAN(Metro Area Network) WAN(Wide Area Network) 사용자 내부 네트워크 한 도시 정도를 연결하고 관리하는 네트워크 멀리 떨어진 LAN을 연결해주는 네트워크 자체 인프라를 통해 네트워크를 구축하면 MAN 통신사가 이미 갖고 있는 인프라를 기반으로 네트워크를 구축하면 WAN 예전엔 LAN ,MAN, WAN에서 사용하는 기술이 모두 달랐지만 현재는 대부분의 기술이 이더넷으로 통합되면서 관리 범위를 기준으로 구분합니다. 🙄LLCF(Link Loss Carry Forward) LLCF란 한쪽 링크가 다운되면 이를 감지해 반대 쪽 링크도 다운 시키는 기능입니다. 🙄이더넷 네트워크 표준 이더넷 네트워크는 케이블의 종류 ,인..

Network/간단 정리 시리즈

(1) 네트워크 OSI 7 계층과 TCP/IP 프로토콜

⚡홈네트워크는 어떻게 구성되나요? 홈 네트워크는 모뎀, 공유기, 단말 간 물리적 연결로 구성됩니다. 무선 연결은 무선 랜 카드와 무선 신호를 보낼 수 있는 매체가 필요하고 유선 연결은 유선 랜카드(이더넷 랜카드, 랜케이블)이 필요합니다. ⚡프로토콜이 뭔가요? 네트워크에서 프로토콜이란 네트워크 상에서 통신할 때의 규정, 규약을 뜻합니다. 물리적 측면 : 데이터 전송 매체, 신호 규약, 회선 규격 등 이더넷이 널리 쓰입니다. 논리적 측면 : 장치 간에 통신하기 위한 프로토콜 규격이며 TCP/IP가 널리 쓰입니다. 프로토콜은 한정된 자원으로 통신을 원활히 수행하기 위해 최대한 적은 데이터를 이용하여 효율적이게 내용을 전달해야 했으므로 2진수 비트 기반으로 만들어진 것이 많습니다. ⚡프로토콜 스택? 이 뭐에요?..

javascript

요약 정리는 못 참지 않을까요?(7) 클로저

⚡실행컨텍스트가 뭔가요? 실행컨텍스트는 소스코드를 실행하는데 필요한 환경을 제공하고 코드의 실행 결과를 실제로 관리합니다. 식별자를 등록하고 관리하는 스코프와 코드 실행 순서 관리를 구현한 내부 메커니즘이며 모든 코드는 실행 컨텍스트를 통해 실행되고 관리됩니다. ⚡렉시컬 환경이 뭔가요? 렉시컬 환경은 식별자와 식별자에 바인딩 된 값, 상위 스코프에 대한 참조를 기록하는 자료구조입니다. 실행 컨텍스트를 구성하는 컴포넌트라고 할 수 있습니다. 자바스크립트는 함수를 어디서 호출했는지가 아닌 함수를 정의한 위치에 따라 상위 스코프를 결정하는 정적 스코프를 채택합니다. ⚡일시적 사각지대(TDZ)가 뭔가요? TDZ는 let,const 키워드로 선언한 변수는 런타임에 실행 흐름이 변수 선언문에 도달하기 전까지 일시적..

leetcode

438. Find All Anagrams in a String Javascript

⚡문제정보 Anagram이 성립하는 경우를 체크하면 되는 문제인데 시작인덱스부터 p의 길이만큼 비교해보고 성립하면 그 시작인덱스를 체크하면되는 문제입니다. 모든 시작점을 다 체크해봐야겠네요 🔍나의 첫번째 풀이 /** * @param {string} s * @param {string} p * @return {number[]} */ var findAnagrams = function(s, p) { s = s.split('') p = p.split('') let map = new Map() let answer = [] let set = new Set(p) for( string of p){ map.set(string, (map.get(string)||0) + 1 ) } for(i=0 ; i ele != 0 ) i..

javascript

자바스크립트의 this를 이해해보자

⚡this는 뭔가요? this는 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수입니다. this를 통해 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메서드를 참조할 수 있다. this가 가리키는 값 즉 this 바인딩은 함수 호출 방식에 의해 동적으로 결정됩니다. 또한 strict mode 역시 this 바인딩에 영향을 줍니다. ⚡렉시컬 스코프와 this 바인딩은 결정 시기가 다른가요? 네. 함수의 상위 스코프를 결정하는 방식인 렉시컬 스코프는 함수 정의가 평가되어 함수 객체가 생성되는 시점에 상위 스코프를 결정합니다. 하지만 this 바인딩은 함수 호출 시점에 결정됩니다. ⚡함수를 호출하는 방식은 어떻게 되나요? 1. 일반 함수 호출 2. 메서드 호출 3. 생성자..

javascript

요약 정리는 못 참지 않을까요? (6)

⚡strict mode를 전역에 적용하면 어떻게 되나요? 전역에 적용된 strict mode는 스크립트 단위로 적용됩니다. ⚡strict mode는 어떻게 쓰는게 좋나요? strict mode는 즉시 실행 함수로 감싼 스크립트 단위로 적용하는 것이 바람직합니다. 함수 단위로 strict mode를 적용하면 strict mode가 적용되지 않은 함수를 참조할 때 문제가 발생할 수도 있기 때문입니다. ⚡strict mode가 발생시키는 에러는 뭐가 있나요? 1. 암묵적 전역에 대한 에러가 발생합니다. 2. 변수,함수,매개변수를 delete 연산자로 삭제하면 에러가 발생합니다. 3. 중복된 매개변수 이름을 사용하면 에러가 발생합니다. 4. with 문을 사용하면 에러가 발생합니다. ⚡strict mode로 변..

programmers

[Programmers Level 3] 야근지수 Javascript

⚡문제정보 제가 멍청해서 그런건진 몰라도 문제 설명이 너무 간략해서 이해가 안되었습니다. 생각을 해보면 야근지수는 제곱해서 계산하니까 최대한 값을 평탄화 시켜주는게 포인트인 문제입니다. 주어지는 매개변수 n만큼 works에서 시간을 뺄 수 있는구조인데 당연하지만 제곱을 하게되면 값이 기하급수적으로 커지니 주어진 자원으로 최대한 평탄화 작업을 해줘야하는 문제네요 예컨대 [4,3,3]이면서 내게 주어진 n이 4라면 4 -2 / 3-1 / 3-1을 해줘서 모든 값을 2로 맞춰주는게 최선일것입니다. 🔍접근방법 이거 뭐 쉽게 구현할 수 있지않나?하고 생각해봤는데 제가 쉽게 떠올릴 수 있는 방법들은 시간복잡도가 너무 커지는 방법들이었고.. 검색을 살짝 해본 결과 이 문제는 3레벨 답게 빡빡한 효율성 테스트를 거치기..

냠냠맨
'분류 전체보기' 카테고리의 글 목록 (38 Page)