본문 바로가기
728x90
반응형

전체 글313

동기(Synchronous) vs 비동기(Asynchronous), 블로킹(Blocking) vs 논블로킹(Non Blocking) 동기, 비동기동기 비동기는 작업의 순서에 초점을 맞춘다. 동기 작업은 요청한 작업이 완료된 후 다음 작업을 진행하기 때문에 작업의 순서가 보장된다. 비동기 작업은 작업을 요청한 후 완료 여부를 따지지 않고 바로 다음 작업을 진행하기 때문에 작업의 순서가 보장되지 않는다. 비동기의 장점은 요청을 보내고 완료 여부를 따지지 않기 때문에 여러 작업을 동시에 진행할 수 있지만 어떠한 작업이 먼저 완료되는지 알 수 없다. 블로킹, 논블로킹블로킹, 논블로킹은 코드의 흐름을 제어할 수 있는 제어권에 초점을 맞춘다. 블로킹 방식은 함수를 호출하면 호출한 함수에게 제어권을 넘겨주기 때문에 코드의 흐름이 멈춘다. 논블로킹 방식은 함수를 호출하면 제어권을 자신이 가지고 있기 때문에 코드의 흐름이 멈추지 않는다. 동기 + 블.. 2024. 8. 22.
[Node.js] Node.js V8 엔진과 JIT 컴파일러 인터프리터와 컴파일러 자바스크립트 엔진이란 자바스크립트 코드를 실행하는 프로그램, 인터프리터, 컴파일러를 의미한다. 자바스크립트 엔진은 인터프리터 일수도 있고 JIT 컴파일러를 사용할 수도 있는데 먼저 인터프리터와 컴파일러의 차이를 알아야 한다. 인터프리터컴파일러한 줄 씩 번역한 후 실행한다.전체를 번역 한 뒤 실행한다. 인터프리터의 경우 컴파일 과정이 없고 한 줄 씩 번역해서 실행하기 때문에 실행 속도가 빠르다. 컴파일러의 경우 컴파일 과정이 존재하기 때문에 인터프리터에 비해서 실행 속도가 느리지만 전체에 대해서 미리 번역하기 때문에 중복을 줄일 수 있다. 같은 결과를 반환하는 함수를 10번 실행한다고 해보자. 인터프리터는 함수를 실행할 때마다 함수를 번역한 뒤 실행하기 때문에 불필요한 과정이 포함된다.. 2024. 8. 21.
[Git] git 비슷한 명령어 제대로 이해하기 (fetch/pull, checkout/switch, merge/rebase) 로그인이라는 기능을 구현할 때 git을 활용하여 버전 관리를 한다고 하면 일반적으로 다음 과정을 거친다. 1. login 브랜치를 생성한다.git branch login 2. login 브랜치로 이동한다.git checkout login 3. 변경 사항들을 작은 단위로 나누어 커밋한다.git add *git commit -m "Feat: Form 구현"git add *git commit -m "Feat: 유효성 검사 구현" 4. main 브랜치에 머지한다.git checkout maingit merge login 5. 원격 저장소에 push 한다.git push origin main 6. 이후 원격 저장소에 변경사항이 있다면 pull 한다.git pull origin main 위 명령어들만 알아도 git.. 2024. 8. 19.
[CodeTree] 격자 칠하기 2 https://www.codetree.ai/missions/8/problems/painting-the-grid-2/description 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 알고리즘bfsparametric search 이 문제는 결정 문제로 변환한 뒤 이진 탐색을 진행하는 평범한 parametric search 문제이다. bfs와 parametric search 기본 지식이 있으면 풀 수 있는 문제지만 초반에 시간 복잡도 계산을 잘못해서 한참 삽질을 해서 가져와 보았다. 이진 탐색으로 d의 범위를 좁히면서 조건을 만족하는 가장 작은 d를 찾으면.. 2024. 8. 18.
728x90
반응형