일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- node.js
- codestates
- Zerobase
- 자료구조
- REACT
- JavaScript
- react 기초
- 운영체제
- OS
- 자바
- 글또
- 프로그래머스
- 파이썬 알고리즘 인터뷰
- 코드스테이츠
- algorithm
- execution context
- python algorithm
- Python
- java
- Operating System
- 컴퓨터공학
- 파이썬
- 자바스크립트
- context switching
- useState
- 알고리즘
- 비동기
- 테스트코드
- Today
- Total
목록Programming Languages (51)
Back to the Basics

정적 배열 : 배열의 길이가 정해져서 변하지 않는 배열 동적 배열 (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], ..

이번 포스팅은 Node.js란 무엇이고 모듈을 사용하는 방법에 대한 공부한 내용에 대한 정리 포스팅이다. 1. Node.js란?? Node.js 의 정의 Node.js는 로컬 환경에서 JavaScript를 실행할 수 있는 자바스크립트 런타임이다. 런타임이란? Wikipedia에 따르면 , "In computer science, runtime, run time, or execution time is the final phase of a computer program's life cycle, in which theon the computer's central processing unit as machine code." 이라고 한다. 간단하게 해석을 해보면 CPU에서 기계어 코드가 실행되고 있는 단계하고 보면..

Asynchronous 이번 포스팅에서는 JavaScrit에서 Asynchronous 흐름을 구현하는 방법들에 대해 정리해 보겠다. JavaScript의 비동기 흐름은 callback, promise, async/await 중 하나의 문법으로 구현이 가능하다. 비동기 함수 전달 패턴 1: callback 패턴 비동기 함수 전달 패턴 2 : 이벤트 등록 패턴 1. Callback pattern callback 함수를 동기적으로 사용하는 경우와 비동기 적으로 사용하는 경우에 대해 비교해보자. 동기적으로 사용하는 경우 (이전에 예시로 사용했던 코드가 잘못되어 다시 수정했습니다ㅜ) 아래의 코드를 실행하면 sleep함수는 3초 후에 cb함수를 실행한다. 그리고 나서야 222를 출력한다. 즉, 222를 출력하는 코..

Asynchronous Achievement Goals Synchronous의 개념에 대해 이해한다. Asynchronous의 개염에 대해 이해한다. Asynchronous를 왜 사용하는지 이해한다. 1. 비동기 호출이란? 1. 동기(Synchronous) 비동기를 이해하기 위해 동기(Synchronous)를 먼저 알아보자. 실행 완료 시점과 실행 시작 시점이 같은 것을 동기적(Synchronous)이다 라고 한다. 요청에 대한 결과가 동시에 일어난다. 요청에 blocking이 있다. blocking이란, "A process that is blocked is one that is waiting for some event" 앞의 실행이 끝날 때까지 다른 작업을 하지 못함을 의미한다. 상당리 long-run..

꼬리 재귀(Tail recursion in JavsScript) 너무 많은 재귀 호출은 메모리 초과 (Stack overflow) 오류를 발생시킬 수 있다. Tail recursion(꼬리 물기 재귀)은 call stack에 새로운 stack을 생성하지 않고 함수를 참조할 수 있게 한다. 다음 연산에 필요한 값을 다음 루틴에 넘기면 호출당했던 곳으로 돌아와 연산을 거칠 필요가 없어 메모리에 쌓이지 않고 한 번씩만 호출되도록 만드는 형태이다. 많이 사용하는 예제인 factorial 함수를 예로 들어보자. [일반적인 재귀 코드] function factorial(n){ if(!) return 1; return n*factorial(n-1); } 위의 코드는 다시 호출 당했던 곳으로 돌아가게 되는 일반적인 재..

재귀 함수와 메모리 사용량 간의 관계 문제를 풀다 보면, 재귀 함수가 참 편리할 때가 있다. 반복문보다는 재귀를 쓸 때가 더 편할 때도 있지만, 아무래도 함수를 한번 더 콜 하기 때문에 부담스러운 부분이 있는 것 같다. 프로그래머라면 사용하는 함수 또는 메서드, 알고리즘의 시간 복잡도나 메모리 사용량에 대해서 알아야 한다. 앞으로도 많이 사용할 재귀의 메모리 사용량에 대해서 알아보자! 1. 재귀란? 간단하게, 재귀에 대해서 먼저 알아보자! 재귀는 간단한 동작 하나를 반복적으로 처리해야 할 때 , 간단한 동작을 재귀를 사용하여 반복함으로써 작업을 단순화 시킬 수 있는 자료구조이다. 재귀는 1. 주어진 문제를 비슷한 구조의 더 작은 문제로 나룰 수 있는 경우 2. 중첩된 반복문이 많거나 반복문의 중첩 횟수(..
알고리즘 문제를 풀면서 정규식을 사용하면 코드를 더 간결하고, 불필요한 반복문 또는 조건문을 줄일 수 있다는 것을 알게 되었다. 20줄이 넘는 코드를 단 10줄도 안 되는 코드로 작성된 것을 보고 충격을 받은 이래로 정규식에 대해 조금 더 알고 있으면 좋을 것 같다는 생각을 했다. MDN을 읽어보고 정규 표현식의 사용법을 간단하게 소개한 후 기호의 사용화 메서드의 사용 위주로 포스팅을 진행하겠다. 정규표현식 엔진이 언어 별로 달라 일부 표현이나 문법이 다르다고 한다. 이 포스팅은 JavaScript를 기준으로 작성되었다. 1. 정규식에 대하여 정규표현식 (Regular Expression, 이하 정규식) 이란 문자열에 포함된 특정 문자열을 조작하기 위해 사용하는 패턴이다. 정규식을 사용하는 이유는 아래와..