본문 바로가기

전체 글159

[JavaScript] Observer 설계 패턴, Worker Thread, 이벤트 루프 1. Observer 설계 패턴객체의 상태 변화에 따라 다른 객체들에게 자동으로 알림을 보내는 디자인 패턴주로 이벤트 핸들링 시스템에서 사용주체 객체와 업저버 객체 간의 일대 다 관계를 설정하여 상태 변화에 대해 옵저버들이 자동으로 업데이트 될 수 있도록 한다.Subject (주체)상태를 가지고 있으며, 옵저버들을 관리하는 역할을 합니다.상태가 변경되면 옵저버들에게 알림을 보냅니다.옵저버들을 등록하고 제거하는 메서드를 제공합니다.Observer (옵저버)주체의 상태 변화를 감지하고, 이에 반응하는 객체입니다.주체에 의해 상태 변화에 대한 알림을 받습니다.주체의 상태 변화에 따라 자신의 상태를 업데이트합니다.장점주체와 옵저버 간의 느슨한 결합(Loose Coupling)을 유지할 수 있습니다.주체의 상태 .. 2024. 7. 25.
[함수형 프로그래밍] 함수형 프로그래밍 1. 프로그래밍 패러다임의 하나로, 함수의 사용과 함수 호출을 중심으로 프로그램을 구성하는 방식입니다. 이 접근법은 순수 함수(pure functions), 고차 함수(higher-order functions), 불변성(immutability), 함수 합성(function composition) 등을 중요시합니다.순수 함수같은 입력값에 대해 항상 같은 출력값을 반환하는 함수함수 실행 중에 외부 상태를 변경하지 않으며, 함수의 실행이 외부 상태에 영향을 받지 않음.// 순수 함수 예제function add(a, b) { return a + b;}고차 함수 (Higher-Order Functions)함수를 인자로 받거나, 함수를 반환하는 함수// 고차 함수 예제function applyOperation(a.. 2024. 7. 24.
[정규표현식] 정규표현식 정리 1. 정규 표현식에서 사용되는 기호를 Meta문자라고 표현한다. 표현식에서 내부적으로 특정 의미를 가지는 문자를 말하며 간단하게 정리하면 아래와 같다.^x : 문자열의 시작을 표현하며 x 문자로 시작됨을 의미한다.x$ : 문자열의 종료를 표현하며 x 문자로 종료됨을 의미한다..x : 임의의 한 문자의 자리수를 표현하며 문자열이 x 로 끝난다는 것을 의미한다.x+ : 반복을 표현하며 x 문자가 한번 이상 반복됨을 의미한다.- x? : 존재여부를 표현하며 x 문자가 존재할 수도, 존재하지 않을 수도 있음을 의미한다.- x* :  반복여부를 표현하며 x 문자가 0번 또는 그 이상 반복됨을 의미한다.- x|y :  or 를 표현하며 x 또는 y 문자가 존재함을 의미한다.- (x) : 그룹을 표현하며 x 를 그룹.. 2024. 7. 23.
[JavaScript] Jest로 테스트 코드 작성하기 1. Jest 환경 설정Jest 설치하기npm i --save-dev jest실행은 npm test 로 실행packge.json 파일 수정 "scripts": { "test": "jest" }, test 파일 작성하기main.test.js 와 같이 .test.을 넣어주면 test시에 테스트 파일만 읽어서 테스트를 수행한다.여러가지 matcher부정문을 쓸경우 not을 붙여주면 된다.ex) expect('A').not.toBe('B')toBe: Object.is를 사용하여 값이 일치하는지 확인합니다. 원시 타입 값 비교에 사용됩니다.toEqual: 객체나 배열의 내용을 비교합니다.toBeNull: 값이 null인지 확인합니다.toBeUndefined: 값이 undefined인지 확인합니다.toBe.. 2024. 7. 23.