본문 바로가기

Programming63

[Node.js] Event Loop와 non-blocking I/O 실행 과정 Event Loop와 non-blocking I/O 실행 과정Node.js가 Single Thread 임에도 어떻게 non-blocking I/O를 처리하는지 알아보자사전 지식스레드 스레드 (컴퓨팅) - 위키백과, 우리 모두의 백과사전위키백과, 우리 모두의 백과사전. 두 개의 스레드를 실행하고 있는 하나의 프로세스. 스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으ko.wikipedia.org 콜백 콜백 - 위키백과, 우리 모두의 백과사전위키백과, 우리 모두의 백과사전. 프로그래밍에서 콜백(callback) 또는 콜백 함수(callback function)는 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 말한다. 콜백을 넘겨받는 코드는 이 .. 2024. 7. 4.
[Javascript] V8 Engine이 string과 number 값을 다루는 방법 V8 Engine이 string과 number 값을 다루는 방법V8 Engine이 자바스크립트의 문자열, 숫자 데이터의 메모리 최적화를 수행하는 방법에 대해 알아보자사전 지식V8 Engine Node.js — The V8 JavaScript EngineNode.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.nodejs.orgConstant pool를 통한 메모리 절약V8 Engine에서는 JS 코드의 런타임 최적화 및 빠른 실행을 위해 다양한 최적화 기법을 사용한다. 그 기능중 하나인 constant pool은 런타임 동안 변하지 않는 상수(bytecode에서 상수로 참조되는 heap 객체)들의 집합을 저장하는 구조이다. V8 En.. 2024. 6. 28.
[Typescript] Module 절대경로 설정 방법 Module 절대경로 설정 방법 타입스크립트 프로젝트에서 소스코드 관리를 위한 절대경로 설정 방법을 알아보자. 절대경로를 사용하는 이유 타입스크립트 프로젝트는 기본적으로 상대경로를 통해 module을 import 하도록 되어있는데 프로젝트나 소스파일의 규모가 커지면 자연스럽게 import 구문도 늘어나면서 소스코드가 더러워질 수 있다. ../으로 도배된 import 구문으로 인해 가독성 저하 소스파일 이동 시 상대경로 변경으로 인한 사이드이펙트 등의 문제가 발생한다. 상대경로 대신에 절대경로를 적용하면 위 문제를 해결할 수 있다. 절대경로 설정 절대경로를 적용하려면 tsconfig.json를 수정해야한다. // tsconfig.json { "compilerOptions": { "baseUrl": ".",.. 2024. 3. 14.
[Typescript] Typescript와 OOP 언어의 Function Overloading 비교 Typescript와 OOP 언어의 Function Overloading 비교 타입스크립트와 객체지향 언어의 함수 오버로드의 차이점에 대해 알아보자 사전 지식 함수 오버로드 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 함수 오버로드(영어: Function overloading)는 다양한 에이다(Ada), C#, C++, 자바(Java) 등의 다양한 프로그래밍 언어에서 사용되는 함수의 특징으로, 같은 함수 이름을 가 ko.wikipedia.org Typescript와 OOP 언어의 함수 오버로드 정의 방법과 차이점 스타크래프트 오버로드 프로그래밍 언어들은 다형성을 만족시키기 위해 함수 오버로드를 지원한다. 그러나 타입스크립트에서는 일반적인 객체지향 언어에서의 함수 오버로드와 다른 .. 2024. 3. 7.
[Python] Python 라이브러리 패키지를 Github Actions를 이용하여 PyPi에 배포하는 방법 Python 라이브러리 패키지를 Github Actions를 이용하여 PyPi에 배포하는 방법 파이썬 라이브러리를 Github Actions을 이용하여 쉽고 빠르게 pypi에 배포하는 환경을 구축해보자. 시리즈 2023.12.08 - [Programming/Javascript] - [Javascript] Javascript 라이브러리 패키지를 Github Actions를 이용하여 npm에 배포하는 방법 2023.12.15 - [Programming/C#] - [C#] C# 라이브러리 패키지를 Git Actions를 이용하여 NuGet에 배포하는 방법 2024.01.02 - [Programming/Java] - [Java] Java 라이브러리 패키지를 Git Actions를 이용하여 Maven centra.. 2024. 2. 23.
[Java] Java 라이브러리 패키지를 Github Actions를 이용하여 Maven central repository에 배포하는 방법 Java 라이브러리 패키지를 Git Actions를 이용하여 Maven central repository에 배포하는 방법자바 라이브러리를 Github Actions을 이용하여 쉽고 빠르게 Maven central에 배포하는 환경을 구축해보자.주의!해당 문서는 sonatype의 정책 변경으로 인해 2024년3월12일 이후에는 유효하지 않습니다.시리즈2023.12.08 - [Programming/Javascript] - [Javascript] Javascript 라이브러리 패키지를 Github Actions를 이용하여 npm에 배포하는 방법2023.12.15 - [Programming/C#] - [C#] C# 라이브러리 패키지를 Git Actions를 이용하여 NuGet에 배포하는 방법2024.02.23 -.. 2024. 1. 2.
[C#] C# 라이브러리 패키지를 Github Actions를 이용하여 NuGet에 배포하는 방법 C# 라이브러리 패키지를 Git Actions를 이용하여 NuGet에 배포하는 방법 C# 라이브러리를 Github Actions을 이용하여 쉽고 빠르게 NuGet에 배포하는 환경을 구축해보자. 시리즈 2023.12.08 - [Programming/Javascript] - [Javascript] Javascript 라이브러리 패키지를 Github Actions를 이용하여 npm에 배포하는 방법 2024.01.02 - [Programming/Java] - [Java] Java 라이브러리 패키지를 Git Actions를 이용하여 Maven central repository에 배포하는 방법 2024.02.23 - [Programming/Python] - [Python] Python 라이브러리 패키지를 Githu.. 2023. 12. 15.
[Javascript] Javascript 라이브러리 패키지를 Github Actions를 이용하여 npm에 배포하는 방법 Javascript 라이브러리 패키지를 Github Actions를 이용하여 npm에 배포하는 방법 자바스크립트 라이브러리를 Github Actions을 이용하여 쉽고 빠르게 npm에 배포하는 환경을 구축해보자. 시리즈 2023.12.15 - [Programming/C#] - [C#] C# 라이브러리 패키지를 Git Actions를 이용하여 NuGet에 배포하는 방법 2024.01.02 - [Programming/Java] - [Java] Java 라이브러리 패키지를 Git Actions를 이용하여 Maven central repository에 배포하는 방법 2024.02.23 - [Programming/Python] - [Python] Python 라이브러리 패키지를 Github Actions를 이용하.. 2023. 12. 8.
[프로그래밍 이론] HTTP forward와 redirect HTTP forward와 redirect HTTP 통신에서 request를 다른 URL로 보내버리는 기법인 forward와 redirect를 알아보자. 포워딩 (Forwading) 포워딩은 클라이언트의 request를 서버 내부에서 다른 리소스로 전달하는 기법이다. 모든 처리가 서버 내부에서 이루어지기 때문에 클라이언트는 이 과정을 알 수 없으며, 클라이언트는 처음 요청한 URL을 유지하게 된다. 단일 요청/응답 구조를 가진다. 리디렉션 (Redirection) 리디렉션은 클라이언트의 request를 새로운 URL로 이동하도록 서버가 클라이언트에게 재안내하는 기법이다. 서버는 클라이언트에게 HTTP 상태코드와 함께 새로운 URL을 제공하여 다시 request를 보낼 것을 명시적으로 알린다. 클라이언트는 .. 2023. 12. 7.
[Javascript] native math operator와 mathjs의 performance 비교 native math operator와 mathjs의 performance 비교 자바스크립트의 기본 수학기호와 mathjs의 함수, fraction 연산의 성능을 비교해보자 Github 본 포스팅에 작성된 소스코드와 예시 데이터는 깃허브에 공개되었습니다. SpiralMoon/mathjs_performance Native operator VS mathjs performance comparison. Contribute to SpiralMoon/mathjs_performance development by creating an account on GitHub. github.com mathjs란? mathjs는 JS에서 수학 관련 기능만 전문적으로 다루는 라이브러리이다. 수학식을 파싱하며 실행하거나 분수표현, 행.. 2022. 1. 24.
[Algorithm] 이동 평균 필터 (Moving average filter) 이동 평균 필터 (Moving average filter) 튄 데이터 값을 보정(평활화)하는 이동 평균 필터 알고리즘에 대해 알아보자 Github 본 포스팅에 작성된 소스코드와 예시 데이터는 깃허브에 공개되었습니다. GitHub - SpiralMoon/moving_average_filter: Move Average Filter Move Average Filter. Contribute to SpiralMoon/moving_average_filter development by creating an account on GitHub. github.com 이동 평균 필터링이란? 이동 평균 필터링은 연속된 데이터에서 인접한 n개 데이터의 평균을 구하여 순차적으로 데이터를 필터링하는 기법이다. 연속된 데이터가 급격하.. 2021. 12. 4.
[Algorithm] 선형 보간법 (Linear interpolation) 선형 보간법 (Linear interpolation) 선형 보간법을 구현하는 방법에 대해 알아보자. 선형 보간법이란? 선형 보간법은 1차원 직선상에서 두 점의 값이 주어졌을 때 그 사이의 값을 추정하기 위해 직선 거리에 따라 선형적으로 계산(비례식)하는 방법이다. 선형 보간이 필요한 상황 위 사진을 보면 점 a와 b가 양쪽에 있고, 그 사이에 점 c가 있다. a와 b의 좌표는 각각 (2, 1)와 (7, 4)로 미리 알고있는 상황이며 c는 a와 b사이의 어느 한 지점이라는 점만 알고 있다. 이와 같은 상황에서 점 c의 x좌표가 임의로 주어졌을 때 선형 보간법을 사용하면 점 c의 y좌표까지 알아낼 수 있다. 선형 보간법을 적용하는 방법 선형 보간법을 적용하는 방법은 다음과 같다. 사진을 보면 a와 b가 어느.. 2021. 4. 22.
반응형