프로젝트34 [트러블슈팅] 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. [BetterDay] #3. AWS Route 53 & GoDaddy 도메인 연동 / HTTPS LetsEncrypt(Certbot) 설정 API 서버를 HTTPS 프로토콜로 적용하기 위해 도메인을 사야 했다.웹 프론트까지 신경 써야할 필요는 없었다.저렴한 가격을 우선 고려했지만, 이왕이면 짧은 도메인을 원했다. (욕심만 많은...) 가비아와 이런 저런 곳에서 팀원들과 찾았다.그러던 중 GoDaddy(이하 고대디)에서 첫 해 2$, 이듬해 20$ 정도 하는 도메인을 발견했다.회의하기 전에 빠르게 결제하고 도메인을 연동했다. AWS Route 53 네임서버를 고대디에 등록도메인을 구매하면 아래 사진처럼 확인할 수 있다.'프로필 > Account | My Products > All Products and Services > Domains' 에서 확인한다. 구매한 도메인 항목의 DNS 버튼을 눌러, DNS 설정 페이지로 접속한다.잠시 대기한다.A.. 프로젝트/단기 프로젝트 2024. 6. 25. [BetterDay] #2. 일기 내용을 암호화하기 (Converter, @DataJpaTest) 최근에 올린 강의 글을 프로젝트에 적용한 결과다. [JPA] 민감한 데이터 암호화 / 마스킹하기 (Attribute Converter, @Converter)어느 여름 낮.시원한 에어컨 아래, 냉커피를 마시며,막바지 API 개발을 하고 있는 다람쥐 사원. 그러던 중 메신저 알림이 울립니다. PM님 : 람쥐님 안녕하세요~ 😊오전에 전달주신 기능들 테스트itchipmunk.tistory.com 민감한 정보가 들어갈 수 있는일기 내용을 데이터베이스에 암호화했다.그리고 데이터베이스에서 가져올 때 복호화를 진행해 응답한다. Attribute Converter 와 AES 암호화 모듈을 사용했다.@DataJpaTest 으로 JPA 관련 설정을 불러와 이를 테스트했다. 모듈 구조 모듈 구조는 위와 같습니다.adapte.. 프로젝트/단기 프로젝트 2024. 6. 23. MOTI #4. 장고 어드민 버전 업데이트하기 (Poetry 전환) / ChatGPT 에서 질문 추천받아 추가하기 안녕하세요, 모티 개발자 다람쥐입니다.최근에 질문을 보충하는 작업을 했습니다.장고 어드민에서 질문을 추가했었는데요~헤로쿠에서 무료로 이용할 수 있는 기간이 끝나로컬로 어드민 서버를 띄우는 수 밖에 없었어요. 장고 어드민 버전 업데이트하기Poetry 전환 배경오래된 장고 어드민 프로젝트를 열어 실행을 해봤지만,패키지 설치 오류가 계속 발생했습니다. 😭😭패키지 버전 간 종속성 오류가 해결되지 않는 이슈로 보였어요. 다른 패키지의 Django 의존성이 올라간 것으로 보이고Django 버전을 어디까지 업그레이드할 지 찾아야 했는데요.귀찮아서... 그냥 Django 5 버전으로 올려버렸습니다. 그러나 Django 5 버전이 업데이트 되지 않기도 하고,이전에 설치할 패키지 버전을 모두 최신(*)으로 설정했다보니.. 프로젝트/장기 프로젝트 2024. 6. 23. [BetterDay] #1. 잡담 - 분리된 모듈에서 @DataJpaTest BetterDay 백엔드 서비스는 멀티 모듈 프로젝트다. 한 프로젝트에 기능과 레이어를 나눈 모듈로 이뤄져 있다. MySQL(로컬 - h2)와 통신하는 모듈은 JPA 기반이다. 분리된 JPA 모듈을 테스트하며 느낀 점이다. 본 글은 잡담이다. 출근하며 적고 있다. 자세한 기술 내용은 다음 글을 참조하길. 테스트 목적테스트 목적은 암호화/복호화다. BetterDay 서비스는 일기를 저장한다. 일기는 개인적이고 민감한 데이터가 들어간다. 따라서 데이터베이스 저장 시 암호화해야 한다. 암호화 / 복호화 모듈 의존성암호화/복호화는 보안 모듈에 의존한다. ‘:security:core' 모듈에 정의된 PrivacyEncryptor 인터페이스에 의존한다. 따라서 보안 모듈의 특정 구현체를 참조한다. 현재는 AES 암.. 프로젝트/단기 프로젝트 2024. 6. 14. [커리어리 디스코드 봇] RSS XML에서 유효하지 않은 문자 제거 - Invalid bytes in character encoding 안녕하세요.최근 디스코드 봇 용으로 커리어리 RSS 피드를 조회해 디스코드 웹훅으로 보내주는 스크립트를 만들었습니다. 커리어리 디스코드 봇 제작기안녕하세요, 다람쥐입니다. 최근에 병원에 입원을 했는데요. 예상 외로 회복이 빨라서 바로 손이 근질거리더군요. 새벽에 일찍 일어나서 만들만 만한 게 없을까, 고민하던 차에 자주 이용하는itchipmunk.tistory.com 트러블 슈팅 5번으로 RSS 피드를 불러올 때 XML에 아래처럼 오류가 나는데요.Invalid bytes in character encoding 오류로 유효하지 않은 문자가 들어가 읽을 수 없다는 오류였습니다.아주 가끔~ 해당 인코딩이 잘못 들어갔겠거니 싶어서 임시로 replace 를 해줬습니다. 그 이후로도 간간히 RSS 피드를 읽을 수.. 프로젝트/단기 프로젝트 2024. 5. 4. 커리어리 디스코드 봇 제작기 안녕하세요, 다람쥐입니다. 최근에 병원에 입원을 했는데요. 예상 외로 회복이 빨라서 바로 손이 근질거리더군요. 새벽에 일찍 일어나서 만들만 만한 게 없을까, 고민하던 차에 자주 이용하는 커뮤니티에 커리어리 글을 가져오는 봇을 만들어봤습니다. 배경 저는 커리어리를 알고 있었지만, 이용하지는 않았는데요. 전 직장에서의 사수님도, 최근 멘토님도 커리어리를 자주 보시는 것 같아서 나도 봐야 하나~ 싶더라고요. 가까운 사람의 유행에 민감한 편입니다. 😁 커리어리 글의 내용이 대체로 길지 않은 편이라, '다 가져올까?'도 생각했지만... 메시지 개수가 늘어나기도 하는 단점이 있어요. 최근 인기 있는 게시글만 링크로 가져오는 게 메시지 테러(?)가 되지 않을 것 같네요. 따라서 매 주 / 매 달에 한 번 씩 가져오는.. 프로젝트/단기 프로젝트 2024. 4. 17. 이전 1 2 3 다음