Programming
-
Random Id generatorProgramming 2022. 12. 30. 10:03
crypo randomFillSync https://www.geeksforgeeks.org/node-js-crypto-randomfillsync-method/ nanoId - https://github.com/ai/nanoid import { randomFillSync } from 'crypto' const POOL_SIZE_MULTIPLIER = 128 let pool, poolOffset function fillPool(bytes) { if (!pool || pool.length < bytes) { pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER) randomFillSync(pool) poolOffset = 0 } else if (poolOffset ..
-
디자인 패턴Programming 2022. 12. 23. 17:47
* 헤드퍼스트 디자인패턴(개정판), Node.js 디자인 패턴 바이블 책을 보며 이해하고 작성, 참고 또는 직접 작성한 코드를 적어본다. * 구상(Concrete) 클래스: new 키워드를 사용하여 인스턴스를 만드는 클래스(=구현 클래스) * 추상(Abstract) 클래스: 하나의 추상 메소드를 포함하는 클래스로 이를 상속하는 자식 클래스는 추상 메소드를 구현해야함 * 인터페이스(Interface): 클래스의 공통된 기능을 정리한 명세서 * 컨택스트(Context): 사용자가 관심 있는 인터페이스를 정의/문제에 대한 정의,상황 옵저버 전략 패턴 특정 변경이 필요한 부분을 별도의 상호 교환 가능한 (전략) 객체로 추출하여 로직의 변경이 용이하도록 함 추출하여 합성하는 것이 포인트 해당 패턴을 알기전에 합성..
-
[책] 함께 자라기 - 1장Programming 2021. 12. 11. 08:30
1장 자라기 내가 알고 있는 것을 활용하기 - 많이 알기 / 알고 있는 것을 어떻게 활용하는지 알고 있는 것들을 잘 정리, 연결하기 나를 개선하기 나의 작업 -공부, 프로젝트 진행 나의 작업 자체 개선하기 나의 작업을 되돌아보는 회고.반성을 주기적으로 하는 프로세스 피드백을 자주 받기 피드백을 받으면 잘못된 것에 대한 수정을 할 수 있음 나의 작업에 대한 피드백을 받아서 나의 작업이 좋고/나쁨에 의한 개선이 가능 실력 개선 동기와 구체적이고 적절한 시기에 피드백 단순 반복은 실력이 향상되지 않음 작업 난이도 내 실력 작업 난이도 작업을 어렵게 하기 위해서 새로운 방법 적용(새로운 툴, 키보드만 사용하기 등등) 적절한 난..
-
[TEST] 1. 테스트를 시작하게 된 계기Programming 2021. 10. 23. 00:19
다음 글 2021.10.24 - [개발 고민들] - [TEST] 2.테스트 코드 작성하기 최근 영어 구동사, 이디엄 검색 앱을 만들면서 반복적으로 발생했던 부분이 있다. 간단하게 말해보자면, 프론트단-서버단 사이 데이터 요청/응답을 더 효율적으로 하기 위해 서버에서 계산하는 로직, 응답으로 보내주는 리소스의 구조 등등이 계속 변경되었다. 구체적인 예를 들면, 프론트에서 서버로 데이터를 요청하고, 이에 해당하는 데이터를 응답으로 보내주는 과정에서 프론트에서 필요하지 않은 데이터는 보내지 않아야 하는데 처음엔 저장된 데이터(구동사 리스트+각 구동사의 정의,예제)가 많이 없어 다 같이 보내다가 데이터가 많아진 이후부터는 바꿔야겠다는 생각이 들었다. 최소한 필요한 정보(구동사 리스트)만 보내고 클라이언트에서 특..