우선 공공데이터포털의 OpenAPI를 사용하기 위해선 회원가입이 필요하다.회원가입 절차 아래 링크 참고2026.07.10 - [그외 기록/운영 및 설정] - [공공데이터포털] 회원가입(가입유형 일반/기업회원 선택) [공공데이터포털] 회원가입(가입유형 일반/기업회원 선택)공공데이터포털공공데이터포털은 정부 및 공공기관에서 제공하는 다양한 데이터를 조회하고 활용할 수 있는 서비스이다.데이터는 OpenAPI 형태 등으로 제공되어 개발자가 프로젝트에서 직접 사built.tistory.com 1. OpenAPI 검색로그인 후 상단 검색창에서 필요한 데이터를 검색한다.필자는 공휴일 정보를 표시하기 위해 "특일" 이라고 검색했다. 한국천문연구원_특일 정보 1건의 검색 결과가 나온다. 2. 활용신청활용신..
파일을 전달할 때 개인정보나 중요한 자료가 포함되어 있다면 압축 파일에 비밀번호를 설정하는 것이 좋다.터미널에서 zip 명령어만으로 비밀번호가 설정된 압축 파일을 만들어보자!🔐 dataset 폴더를 압축하면서 비밀번호를 설정하기로 가정해본다. 1️⃣ 터미널에서 dataset 폴더가 있는 위치로 이동 (dataset 폴더 내부로 이동 ❌)Desktop/└── dataset/ ├── metadata.csv └── images/ 2️⃣ 명령어 실행zip -r -e dataset.zip dataset zip: 압축 파일 생성-r: 폴더 내부의 모든 파일과 하위 폴더까지 함께 압축-e: 압축 파일에 암호 설정dataset.zip: 생성될 압축 파일 이름dataset: 압축할 폴더 3️⃣ 비밀번..
AI 모델 학습을 위해 S3에 저장중인 이미지 500장 이상을 전달해야 하는 업무가 있었다. 정확히는 DB에서 전달할 데이터 조회 → 메타데이터.csv 파일로 생성 → S3 이미지를 일괄 다운로드 → 압축 → 전달까지 하나의 데이터셋으로 만드는 작업이었다.이번 글에서 AWS CLI를 활용해 S3 이미지를 일괄 다운로드하는 과정을 정리해보았다. AWS CLI(Command Line Interface)란?터미널에서 AWS 서비스를 명령어로 제어할 수 있는 도구이다. GUI 대신 명령어를 사용해 다양한 작업을 자동화할 수 있습니다.반복 작업을 스크립트로 처리할 수 있어 대량의 데이터를 다루는 업무에서 특히 유용하다. 🗂️ 데이터셋 구성 (참고)최종 전달 구조는 아래와 같다. 이렇게 구성하면 이미지와..
공공데이터포털공공데이터포털은 정부 및 공공기관에서 제공하는 다양한 데이터를 조회하고 활용할 수 있는 서비스이다.데이터는 OpenAPI 형태 등으로 제공되어 개발자가 프로젝트에서 직접 사용할 수 있다.활용할 OpenAPI를 신청하기 위해 공공데이터포털 회원가입을 진행해보자! 1. 공공데이터포털 홈페이지 접속공공데이터포털에 접속하여 홈페이지 오른쪽 상단의 회원가입으로 이동한다.https://www.data.go.kr/ 공공데이터 포털국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datasewww.data.go.kr 2. 회원가입1단계 - 가입확인 및 회원구분[가입유형..
하루에 많으면 15번 이상 배포 요청이 들어온다.그때마다 작업을 멈추고 서버에 접속해서 git pull, npm install, build, pm2 restart를 반복했다.배포 자체는 몇 분 안 걸리는 작업이지만 하고있던 작업 흐름이 끊기는 건 어쩔 수 없다. 🥹그래서 미뤄놨던 자동배포를 이번에 구축했다. 코드만 올리면 서버까지 자동으로 반영될 수 있도록!(dev 브랜치에 push → GitHub Actions 실행 → 서버 자동 배포 → PM2 재시작) 1. Workflow 파일 생성배포할 각 레포지토리에 .github/workflows/deploy-dev.yml 파일을 추가한다. dev 브랜치에 push가 발생하면 자동으로 배포가 실행된다./.github/workflows/deploy-dev..
에러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를 보니 스..
- Total
- Today
- Yesterday