개발 이야기 94

숫자 키패드만 올리기

가끔 숫자만 입력하는 기능을 구현하면서 input 타입을 type=number 로 처리하는 개발자들이 있는데, 이건 좋지 못하다. 이렇게 넣어주자. 직접 확인하고, 실무에도 적용한 사례니 마음 놓고 사용하면 된다. https://inputtypes.com/ Input Type Sandbox Input Type Sandbox is a front-end testing tool for form input types, validation patterns, onscreen keyboards and more! inputtypes.com

NX를 이용한 모노레포 개발

우리팀은 다양한 서비스를 개발하고 있는데, 과거에는 이 모든 서비스가 하나의 CRA 프로젝트 안에 있었다. 내자산, 결제내역, 후불결제, 신용점수, 대출 서비스 등등... 서비스가 늘어나고, 개별 서비스의 덩치도 커지게 되면서 각 서비스들은 독립을 결정 할 수 있게 되었다. 물론, 모든 서비스의 baseDomain은 유지해야 했기에 진입 nginx는 함께 사용하고 subPath로 라우팅을 걸었다. 독립 의사도 각 담당자의 자율이었고, 어떤 프레임워크를 사용할지도 자율이었다. 당연하게도 내가 담당하고 있는 대출 서비스도 독립을 결정하게 되었다. 레포를 새로 파고, 대출 서비스 특성상 서버 환경이 있으면 여러모로 편하기 때문에 nextjs 기반으로 구성했다. 그렇게 쿠버네티스 설정까지 끝내고 무사히 배포를 ..

이벤트 구독 패턴 EventEmitter - 4

콜백 패턴 자바스크립트를 사용하다보면 콜백 패턴을 이용하게 된다. async/await 구문의 등장으로 과거보다 콜백 사용이 많이 줄었지만 여전히 콜백은 즐겨 사용되고 있다. 우리가 콜백을 사용할 때의 상황을 단순화 하면 다음과 같다. 특정 시점에, 콜백이 실행되기를 기대한다. 이것이 콜백의 핵심이자 전부다. 이벤트 구독 패턴 이벤트 구독 패턴은 콜백 패턴과는 다른 방식으로 콜백과 같은 핵심에 접근한다. 1. 특정 시점에 실행 되길 바라는 함수들은 이벤트를 구독한다. 2. 특정 시점이 되면 이벤트를 발생시킨다. 이렇게 두가지 레이어가 이벤트 구독 패턴에서는 명확하게 구분된다. Node에서는 기본적으로 이벤트 구독 패턴을 쉽게 사용할 수 있도록 EventEmitter 클래스를 제공한다. let em = n..

버퍼 Buffer - 3

자바스크립트는 문자열 처리에는 효과적이지만 바이너리 데이터는 잘 처리하지 못합니다. 하지만 문자열만 가지고 다양한 데이터를 처리하기란 매우 어렵습니다. 물론 일반적인 상황에서 Buffer 를 사용하는 일은 흔치 않을 것 입니다. 하지만 파일 업로드, 이미지 조작 등의 작업에 Node를 사용한다면 Buffer가 필요합니다. 개발자가 원하는 만큼의 메모리 할당이 필요한 경우에도 필요합니다. 버퍼 클래스의 경우 메모리가 자바스크립트 VM의 외부 힙에 지정되게 됩니다. 따라서 해당 데이터는 가비지 컬렉션으로 인해, 위치가 이동되지 않습니다. 이는 CPU 사용에 보다 효율적입니다. let x = new Buffer.from('Hello') console.log(x.toString()) // Hello let y ..