728x90 전체 글235 [NestJS] Schedule Lock NestJS 에서 Task Scheduling 을 통해 반복적인 작업을 진행할 때, 단일 인스턴스에서 실행되고 작업이 짧게 끝나는 경우에는 Lock 이 불필요하다. 하지만 아래와 같은 문제가 발생할 수 있기 때문에, Lock 을 설정해주는 것이 좋다.1. 중복 실행 문제 같은 배치 작업이 여러 개의 서버에서 동시에 실행되면 데이터가 중복 처리될 가능성이 있음ex. 이메일 발송, 결제 처리, 재고 업데이트 등2. 데이터 무결성 문제여러 개의 배치 프로세스가 동일한 데이터를 동시에 업데이트하면 데이터 충돌 발생 가능ex. 같은 주문을 여러 번 처리하거나, 같은 데이터를 여러 번 변경하는 경우 3. 리소스 낭비 동일한 배치 작업이 여러 번 실행되면, 불필요한 데이터베이스 요청이나 API 호출로 서버 부하 증가.. 2025. 4. 13. [NestJS] Task Scheduling 서비스를 개발하다 보면 주기적으로 동일한 작업을 처리해야 하는 경우가 생긴다. Task Scheduling 은 특정 시간 간격으로 반복되거나, 특정 시간에 실행되도록 예약된 작업을 자동으로 수행하는 기법이다. 이를 통해 서버에서 반복적인 작업을 자동화하고, 백그라운드에서 실행할 수 있다. 1. Cron Jobs (리눅스)운영체제에서 제공하는 `cron` 스케줄러를 활용할 수 있다.# 1. crontab 편집$ crontab -e# 2. cron 추가# 매일 자정에 실행0 0 * * * /usr/bin/node /home/user/scripts/backup.js# 3. cron 실행$ service cron start ※ Cron 표현식 구조* * * * * *┬ ┬ .. 2025. 4. 7. [Bitbucket] ssh key 설정하기 Bitbucket 에서 Repository clone 시 아래와 같은 에러가 발생했다. git@gitbucket.org: Permission denined (publickey). Bitbucket 의 Private 저장소를 로컬로 받아오려면 두가지 방법이 있다.1. ssh 프로토콜을 이용하여 clone2. http 프로토콜을 이용하여 clone 이 중에서 1번 ssh 프로토콜을 이용하려면 ssh key 를 Bitbucket 에 등록해줘야 하는데, 그 방법을 살펴보자. 1. ssh key 생성ssh-keygen 커맨드를 통해서 리눅스나 맥의 ssh 키를 생성할 수 있다. 여기서 -t 옵션은 RSA, DSA 등 공개키의 타입을 설정하는 것이고, -C 옵션은 코멘트다.$ ssh-keygen -t rsa -C.. 2025. 4. 3. [Git] merge 와 rebase 의 차이점 `git merge` 와 `git rebase` 는 두 개의 브랜치를 합칠 때 사용하는 명령어지만, 브랜치를 통합하는 방식이 다르다. git merge merge 는 두 브랜치의 변경 사항을 하나로 합치는 가장 일반적인 방법이다. 병합 커밋을 생성하여 두 브랜치의 히스토리를 모두 유지한다. 동작 방식# 1. main 브랜치로 이동git checkout main# 2. feature 브랜치를 main 브랜치에 병합git merge feature 장점간단하고 안전함: 공유된 브랜치에서도 안전하게 사용할 수 있다. 병합 기론 보존: 병합 커밋을 통해 두 브랜치가 병합되었다는 기록이 남는다.충돌 해결이 한 번만 발생: 병합 시 충돌이 발생하면 한 번만 해결하면 된다. 단점 히스토리가 복잡해짐: 병합 커밋이 .. 2025. 2. 25. [React] router direct url or refresh 404 Not Found 에러 발생 해결 클릭하면 Route 에서 설정한 path 대로 사이트 이동이 정상적으로 되는데, 직접 url 을 입력하거나 새로고침하는 경우엔 404 에러가 났다. [클릭시 정상적으로 이동] [해당 url 직접 입력 또는 새로고침시 에러 발생] 프론트 개발 시 수정사항이 있을 때마다 `npm build` 하고, output 파일이 생성되면 index.html 을 띄우는 방식으로 확인해야 한다면, 우리는 서비스를 완성하기도 전에 지쳐 쓰러질 것이다. 이를 해결하기 위한 방법으로는 `webpack-dev-server` 라이브러리를 사용하면 되는데, 해당 라이브러리를 사용하면 개발 서버를 띄우고 즉각적인 수정사항이 반영되도록 할 수 있다.하지만 라우팅이 되지 않는 문제가 발생한다...^_^ 보통 개발 서버에서는 요청된 .. 2025. 2. 17. [네트워크] HTTP와 HTTPS HTTP와 HTTPS의 차이점은 무엇인가?대표적인 기술면접 질문 중 하나로 간략하게 대답하자면, HTTP는 웹 브라우저와 서버 간에 데이터를 주고 받는 프로토콜로 데이터를 암호화하지 않고, HTTPS는 HTTP에 SSL/TLS를 추가하여 데이터 전송을 암호화하고 데이터의 기밀성과 무결성을 보장한다. 특징HTTPHTTPS보안암호화 없음 (평문 전송)암호화 적용 (SSL/TLS)신뢰성낮음높음 (인증서 필요)속도빠름초기 연결을 느리지만 최적화 가능포트80443사용 사례일반적인 웹 사이트, 테스트 환경금융, 쇼핑몰, 로그인 시스템 등 보안이 중요한 서비스 "POST 요청하면 안전한거 아니에요?"GET 요청은 데이터를 쿼리 스트링(Query String)으로 전달하기 때문에, 브라우저 주소창이나 로그에 남을 .. 2025. 2. 8. 이전 1 2 3 4 ··· 40 다음 728x90 반응형