
백엔드 CI/CD 파이프라인을 구축하고 워크플로우를 실행 하던 중에 특이한 점을 발견했다. 일반적으로 모든 과정이 성공적으로 진행 된 경우, "Done in n초(s)" 와 같은 완료 메시지가 표시되어야 하는데, 이번에는 Killed pnpm install이라는 메시지가 나타났기 때문이다. 더 흥미로웠던 점은 메시지가 표시된 후에도 파이프라인이 계속 진행되어 배포가 성공적으로 완료되었다는 것이다. 패키지 설치 단계가 실패했다면 전체 워크플로우도 실패로 표시되어야 할 것 같은데 왜 이런 현상이 발생했을까? 😲 OOM(Out Of Memory)먼저 Killed pnpm install 에러가 발생한 이유에 대해 알아보았다.보통 Killed ~ 메시지는 Linux의 OOM(Out of Memory) Kil..

서버를 배포하기 위해 AWS EC2 인스턴스를 사용해서 배포를 진행했다. SSH 방식으로 서버 내에서 빌드와 배포를 진행하는 방식을 선택했는데 배포 과정에서 'command not found' 에러가 발생하게 되었다. 하지만 SSH로 직접 접속했을 때는 해당 문제가 발생하지 않았었고 pnpm, pm2 패키지가 프로젝트 내에 제대로 설치되어 있다는 점을 확인한 후에, CI/CD 방식으로 배포 시 환경변수를 읽어오지 못하는 것 같다고 판단했다.이 문제를 해결하는 과정에서 Linux Shell의 설정 파일들과 non-interactive shell, non-login shell에 대해 공부하게 되어 정리해보려 한다. Shell이란?Shell이란 리눅스 커널과 사용자를 연결해주는 인터페이스를 말한다. 쉘은 크..
인턴에 참여해서 처음 백엔드 개발을 하게되었고 그 과정 중 귀한 경험을 했다. 바로 Mongo DB가 해킹당한 것..! 사실 해킹 당하기 며칠 전에 팀원들과 함께 모각코를 했었는데 그 날 Mongo DB 세팅을 진행하고 있었다. 이후에 한 팀원이 어떤 블로그 글을 읽으면서 Mongo DB 해킹 조심하라며, 비트코인 요구한다고 해서 당시에 그냥 웃으면서 흘려들었는데 며칠 뒤에 실제로 해킹당했다.. 나는 Mongo DB 서버를 AWS EC2에 배포했었는데 어느 순간 부터 아래와 같이 비트코인을 달라는 문구와 함께 주기적으로 데이터가 초기화되는 현상이 발생했었다. 처음에는 DB가 하루에 한 번 꼴로 초기화 되길래 팀원들이 테스트를 위해 일시적으로 데이터를 삭제한 줄 알았다. 하지만 그런 작업을 한 팀원이 ..

Next.js를 배우면서 간단한 백엔드 서버를 만들게 됐는데, Mongoose라는 라이브러리로 MongoDB를 연동했다. 조약하지만 백엔드 서버는 처음 만들어봐서 재밌다ㅎㅎ MongoDB와 Mongoose에 대한 공부는 차차 할 예정이고, 오늘은 실습을 하면서 마주쳤던 에러에 대해 다룰 것이다. Mongoose 스키마와 모델우선 스키마와 모델은 무엇일까? 스키마는 MongoDB 컬렉션에 저장되는 document에 어떤 종류의 값이 들어가는지를 정의한다.모델은 스키마를 기반으로 만들어지는 인스턴스이며, MongoDB 컬렉션에서 도큐먼트를 생성, 읽기, 업데이트, 삭제(CRUD)하는 데 사용된다. 나는 URL 단축 기능을 구현하기 위해 아래와 같이 스키마와 모델을 정의했다. 아래의 스키마는 title, u..
- Total
- Today
- Yesterday
- tanstackquery
- 리액트
- 코드잇 스프린트
- html
- javascript
- 제어 컴포넌트
- 스프린트프론트엔드6기
- 프론트엔드
- 유사배열객체
- 코드잇스프린트
- rest parameter
- innerhtml
- 취업까지달린다
- 중급 프로젝트
- Git
- arguments
- map
- 객체
- currentTarget
- 배열
- react
- Next.js
- 비제어 컴포넌트
- 비동기
- 동기
- js
- CSS
- GitHub
- hydrationboundary
- Target
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |