안녕하세요.
|
Solutions Architect Jinny입니다.

thumbnail
Node.js Error: Cannot find module /usr/src/app/nodemon 에러 해결

1. 배경 상황 최근 데모 실습을 위해 Codepipeline + CodeCommit + Codebuild로 CI/CD 파이프라인 구축을 하고있는데, Codebuild에서 에러가 어마무시하게 나서 하나씩 정리해두려 한다. 에러는 pkg 모듈로 Node.js(Express 프레임워크) 프로젝트를 빌드하고 도커 이미지로 만드는 과정에서 발생했던 에러였다. 정확한 에러 메시지는 아래와 같았다. 2. 에러 해결 기존 Dockerfile을 다시 살펴보니 서버를 가동시키는 명령어를 nodemon으로 해두었었다. 로컬로 접속 테스트를 했었을 당시에 서버 재부팅이 귀찮아서 모드로 nodemon을 설치해서 사용 중이었는데, 도커파일을 작성할 때에도 습관적으로 nodemon을 사용했었던 것. 해결 방법은 package.json에 nodemon을 포함해주거나, 서버 기동을 위한 명령어를 기본 명령어인 node로 바꿔주는 방법이 있는데, 나는 이미지를 최대한 가볍게 만들고 싶어서 명령어를 기본 명령…

December 16, 2022
devops
OpenAI, ChatGPT란? 간단한 사용후기

1. 배경 상황 아는 분이 한 번 써보라며 링크를 공유해주셔서 써보게 된 플랫폼인 OpenAI. 써보니 생각보다 괜찮아서 기록용으로 블로그에 업데이트 해둔다. 찾아보니 얼마 전 긱뉴스에서도 관련 내용을 업데이트 했었고, 댓글을 보니 다들 성능에 놀라신 눈치. 2. OpenAI, ChatGPT란? OpenAI는 Samuel H. Altman과 Elon Musk(몸이 몇개인걸까 이분은)가 공동 창업한 동명의 회사에서 만든 인공지능 플랫폼으로 딥러닝 시스템을 통해 자기 자신과의 셀프 트레이닝 방식을 채택해 학습되었다. 이 중 내가 사용해본 것은 ChatGPT라는 대화형으로 질의 응답을 할 수 있는 자연스러운 대화를 주고받을 수 있는 언어 모델. 연구 미리보기 기간에는 무료로 제공된다고 해서 바로 사용해 봄. 사용법은 아주 간단하다. https://chat.openai.com/chat 웹사이트에 접속해 로그인 후(Gmail 로그인 가능), 필용을 문장으로 질문을 남기면 된다. 개발 관련된…

December 15, 2022
etc
AWS CodeBuild “EEXIST: file already exists” 에러 해결

1. 배경 상황 node.js(Express.js)프로젝트의 EKS 배포를 위한 CodePipeline CI/CD 구성 중 노드 프로젝트를 불러와서 npm install로 패키지를 설치하는 도중 다음과 같은 경고 메시지가 발생했다. 2. 해결 방법 여기서 중요한 메시지는 라는 메시지. package-lock.json 파일 및 node_modules가 기존에 이미 존재하고 있기 때문에 npm install로 새로운 모듈을 받지 못한다는 메시지였는데, 로컬이었다면 수작업으로 파일과 라는 디렉터리를 삭제해줄 수도 있었겠지만, CodeBuild상에서 삭제하는 과정이 필요했기 때문에 아래와 같이 package.json 파일에서 해당 파일들을 삭제해주는 scripts를 추가해주고, CodeBuild위에서 실행할 명령어들을 정의하는 buildspec.yaml 파일에 커맨드를 추가했더니 위와 같은 에러가 해결되었다.

December 14, 2022
클라우드
리눅스(Linux) 다중 명령어(;, &&, ||)

1. 배경 상황 Node.js 프로젝트를 진행하다가 package.json에 npm 명령어를 정의해주고 있었는데, 초기에 빌드 아웃풋 폴더 내의 파일을 삭제한 뒤에 빌드를 실행하도록 명령어를 아래와 같이 지정해주었었다. 하지만 bin에 아무 파일이 없는 상태에서 실행하니 아래와 같은 에러가 발생해서 다중 명령어를 에서 로 고쳐주었다(뭔가 init쪽 명령어를 고쳐주는 게 좋을 것 같은데 나중에 더 찾아보기로). 2. 리눅스(Linux) 다중 명령어 차이 리눅스 쉘에서 다중 명령어를 사용하면 하나의 라인에서 여러 명령어를 실행할 수 가 있는데, 다중 명령어를 실행하는 , , 세 명령어 사이에 차이가 있어 정리해두려 한다. 세미콜론() 선행 명령어의 성공, 실패 여부와 관계 없이 모든 명령어를 실행한다. 명령 2이 실패하더라도 명령 3이후의 명령어가 실행된다. 엠퍼센트() 앞에서부터 순차적으로 실행 되고, 선행 명령어가 실패할 경우, 뒤의 명령어를 실행하지 않는다. 명령 2가 …

December 13, 2022
devops