에러API 호출시 500 에러가 났고 서버 로그는 The server closed the connection 메시지가 반복적으로 나타나고 있었다.SequelizeConnectionError: Connection lost: The server closed the connection. 해당 에러에는 다양한 원인이 있을 수 있는데,필자는 무료 체험판 크레딧이 모두 소진되면서 GCP Cloud SQL 인스턴스가 자동으로 정지되면서 DB 연결에 오류가 발생한 것이다.failed to connect to instance:fetch ephemeral cert failed:googleapi: Error 409:The instance or operation is not in an appropriate state to ..
갑자기 서버에 CORS 에러가 났다. PM2 로그($pm2 logs)를 확인해보니Error: ENOSPC: no spase left on device, write/home/ubuntu/.pm2/logs/api-error.log last 15 lines:0|api | throw er; // Unhandled 'error' event0|api | ^0|api |0|api | Error: ENOSPC: no space left on device, write0|api | Emitted 'error' event at:0|api | at WriteStream. (/home/ubuntu/calvak-api/node_modules/fil..
기분전환하듯 워치 배경을 바꾸는 편인데 워치페이스가 조금 심심하게 느껴져 마음에 드는 스타일을 다운받아 설정해보았다.다운로드한 워치페이스를 직접 적용하고 원하는 스타일로 워치를 꾸며보자🍭 1. 휴대폰 설정1-1. 설정 > 워치 정보 1-2. 개발자모드 활성화소프트웨어 정보 > 소프트웨어 버전을 5번 연속 클릭 1-3. 블루투스 OFF워치를 Wi-Fi로 연결해 다운로드한 워치페이스를 적용하기 위해서 블루투스를 잠시 비활성화한다. 1-4. 노트북과 같은 와이파이인지 확인🛜를 꾸욱 눌러 현재 연결된 와이파이와 노트북 와이파이 일치 확인 2. 워치 페이스 스튜디오 다운로드2-1. 다운로드아래 링크에서 각 OS에 맞게 다운로드한다. 워치 페이스 스튜디오 다운로드 | Samsung De..
PM2로 Node 서버를 띄우고 있었던 프로젝트에 스케줄링(cron)을 돌리는 로직을 추가하면서cron을 제어하기 위해 .env에 환경변수를 설정해두었는데설정을 미실행으로 해놔도 cron이 돌아가고 있었다. cron 설정 코드if (process.env.NODE_APP_INSTANCE === '0') { cron.schedule('0 * * * *', expiredEmailVerification, cronOption);}NODE_APP_INSTANCE === "0" → cron 실행!= "0" → cron 미실행 .env 설정 (cron 미실행을 위한)NODE_APP_INSTANCE=1 이렇게 하면 조건문에 걸리지 않으니까 cron이 실행되지 않을 거라고 생각했다. 그런데…logs를 보니 스..
1. 카카오 개발자 콘솔 접속https://developers.kakao.com/ Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해 보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com해당 링크에 접속해 카카오 계정으로 로그인한다. 2. 앱 생성① 앱 - 앱 생성 클릭 ② 앱 이름 / 회사명 / 카테고리 입력 후 저장 3. REST API 키 확인앱 - 플랫폼 키에서REST API 키JavaScript 키Native 앱 키를 확인할 수 있다.서버에서 카카오 로그인을 구현할 때 REST API 키를 사용한다. 4. Redirect URI 등록카카오 로그인 성공 후 돌아올 주소를 등..
고마웠던 2025년, 개발자로서의 첫 해 Keep1년만에 이직해 개발팀으로 입사했다. 합격 소식을 들었을 때의 기분은 아직도 생생하다. 엄청 기쁘면서도 얼떨떨했다.기술 스택이 맞는 공고가 많지 않았는데 다행히 유일하게 맞았던 곳에 입사했고 어느덧 6개월 차가 되었다.개발은 여전히 어렵다. 해결되지 않는 문제를 만나면 평생 안 풀릴 것처럼 막막해지고, 어느 순간 해결되면 또 마음이 잔잔해진다.이 감정의 반복이 개발의 묘미인 것 같다. 역시 취준할 때도 겪어봤지만 엉덩이 붙이고 끝까지 파고들면 결국 해결하지 못할 문제는 없다는 것, 이건 앞으로도 변하지 않을 것이다. 업무적으로는 첫 프로젝트에서 프론트엔드 개발자와 통신하면서 발생했던 에러와 예외 사항들을 모두 정리해두었다가 다음 프로젝트에 그대로 참고하..
GitHub Actions로 자동 배포 환경을 셋팅하면서 액세스 키가 필요했다. 액세스 키는 AWS ↔ 외부 시스템을 연결하기 위한 인증 수단이다.우리가 브라우저로 아이디/비밀번호를 입력해서 AWS 콘솔 로그인하여 직접 AWS를 사용하는 것처럼,사람이 아닌 프로그램이 AWS를 제어하기 위해서는 아이디/비밀번호 대신 액세스 키+시크릿 키를 사용한다. 액세스 키를 생성하는 방법은 간단하다. AWS 액세스 키 생성 가이드대로만 따라하면 끝!가이드 문서에 맞춰 하나씩 따라해보자.https://docs.aws.amazon.com/ko_kr/keyspaces/latest/devguide/create.keypair.html 1. AWS에 로그인 후 IAM 이동https://console.aws.amazon.c..
Swifty Pusher푸시 알림 기능을 구현하다 보면 서버 로직은 다 완성했는데 “왜 알림이 안 오지?”하는 상황이 생겼다.근데 이 문제가 서버인지, iOS 설정인지, APNs 인증 문제인지 판단하기가 쉽지 않다.이 때 사용하는 도구가 Swifty Pusher다.Swifty Pusher는 APNs로 직접 푸시 전송을 해볼 수 있는 macOS 전용 테스트 도구이다.서버를 거치지 않고 iOS 기기에 푸시 알림을 보내 알림이 오지 않으면 어떤 문제인지 파악이 쉬워진다. 푸시 기능은 구현하면서 실제로 디바이스 토큰이 정상적으로 발급된 것인지부터 Swifty Pusher로 먼저 테스트하면서 진행하니 문제 범위를 좀 더 빠르게 좁힐 수 있었다. 푸시 알림 이슈를 빠르게 디버깅하기 위해 Swifty Pusher를..
1년만에 새 프로젝트를 시작했다.초기 셋팅을 진행하면서 MySQL 로그인을 시도했는데 에러가 났다.에러메시지: ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded 👩🏻💻 원인현재 MySQL 버전은 8.4.3$ mysql --version mysql Ver 8.4.3 for macos14.7 on arm64 (Homebrew)MySQL은 8.4부터 mysql_native_password 플러그인이 완전히 제거되었다. my.cnf에 default_authentication_plugin=mysql_native_password가 설정되어 있었기 때문에 에러가 발생한 것이다. 👩🏻🔧 해결1. 파일 수정nano /opt/..
DBeaver에서 데이터를 수정하다 보면 셀에 들어있던 값을 지웠는데 값이 아예 없어지는게 아니라 빈 문자열('') 로 바뀌는 경우가 있다. 별 차이 없어 보이지만 실제로 이 차이는 꽤 중요하다.NULL → 값이 없다빈 문자열('') → 값은 있는데 글자 길이가 0인 값 그래서, 빈 문자열을 NULL로 되돌리는 방법간단하다.DBeaver에서 테이블 데이터 보기 화면으로 들어간다.NULL로 바꾸고 싶은 셀을 마우스 우클릭한다.Edit - Set to NULL 선택저장
- Total
- Today
- Yesterday