서론 서든어택 - 배틀그라운드를 거쳐 발로란트까지 나는 FPS를 무지하게 좋아했고 즐겨했었다. 좋아하던 게임을 놓고 개발에 흥미가 생겨 개발자가 되고, 개발 공부를 계속해서 막 하던 도중 즐겨 보는 코딩관련 유튜브 채널에서 옛날 향수를 느끼게 해주는 주제로 영상이 하나 게시되었다. 코딩애플님의 FPS - NetCode관련 영상 링크 모든 FPS의 대기 플레이가 불리하다는 것을 개발을 하면서 자연스럽게 깨닫게 되었는데, 서든어택을 할 당시만 해도 그런 정보들이 거의 전무해서 스나를 들고 있을때는 대기줌을 많이 했던 기억이 난다 ㅋㅋ 그 당시에는 잘하는 사람들의 플레이를 보고, 대회를 봐도 사실 피킹을 먼저하는 사람. 즉 대기스나보다 브레이킹을 거는 사람이 더 유리한 위치라는 것을 잘 인지하지 못했다. 그냥..
서론 노드로 전향한지 만 1개월이 되었다. 현재 근무하고 있는 곳의 애플리케이션 코드를 보면, 따로 예외처리를 해주는 부분이 없어 에러 핸들링과 에러 로깅 작업을 커스텀으로 진행하려고 한다. 이를 위해 공식 문서를 활용해가며 학습할 필요를 느껴서 공식문서에 해당 내용을 확인하고 학습해보자. NestJS의 예외 처리 Nest에는 애플리케이션 내에서 처리되지 않은 모든 예외를 처리하는 내장 예외 레이어가 존재한다. 애플리케이션 코드에서 예외 처리가 되지 않으면 예외 레이어에서 예외를 처리한다. 기본적으로 이 작업은 HttpException유형과 하위 클래스의 예외를 처리하는 내장 전역 예외 필터에 의해 수행된다. 예외를 인식할 수 없는 경우 다음과 같은 500에러를 내보낸다. { "statusCode": 5..
에러 발생 경위 도커라이징하여 EC2 인스턴스로 배포를 계속 시도해보다가, 용량문제로 아래와 같은 에러가 발생했다. failed to register layer: write /usr/src/app/node_modules/sockjs/Changelog: no space left on device 단순 인스턴스의 공간 문제인 것 같아 아래 명령어를 통해 디스크 용량을 확인해보았다. $ df -h 용량을 거의 다 차지하고 있는 것 같아서, 도커 이미지를 여러번 등록하기만 했지 삭제하지 않았던 것이 생각나서 확인해보았더니 이미지가 엄청 많았다. 하나하나 일일이 IMAGE ID로 지워주기 힘들 것 같아 태그네임이 인 모든 이미지파일을 지우는 명령어를 알려달라고 GPT에게 부탁했더니 아래 명령어를 던져주었고, 실행..
도메인 구매 https://us-east-1.console.aws.amazon.com/route53/v2/home?region=us-east-1#Dashboard https://us-east-1.console.aws.amazon.com/route53/v2/home?region=us-east-1#Dashboard us-east-1.console.aws.amazon.com AWS의 Route 53d Dashboard에서 Domain registration에서 도메인을 등록해준다. 원하는 도메인네임을 검색하면 아래와 같이 사용 가능 여부, 추천 도메인이 나온다. 원하는 걸로 등록하자. 등록하면 본인의 메일로 Verify 메일을 보내준다. 반드시 해당 메일에서 인증을 진행해야 등록 절차가 진행된다. 나는 점심식..
서론 사내 서비스가 Git Actions, Docker, EC2, PM2를 활용해 CI/CD 및 파이프라인을 구축하여 사용하고 있었기에 학습이 필요하다.. 간단하게 따라해볼 무언가를 찾아서 따라해보면서 학습할 것이 필요했는데 초행이다보니 같은 환경에서 진행한 분을 찾기 어려워 외국 유튜브 영상이나 기타 해외 자료들을 활용하며 따라하며 공부했다. CI/CD란? Continuos Integration / Continuous Delivery의 약자로 단어 뜻대로 지속적 통합과 배포를 뜻한다. DockerFile 작성 Docker에 이미지를 빌드하고 컨테이너 생성을 하는 과정은 단순하고 Nodejs docs에서도 가이드라인을 제시해준다. https://nodejs.org/ko/docs/guides/nodejs-..
서론 즐겨보는 개발 관련 유튜브 중 하나인 노마드코더에서 흥미로운 영상을 게시했다. 기존 자바스크립트의 변수 const, var, let을 대체할 강력한 키워드인 using 이라고 소개했다. 역시 프로유튜버답게(??) 어그로를 잘 끄셔서 자연스레 정주행했다. 현재 자바에서 타입스크립트로 전향한 지금, 꽤나 중요한 이슈사항이 될 것 같아서 포스팅하여 정리해보려고 한다. https://www.youtube.com/watch?v=-NmwyJ5S-IY&t=151s 기존의 자바스크립트 변수 간단하게 기존 변수들에 대해 알아보자. es6에서 포함된 기능중 하나는, 변수 선언에 사용할 수 있는 키워드인 let, const의 추가였다. 혹여 단순 using에 대한 정보만을 얻고자한다면, 스크롤을 많이 내려야 할 것 같..
에러 상황 EC2, Github Actions, Docker을 통한 CI/CD 파이프라인 구축 실습 중 발생한 상황이다. Github의 Action runner를 활용하여 CD를 수행했을 때 실행중인 컨테이너에 아무것도 없는 모습이다. 해결 1. 아래 명령어를 사용해 모든 컨테이너 목록을 조회했다. docker ps -a 분명 실행은 되었지만 종료된 모습이다. 2. 로그를 찍어 보니 해당 에러를 확인할 수 있었다. docker logs [컨테이너 NAMES] 나의 경우 Dockerfile의 마지막 줄에 실행 명령어로 node dist/main.js을 사용하였는데 해당 모듈을 찾을 수 없다는 에러였다. 해결 Dockerfile에서, 설정 경로와 카피 경로를 다시 설정하고, 실행 명령어를 바꿔주었더니 동작하..
사내에서 mac os를 사용해서 개발을 하다가 집에서 해당 기술들을 학습한 후 토이프로젝트 적용을 시켜보려고 ec2를 실행시킬 일이 있어서 pem파일을 chmod 400을 통해 권한을 설정하려고 했는데 권한 설정이 불가능하여 접속이 되지 않았다. 이럴 때 아래와 같은 명령어를 사용하자. 반드시 CMD에서 사용해야하며 icacls.exe 경로+pem이름 뒤 명령어를 입력하면 된다 icacls.exe myec2.pem /reset icacls.exe myec2.pem /grant:r %username%:(R) icacls.exe myec2.pem /inheritance:r