본문 바로가기
728x90

전체 글234

[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.
[MySQL] 트랜잭션 격리 수준 트랜잭션에 관해서는 아래 포스트에서 정리했다. 더 나아가서 트랜잭션의 격리 수준에 대해서 정리해보자.- https://yonikim.tistory.com/154   트랜잭션의 격리 수준이란 여러 트랜잭션이 동시에 실행될 때, 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 허용할지 여부를 결정하는 것이다. 낮은 격리 수준은 동시 처리 능력을 높이지만, 데이터의 일관성 문제를 발생시킬 수 있다. 반대로 높은 격리 수준은 데이터의 일관성을 보장하지만, 동시 처리 능력이 떨어질 수 있다.즉, 데이터 정합성과 성능은 반비례한다.   트랜잭션 격리 수준의 종류와 특징 1. READ UNCOMMITTED 커밋이 되지 않은 트랜잭션의 데이터 변경 내용을 다른 트랜잭션이 조회하는 것을 허용한.. 2025. 1. 19.
728x90
반응형