전체 글 527

[this 에러] Uncaught TypeError: Cannot read property 'menu' of undefined at insertCoffeeMenu (index.js:13) at HTMLButtonElement.<anonymous>

이 함수를 사용한 곳으로 가보았습니다. 이때의 this를 호출해 보았습니다. 정상적으로 this가 호출이 되네요. call메서드를 사용해서 this를 넘겨줍시다. 정상적으로 기능이 작동 하면서 this도 잘 출력이 됩니다. Call 메서드 메서드의 호출 주체인 함수를 즉시 실행하도록 하는 명령 이때 call메서드의 첫 번째 인자를 this로 바인딩하고 이후의 인자들을 매개변수로 사용합니다. const obj = { a:1, method: function(x,y){ console.log(this.a, x, y) } } obj.method(2,3) // 1, 2, 3 obj.method.call({ a:4 }, 5, 6) // 4, 5, 6 apply 메서드 call 메서드와 동일 하지만 첫 번째 인자를 제..

오류모음 2022.05.15

짝지어 제거하기

스택을 이용하면 풀 수 있는 문제이다. 처음에 접근 법은 이랬다. function solution(s) { const stack = [s[0]] for(let i = 1; i< s.length; i++){ s[i] === stack[i-1] ? stack.pop() : stack.push(s[i]) } console.log(stack) return stack.length === 0 ? 1 : 0 } 이유를 살펴보니 a, a를 제거 하고 나서 반복문의 i가 계속 증가하게 되는데 for i === 1 일 때 stack = [b] s = baabaa 이고 b !== a 이기 때문에 stack에 추가가 된다. for i === 2 일 때 stack = [b, a] s = baabaa 이고 a === a 이기 때..

코테 2022.05.14

2022.05.14 고민

나 같은 생 신입에게 있어서 면접의 기회란 사막의 바늘 찾기처럼 엄청 희박하게 오게된다. 이력서를 열군데 넣으면 한군에서 연락이 올까말까 이니깐 그래서 취준의 초기 때에는 면접의 기회 하나하나가 내겐 너무너무 귀했다.(지금도 마찬가지이다.) 하지만 나는 지방에 살고 있기 때문에 면접 한번 볼려면 서울로 올라가야한다. ktx로 왕복하면 9만6천원에 점심까지 사먹으면 10만원이 넘는다. 고속버스로 가게 되면 5만원 정도로 나오지만 편도만 3시간이다. 대면 면접을 한두번 볼 때는 이 금액이 부담스럽지는 않았다. 하지만 몇 번 이고 떨어지면서 이 금액이 너무 부담스러워지기 시작했다. '나는 정말 기업이 뽑아갈 정도로 준비가 되어있는가'하는 생각을 하기 시작했다. 좀 더 준비를 하고 취준을 시작해야는지 고민이 된다.

일기 2022.05.14

MAC주소

이더넷에서 인터페이스를 특정하기 위한 48비트의 하드웨어의 물리적인 주소(IP주소는 논리적인 주소)로 전세계에서 유일한 번호입니다. 두대 이상의 PC가 서로 데이터를 전송하는데있어 Mac주소가 필요하며 스위치가 동작하는 과정에서 Mac 주소에 관한 정보를 저장하는 Mac주소 테이블을 이용 11 - 32 - DA - F8 - 8B - 9A 11 - 32 - DA: 랜카드제조사 번호 24bit F8 - 8B - 9A: 제조사가 붙인 일련 번호 24bit 물리적인 주소가 있는 이유는 데이터가 전송되는 과정에서 목적지가 어느 주소인지 출발지가 어느 주소인지 등등을 식별하는 기능 MAC(Media Access Control) IP(Internet Protocol) 개념 미디어 접속 제어 주소 인터넷 프로토콜 주소..

2022.05.13 취준 계획

생각보다 취준이 길어지는 것 같아 앞으로 간단한 계획을 세워 취준을 대비하려고 한다. 언어/프레임워크를 100%활용할 수 있는 간단한 프로젝트 순수 자바스크립트로 프로젝트 시작(타입스크립트로 변환 예정) react프로젝트 next.js 제대로된 SEO 최적화 사이트 구현 스터디 코테 스터디 참여 리팩터링 스터디 참여 cs공부(네트워크 1순위, 데이터 베이스, 운영체제) 필독서 클린코드 클린 아키텍쳐 리팩토링2 객체 지향의 사실과 오해 실무 라이브러리 1. Formik (input form 관리) 2. Lazy Loading (최적화 방법에 대한 고민) 3. throttle debounce (최적화 방법에 대한 고민) 4. React Datepicker (달력 사용시 많이 쓰이는 library) 5. hu..

일기 2022.05.13

데이터 링크 계층 개요

데이터 링크 계층 개요 네트워크 장치 간 데이터를 전송하는 기능과 절차를 제공하는 계층 주요 프로토콜: 이더넷, CMSA/CD 그외 주요 네트워크 기기: 스위치 데이터 단위: 프레임 데이터 링크 계층은 2개로 나뉩니다. LLC(Logical link control) 논리적 연결 제어 데이터링크 계층의 기본 기능을 다루는 계층 MAC(Media Access Control) 물리 계층과 직접적 관련이 있는 프로토콜 물리적으로 매체의 연결 방식을 제어하고 1계층 물리계층과 연결하는 방식 LLC Ethernet MAC Token Ring MAC Token Bus MAC

6장 프로토 타입

어떤 생성자 함수를 new연산자와 함께 출력하면 Constructor에서 정의된 내용을 바탕으로 새로운 인스턴스가 생성되는데 이 인스턴스에는 __proto__라는 Constructor의 prototype프로퍼티를 참조하는 프로퍼티가 자동으로 부여됩니다. const Person = function(name){ this._name = name } Person.prototype.getName = function(){ return this._name } const suzi = new Person('suzi') suzi.__proto__._name = 'seung bin' suzi.__proto__.getName() // 'seung bin' suzi.getName() // suzi __proto__는 생략 가능..

HTTP1과 HTTP2의 차이는?

HTTP1은 HTTP1.0과 HTTP1.1로 나눠지며 이러한 프로토콜이 발전되어 HTTP2가 되었습니다. HTTP1.0은 기본적으로 한 연결당 하나의 요청을 처리하도록 설계되었습니다. 이는 RTT증가를 불러오게 되었습니다. RTT 증가(클라이언트에서 요청하고 서버에서 받는 시간) 서버로부터 파일을 가져올 때마다 TCP의 3-웨이 핸드셰이크를 계속해서 열어야 하기 때문에 RTT가 증가하는 단점이 있습니다. RTT: 패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간이며 패킷 왕복 시간 RTT의 증가를 해결하기 위한 방법 이미지 스플리팅, 코드 압축, 이미지 Base64 인코딩을 사용하곤 했습니다. 이미지 스플리팅 많은 이미지를 다운로드받게 되면 과부하가 걸리기 때문에 이미지가 합쳐 있는 ..

이더넷

OSI 7계층의 하위 두번째 계층인 데이터 링크 계층의 프로토콜이자 TCP/IP4계층의 맨 아래 계층인 네트워크 인터페이스층의 프로토콜 Etherenet 데이터를 전송하는 프로토콜, 네트워크를 구성하는 기술 방식 ISO에서 국제 표준으로 지정 LAN에서 많이 사용됩니다. 스타형(성형) 네트워크 토폴로지를 이용 초기 이더넷 규격은 버스형이였기에 CSMA/CD라는 기술이 사용되었습니다. LAN으로 연결되는 장치의 개수가 많아지면서 송수신되는 데이터의 양도 매우 빠르게 증가했습니다. 이에 따라 더 신속하게 통신할 수 있도록 이더넷이 발전하게 되었습니다. Standard Ethernet 10Mbps Fast Ethernet 100Mbps Gigabit Ethernet 1Gbps Ten-Gigabit Ethern..