본문 바로가기

전체 글34

[Algorithm] 삽입 정렬(Insertion Sort) 정의 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬하는 알고리즘 매 순서마다 해당 원소를 삽입할 수 있는 적절한 위치를 찾아 삽입 ex) 각 숫자를 적절한 위치에 삽입하기 과정 정렬할 원소를 기존에 정렬된 원소들 사이의 올바른 자리를 찾아 삽입한다 정렬이 안 된 원소들 중 한 원소를 대상으로 위 과정을 반복한다 Python 코드(오름차순) def insertion_sort(array): n = len(array) for i in range(1,n-1): j = i while array[j] > array[j+1]: temp = array[j] array[j] = array[j+1] array[j+1] = temp j-=1 return .. 2021. 1. 3.
[Node.js] Express와 미들웨어 Express란? Express는 웹을 빠르고 편하게 개발할 수 있도록 도와주는 프레임워크입니다. Express라는 뼈대에 여러 기능들을 붙여 하나의 완성품을 만들어낼 수 있습니다. Express의 특징 미들웨어 미들웨어는 서버가 클라이언트의 요청을 받고 응답을 하는 중간 과정에 거쳐가는 함수들입니다. (미들웨어에는 다양한 레벨이 있습니다) next()를 통해 다음 미들웨어로 현재의 요청을 넘길 수 있습니다. 즉, 미들웨어는 순차적으로 처리되며 순서가 중요합니다. 예를 들면, 인증된 요청만 받기 위해 인증미들웨어를 구현하거나 요청정보를 로깅하기 위해 로깅미들웨어를 구현할 수 있습니다. 다음은 로깅작업을 대신해주는 써드파티 미들웨어 morgan의 사용 코드입니다. const express = require.. 2020. 12. 31.
[Node.js] Node.js 개념 및 특징(+동기와 비동기) Node.js 란? Node.js는 브라우저 밖에서 실행할 수 있는 Javascript 실행환경입니다. 과거 Javascript는 브라우저에서만 사용(버튼 Event, 사용자 입력 등) 되었지만 현재는 다양한 개발 분야에서 사용되고 있습니다. Node.js의 특징 1.크롬에서 사용되는 V8 엔진을 사용합니다. 2.단일 쓰레드 이벤트 루프 기반이며 I/O를 비동기식 처리합니다. 3.방대한 모듈 시스템을 갖추고 있습니다. (기본 / 써드파티 / 사용자 정의) Node.js의 Event Processing Model 이벤트는 Event Queue에 담겨 순서대로 처리됩니다. 매 이벤트를 처리하며 순환되는 Event Loop는 싱글 쓰레드이며 한 번에 하나의 이벤트만 처리할 수 있습니다. 하지만 파일, 네트워크.. 2020. 12. 24.
[Algorithm] 선택 정렬(Selection Sort) 정의 해당 순서에 원소를 넣을 위치는 이미 정해져 있고, 어떤 원소를 넣을지 선택 하는 알고리즘 ex) 오름차순 정렬일경우, 가장 작은 것을 선택 하여 제일 앞으로 보내기 과정(오름차순) 1. 주어진 배열중에서 최솟값을 찾는다 2. 찾은 최솟값을 정렬되지 않은 배열 중 맨 앞의 값과 교체(Swap)한다 3. 위 과정을 반복한다 Python 코드(오름차순) import math def selection_sort(array): n = len(array) idx = 0 for i in range(n-1): min = math.inf for j in range(i, n): if array[j] < min: min = array[j] idx = j temp = array[i] array[i] = array[idx.. 2020. 12. 23.