본문 바로가기

전체 글21

Go는 개발자를 믿어… 그래서 panic을 찢어 🤯 Quiz! go에서 panic이 발생하면 어떤 일이 발생할까요? 대답해보아요 🎶프로그램이 종료된다고루틴이 종료된다잘 모르겠다이외의 대답….1번으로 대답하신 분들 주목!!!! 그렇게 생각하신다면 경기도 오산(…)입니다.go 문서에서 panic에 대한 설명은 다음과 같습니다.The panic built-in function stops normal execution of the current goroutine. When a function F calls panic, normal execution of F stops immediately. Any functions whose execution was deferred by F are run in the usual way, and then F returns to .. 2025. 4. 9.
"docker run" requires at least 1 argument. docker run -d --name engdabot -p 8081:8081 -e BOT_TOKEN=${{ secrets.BOT_TOKEN }} -e API_KEY=${{ secrets.API_KEY }} -e DATABASE_URL=${{ secrets.DATABASE_URL }} -e DATABASE_USERNAME=${{ secrets.DATABASE_USERNAME }} -e DATABASE_PASSWORD=${{ secrets.DATABASE_PASSWORD }} -e TZ=Asia/Seoul ${{ secrets.DOCKER_ID }}/engdabot 내 secret 변수중에서 '&'문자가 들어간게 있었는데,&앞에 escape 문자를 붙여주어야 함.\& https://stackoverflow... 2024. 5. 7.
테스트코드? 그게 뭔데 (1) 테스트코드의 중요성에 대해서는 많이 들어봤을 것이다. 그런데 이게 꽤나 개념도 많고 작성하는 방법도 쉽지 않단 말이지.. 테스트코드 그거 왜씀? 도서관리 프로그램의 백엔드 개발자를 담당하고 있는 A씨. 프로젝트 초기 단계여서 API를 새로 만들고 있다. 도서 등록 API 를 개발하였다. 이게 제대로 동작하는지 확인하기 위해 postman을 켜서 확인해보았다. RequestBody를 잘 입력하고... Run! 요청한 도서가 잘 등록된걸 데이터베이스에서 확인했다! 좋았쒀!! 다음으로는 도서 수정 API를 개발하였다. 이걸 확인하려면 도서 등록을 먼저 해야 하네? 앞서 만든 도서 등록 API를 호출한 후 도서 수정 API를 테스트했다. 이번에도 성공! 그런데 도서 수정 API에 수정 요청사항이 들어왔다. 수정.. 2024. 4. 5.
AWS Lambda로 API 만들기 What? 무슨 문제야? 최종 프로젝트 서버는 데브코스 규칙에 따라 일괄적으로 켜지고, 꺼지는 시간이 정해져있다. 평일에는 오전 9시에 서버가 켜지고, 오후 6시에 자동 종료되는데, 자동 종료된 이후 작업을 하고 싶을 때 '서버 켜주세요~' 라는 요청을 해야 하는 불편함이 있었다. 백엔드 팀원들만이 aws ec2를 켤 수 있는데, 팀원들이 부재중이거나 aws에 접속하기 어려운 상황일 경우 서버를 즉각적으로 켜주기가 어려웠다. How? 어떻게 해결했어? 이런 문제를 해결하고자 프론트 팀원들도 원하는 시간에 aws에 접속하지 않고도 서버를 켤 수 있는 API를 만들기로 했다. AWS Lambda 를 사용했다. 1. AWS Lambda 서비스에 접속해서 함수를 생성한다. 이때 IAM role도 같이 생성된다... 2024. 4. 1.
부팅할 때마다 스크립트 자동 실행하기(Ubuntu) Ubuntu crontab -e @reboot /home/ubuntu/restart.sh restart.sh sleep 30 docker restart redis docker restart myimage 2024. 3. 21.
모니터링 시스템 구축하기 - Node Exporter, Prometheus, Grafana, EC2, Docker (1) Why 서비스를 배포했다. 그런데 제대로 돌아가는걸까? - api별로 호출 시간은 어느 정도인지, 병목은 없는지 - 런타임에서 예상치 못한 예외가 발생했는지 - 서버의 CPU, 메모리 사용량이 위험하지는 않은지 - SQL 쿼리가 데이터베이스에 부담을 주지는 않는지 - 사용자가 부적절한 호출을 하지는 않는지(보안 위협) 등등.. 추적 관리해야 할 것 들이 매우 많다. 이런 문제들을 관리하기 위해 모니터링 시스템을 구축하기로 했다. What 먼저 추적하고자 하는 내용을 간추려 보자. 1. 서버의 시스템 메트릭 정보 2. Springboot 애플리케이션의 메트릭 정보 3. 애플리케이션에서 발생한 error 로그 4. RDS에서 발생한 슬로우 쿼리, N+1 쿼리 How AWS의 CloudWatch라는걸 이용할 .. 2024. 3. 19.