Javascript/Javascript 지식2025. 9. 18. 23:30비동기 vs 병렬

비동기(Asynchronous)작업이 완료될 때까지 기다리지 않고, 다음 코드를 바로 실행하는 방식한 스레드 내에서도 가능함 (JS처럼 싱글 스레드에서도 구현 가능)작업 순서와 실행 시간 분리주로 I/O, 네트워크 요청, 타이머 등에서 사용 console.log("시작");setTimeout(() => { console.log("비동기 완료");}, 1000);console.log("끝");Time 0ms: 시작 출력Time 0ms: setTimeout 등록 → 백그라운드로 이동Time 0ms: 끝 출력Time 1000ms: 이벤트 루프가 Task Queue에서 콜백 실행 → "비동기 작업 완료" 출력JS는 싱글 스레드지만, 이벤트 루프 덕분에 비동기처럼 동작 가능. 병렬(Parallel)두 개 이상의..

Javascript/Javascript 지식2025. 9. 18. 22:59Javascript는 싱글 스레드인데 여러 일을 하네..? (이벤트 루프)

문득 자바스크립트는 싱글 스레드인데 왜 여러일을 하지에 대해 까먹었다..에ㅔ휴.. 생각좀하고 살걸자바스크립트 엔진 자체는 싱글 스레드JS 엔진(예: V8)은 Call Stack(호출 스택) 하나만 갖고 있어서, 동시에 여러 JS 코드를 실행하지 못함즉, JS 코드 실행 자체는 동시에 하나만 수행console.log("A");console.log("B");// => 무조건 A 먼저, B 나중에 실행하지만 브라우저/Node.js 런타임은 멀티스레드브라우저나 Node.js는 JS 엔진 외에도 Web APIs / libuv 같은 백그라운드 스레드를 갖고 있음.이들이 네트워크 요청, 타이머, 파일 읽기 같은 작업을 엔진 밖에서 실행시킴.그러다 끝나면 이벤트 루프(Event Loop)를 통해 JS 엔진의 큐(Que..

Javascript/Javascript 지식2025. 9. 18. 22:21type vs interface

공통점둘 다 객체의 구조(Shape) 를 정의할 수 있음.둘 다 클래스에서 구현(implements) 가능.둘 다 함수 타입, 배열 타입 정의에 사용 가능. type UserType = { id: number; name: string; }; interface UserInterface { id: number; name: string; } const user1: UserType = { id: 1, name: "Alice" }; const user2: UserInterface = { id: 2, name: "Bob" };차이점확장 방식interface → extends로 확장 (여러 개 확장 가능, 합쳐짐)type → & (intersection)으로 확장// interface 확장interface A { ..

Javascript/Javascript 지식2024. 1. 3. 10:25lodash curry, flow

왜씀 ? flow와 curry 함수를 사용하면 코드를 더 간결하게 작성하고 함수형 프로그래밍의 개념을 적용할 수 있다. curry 커링은 함수형 프로그래밍에서 일반적으로 사용한다 부분 적용(Partial Application): 커링된 함수는 필요한 인수를 부분적으로 적용할 수 있습니다. 이를 통해 원하는 시점에 나머지 인수를 전달하여 함수를 완전히 호출할 수 있다. 재사용성 향상: 커링된 함수를 미리 부분 적용하여 새로운 함수를 생성할 수 있으므로, 유사한 동작을 하는 여러 함수를 쉽게 만들 수 있다. 가독성 향상: 커링된 함수를 사용하면 함수 호출이 연쇄적으로 이루어지므로 코드의 가독성이 향상된다. 커링은 함수를 여러 개의 단일 인수를 받는 함수들로 분해하는 과정이며, Lodash의 curry 함수는..

image