프로젝트/장기 프로젝트26 [트러블슈팅] Git Push 오류 (error: RPC failed; HTTP 400 curl 22 The requested URL returned error: 400) 요약해결방법 1번. http.postBuffer 설정Git Push 크기가 최대 버퍼 크기보다 크기 때문에 오류 발생합니다.최대 전송 버퍼 크기는 1.0 MiB 이므로 늘려야 합니다.# 버퍼 크기를 10 MiB (10 * 1024 * 1024) 로 설정$ git config http.postBuffer 10485760$ git push 해결방법 2번. 작은 크기로 커밋 푸시1.0 MiB 를 넘기지 않게 작은 커밋 크기로 푸시합니다.# 커밋 되돌려 작은 단위로 커밋$ git reset HEAD^ --soft...$ git commit# 1.0 MiB 를 넘기지 않도록 커밋 푸시$ git push해결방법 3번. Remote 연결을 HTTPS가 아닌 SSH로 설정SSH로 새로 연결해 푸시합니다. (SSH 설정.. 프로젝트/장기 프로젝트 2024. 10. 8. EC2 인스턴스가 영문도 모른 채 접속 안되고 죽는 현상 안녕하세요, 다람쥐입니다.가끔 EC2 인스턴스에서 몇 년 전부터 영문도 모르게 죽는 현상이 있습니다.로그를 보며 차근 차근 봤습니다. 영문도 모른 채 죽는 인스턴스얼마 전, API 헬스 체크를 하는 워크플로우를 구축했습니다. MOTI #6. Github Actions 활용한 API 서버 헬스 체크지난 글에서 API 서버 접속이 한 달간 안되는 장애가 있었다. [MOTI] 인증서 만료로 인한 API 서버 접속 장애 해결한 달 전부터 MOTI 데이터가 안 쌓였다.꽤 최근에 신경을 썼었는데...잠깐 신경을itchipmunk.tistory.com 오늘 오후 메일로 갑작스레 날라오더군요.헬스 체크가 실패했다는 메시지가요.워크 플로우를 구축 안했으면 몰랐을 텐데, 뿌듯한 마음과도대체 왜 실패했는지 궁금해졌습니다... 프로젝트/장기 프로젝트 2024. 8. 3. 부스패치 #4. PostgreSQL Docker로 로컬 개발 환경 구축하기 안녕하세요.부스패치 개발자 다람쥐입니다. 로컬 DB 구축 필요성부스패치는 AWS RDS를 이용하고 있습니다.데이터베이스 벤더는 PostgreSQL 16.3 버전입니다. 원천 데이터를 저장하는 테이블은 건들 일이 없습니다.전처리한 테이블을 하루마다 덮어 씌우는 테이블이 많습니다.따라서 베타 서비스인 개발 단계에서 AWS RDS에 바로 적용하곤 했습니다. 이전 글에서 데이터베이스 칼럼을 모두 바꾸는 큰 작업을 했는데요~ 부스패치 #3. TypeORM DB 칼럼 스네이크 케이스 변경 대응안녕하세요.부스패치 개발자 다람쥐입니다. 스네이크 케이스와 카멜 케이스가 모두 있는 DB 칼럼 여러 테이블의 칼럼명이 스네이크 케이스와 카멜 케이스가 혼용되어 있었습니다.금일 모두 스itchipmunk.tistory.comAW.. 프로젝트/장기 프로젝트 2024. 7. 25. 부스패치 #3. TypeORM DB 칼럼 스네이크 케이스 변경 대응 안녕하세요.부스패치 개발자 다람쥐입니다. 스네이크 케이스와 카멜 케이스가 모두 있는 DB 칼럼 여러 테이블의 칼럼명이 스네이크 케이스와 카멜 케이스가 혼용되어 있었습니다.금일 모두 스네이크 케이스로 변경하는 작업을 했습니다.데이터를 새로 적재하는 과정에서 스네이크 케이스로 변경했습니다.참고로 원천 데이터를 지속적으로 적재하는 곳은 이미 스네이크 케이스를 사용하고 있습니다. Nodejs 애플리케이션에서 어떻게 대응했는지 기술합니다. 스네이크 케이스와 카멜 케이스스네이크 케이스는 'my_name_is_chipmunk' 와 같이 모두 소문자에 단어마다 구분되는 문자가 언더바('_') 입니다.반면 카멜 케이스는 'myNameIsChipmunk' 와 같이 첫 글자는 소문자로 시작하지만, 다음 단어의 첫 글자는 대.. 프로젝트/장기 프로젝트 2024. 7. 25. MOTI #6. Github Actions 활용한 API 서버 헬스 체크 지난 글에서 API 서버 접속이 한 달간 안되는 장애가 있었다. [MOTI] 인증서 만료로 인한 API 서버 접속 장애 해결한 달 전부터 MOTI 데이터가 안 쌓였다.꽤 최근에 신경을 썼었는데...잠깐 신경을 끈 새에 6/23 부터 한 달 동안 접속이 안됐다. 우선 RDS Public 엔드포인트로 설정되어 있어 과금이 되었다.이를 SSH Tuitchipmunk.tistory.com 사용자가 적지만, 유저가 이탈하여 속상하다.그래도 오랜 기간 안되도 유저가 다시 유입되더라(?!)부디 이번까지 유효하기를 바란다. Github Actions 으로 주기적으로 API 서버를 호출해 헬스 체크해주는 Cron 스크립트를 만들었다.8시간 마다 체크해주고 실패하면 이메일로 워크플로우 실행 실패 알림이 날라온다.도메인 .. 프로젝트/장기 프로젝트 2024. 7. 23. MOTI #5. 인증서 만료로 인한 API 서버 접속 장애 해결 한 달 전부터 MOTI 데이터가 안 쌓였다.꽤 최근에 신경을 썼었는데...잠깐 신경을 끈 새에 6/23 부터 한 달 동안 접속이 안됐다. 우선 로컬에서 RDS 접속을 위해 RDS Public 엔드포인트로 설정되어 있었다.이 설정으로 한 달마다 5$씩 과금이 되었다. (24년 2월 초부터 퍼블릭 엔드포인트 정책이 무료 -> 유료로 바뀜)이를 SSH Tunnel 로 바꿔 비용을 절감시켰다.다른 프로젝트의 AWS 계정에선 이미 다 적용을 했는데, MOTI 계정은 누락되었다. RDS Public 엔드포인트를 재설정하는 방법은 간단하다.AWS RDS 콘솔에서 인스턴스를 수정한다.즉시 적용으로 수정한다. 여담. 추가 구성을 눌러야 퍼블릭 액세스 설정을 확인할 수 있더라.과금과 관련한 설정인데 너무 양아치 아닌가 싶.. 프로젝트/장기 프로젝트 2024. 7. 23. MOTI #4. 장고 어드민 버전 업데이트하기 (Poetry 전환) / ChatGPT 에서 질문 추천받아 추가하기 안녕하세요, 모티 개발자 다람쥐입니다.최근에 질문을 보충하는 작업을 했습니다.장고 어드민에서 질문을 추가했었는데요~헤로쿠에서 무료로 이용할 수 있는 기간이 끝나로컬로 어드민 서버를 띄우는 수 밖에 없었어요. 장고 어드민 버전 업데이트하기Poetry 전환 배경오래된 장고 어드민 프로젝트를 열어 실행을 해봤지만,패키지 설치 오류가 계속 발생했습니다. 😭😭패키지 버전 간 종속성 오류가 해결되지 않는 이슈로 보였어요. 다른 패키지의 Django 의존성이 올라간 것으로 보이고Django 버전을 어디까지 업그레이드할 지 찾아야 했는데요.귀찮아서... 그냥 Django 5 버전으로 올려버렸습니다. 그러나 Django 5 버전이 업데이트 되지 않기도 하고,이전에 설치할 패키지 버전을 모두 최신(*)으로 설정했다보니.. 프로젝트/장기 프로젝트 2024. 6. 23. 부스패치 #2. 크롤링 OOP 구조 변경, Asyncio 적용 이전 포스팅에서 역할에 맞는 클래스를 설계했습니다. [사이드 프로젝트] 크롤링 마이그레이션, Pandas CSV 용량 줄이기 - Parquet 으로 1/10 용량으로 압축하최근에 사이드프로젝트 백엔드를 작업하다, 데이터 작업도 같이 맡게 되었습니다. 기존엔 프론트엔드 개발자인 형 혼자서 담당했는데, 개발 리소스를 분산하고자 배우고 있네요. ☺️ 데이터를itchipmunk.tistory.com그 중 아래 클래스를 만들었는데요~✅ Loader : 일감 가져오기✅ Scheduler : 일감 분배하기✅ Scrapper : 분배된 일감으로 수집하기❌ Storage : 데이터 저장하기❌ Uploader: 외부 스토리지로 업로드하기어젯밤 만들지 못한 Storage, Uploader 클래스를 만들어봤습니다.뿐만 아니라.. 프로젝트/장기 프로젝트 2024. 3. 28. 부스패치 #1. 크롤링 마이그레이션, Pandas CSV 용량 줄이기 - Parquet 으로 1/10 용량으로 압축하기 최근에 사이드프로젝트 백엔드를 작업하다, 데이터 작업도 같이 맡게 되었습니다.기존엔 프론트엔드 개발자인 형 혼자서 담당했는데, 개발 리소스를 분산하고자 배우고 있네요. ☺️데이터를 크롤링하고 CSV 파일로 만들고 AWS S3에 업로드하는, 기존 크롤링 코드의 언어 마이그레이션 작업을 맡았습니다. 기존엔 JavaScript async-await 코드로 크롤링이 이뤄졌는데요.매일 수집되는 CSV 용량이 100MB 가 훌쩍 넘어가다보니 비용 문제가 발생했습니다.이를 해결하기 위해 Parquet 으로 압축하려는 시도를 했으나자바스크립트의 parquetjs 패키지가 현재 환경에서 동작되지 않는 이슈가 있었습니다.4년전이 마지막 업데이트다보니 호환이 되지 않는 것 같더라고요. 데이터 전처리 코드도 Python 의 .. 프로젝트/장기 프로젝트 2024. 3. 3. Swagger OpenAPI 3.0 에서 allOf 으로 확장해서 공통 응답 적용하기 Node.js + Express + TypeScript 로 이뤄진 프로젝트에서 OpenAPI 3.0 버전의 Swagger 패키지를 쓰고 있다. Swagger OpenAPI 3.0 은 다음 용도로 사용하고 있다. 클라이언트 OpenAPI Generator 을 통한 Type 코드 생성 ( 문서를 기준으로 Typescript 타입 객체가 생긴다..! ) 클라이언트를 위한 API 문서 용도 서버 테스트용(Postman 대체) 개발적으로 1번을 위한 목적이 제일 크다. OpenAPI 문서 파일을 공유하면 프론트엔드에 타입 파일을 만들어준다. 서버 문서를 보고 클라이언트에서 대응 가능한 타입을 일일이 만들어야 한다는 건... 여간 고통스러운 일이 아니다. 특히 타입스크립트는 컴파일을 위해 억지로라도(?) 타입을 만.. 프로젝트/장기 프로젝트 2024. 2. 4. [뮤즐리 이슈 해결] LetsEncrypt(Certbot) 도메인 인증서 만료 / 갱신 / 크론탭 등록 🚨 2023년 11월 24일 오후 2시 53분 경에 뮤즐리 서버에 접속 안 된다는 제보를 받았습니다! 처음 생각난 점은 저번에 AWS 계정을 다른 프리티어 계정으로 이전했을 때 도메인 만료가 생각보다 별로 안 남았다는 점이 기억에 남았는데요. 인프라를 이전하면서 인증서 만료에 대한 스크립트가 설정이 안되어 있어서 발생했습니다. 웹 페이지에서 인증서를 조회한 결과 역시나 만료일이 지났습니다. EC2 서버에 접속하여 LetsEncrypt(Certbot) 으로 도메인을 갱신했습니다. sudo certbot renew ... The following renewals succeeded: /etc/letsencrypt/live/api.muzily.app/fullchain.pem (success) 다시 접속한 결과 .. 프로젝트/장기 프로젝트 2023. 11. 24. Hustle #11. 처음 시작하는 사람도 작업할 수 있도록, 스프링 부트 개발 컨벤션 정하기 안녕하세요, 다람쥐입니다. 지난 포스팅에선 허슬의 프로젝트 구조를 잡아봤습니다. Hustle #10. 프로젝트 구조 잡기 안녕하세요, 다람쥐입니다. 저번 포스팅에선 Aquery Tool 으로 ERD 모델링을 했습니다. 2023.09.04 - [프로젝트/장기 프로젝트] - Hustle #9. Aquery Tool 으로 ERD 모델링하기 이번 포스팅은 허슬 프로젝트 구조 itchipmunk.tistory.com 이제 본격적인 개발을 시작했습니다. 오프라인으로 허슬 팀원들과 다 같이 모였는데요. 해야 할 작업을 분배했고, 다음 오프라인 모임 때 까지 개발을 해보자고 했습니다. 하지만 큰 난관이 있었습니다..! 😅 생각치도 못한 문제가... 그 다음 모임은 오프라인으로 서버 팀끼리 모였습니다. 역 근처 카페안의.. 프로젝트/장기 프로젝트 2023. 11. 22. 이전 1 2 3 다음