쇼피파이 임베디드 앱

Today I Learned 날짜 2024년 7월 4일 목요일 내용 임베디드 앱은 다르다. 큰일났다. 인스타그램 댓글을 가져오는 스프린트가 다 끝나고, 검수만 남아있었다. 무려 10번의 요청 끝에 렙틸리언 에게 앱 허가를 받아냈는데, 쇼피파이가 복병이었다. 임베디드 앱은 우리가 몰랐던 규칙이 있었다. 바로 shopify app birdge를 사용해야 한다는 것. 이걸 이용해, 사용자의 세션 토큰을 검증해야 한단다. 우린 전혀 쓰지 않는데… 뭔지도 모르겠고 어떻게 해결해야할 지도 몰랐다. 기존대로라면, 정해진 검증이 끝나면 우리가 설정한 곳으로 유저를 리다이렉트 시킨다. 유저는 아이프레임 내에 우리가 구현한 화면을 볼 수 있게된다. 근데, 앱 브릿지로 검증할 때 앱 설정에서 입력한 URL과 우리가 이동시키는 URL이 일치해야 한다. 말하면서도 어렵긴한데… 풀어서 설명하자면 ...

2024년 7월 4일 · 2 분 · 배준수

정말 모두 가져와야하는 데이터인지 고민해보기.

Today I Learned 날짜 2024년 7월 3일 수요일 내용 데이터륿 받아오는 시점 아임 리포트 개발을 진행중 예상치 못한 부분이 나타났다. 유저가 네이버 검색광고 계정을 등록하면 필요한 데이터를 가져오도록 개발했다. 순서대로 관리자 계정 → 관리자 계정에서 관리하는 모든 계정들 → 각 계정들 내에 존재하는 모든 캠페인 → 각 캠페인 내에 존재하는 모든 광고그룹 → 각 광고그룹 내에 존재하는 모든 키워드 를 가져오도록 해놨다. 필요한 데이터를 조회할 떄, 키워드별도 존재하고 광고그룹 별도 존재하고 여러가지가 있는데 매번 필요한걸 네이버 API에서 가져오는게 불필요하다고 생각했다. 어차피 매일 쓸건데 가지고 있는게 낫지 않을까? ...

2024년 7월 3일 · 2 분 · 배준수

구글 드라이브 API 탐색 기능 만들기

Today I Learned 내용 열심히 스프린트 진행중. 페이스북 앱 검수 9차 요청 또 페이스북 앱 검수 요청에 또 실패했다.. 인스타그램 댓글을 가져오기 위해 필요한 권한은 총 3가지인데, 그래도 그 중 2개까진 통과했다. instagram_basic 권한이 필요한걸 확인이 안된다는데.. 아니 인스타그램 댓글을 가져오는 기능을 보여줬는데도 모르겠다 그러면 어쩌라고… 일단 만들기 새로운 앱 서비스를 만드는데, 일단 기능만 완성하려고 열심히 함수위주로 만들고 있다. 만들면서도 이건 클래스로 잘 묶어보면 보기 좋겠다 싶은데, 구글 API Docs 읽으면서 안되는게 되게 하느라.. 일단 구현이 우선이라 생각하고 빨리 만들려고 한다. 구글 드라이브 에서 파일과 폴더를 조회하고, 내부 서브디렉토리를 조회하는 함수를 만들었다. ...

2024년 7월 2일 · 1 분 · 배준수

구글 소셜 로그인 구현하기

Today I Learned 날짜 2024년 7월 1일 월요일 내용 활성화 유저 체크 우리의 서비스(프로덕트 리뷰, ai, 리스트디자이너)를 사용하는 유저들을 탐색해서 저장하는 기능을 만들었다. 코어스크립트 활성화 여부, 앱블록 활성화여부를 확인하는 작업이라 이것저것 오류가 많이난다. 원인은 쇼피파이에서 테마를 가져와 우리의 앱블록(위젯)을 사용하는지 확인하는 과정에서 테마가 원하는 형태가 아닐 때가 많기 때문이다. 심지어 json 타입이아니라 string으로 올때조차 많은지라 온갖 예외처리가 덕지덕지 붙어있다. 브라우즈 부스터를 개발하고, 이 데이터에서 브라우즈부스터도 추가해주었다. 어느 순간 확인해보니 작동이 안되고있다! 또 뭐가 말썽인가 싶어 열심히 들여다 본 결과를 찾아냈다.. 로직이나 문법이 잘못된게 아니라 스키마를 최신하 안해줬다.. 진짜 별것도 아닌데, 오류 메시지도 뜨지 않고 멈춰서 찾기 힘들었다. ...

2024년 7월 1일 · 2 분 · 배준수

서비스 데이터베이스 구조 수정

Today I Learned 날짜 2024년 6월 28일 금요일 내용 스프린트 계획 스프린트 계획이 완성됐고, 다음주부터 시작된다. 플래닝미팅을 위한 공수를 작성하다가 놓치고 있는 부분을 몇 개 알게 되었다. 브랜드는 진짜 브랜드가 아니었다. 관리자 계정에 엮여있는 여러 계정들 하나하나를 브랜드라고 불렀던 것이고, 계정 내에 있는 캠페인을 분류할 필요가 없었다. 따라서 브랜드 테이블은 필요가 없게 되었고 고민은 해결되었다. 구글 드라이브 디렉토리 정보를 저장할 필요가 없었다. 구글 드라이브 내에 폴더들을 가져와 데이터베이스에 저장하려고 했는데, 생각해보니 굳이..? 싶다. 그냥 하위폴더나 상위 폴더를 열때 그 디렉토리 정보를 가져오도록 구글에 보내는 요청을 만들 계획이다. 각 계정(위에서 말한 브랜드)가 어떤 템플릿과 로우데이터를 사용중인지 알고 있어야 한다. 그에 대한 테이블도 만들었다. 데이터 임포트 상태를 표시하기 위한 작업이 필요하다. 임포트가 진행되는동안 또 다른 요청이 발생하지 않도록 상태를 추적하기 위해, 임포트 로그를 위한 테이블이 필요하다. 3주간 레츠고 ...

2024년 6월 28일 · 1 분 · 배준수

서비스의 데이터배이스 구조 생각해보기

Today I Learned 날짜 2024년 6월 27일 목요일 내용 네이버 검색광고 데이터와 DB 매일 아침 스프레드시트에 데이터를 집어넣는 근로자들을 해방시켜주는 스프린트를 준비중이다. 우선 기본적인 데이터베이스 틀을 잡고 있는데, 네이버 검색 광고가 어떤 구조로 되있는건지 모르겠다! 전문가인 태웅님께 하루 한번 과외를 받은 덕에 드디어 큰 틀을 알게 됐다. 우선 최상위 테이블을 User로 설정했다. 이 서비스의 핵심은 데이터를 구글 스프레드시트에 집어넣는 것이니 구글드라이브와 연동이 필요하다. GoogleDriveAccount 테이블이 그 정보를 저장한다. 현재 회원가입과 로그인은 구글을 통해서만 이루어지도록 해놨기 떄문에 구글 로그인을 위한 테이블을 따로 만들었다. 원래 유저 테이블에 집어넣는 경우도 있지만, 앞으로 지원하는 소셜 로그인이 늘어날떄 마다 최상단 테이블을 마이그레이션 하는 불상사를 겪지 않기 위해 별도의 테이블을 만들었다. 네이버, 틱톡, 메타가 추가될 때마다 테이블을 추가할 예정. ...

2024년 6월 27일 · 2 분 · 배준수

Today I Learned 날짜 2024년 6월 26일 수요일 내용 JWT 토큰 기존 알파플러스 서비스에서는 클라이언트가 보내는 요청을 따로 검증하지 않는다. 접근 자체가 일반적으로 쇼피파이에 로그인 한 후에 이루어 지는 이유도 있을 것이고, 애초에 로그인이 되면 로컬 세션에 jwt로 생성한 토큰이 저장되기 때문이다. 이 토큰이 없으면 프론트 쪽에서 어드민 페이지에서 내보낸다. 사실 직접 URL을 입력해서 접속할 수 있기 때문에 첫번째 이유는 무력화 될 수 있겠으나, 우리만 그렇고 대부분의 유저들은 쇼피파이 어드민을 통해 접근할 것이다. ...

2024년 6월 26일 · 5 분 · 배준수

원인 모를 Unknow Error

날짜 2024년 6월 25일 화요일 내용 0 Unknown error 요청에 대한 응답에 있는 에러 메시지는 여러가지 정보가 담겨있다. 200번 대는 성공에 대한 status_code, 300번대는 redirect 관련이다. 400번대는 요청이 잘못된것, 500번대는 코드가 잘못되었을 떄 나타난다. 이번엔 0이다. 이메일로 리뷰를 요청했을 때 어떤 경우에 오류가 발생하고 있다. 아직 무엇이 문제인지 몰라 TIlL을 쓸 수 갇없다. 도대체 어떤 경우에 왜 발생하는건가… 해결하게 되면 새롭게 배우게 되는게 참 많아 따로 TIL로 작성해야겠다. 회고 뭔지 모를 오류의 원인을 찾느라 하루종일 헤매었다.. ...

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

0 Unknow Error(1)

Today I Learned 날짜 2024년 6월 24일 월요일 내용 네트워크문제 elastic apm상으로 자꾸 에러가 발생한다. 구체적인 내용은 이메일로 발송된 리뷰 요청으로 리뷰를 작성할 때 오류가 발생한다는 내용이다. 굉장히 성가신 오류라는게 문제다. 특정 시간대에 한 곳(스토어)에서 몰려서 발생한다. 발생하는 스토어가 무작위 데이터가 이상없음(아마) 뭐가 잘못되었는지 모르니 재연이 불가능하다. 로직을 아무리 들여다봐도 데이터상 이상이 없으니.. 발생하는 오류 코드는 0 Unknown Error 라서 찾아보니 네트워크 문제라는 이야기가 많았다. 혹시나 싶어 이것저것 뒤져봤는데 심상치 않은 내용이 있긴하다. ...

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

가상환경 꾸리기

Today I Learned 날짜 2024년 6월 21일 금요일 내용 새로운 서비스와 가상환경 다음 스프린트로 아예 새로운 서비스를 만들게 됐다. 구글 워크스페이스 마켓플레이스에 출시할 앱이라 새롭게 서버를 파야했다. 기존에 만들어져 있는 것에 기능을 더하거나 고치는게 아니라 처음부터 싹 다 해야한다. 몇 달전, 우리 서비스가 어떻게 돌아가는지 이해가 안되서 혼자 해본적이 있는데 다행히 그 떄 도움이 많이 됐다. 따라할 수 있는 기본 코드도 있기도 하고… 기본적인 로컬 빌드 상태를 만들고 alembic, docker 까지는 설치해서 틀은 잡았다. ...

2024년 6월 21일 · 2 분 · 배준수