본문 바로가기

dev18

Batch vs Scheduler ( 배치와 스케쥴러 차이) Batch 사용자와의 상호 작용 없이 여러 작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하는 것을 의미한다. 정기 배치 일, 주, 월과 같이 정해진 기간에 정기적으로 수행 이벤트성 배치 특정 조건을 설정해두고 조건이 충족될 때만 수행 On-Demand 배치 사용자 요청 시 수행 배치 프로그램(Batch Program)이 갖추어야 하는 필수 요소 대용량 데이터 대량의 데이터를 가져오거나, 전달하거나, 계산하는 등의 처리가 가능해야 한다. 자동화 심각한 오류가 발생하는 상황을 제외하고는 사용자의 개입 없이 수행되어야 한다. 견고성 잘못된 데이터나 데이터 중복 등의 상황으로 중단되는 일 없이 수행되어야 한다. 안정성/신뢰성 오류가 발생하면 오류의 발생 위치, 시간 등을 추적할 수 있어야 한다. 성능.. 2022. 4. 23.
Release-note.title 에 따라 배포 분기처리하기 [ GItHub Action ] 계기 한 repo 에서 해외 서비스 국내서비스 를 모노레포 식으로 가져갈려고한다. 그러면서 생기는 문제점이 현재 release-note 를 작성하면 production 에 배포 되는데 해외 국내 둘다 배포 된다. 현 문제를 해결하기 위해 docs, 구글링을 하며 검토를 해보았다. 그 결과 release-note.title 을 특정 조건으로 분기처리를 해야겠다고 마음먹었다. 하지만 이렇게만 해놓으면 누군가가 title을 깜밖하고 안적을수도있는 휴먼적인 err 가 날 수 가있다. 이러한 상황을 조금이라도 해결하기위해 release-note template 을 구현하면 좋겠다고 생각하였다. Flow 1. master 에 push || merge 시 release-note 초안생성 2. git action ym.. 2022. 4. 10.
TDD 하기전 개념잡기 [1] [ Test Double] 테스트 더블 Test Double 이란 실제 객체를 대신하여 테스팅에서 사용하는 모든 방법을 일컬여 호칭하는 것이다. - 영화 촬영시 위험한 역할을 대신하는 스턴트 더블에서 비롯되었다. 역할 테스트 대상 코드를 격리합니다. 테스트 속도를 개선합니다. 예측 불가능한 실행 요소를 제거합니다. 특수한 상황을 시뮬레이션합니다. 테스트 대역의 필요성 테스트 대상에서 의존하는 요인 때문에 테스트가 어려워질 때 필요한 것이다. 테스트를 작성하다 보면 외부 요인이 필요한 시점이 있는데, 다음은 외부 요인이 테스트에 관여하는 주요 예이다. 테스트 대상에서 파일 시스템 사용 테스트 대상에서 DB로부터 데이터를 조회하거나 데이터를 추가 테스트 대상에서 외부의 HTTP 서버와 통신 이러면 테스트가 어려워진다. 예를 들면 외부 API 서버.. 2022. 4. 3.
package.json [ tilde, caret ],[ major, minor, patch ] 계기 어제 package-lock.json 블로깅을 하다가 틸드, 캐럿 range 라는 키워드를 알게되었다 해당 키워드를 구글링 했을대 major, minor , patch 라는 키워드도 같이 알게 되어 흥미가 생겨 블로깅을 하게 되었다. 우선 틸드 와 캐럿을 알기전에 먼저 major, minor, patch 에 대해 알아보겠다. SemVer Semantic Versioning의 줄임말로, 버전 형식에 의미를 부여하여 좀 더 체계적인 버전 관리를 위한 제안입니다. 배포 정책이나 시기에 따라서 버전이 매겨지거나, 의미 없이 버전이 올라가는 것을 지양하며 버저닝에 대한 명확한 의미를 부여합니다. 버전의 형식은 [Major].[Minor].[Patch] 형식으로 한다. package.json 파일에서 "dev.. 2022. 3. 27.
package-Lock.json 을 굳이 깃에 같이 저장해야 될까?? 계기 npm 을 사용하면 package-lock.json 파일이 같이 생깁니다. 이파일에 대하여 궁금했지만 다른것을 우선시여기면서 공부하여 몇 차례 넘기고 이제서야 찾아보았습니다. package-lock.json 이란 npm을 사용해서 node_modules 트리나 package.json 파일을 수정하게 되면 자동으로 생성되는 파일입니다. 이 파일은 파일이 생성되는 시점의 의존성 트리에 대한 정확한 정보를 가지고 있습니다. package-lock.json 이 필요한 이유 package.json 파일의 의존성 선언에는 version range가 사용됩니다. version range란 특정 버전이 아니라 버전의 범위를 의미합니다. 가장 흔한 예로 npm install express를 실행하게 되면 packa.. 2022. 3. 26.
JS 랜덤 비밀번호 추출 [ 특수문자, 대문자, 소문자, 숫자 ] 포함 계기 로그인 || 회원가입 비밀번호 설정시 특수문자, 대문자 , 소문자, 숫자가 포함된 8~16개 이내의 문자열이어야된다. 비밀번호를 까먹었을때 이메일 인증하여 이메일로 랜덤 비밀번호를 보내준다. private randomPW(lenth) { let text = ''; const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_+~`{}[]:;?,./|'; for (let i = 0; i < lenth; i++) text += possible.charAt( Math.floor(Math.random() * possible.length), ); return text; } 랜더 비밀번호는 해당 로직을 써서 .. 2022. 2. 23.