본문 바로가기

전체 글

(291)
[부가정보] https 로컬에서 사용하기 웹 브라우저에서 지원하는 일부 기능은 HTTPS 프로토콜을 요구한다. 대표적인 예가 WebRTC. 로컬에서 https를 동작하는데에 대한 구글의 가이드가 있다. 예전에 클론 코딩할 때 사용해봤는데, 잊어버려서 기록해둔다. https://web.dev/how-to-use-local-https/ 로컬 개발에 HTTPS를 사용하는 방법 web.dev
피드백 1 어떤 경로에선가 깨달았던 점들... 테스팅 공부: 테스팅 툴을 다룰 줄 몰라서 접근제어자를 제거하는 심각한 실수를 저지름. 이건 정말 여태까지 테스팅에 관심을 가지지 않은 나의 잘못이 크다. jest 같은 툴을 제대로 공부해서 개발할 때 테스팅을 함께해야 함. 여태까지 너무 안일하지 않았나 생각이 든다. spyOn 메서드를 사용하면 자바스크립트 기준 접근제어자가 있는 메서드도 테스팅 가능. 타입스크립트는 자바스크립트의 슈퍼셋 언어라, 컴파일하면 자바스크립트 코드로 변환 자바스크립트의 함수는 일급 함수(함수도 객체로 취급 가능)라 추출 가능 위 둘로 인해 타입스크립트라고 해도 실제 동작할 때는 접근제어자를 무시하고 동작하는 테스트가 가능. 특정 함수(spyOn)에서 속성 명으로 클래스에 접근하는 기능을 사..
[nestjs] DI token https://docs.nestjs.com/fundamentals/custom-providers#non-class-based-provider-tokens Documentation | NestJS - A progressive Node.js framework Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Re..
[프로그래머스] 방문 길이 https://school.programmers.co.kr/learn/courses/30/lessons/49994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr x, y 각각 최소 -5, 최대 5의 좌표를 가지는 좌표 공간에 대해 4 방향(L, R, U, D)으로 움직일 수 있다. 경계를 넘어가는 입력은 무시하며, 이동한 "경로"의 길이를 구하는 것이 이번 문제에서 원하는 답이다. 문제를 풀 때 작성해야 하는 코드는 크게 2가지로 나뉠 것 같다. 격자에서 좌표의 이동을 계산하는 알고리즘 이동한 경로를 기록하는 알고리즘 1번의 경우 단순히 아래와 같이 나타..
[백준] 4948, 베르트랑 공준 https://www.acmicpc.net/problem/4948 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net N 초과 2N 이하 범위의 소수를 선택하는 알고리즘을 작성하는 문제다. n의 범위는 [ 1, 123456 ] 이므로 현재 문제에서 나타나는 숫자의 범위는 1 ~ 246912 ( 2N )으로 한정된다. 브루트 포스 가장 큰 숫자인 246912 기준 제곱근을 씌우면 소수 판별을 위해 496번의 연산을 필요로 한다. 이 수치가 상당히 작다고 생각해서 맨 처음에는 N이 들어올 때마다 각각 연산하여..
[nodejs] esbuild 전체 폴더 감시하기 https://esbuild.github.io/ esbuild - An extremely fast bundler for the web esbuild An extremely fast bundler for the web Above: the time to do a production bundle of 10 copies of the three.js library from scratch using default settings, including minification and source maps. More info here. Our current build tools for the web ar esbuild.github.io esbuild는 많은 번들링 툴(여러 코드 베이스를 하나로 뭉치기) 중 하나로, 공식 ..
[nodejs] nodemon + ts-node을 es module 환경에서 사용하기 https://nodemon.io/ https://github.com/TypeStrong/ts-node nodemon은 프로젝트 내에서 지정된 파일을 감시하여 변경이 발생하는 경우 앱을 재시작하는 기능을 가진 패키지로, 개발 환경에서 코드가 변경될 때마다 수동으로 앱을 재시작해야 하는 부담을 덜어준다. ts-node는 내부적으로 타입스크립트 컴파일러를 이용하여 생성된 자바스크립트 파일을 실행해주는 패키지이다. 이러한 동작은 어디까지나 "내부적"으로 처리되기 때문에 개발 환경에서는 자바스크립트 파일이 생성되지 않는다. tsconfig.json 파일 내에 outDir을 따로 지정해두지 않으면 타입스크립트 파일이 있는 위치에 컴파일되어 코드가 상당히 난잡하게 섞이는데, ts-node을 이용하면 이런 지저분한 ..
[디자인패턴] 메멘토 패턴 설명 캡슐화를 위배하지 않으면서 특정 객체의 상태를 따로 실체화해 둠으로써 나중에 객체의 상태를 복원할 수 있게 한다. 보통 다음과 같은 동작이 요구된다. 상태를 이전으로 되돌릴 수 있음 상태 객체에 대한 접근은 데이터에 대한 원 객체만 가능해야 함 어떤 프로그램은 undo(되감기) 기능을 요구하며, 이를 위해서는 현재 객체의 상태를 따로 분리하여 저장해둬야 한다. 이때 분리된 객체 메멘토가 가지고 있는 상태는 원 객체의 이전 정보를 담고 있으므로 (1) 원 객체만 상태 정보에 접근할 수 있어야 하며, (2) 중간에 악의적인 사용자가 마음대로 이전 상태 정보를 수정하여 반영할 수 있어서는 안 된다. 이를 위해서는 원 객체에서만 메멘토에 접근할 수 있게 하는 구현이 요구된다. 전체적인 메멘토 패턴의 동작 ..