TIL/삽질 기록소8 시스템간 통신 중 요청 소실 에러 상황 테스트 환경에서 테스트 완료한 서버를 운영환경에 배포하였을 때 API 호출시 요청이 소실되는 에러가 발생 로그 시스템 상으로는 요청 수신 요청 송신 까지 찍혀 있는 상황 정상 Case의 경우 요청 수신 요청 송신 응답 수신 응답 송신 까지 찍혀 있어야 했다. 해결 과정 2번의 송신까지 로그가 찍혀있는 상황인데 3번의 응답 수신이 이뤄지지 않은 것으로 보아 에러가 발생했을 가능성이 있는 포인트 API 게이트웨이에서 송신 문제 Server2에서 요청 수신 문제 Server2에서 요청 처리 중 응답을 안해버린 경우 Server2에서 응답 송신 문제 API 게이트웨이에서 로그 쌓기 전 수신 문제 정도로 볼 수 있었고 우선 내가 바로 확인 할 수 있는 Server2의 로그를 확인해본 결과 요청을 처리하.. TIL/삽질 기록소 2023. 12. 3. [Lambda] 람다를 활용한 image resize 람다를 활용한 image resize 에 관한 내용은 많다 AWS 에서 자체 자습서 자료를 만들었을 정도로 대표적인 활용 방식인 것 같다. 근데 이제 내가 이를 구현하면서 마주했던 에러를 이야기 해보자한다. 문제 상황 1. 그냥 안됨 => 코드상의 문제이다, 파일 경로와 문법 실수를 유의하자 2. 무한 재귀 => 람다 트리거를 잘못 설정한 경우 s3 버킷을 하나로 사용하는데 조건을 이미지가 업로드 시로 통으로 걸어버리면 이미지 리사이징한 것을 올릴 때에도 트리거가 발동되어 무한으로 이미지 리사이징을 즐길 수 있다 내가 진짜 골치 아팠던것은 3. 이미지 리사이징이 진짜 가끔식 되고 대부분의 케이스에서는 제대로 동작하지 않는 경우였다. 코드는 아무리 뜯어봐도 문제가 없고 계속 테스트 해보다 보면 간간히 한 .. TIL/삽질 기록소 2022. 11. 2. [Debug]crontab으로 python 파일 실행 문제 상황 내가 원하는 것은 cron을 활용하여 매일 특정 시간에 추천 주제를 쌓아둔 DB에 접근하여 랜덤으로 값을 뽑아 다른 DB에 값을 써주는 작업을 하고 싶었다. 1. 앞서 말한 내가 원하는 작업을 python 파일로 작성 2. 이것을 crontab을 활용하여 실행 이렇게 진행하였는데 이제 1번은 완성되어 python3 main.py 이런식으로 동작시키면 원하는대로 동작하는 상황에서 crontab으로 main.py 를 동작시키면서 마주했던 에러들에 대해 작성해보자 한다. 해결 과정 내가 사용했던 ubuntu 기준으로 /var/log 의 syslog 파일에 cron관련 로그가 쌓였다. # CRON 관련 로그만 볼 수 있음 grep CRON syslog No MTA installed, discardin.. TIL/삽질 기록소 2022. 10. 27. [PostgreSQL] error: column "vendor" of relation "user" contains null values (미제) 문제 상황: 유저 테이블에서 유저가 어떤 소셜로그인으로 가입된 것인지 인지하기 위한 컬럼 vendor 를 추가하였음 vendor 는 이상한 값이 아닌 정해진 값들 중 하나가 될 것이기에 아래처럼 'kakao' | 'google' | 'apple' 으로 설정함. 그리고 nullable하지 않게 할 것 이기에, 유저를 생성할 때는 vendor 값을 꼭 넣어주게 코드를 작성하였다 하지만 위의 에러가... vendor가 null값을 갖고있는뎁쇼?? 를 계속 뱉는 상황이였다. 문제 해결 과정: 위의 vendor 값을 넣어주는 코드에서 내가 잘못 구현한 부분이 있을 것이라는 생각에 그 부분을 우선적으로 체크 => 문제 없었음 => 그래도 혹시 모르니깐 DB의 값을 직접 수정하여 null 값이 없게 만들어봄 => 동.. TIL/삽질 기록소 2022. 9. 29. [Git] rebase conflict 해결기 (feat. rebase vs merge) 처음 git을 사용할 때 add, commit, push, merge (사실 혼자 할때는 merge도 거의 사용하지 않았다) 밖에 사용하지 않았는데, 갑자기 프로젝트를 진행하다가 merge 말고 rebase으로 해달라는 팀원의 요청을 듣고 rebase가 merge??... 싶었다 ㅎㅎ;; 아마 나와 같은 사람들이 많은 것인지 매우 기초적인 내용이여서인지는 몰라도 구글링하면 잘 설명한 자료가 정말 많았다. 그래서 rebase가 뭐냐? 말그대로 re base, 즉 base를 옮긴다는 말이다. merge는 합체라면 rebase는 합치고하자는 하는 브랜치의 내용을 이어 붙이는 것이다. merge와 rebase의 차이로 인해 발생하는 점은 merge의 경우 여러 개발자들이 협업하다보면 여러 브랜치들이 동시 진행될.. TIL/삽질 기록소 2022. 8. 18. [Debug] connection to server on socket /var/run/postgresql/.s.pgsql.5432 에러 해결과정 에러 상황 코드상 entity에서 컬럼을 수정하여 EC2 에 올려서 사용하고 있던 Postgres에서 기존의 데이터와 새로운 DB 테이블이 충돌이 나서 테이블을 밀어주고 다시 실행하려고 하는 상황에서 유저 비밀번호를 까먹어서 이를 복구하려고 설정 파일을 건들다가 보니 정확히 어떤 이유인지 모르겠는데 이런 오류를 만나게 되었다. 그냥 postgresql에 접속하려고 하면 저 오류가 무지성으로 나와서 작업을 진행할 수 없었다 해결 과정 이를 해결하기 위해 스택 오버플로우등 구글링을 통해 얻은 방법들이 많았는데 잘 해결되지 않았고 결국 Postgresql 을 밀었다가 다시 까는 무식한 방법을 선택했다... 하지만 밀고 깔았을 때도 Postgresql은 제대로 돌아가지 않았고 service status post.. TIL/삽질 기록소 2022. 8. 9. [Nest.js] Passport-KaKao Strategy 관련 삽질 Kakao 로그인 / 로그아웃 (velog.io) 우선 처음 구현할 때 위의 블로그 글을 참조하여 구현하였다. 이후 내 입맛에 맞게 만들기 위해 수정을 해보려고 했는데 오픈된 자료는 적고 passport-kakao 공식 문서는 불친절하고 아주 죽을 맛이였다. (그냥 내가 멍청할수도??...) 문제 위의 블로그의 글처럼 controller 로 login, redirect,... 그리고 몇 개의 라우터로 카카오 공식 문서가 알려주는 대로 api 콜을 날려서 토큰과 유저 정보를 받아오는데 나는 여기에 kakao Strategy 를 만들어 @UseGuard() 데코레이터로 유효성 검사 등등의 작업을 시켜주고 싶었다. 나는 이제 구현하면서 몇가지 의문이 들었는데 사고의 흐름을 적자면 1. redirect 라우터에.. TIL/삽질 기록소 2022. 7. 13. [typeORM, Nest.js] OneToOne 관계 관련 삽질 기록 문제 원래 기존의 User 테이블이 유저의 모든 정보를 들고 있는 방식 보안 및 소셜 로그인 방식들을 확장하기 위해 기존 유저 Entity가 공통적이고 좀 덜 중요한 정보만 들고 있고 localUser, kakaoUser 등의 Entity 들과 OneToOne 관계를 맺는 DB를 수정하고자 하였음 One-to-One | TypeORM TypeORM 공식 홈페이지의 One-To-One 페이지의 예시는 유저와 프로필이였지만 찾는 본질적인 관계 자체는 똑같았기에 좋은 참고자료가 되었고, 추가적인 구글링을 통해 얻은 정보로 구현하였을 때 해결 과정 Service에서 콘솔 로그를 찍어보면 이미 저장한 user 와 localuser가 잘 검색되고 localuser 객체를 user의 local_user 필드에 할당해.. TIL/삽질 기록소 2022. 7. 10. 이전 1 다음 반응형