일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 프로그래머스
- Computer Science
- 자바스크립트
- 개발공부
- python algorithm
- algorithm
- REACT
- node.js
- codestates
- 자바
- typeScript
- react 기초
- 컴퓨터공학
- 비동기
- Zerobase
- Python
- useState
- Operating System
- JavaScript
- 알고리즘
- java
- 코드스테이츠
- 글또
- 파이썬 알고리즘 인터뷰
- 운영체제
- 자료구조
- OS
- context switching
- execution context
- 파이썬
- Today
- Total
목록Programming Languages (49)
Back to the Basics
Anatomy of an HTTP Transaction 이 글은 Anatomy of an HTTP Transaction을 읽고 정리한 글입니다. 개인적인 정리이니 의역 다분함을 명심해 주세요. 이 내용을 알기 위해서는 EventEmitter와 Streams에 대해 어느 정도 친숙해야 한다고 한다. (그것을 가정하고 작성된 문서이다) Create the Server node web server는 createServer를 사용하여 web server object를 생성하면서 시작하다. server object는 EventEmitter이다. http.createServer([options][, requestListener]) Syntax cosnt http=require('http') http.createSe..
Events 이 글은 Node.js Ver 17.0.1 documentation을 읽고 정리한 글입니다. 개인적인 정리이니 의역 다분함을 명심해 주세요. Node.js의 대부분 API는 event를 내보내는 "event 기반의 아키텍처"를 사용해서 만들어졌다. emitter라는 특정한 종류의 객체가 내보내는 event는 listeners라고 불리는 함수를 호출한다. 예를 들어, net.Server Object는 peer가 연결할 때마다 event를 내보내고, fs.ReadStream은 file이 열릴 때마다 event를 내보낸다. 그리고 stream은 data가 읽을 수 있을 때마다 event를 내보낸다. 이와 같이 events를 내보내는 모든 객체는 EventEmitter Class의 Instance이..
Underbar Night mare 이번 포스팅에서는 미루고 미뤄왔던 Nightmare 포스팅을 진행하겠다. _. memoize : momoise() method는 Lodash 라이브러리의 method이다. 이미 계산된 값을 일시적으로 기억했다가 다시 호출할 때 다시 계산하지 않고 기억한 값을 출력한다. 이미 해결한 문제는 다시 풀지 않는 기법이다. 완전하게 Lodash 라이브러리의 memoization 구현을 한 것은 아니겠으나, 추후 Memoization에 대해 공부할 일이 생긴다면 한번 더 구현을 해보기로 하자. Parametar func : callback 함수로 memoization을 적용하고자 하는 함수. _.memoize = function (func) { // memo를 하기위한 배열을 선..
삭제 연산 동작 길이가 5인 리스트에서 index 1에 있는 요소를 지우고 싶은 경우 인덱스 1 뒤에 있는 데이터를 모두 한 칸씩 앞으로 밀어서 저장한다. 인덱스 1에 인덱스 2에 있는 요소를 저장한다 인덱스 2에 인덱스 3에 있는 요소를 저장한다 인덱스 3에 인덱스 4에 있는 요소를 저장한다 동적 배열에서 접근할 수 있는 인덱스 범위도 1을 줄여준다동적 배열은 배열의 크기와 개발자가 사용하는 인덱스들의 범위를 따로 관리한다. 삭제 연산 시간 복잡도 삭제 연산도 아무 위치에 있는 데이터를 삭제할 때와 맨 뒤 데이터를 삭제할 때, 두 경우도 나눠서 생각할 수 있다. 최악의 경우 : 맨 앞의 데이터를 지울 때 삭제 연산은 최악의 경우 삭제할 데이터가 맨 앞에 있는 경우이다. 인덱스 1부터 끝까지 모든 요소들..
Node.js - fetch API How to use 기초 편 이번 포스팅에는 Node.js의 API 중 하나인 fetch API에 대해 간단히 알아본 내용과 기본적인 사용법에 대한 내용을 정리하였다. 참고 사이트들 MDN How to use Fetch Fetch API는 URL을 통해 network 요청을 해주는 API이다. Fetch API를 통해 network resource에 접근이 가능하고 HTTP 요청, 파일 다운로드 및 업로드 등의 작업을 가능하게 해 준다. // ! Syntax const fetchResponsePromise = fetch(resource [, init]) Parameters resource : URL 또는 Request object options : request에 추가..
appen는 동적 배열의 끝에 요소를 추가해주는 반면 insertion은 원하는 위치에 요소를 삽입한다. 추가 연산의 시간 복잡도 appen와 마찬가지로 아래 두 경우로 볼 수 있다. 경우1 : 정적 배열에 남는 공간이 있을 때 : 배열 중간에 새로운 요소를 넣을 경우, 가장 뒤의 요소부터 insertion 할 위치까지의 요소들을 하나씩 뒤로 밀어준다. 그 후 빈 공간에 요소를 저장한다. 시간 복잡도 : 최악의 경우 index 0에 요소를 추가할 경우엔 모든 index를 하나씩 뒤로 밀어주게 된다. index로 요소에 접근하는 경우 O(1)이며 n번 반복하므로 O(n)이 된다. 경우 2 : 정적 배열이 찼을 때 : 새로운 배열을 만든 후 기존 데이터를 복사하여 저장한다. 그 후 위와 비슷하게 인덱스를 뒤..
정적 배열 : 배열의 길이가 정해져서 변하지 않는 배열 동적 배열 (dynamic array) : 배열의 길이가 동적으로 변하는 배열: 배열이 꽉 찼을 때 다른 메모리 공간에 기존 배열 크기의 두 배의 공간을 할당하고, 기존 배열을 복사하는 형식으로 내부적으로 공간을 늘린다 동적 배열은 내부적으로는 정적 배열을 기반으로 한 자료구조라고 한다. 그림출처 추가 연산 (append operation) 시간 복잡도 append는 아래의 그림과 같이 배열의 끝에 요소를 추가해주는 연산이다. 그림출처 동적 배열에 값을 추가할 때 시간 복잡도를 알아보자 경우 1 : 정적 배열 남는 공간 있을 때 단순히 index를 이용하여 접근하므로 O(1)이다. 겨우 2: 정적 배열이 꽉 찼을 때 값을 추가하기 위해 현재 사용 중..
Async 이번 포스팅은 이번 주 진행했던 Pair Programming으로 진행한 Async Sprint에 대한 리뷰로 작성하였다. 이번 Sprint의 목표는 1. Node.js의 fs module을 사용하여 비동기 코드를 Callback , Promise, Asyn키워드로 코드를 작성하는 것과 2. fetch API를 활용한 Network 요청과 처리에 대한 간단한 코드를 짜보는 것이다. 구글링이나 강의를 통해 이해했던 것보다 훨씬 공부가 되었던 시간이었다. 1. 비동기 - fs 모듈을 사용한 파일 읽기 이번 Sprint에서 사용 할 Node.js 모듈인 fs.readFile에 대해 간단히 정리해보자. fs.readFile 공식문서 를 참고하였다. fs.readFile(path[, options], ..