전체 글 54

AWS Amplify build 문제 : cannot find module 'semver/functions/cmp'

sopt.org 공식 홈페이지 frontend 배포시 aws amplify 서비스를 사용했다. vercel과 같은 원클릭 배포 서비스인 것 같은데 ci/cd 부터 https 인증서 적용 + cloudfront 서비스까지 클릭만으로 배포가 되니 참 편하다. elasticbeanstalk과 같은 서비스라고 보면 될 것 같다. 첫 어플리케이션을 만들고 첫 배포는 정상적으로 진행이 된다. 잘 되나 싶었는데 두번째 빌드부터 빌드 단계에서 문제가 생겼다. 왜그런고,,, 프로비저닝 OK 프론트엔드 빌드 단계에서 Error: [BABEL]: Cannot find module 'semver/functions/cmp' 해당 모듈을 찾을 수 없다. 아니 첫번째 빌드할땐 됐잖아요. 왜 두번째 빌드는 안되죠? 곰곰히 생각하고,..

개발 2022.12.06

crontab으로 서버 health check 시스템 만들기

아무래도 서버 개발을 하다 보면 이 서버가 잘 돌아가고 있는지 모니터링 하는 시스템이 필요하다. 거창한 서비스 필요 없이 crontab과 curl 을 사용하면 쉽게 간단한 모니터링 시스템을 만들 수 있다. 하지만 정말 동작하는지 아닌지만 확인할 수 있다. .sh 파일을 하나 만들어준다. vi health\_check.sh #!/bin/bash nowdate=$(date +"%Y-%m-%d %H:%M:%S") url="검사하고 싶은 url" status_code=$(curl -LI ${url} -o /dev/null -w '%{http_code}\n' -s) if [ $status_code != '200' ] then curl -X POST -H 'Content-type..

개발 2022.11.30

Terraform 액세스 키 환경변수 등록

Terraform 은 HashCorp에서 오픈소스로 개발중인 IaC 도구이다. Terraform을 사용해 AWS 인프라를 구축하기 위해 여러 셋팅을 해줘야한다. 바로 Access Key를 발급받아서 등록을 해줘야하는 것 . IAM 사용자가 없다면 관리자 권한으로 사용자를 만들어주자. IAM > 사용자 > 보안자격 증명 > 액세스 키 만들기 생성된 액세스 키는 공개적으로 노출이 될 경우 보안에 큰 영향을 미칠 수 있기 때문에 환경변수로 등록을 해준다. 노출이 된다면 악의적인 사용자의 공격으로 AWS 비용이 2억이 청구될수도,,,, https://www.clien.net/service/board/park/17225662 펌) AWS 해킹 당해서 사용료 3억이 넘게 나왔습니다. : 클리앙 원문입니다 >http..

개발 2022.09.08

Nestjs e2e 테스트 세팅

nestjs는 테스트 도구로 jest를 사용한다. npm run test:e2e 또는 yarn run test:e2e를 사용해 test를 진행할 수 있다. 근데 테스트를 진행해보면 다음 오류가 뜬다. Cannot find module 'src/comments/schemas/comment.schema' from '../src/cocktails/cocktails.module.ts' 즉 모듈을 찾을 수 없다는 것. 찾아보니 Nestjs에서 사용하는 파일 경로와 Jest에서 사용하는 경로가 서로 다른 것 같다. 이를 해결하기 위해 test 디렉토리의 jest-e2e.json에 다음 속성을 추가한다. "moduleNameMapper": { "^src/(.*)$": "/../src/$1" }, jest에서 e2e테..

개발 2022.08.31

Docker 관련 정리

도커는 왜 필요할까? 예전부터 하드웨어 자원에 대한 가상화의 요구가 존재했다. 가상화 환경의 강자는 vmware이고 지금도 마찬가지. 왜 가상화 환경에서 컨테이너 환경이 나오게 되었는가? vmware는 너무 무겁다! => 실제로 컨테이너 엔진은 하이퍼바이저 처럼 동작하지 않는다!! => 그래서 가볍다. 1. 다양한 개발 환경들이 존재. 2.개발환경과 운영환경의 차이 -> 개발 환경과 운영 환경이 달라 문제가 생긴다. Ex. "내 PC에서는 잘 되는데? ㅇㅅㅇ" 개발을 하는 과정에서 library를 사용하면서 dependency가 생긴다. 다양한 library, dependency에 대한 문제가 생긴다 . 3.개발환경을 세팅하는데 오래 걸린다. 도커가 컨테이너는 아니다. Docker 이외에도 LXC, 등 ..

개발 2022.08.29

AWS 비용 계산해보기

AWS를 사용해 서비스를 만들고 있는데 비용폭탄을 맞아버렸습니다. 비용폭탄을 맞은 김에 내가 사용하는 서비스의 가격 측정이 어떻게 되는지를 짚고 넘어가고자 합니다. 뭐든지 제대로 알고 사용해야 한다는 걸 느꼈습니다...... 안그럼 호되게 혼납니다. 이 게시물에 나온 정확한 비용은 서울 리전을 기준으로 측정한 것이고 환율과 시기에 따라서 달라질 수 있으므로 정확한 내용은 AWS 공식 홈페이지를 참고하길 바랍니다. 비용 계산기 : https://calculator.aws/#/ AWS Pricing Calculator calculator.aws 1. NAT Gateway NAT Gateway 의 비용은 다음과 같습니다. 1. $0.059 per GB Data Processed by NAT Gateways ..

개발 2022.08.15

AWS Cloudwatch를 사용한 슬랙 모니터링 시스템 구축하기

해당 유튜브를 보고 따라했습니다. https://www.youtube.com/watch?v=QgfMCDkVRPA 왜? 서버의 상태를 지속적으로 관찰하는 것은 중요합니다. 특히 API 서버를 배포할 때 - 서버에서 500에러가 발생한다던지 - 과도한 트래픽이 들어왔다던지 하는 특정 상황을 빠르게 인지해야합니다. AWS에서는 cloudwatch라는 좋은 모니터링 도구를 제공하고 있습니다. 사용하는 서비스 별로 지표를 설정하고, 기준을 설정해 지표가 기준에 도달하면 경보를 보내줄 수 있죠. 또한 경보는 이메일이나 web hook 같은 다양한 도구를 제공합니다. 저는 프로젝트를 진행할 때, 협업 도구로써 slack을 주로 사용합니다. 그래서 서버에서 여러가지 이벤트가 발생할 때 slack으로 notificati..

개발 2022.08.06

mongoexport, mongoimport 사용해보기

소프트웨어 마에스트로를 통해 진행하는 프로젝트에서 mongodb를 사용하고 있다. 칵테일 관련 어플리케이션이라 칵테일 레시피에 대한 DB를 구축해야 한다. 개발 중 새로운 칵테일 레시피가 추가되거나, 기존의 레시피에 대한 도수, 난이도 등의 속성이 지속적으로 추가되면서 해당 수정내용에 대한 변경사항 추적과 버전 관리가 필요하다고 느꼈다. 버전 관리와 변경사항 주적은 편리하고도 때깔 좋은 git이라는 도구가 있으니 걱정할 일이 없는데 mongoDB에 있는 데이터들에 대해서 어떻게 git을 적용하지?라는 생각이 들었다. 그래서 mongodb에 있는 데이터를 빠르게 가져오고, 변경된 데이터를 빠르게 mongodb에 적용할 수 있는 도구가 필요했다. 문제. 처음에는 nodejs의 mongodb 모듈을 사용해서..

Database/MongoDB 2022.08.05

소마 13기 합격 후기 (4): 면접은 까보기 전까지 모른다.

솔직히 2차 코딩테스트를 보고 나서 떨어진 줄 알고 있었다. 코테가 정말 왜 합격했는지 모르겠다. 아무튼 면접 준비는 어떻게 해야할지 알아보자. 날짜와 시간은 랜덤, 장소는 코엑스 날짜는 2~3일 안으로 랜덤으로 배정 받았다. 주말이면 참 좋았겠지만 평일 오전으로 배정을 받아버렸다. 당시 인턴으로 재직중이였는데 반차를 쓰기도 애매하고 반반차를 쓰기도 애매한 13시로 잡혀버려서,,, 그냥 연차를 썼다. 코엑스에서 대면 면접을 본다는데 얼마만의 대면 면접인지,,,, 굉장히 신났다. 추가된 점 : 3분 PT 이번 선발 프로세스에서 추가된 내용은 바로 3분 PT였다. 사무국에서 노션 링크를 전달해줬고 노션에는 소개, 프로젝트 경험, 주요활동, 수상 경력을 쓰는 란이 있었다. 자기소개서 대신 해당 링크에 내용을 ..

소마 13기 합격 후기 (3): 코테의 관문을 통과해보자.

소프트웨어 마에스트로와 같은 교육이든, 아니면 취업이든 많은 사람들이 가장 힘들어하는 전형이 코딩 테스트가 아닐까 싶다. 일단 나한테는 코딩 테스트가 가장 힘들었다. 소프트웨어 마에스트로 지원 과정에서는 1차, 2차 두 번의 코딩 테스트가 진행된다. 코딩 테스트는 후기보다는 합불의 유무가 중요하니,,,,, 이번에는 소마 코딩 테스트가 어떻게 진행되는지, 어떻게 준비해야 할지 나름대로 팁을 풀어보려고 한다. 그렇다고 내가 알고리즘을 잘하는 것도 아니니, 정보를 적절하게 필터링해서 들어야 할 필요가 있다. ^^ 백준 기준 실딱이 입니다 :) 소마 코딩 테스트 특 1. 엘리스 플랫폼 소마 코딩 테스트는 엘리스라는 플랫폼에서 지원된다. https://elice.io/ 올인원 디지털 교육 플랫폼 - 엘리스 우리 ..