요청의 성능 높이기

Today I Learned 날짜 2024년 9월 26일 목요일 내용 불필요한 요청 없애기 인스타그램 피드 QA를 진행중이다. 위젯 관련된 세팅 요청이 시간이 꽤나 걸린다. 구체적으로는, 인스타그램에서 가져온 게시글과 상품의 연결을 끊는 부분에서 오래걸린다(그외 다른 것들도 꽤 걸린다). 원인은 앱 메타필드에 있다. 기존 알파플러스에서는 스토어에 접속한 클라이언트가 위젯 렌더링을 서버에 요청하는 방식을 사용했다. 이젠 Shopify의 앱 메타필드를 이용해서, 데이터 까지 모두 렌더링된 HTML, CSS, JAVASCRIPT 파일을 집어넣어놨다. 따라서, 위젯과 관련된 모든 값이 앱 메타필드에 업로드되야 하는데 이게 시간을 꽤나 잡아먹는다. 그래서 유저가 상품 연결을 해제하면 응답하여 반영되는 것까지 시간이 2.5초 정도 소요된다.. ...

2024년 9월 26일 · 1 분 · 배준수

5장 도메인 특화 설계

5장 도메인 특화 설계 요청을 보내고 클라이언트가 되돌려 받는 하이퍼미디어는 미로의 길을 알려줄만큼 다음 선택지에 대한 정보를 제공해야 한다. 클라이언트는 그들의 원하는 일을 한다 미로 지도라는 리소스의 표현에서 출구를 찾던, 지도를 작성하던, 요청 몇개 보내고 지도를 완성했다고 거짓말을 하던 상관이 없다. 클라이언트와 서버는 서로 주고받는 표현의 이해를 공유하고 있어야 하지만 풀어야 하는 문제가 무엇인지 함께 인식할 필요는 없다. 표준 확장하기 미로를 3차원으로 확장한다면 어떤 클라이언트는 작동에 이상없으나 어떤 클라이언트는 문제가 생긴다. ...

2024년 9월 25일 · 2 분 · 배준수

무의미한 Import 에러 해결하기

Today I Learned 날짜 2024년 9월 25일 수요일 내용 Import 에러 박멸 대작전 예전부터 상당히 맘에 안드는 게 있었다. 바로 import 문 에러(pylint E0401 에러) 동작에 전혀 이상이 없다… 하지만 단점이 있는데, 실제로 import 에러가 나더라도 난 확인할 수 없다.. 서버를 돌려봐야만 알 수있다.. 보기에 상당히 불편하기 때문에 이를 바로잡고자 했다. 찾아보니 파이썬 interpreter 의 문제라고 한다. 파이썬이 여러가지 버전이 깔려있는데 (3.10, 3.12) 적절한걸로 못골라줘서 생기는 문제란다. 내가 다루는 3가지 서비스는 파이썬 버전이 다르다.. 가상환경 venv를 설정해주고 liib 폴더의 패키지 내의 파이썬을 interpreter로 지정해주니 깔끔하게 해결됐다. ...

2024년 9월 25일 · 1 분 · 배준수

부정확한 데이터의 원인

Today I Learned 날짜 2024년 9월 24일 화요일 내용 데이터가 부정확한 이유 아임리포트의 결과물에서 데이터가 부정확하다. 어떤 규칙성이 존재하지 않은채, 중구 난방으로 틀려서 어딘지 감조차 안온다. 어떤 달은 데이터가 정확하기도 하다.. 우선 특정 광고그룹의 데이터가 누락되는 문제부터 손봤다. 계정 내의 캠페인, 그 캠페인에 포함되는 광고그룹들, 그 광고그룹 내에 포함되는 키워드들은 데이터베이스에 저장된다. 특정 유형의 광고그룹이 스프레드시트에 누락되었고, 데이터베이스를 확인해보니 데이터베이스 상에서도 없었다. 그 광고그룹들의 상위 캠페인은 포함되어 있었다. 비교적 최근 생성된 광고그룹이라서 누락된 문제인가? 싶어 다시 데이터를 날리고 추가해봤다. 그래도 여전히 같은 상황이다. 이 광고그룹들은 네이버에는 존재하지만 내 데이터베이스에는 저장되지 않는다. ...

2024년 9월 24일 · 1 분 · 배준수

datetime 형식 오류

Today I Laerned 날짜 2024년 9월 23일 월요일 내용 나는 메타를 많이 혐오하는 개발자다. 메타의 앱 인증은 정말 인간미가 넘친다. 벌써 20번째가 훌쩍 넘어가버렸다. 그 중 절반은 의미 없는 요청이었다. 왜냐하면, 2번에 1번꼴로 “너 그 권한이 필요 없어보여” 라고 대답해 주기 때문이다. 어제의 너는 나에게 그 권한의 필요성이 타당하다고 했단다… 요즘은 자꾸 내가 제공해준 테스트용 계정 비밀번호가 틀렸다고 한다. 내가 이상한가 싶어 다른사람에게 부탁해도 잘 되는 로그인을 왜 너는 못하니… test123! 를 치는게 그렇게 어려운거니? ...

2024년 9월 23일 · 1 분 · 배준수

Shopify 딥 링크

Today I Learned 날짜 2024년 9월 20일 금요일 내용 딥링크 생성 인스타그램 피드 설정을 완료한 유저가 버튼을 누르면 자동으로 위젯이 추가되는 기능을 만들어야 한다. 그래서 난 테마에서 index.json을 가져와 필요한 걸 추가해주면 되지 않나? 생각했다. 실제로 관련된 shopify docs도 있고.. 아무리 해봐도 업데이트하는 put 요청이 Not Found를 반환한다. 관련된 문제를 찾아보니 나만 겪은 문제가 아닌 듯한데, 모든 질문이 작년 2분기 쯤에 몰려있다. 알아본 결과, 테마는 스토어 주인이 권한을 가져야 하기 때문에 앱이 직접 접근해서 수정하지는 못하도록 막혔다고 한다. 특히 json 파일들은.. 그럼 안되는 건데 다른 앱들은 어떻게 한거지? 싶어 이 기능이 있는 다른 앱을 실행해봤다. 자동으로 추가하는게 아니라, 테마 편집기에 추가된 상태로 이동시켜주는 기능이었다. 저장버튼만 누르면 자동으로 반영되도록… ...

2024년 9월 20일 · 1 분 · 배준수

EC2 무한 스크립트 초기화 문제

Today I Learned 날짜 2024년 9월 19일 목요일 내용 건방지지만 좋은 친구 인스타그램 관련된 쇼피파이 앱을 새로 생성했다. 임베디드 앱으로 만들었기 떄문에, 샵이 앱을 다운로드 받은 직후 세션토큰을 검증해주어야 한다. 기존에 다 구현해봤던 로직이라, 과거에 썼던 걸 그대로 가져와 썼다. 근데 토큰이 자꾸 잘못되었다고 뜬다. 분명 Shopify Docs에서 설명한 그대로 했는데… 마지막 원본 서명과 비교할 때 자꾸 다른 값이 뜬다.. GPT한테 물어봐도 제대로 된 해결책을 내놓지 않는 와중에, GPT가 내게 물어왔다. ...

2024년 9월 19일 · 3 분 · 배준수

4장 하이퍼미디어

4장 하이퍼미디어 클라이언트는 어떤 요청을 해야 할지 어떻게 아는 것일까? ⇒ 하이퍼미디어 하이퍼미디어는 서버가 클라이언트에게 나중에 어떤 HTTP 요청을 보낼 수 있을지 설명하는 방식이다. 하이퍼미디어 유형으로서의 HTML <a> 태그는 HTTP GET 요청을 만들 수 있음을 브라우저에 알려주는 신호다. 더 정확히는, 특정 URL이 방문할 수 있는 리소스를 부른다는 웹 서버의 약속 사용자가 활성화할 때만 요청(클릭)이 진행된다. <img> 태그도 요청할 수 있는 HTTP GET 요청을 설명하긴 하지만, 문서 사이를 이동한다는 뜻은 담겨 있지 않다. ...

2024년 9월 18일 · 3 분 · 배준수

서운산 등반

2024년 9월 17일에 등산을 다녀왔는데, 바빠서 이제야 후기를 쓴다. 그 당시 스트레스가 상당했던지라 머리 비우러 갔었다. 그 당시 개발중인 서비스의 디버깅이 도무지 끝날 길이 안보였었기 떄문이다. 자존감이 바닥을 쳐 정신이 나가기 일보 직전이라 마음을 가다듬기 위해 산에 올랐다. 그리고 그떈 몰랐다. 12월에도 그걸 디버깅 하고 있을 줄은… 산 입구에 주차장이 잘 되어있다. 산 입구에 있는 청룡사 덕분이다. 넓~은 주차장이 무료개방. 개이득. 오늘의 목적지는 서운산 정상이다. 길이 복잡하지 않아 좋다. 루트는 2곳인데 짧고 험난한게 왼쪽이다. ...

2024년 9월 17일 · 2 분 · 배준수

ECS 컨테이너가 아무 이유없이 종료될 때

Today I Learned 날짜 2024년 9월 13일 금요일 내용 ECS 컨테이너가 종료되는 이유 ECS 테스크가 자꾸 종료된다. 내부 로직에선 전혀 이상하지 않은데… 몇일 전에 해결된줄 알았더니 작동하고 안하고가 반복된다. 물론 안하는 경우가 훨씬 많지만.. 내부 코드에는 문제가 없다고 판단해서 AWS를 열심히 찾아봤다. ECS에서 컨테이너가 작동해 태스크가 추가되면, 그 태스크의 IP가 로드밸런서가 향하는 대상그룹에 등록된다. 그리고 그 컨테이너가 제대로 통신할 수 있는지 확인하게 된다. 여기서 방금 실행된 컨테이너 IP가 Target is in an Availability Zone that is not enabled for the load balancer ...

2024년 9월 13일 · 1 분 · 배준수