본문 바로가기
✨ 서울대생이 면접 떨어지고 6개월간 삽질하며 정리한 'CS 정리 노트', 지금 무료로 풀립니다!

Programming Language56

[자바스크립트] 프로토타입과 상속 1. 객체 생성의 두 가지 방법a. 객체 리터럴 방식  - 간단한 객체 생성에는 편리하나 동일 구조를 가진 객체를 만드려고 할 때 비효율적임(코드 중복)const person = { name: "Alice", greet() { console.log(`Hello, my name is ${this.name}`); },};console.log(person.name); // "Alice"person.greet(); // "Hello, my name is Alice" b. 생성자 함수 방식- new 키워드를 사용하여 생성자 함수를 호출- 새로운 객체를 생성하고 초기화하는 로직을 재사용 가능function Person(name) { this.name = name; this.greet = functio.. 2025. 1. 4.
[자바스크립트] 비동기 프로그래밍? 프로미스(Promise)? 쉽고 완벽하게 파헤치기! 1. 비동기 프로그래밍- 비동기 프로그래밍은 시간 소모가 큰 작업(예: 네트워크 요청, 타이머 대기)을 효율적으로 처리하기 위한 방법- 비동기 작업은 JavaScript 엔진이 아닌 이벤트 루프를 통해 관리되며, 프로그램 실행이 멈추지 않고 계속 진행될 수 있게 함(이벤트 루프에 대한 글 참고: https://yiyj1030.tistory.com/592) 2. 콜백 헬(hell)비동기 처리 후에 후속 처리에 대한 작업을 어떻게 해줘야할까?function fetchData() { let data; setTimeout(() => { data = "Hello, World!"; }, 1000); return data;}const result = fetchData();console.log(result.. 2025. 1. 3.
[자바스크립트] this 바인딩 this 키워드- 실행 컨텍스트에서 어떤 객체를 참조할지 결정하는 키워드- this의 참조 대상은 함수가 호출되는 방식에 따라 동적으로 결정 1. 전역 컨텍스트전역 컨텍스트에서 this는 전역 객체를 참조(브라우저의 경우 window)console.log(this); // window (브라우저)2. 일반 함수 호출일반 함수 호출에서는 전역 객체를 참조function showThis() { console.log(this);}showThis(); // window3. 메서드 호출객체의 메서드를 호출하면, 메서드를 호출한 객체를 this로 참조const obj = { name: "Alice", greet() { console.log(this.name); },};obj.greet(); // "Al.. 2025. 1. 3.
[Kotlin] 인터페이스 깊게 이해하기 실제 자주 사용되는 패턴을 통해 여러 usecase를 익혀보자.import java.time.Instant// Task 인터페이스interface Task { val taskId: String val taskName: String val createdAt: Instant val dueAt: Instant val assignees: List fun startTask() // 서브인터페이스: Task의 가변 기능 추가 interface Mutable { fun updateTaskDetails(newName: String, newDueAt: Instant) } // 서브인터페이스: Task를 상속하며 기능을 제한 interface Read.. 2024. 9. 7.
[Typescript] 타입스크립트 알아보기 1. 타입스크립트란?자바스크립트에서 타입(형)을 다루도록 한것. 자바스크립트의 문법 및 표기법을 그대로 사용할 수 있다.create-react-app에서 타입스크립트 시작하기npx create-react-app [프로젝트명] --template typescript 2. 타입 지정 방법콜론을 붙여서 타입 지정.예시) 문자열 타입 지정let str: string = "a";str = "10"; // okstr = 10 // invalid 그 외 기본 자료형 지정numberbooleanArraynull(null만 대입 가능)undefined(undefined만 대입 가능)any 함수 타입 지정함수 타입은 인자와 반환값의 타입을 각각 지정한다.const funcA = (num: number): void => {.. 2024. 7. 20.
[Javascript] 클로저 * 클로저 이해를 위해선 '렉시컬 스코프'에 대한 이해가 선행되어야 한다.  클로저와 렉시컬 환경const x = 1;function outer() { const x = 10; const inner = function() { console.log(x) } return inner;}const innerFunc = outer();innerFunc(); outer() 함수를 호출하면 inner를 반환하고 생명주기를 마감, 즉 실행 컨텍스트가 실행 컨텍스트 스택에서 제거된다. 이에 따라 이 outer 함수 내의 지역변수 x도 생명주기가 마감된다. 그런데 innerFunc()를 실행하면 결과로 10이 나온다.이렇게 외부함수보다 중첩 함수가 더 오래 유지되는 경우 중첩함수는 이미 생명주기가 종료된 외부.. 2024. 6. 14.