본문 바로가기

dev/개발일지14

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.
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.
해시 함수들 속도 || 그 외 암호시스템 계기 jwt 토큰 발급시 유저들마다 secret 키를 다르게 해주기위해 secret 키와 user의 pk 를 암호화해서 secret 키를 포함하여 토큰을 발급해주었다. 이 상황에서 해시 함수를 어떤걸 써야될지 고민이되었다. 암호시스템 1. HMAC [Hash-based Message Authentication Code ] 해싱에 대해서 다시 얘기해볼 때 입력값이 같다면 해싱된 해시값은 항상 동일하기 때문에 수정에 대한 검출은 가능하지만 거짓 행세하는 것을 검출하기는 어렵다. 거짓행세에 대해 검출하고 차단하기위해 SHA256으로 해싱된 메세지를 메세지 인증 코드(private key 2022. 2. 8.