별개의 DB 관계 파악

Today I Learned 날짜 2023년 12월 28일 목요일 내용 매 주, shop의 review에 관해 발생한 변화들을 담은 메일을 발송해야 한다. 어제 가진 의문들에 대해 집중적으로 고민한 덕에 많이 진행됐다. 현재 발송하는 shop의 이름 각 메일에는 수신하는 shop에 대한 정보가 담겨야 한다. 그렇다면 그 샵의 정보를 통해 조회하여 담아야 하는데 어떻게 알 수 있을까에 대해 고민됐다. 조금만 고민해보니 정말 쓸데 없는 생각이었다. 모든 shop에 보내야하니 그냥 각 shop에 대해 필요한 정보를 다 가져와야 했다. ...

2023년 12월 28일 · 3 분 · 배준수

Amazon ECS 알아보기

Today I Learned 날짜 2023년 12월 27일 수요일 내용 Verification Email은 테스트서버에서도 이상이 없었다. 코드가 힘들기 보단 이해가 힘든 Task였음. Review Report Email 주 1회, 한 주간 리뷰의 추가 상황에 대해 메일을 보내줘야 한다. 가장 우선 파악해야할 것은 세 가지였다. 어떻게 정기적으로 메일을 보낼 것인가? 메일 형식은 어디에 어떻게 설정할 것인가? 메일에 데이터를 어떻게 담을 것인가? 우선 반복된 동작은 cron과 cronjob에서 처리한 다는 것은 알고 있었다. 문제는 이 코드를 누가 언제 실행하는지 였는데… 결국 ECS였다. 이에 관한 설명인 밑에서 하고, ECS에서는 특정 이벤트나 시간을 기준으로 Task를 계획할 수 있다. ...

2023년 12월 27일 · 2 분 · 배준수

Email 관련 Task 완료!

Today I Learned 날짜 2023년 12월 26일 내용 지난 주에 정리했던 대로 로직을 완성했다. 기존의 messaging_log를 처리하는 스크립트는 messaging의 비활성화 여부를 체크하지 않기 떄문에, 스크립트를 새로 생성했다. 여기서는 messaging 설정에 따라 messaging_log의 sending_status를 출력하도록 했다. ON 일땐 보내는 로직이 발생하지만 필요한 param이 모두 입력되지 않았기 떄문에 발송 오류가 발생하여 Unable로 설정되야 하고, OFF 일 때는 보내선 안되므로 CHANNEL_OFF 로 설정되야 한다. 로컬에선 문제 없이 작동한다. 회고 노로바이러스 떄문에 너무 힘들다. ...

2023년 12월 26일 · 1 분 · 배준수

개발개발은 즐거워

Today I Learned 날짜 2023년 12월 7일 목요일 내용 어제 확실히 해야하는 부분을 정리했기 때문에 질문으로 해결할 수 있었다. 기간을 2주로 잡았는데, 더 빨리 끝났다. 굿 Task 완료! Shopify에서 변경한 샵 정보를 shop 테이블에도 반영해야 하는가? 기존 코드에선, Shopify에서 샵의 정보가 변경되면 shop_detail 테이블만 업데이트 되었다. 샵의 이름은 2종류인데, Shopify에서 설정한 것과 알파리뷰에서 설정한 것이다. 기존에 파악했던 대로 shop 테이블은 Shopify에서 받아온 데이터를 그대로 저장해주는 테이블이고, shop_detail은 알파리뷰에서 생성된 데이터를 저장하기 위한 테이블이다. 그런데, Shopify에서 수정된 데이터를 shop_detail 에만 반영되는 기존의 코드는 이해가 잘 안됐다. 내가 모르는 또 다른 뜻이 있진 않을까 걱정됐다. 여쭤보니 없었다. 그래서 바로 고쳐버렸다. 슈퍼관리자 페이지에서 병기되는 두 이름 중 무엇이 우선인가? 기존 Shopify에서 설정한 이름만 출력되는 상황에서 두 종류의 이름 모두 출력하도록 변경해야 했다. 둘 중 하나는 괄호 내에 출력되야 하는데, 어떤 것을 집어넣야 할까? 질문을 통해 알파리뷰 이름이 우선인 것을 확인하고 Shopify 에서 설정한 이름을 괄호안에 집어넣었다. Shopify에서 샵의 이름을 변경하였을 때, 알파리뷰에서 설정한 이름도 변경되야 하는가? 1번 질문과 연계되는 이야기인데, Shopify에서 수정 시 웹훅을 통해 shop_detail 이 수정되기 때문에 기존에도 두 이름은 연관이 있었다. 혹시 아예 따로 관리되도록 해야 하는 지에 대해 궁금했지만, 질문을 통해 이대로 두는 것으로 결정했다. 좌상단에 나타나는 이름은 어떤 이름이여야 하는가? 좌상단에는 ALPHA REVIEW FOR { 샵 이름 } 이 나타난다. 기존에는 Shopify에서 설정한 이름이 나타나도록 되어있었으나 알파리뷰에서 설정한 이름이 출력되도록 변경하였다. 로그인 과정에서 해당 계정과 연관된 Shop들을 가져와서 세션에 저장한다. 이 데이터를 바탕으로 출력하기 떄문에, 세션에 알파리뷰에서 설정한 이름도 추가로 저장해주었다. 회고 개발 개꿀잼!!! 발목 깁스한건 노잼 ...

2023년 12월 7일 · 2 분 · 배준수

혹시나는 역시나

Today I Learned 날짜 2023년 12월 6일 수요일 내용 찜찜한게 가시지 않아 스스로에게 질문을 던지며 상황을 정리했다. 곡해 정확한 구조와 디자인에 대해 자문자답 하는데 반나절이 걸렸다. 심지어 확정적으로 shop_detail이 쇼피파이에서 받은 데이터고, shop이 알파리뷰에서 설정한 값이라고 판단하고 이를 증명하는데 시간을 많이 낭비했다. 이 원인은 로컬, 테스트, 실 서버를 혼동해서 발생한 일이었다. AWS RDS에서 dev가 들어간 인스턴스는 테스트 서버의 데이터들이 저장된다. 여기에 접속해서 데이터를 확인하고 실제 슈퍼관리자 페이지에서 어떻게 출력되는 지, 반영되는지를 계속해서 비교했다. 이 비교 대상 사이트가 테스트 페이지가 아니라 실제 고객들이 이용하는 product 페이지였다. 테스트 서버의 슈퍼관리자 페이지를 들어갔어야 했다. 엉뚱하게 서로 영향을 못 끼치는 두 개의 관계를 파악하다 보니 온갖 억측과 보정과 가정을 뒀다. 늦게나마 이를 파악하고 다시 정리를 시작했다. ...

2023년 12월 6일 · 3 분 · 배준수

잘될리가 없는데..

Today I Learned 날짜 2023년 12월 5일 화요일 내용 계획을 작성하기 위해 구체적인 코드를 이해하는 시간을 가졌다. 기능과 효과 이해 어제 파악한대로, 샵의 이름을 바꿀 수 있는 곳은 2개이다. 쇼피파이 관리 페이지와 알파리뷰 관리 페이지. 각각을 바꾸었을 때 정확히 무슨 일이 일어나는지 확인했다. 알파리뷰 관리 페이지의 왼쪽 상단에는 숍 이름이 나타난다. 이 부분과 슈퍼관리자 페이지에서의 변경 사항을 체크하여 표로 작성했다. 수정위치\반영 관리자 대시보드 슈퍼관리자 알파리뷰 세팅 X(세팅엔 적용) 쇼피파이 정보 변경 쇼피파이 세팅 X(세팅엔 적용) 쇼피파이 정보 변경 표에 대한 설명을 첨부한다. 알파리뷰 관리 페이지의 왼쪽 상단에 나타나는 것(위 사진)을 관리자 대시보드라고 표현하였다. 알파리뷰 관리 페이지나 쇼피파이 관리 페이지 어디에서 이름을 바꾸든, 관리자 대시보드는 변화가 발생하지 않았다. 다만, 저 페이지에서 setting을 통해 샵 설정 페이지로 들어가면, 샵에 관한 정보가 나타나는데 그 정보에는 적용이 되있었다. ...

2023년 12월 5일 · 2 분 · 배준수

팀차이

Today I Learned 날짜 2023년 12월 4일 월요일 내용 지난 주 테스트 코드를 완료한 이후 새로운 Task에 진입했다. 새로운 티켓 지난 번 업무 시스템 관련해서 이야기를 들었지만 아직은 조금 낯설긴 하다. 물론 크게 복잡할 것 없는데 내가 겁먹은 걸 수도 있고… 고객이 Shopify에서 shop 이름을 변경했을 때 슈퍼관리자 페이지에서 어떻게 노출될 것인가가 주제였다. 우선 슈퍼관리자가 처음 접하는 개념이라, 무엇인지 부터 파악했다. 우리 서비스를 이용하는 모든 고객들에 대한 정보나 현황을 파악하고 관리할 수 있는 종합적인 페이지인데, 기존 계정이 보내주는 링크를 통해서만 가입할 수 있었다. product 서버에서는 가능했지만, 로컬에서는 어떻게 해야할지 고민했다. 처음에는 DB에 직접 집어넣으려고 했으나, command를 이용해보라는 도움을 받았다. DB를 직접 건드리는 게 좋을리가 없으니 당연히… ...

2023년 12월 4일 · 3 분 · 배준수

테스트 코드 완성!

Today I Learned 날짜 2023년 11월 30일 목요일 내용 계속해서 테스트 코드를 고쳤고 2차로 완성했다. 화요일에 완성했다고 판단하여 PR을 올렸는데, 그떄 받은 코멘트를 피드백하여 수정했다. 여러 오류들을 수정해가는 과정을 정리하였다. 모든 경우를 순환 위젯을 생성하는 함수를 테스트해야 했다. 위젯의 종류와 설치 위치에 따라 다양한 경우의 수가 존재할 수 있는데, 기존에는 무작위로 하나를 골라 테스트하고 결과를 도출시켰다. 이것을 pytest.mark.parameterize를 이용해 모든 경우의 수를 검증하도록 수정하였다. 위젯 타입에 대한 클래스가 워낙 많았고 실제로는 다르게 처리되야 할 타입들도 존재하다보니 오류가 발생하였다. 따라서 어떤 타입들이 살짞 다른 로직을 거쳐야 하는지 파악하였다. 결정적으로, 검증 대상은 위젯 타입의 이름을 포함하는 html 파일이 존재 하는가를 기준으로 성공 여부를 판단하고 있었다. ...

2023년 11월 30일 · 2 분 · 배준수

수박 겉 핥는척 하기

Today I Learned 날짜 2023년 11월 29일 수요일 내용 테스트 코드를 수정하는데 같은 곳을 맴돌고 있다. 어떤 WidgetType 들이 에러릴 일으키고 있는데, 속성에 알맞은 값을 매칭시키지 못한 것이 원인인지, 아예 생성 시 제외시켜야 할지 로직을 파악 못하니 헤매고 있다. 회고 이거 해내면 기분 진짜 날라갈듯.

2023년 11월 29일 · 1 분 · 배준수

열심히 아무것도 못하기

Today I Learned 날짜 2023년 11월 28일 화요일 내용 테스트 코드 작성을 완료하고 PR을 올렸다. 코드에 대한 리뷰를 받고 재수정에 들어갔다. Pull Request 글로벌 개발팀 내에서 지킬 규칙에 대힌 회의가 있었다. commit과 PR 형식, 코드 작성과 formatting 등등 여러가지에 관해서.. 지금 버릇을 잘 들여놔야 나중에 나도 팀원들도 고생 안하지 않을까 싶다. Test Data 테스트 코드를 작성하는데 있어서 가장 까다로운 것은 적절한 테스트 데이터를 만드는 것이다. 어떤 필드를 채워야 할지, 어떤 객체 혹은 JSON 형식을 취해야 할지 등 여러모로 참 머리아프다. 이것저것 쑤셔넣다보면 계속 같은 곳을 맴돌게 되니 차근차근 가설을 세워나가면서 해결해야겠다. ...

2023년 11월 28일 · 1 분 · 배준수