서비스 진입 구상하기

Today I Learned 날짜 2024년 9월 3일 화요일 내용 서비스 초기 진입 구상 인스타그램 서비스의 초기 진입 부분을 구현하고 있다. 크게 어렵다거나 골치아픈 부분은 없는데 이것저것 따지고 세세하게 신경써야 할 부분이 많다… 유저의 인스타그램 계정이 비즈니스냐 아니냐에 따라 전혀 연관되지 않은 테이블로 나뉘어진다. 애초에 인스타그램 피드와 인스타그램 코멘트는 그렇게 구현된 서비스다 보니까… 인스타그램 기본 계정을 사용하다, 그 계정을 비즈니스 계정으로 바꾸었을 때 데이터를 어떻게 유지시켜 줄 것인가? 비즈니스 계정인지, 일반 계정인지 API 만으로 판단할 수 있는가? 계정이 다수가 되었을 때의 확장성은 어떻게 처리할 것인가? 로그아웃시에 데이터는 어떻게 처리하며 재 로그인시 데이터를 어떻게 찾아 연결해줄 것인가? 등등…. 이런 개발이 가장 어렵다. 온갖 경우의 수를 다 생각해봐야 하는 스프린트.. ...

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

구글 API가 작동하지 않았던 이유

Today I Learned 날짜 2024년 9월 2일 월요일 내용 이번엔 구글 차례.. 진짜 다 되었나 싶어 열심히 테스트를 돌리던 와중 또 하나의 문제를 발견해버렸다. 멀쩡한 스프레드시트를 정기 업데이트할 때 만 못찾는다… spreadsheet가 없다며 404를 뱉는다. 분명 있다. 직접 들어가봐도 있고, ID도 멀쩡하며, 내가 저 함수를 따로 빼서 실행해봐도 잘만 나온다. 근데 유독 정기 업데이트할 때만 없다고 뜬다. 도대체 이게 뭔 일인가… 혹시 오전 7시 30분에 일괄적으로 업데이트하면서 요청이 몰려 실패하나 라는 생각이 들었다. 물론 고작 수십개의 요청가지고 뱉어낼 거라 생각하진 않지만.. 그럴 수 있다고 생각해 5번이나 재시도 하도록 처리해놨다. 근데도 안된다. 하… 진짜 너까지 왜그러냐 .. ...

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

데이터베이스 구조 설계

Today I Learned 날짜 2024년 8월 30일 금요일 내용 데이터베이스 구조 짜기 새로운 스프린트를 들어가면서 서버를 파야한다. 데이터베이스 구조를 고민하는데 참 여러모로 쉽지 않다. 네이버 플랫폼 확장이 이뤄질 것이다 보니.. 중요한 포인트는 플랫폼은 네이버와 쇼피파이가 될 예정 가져올 인스타그램 계정 종류는 두가지다. 인스타그램 비즈니스 계정과 일반 계정 인스타그램 비즈니스 계정은 필수적으로 페이스북 페이지와 연결되어있다. 네이버에서 어떤 데이터를 어떻게 사용할지 모른다. 가장 중요한건 확장성이라고 판단했고, 기존 알파플러스를 유지보수하고 개선하면서 가장 힘든게 최상위 데이터가 플랫폼에 종속되어 있다는 점이었다. 그땐 그게 당연헀으니까… 그래서 이번엔 최상위 테이블을 외부 데이터와 전혀 관련되지 않게 만들었다. ...

2024년 8월 30일 · 1 분 · 배준수

또 기능 개발

Today I Learned 날짜 2024년 8월 29일 목요일 내용 다시 또 새로운 서비스 인스타그램에서 댓글을 가져오는 서비스를 만들었다. 이걸 더 발전시키는 스프린트를 시작했다. 기존 알파플러스에 붙어있던 걸 떼내고 새로운 기능을 추가해야 한다. 단, 다음 스프린트로 진행할 네이버 스마트스토어에 들어가는 것을 고려해서 짜야 한다. 플랫폼이 늘어날 것이기 때문에 유저를 최상단 테이블로 설정했다. 이전 알파플러스를 유지보수하면서 가장 힘들었던 점은, 늘어날 걸 예상하지 못한채 짜여져있다는 점이었다. 예를 들어, 기존 프로덕트 리뷰만 있는 상태에서 AI, 리스트 디자이너, 브라우저 부스터(심지어 다른 앱)이 늘어나면서 어떤 샵이 사용중인 서비스들의 상태를 저장하기 꽤나 곤란했다. 결국은 json 타입으로 설정해서 변경에 자유롭게 해뒀지만 이 데이터를 다루는게 꽤나 거추장스러웠다. 특히 다른 앱이지만 같은 시스템을 공유하는 브라우즈부스터때는 두 개의 샵 테이블이 서로 영향을 끼치면서 발생하는 문제는 정말 골치아팠다. ...

2024년 8월 29일 · 2 분 · 배준수

추상클래스의 작동 방식

Today I Learned 날짜 2024년 8월 28일 수요일 내용 전환데이터의 종류 네이버 검색광고에도 전환 데이터에 대한 타입이 추가되었다. 제공되는 전환수와 값이 어떤 전환에 대한 데이터인지를 구분해서 준다. 회원가입, 장바구니 담기, 구매 완료, 등등 8가지 종류가 있다는데 정확히 무엇을 의미하는지는 나도 몰?루. 그냥 나눠서 제공해야하니 구현했다. 처음엔 일단 모든 데이터를 가져오되, 현재는 합쳐져 있는 데이터를 전환 종류에 따라 분류해서 들고있으려고 했다. 모두 들고 저장은 하되, 구글 스프레드시트에 넣을 때만 필요한 전환 종류의 데이터만 넣도록 만드는게 목표였다. 이유는 ...

2024년 8월 28일 · 4 분 · 배준수

redis cache

Today I Learned 날짜 2024년 8월 27일 화요일 내용 Redis 캐시 대소동 오늘 새벽, 똑같은 오류가 6만번이나 발생했다.. 기능에는 이상이 없었으나 너무 놀랄만한 수치라 후딱 확인해봤다. 상품과 관련된 리뷰나 평점 데이터를 쇼피파이 메타필드에 업로드 하는 함수에서 발생했다. 오류 메시지는 떴으나, 정확히 어떤 오류인지 이해가 잘안됐다. 오류 상황들을 살펴보니 공통적으로 비활성화 된 스토어의 상품들이었다. 몇가지 테스트 해보니 쇼피파이에서 비활성화된 스토어의 메타필드에는 접근 자체가 안되었고 거기서 발생한 오류였다. 이 함수는 진작에 매일매일 실행되는 애인데 왜 하필 오늘 아침에만 문제가 됐는가? 어제 내가 수정한 부분 떄문이었다. ...

2024년 8월 27일 · 3 분 · 배준수

새 프로젝트 준비

Today I Learned 날짜 2024년 8월 26일 월요일 내용 또 새로운 프로젝트 아임리포트 기능 개발을 마치고, 테스트를 진행했다. 매번 테스트서버에선 괜찮다가 실서버에서 QA할 때 문제가 발생했기 떄문에 실서버 환경에서 돌리면서 문제점을 찾았다. 가져올 데이터 양이 많아 테스트가 꽤나 오래걸리기 때문에 중간중간 뜨는 시간을 다음 프로젝트 준비로 뗴웠다. 이전에 개발한 인스타그램 비즈니스 계정의 댓글을 가져오는 서비스를 더 고도화해야 한다. 알파플러스 서비에 붙어있는데 이걸 떼내고 새로운 서비스로 만들어야 한다. 기존에 붙여놓을 때도 전혀 서로 연관하지 않도록 독립적으로 개발해놨기 때문에 분리하는 것에는 큰 공수가 들지 않는다. ...

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

올해는 윤년입니다.

Today I Learned 날짜 2024년 8월 23일 금요일 내용 방정식 데이터 생성 테스트 중에, 1년이 지난 데이터는 생성되지 않는다는 오류를 발견했다. 아니 그동안은 잘 주다가 갑자기 왜… 문서상으론 1년이 최대라고 하지만 그동안은 호출하면 잘 줬으면서 갑자기 왜 안주는 걸까. 주다 안주니 섭섭하게 짝이 없다. 어쩔수 없이 1년치만 가져오게 하려고 했는데… 정확히는 하루 전부터 364일 전까지 만 가져올 수 있다. 오늘과 1년 전의 오늘것은 가져올 수 없다. 이때부터 머리가 상당히 복잡해졌다. 반복문 에서 루프 한번 당 몇일치씩 요청을 보내야할까? ...

2024년 8월 23일 · 2 분 · 배준수

boto3로 S3 관리하기

Today I Learned 날짜 2024년 8월 22일 목요일 내용 불친절한 이웃 네이버 그래도 내가 쓴 코드라 그런지, 로직은 쉽게 고쳤다. 곤란한 경우가 있었는데, 보고서 생성 요청을 보내도 반환값의 downloadUrl 은 빈값이 들어온다. status 가 REGIST 라고 들어오는데 “니가 보낸 만들어달란 요청 받았음” 이라는 뜻이란다. 그냥 바로 만든거 달라고… 뭐 별수있나 만들고 요청을 보내야지. 그래서 만들고 ⇒ 응답값에 들어있는 reportId 로 다운로드 링크 조회하고 ⇒ 그 링크에서 다운로드 로 변경했다. 근데 웬걸? 조회 요청의 응답에 status 가 RUNNING 으로 온다. 아직 만드는 중이라는 뜻인데 생각보다 생성이 느리다. 어쩔수 없이 40일치 생성 ⇒ 40일치 다운로드 로 로직을 변경했다. ...

2024년 8월 22일 · 1 분 · 배준수

전화위복

Today I Learned 날짜 2024년 8월 21일 수요일 내용 전화위복 대참사도 이런 대참사가 따로 없다! 결국 매일 오전 정기 업데이트는 작동하지 않았다. 추가로, 정기 업데이트가 같은 네이버 API를 사용해서 발생하는 문제인 것으로 확인했습니다. 따라서 현재 같은 광고계정 간의 동시처리 금지 정책을 같은 관리자 계정 간의 동시처리 금지 정책으로 변경해야 할듯 합니다. 이렇게 되면 사용성이 많이 떨어져서 현재 진행 로직을 좀 변경할 계획입니다. 현재 최근 50일치 데이터 생성 및 다운로드(네이버 API 사용) 데이터 전처리(네이버 API 사용 X) 50일전~ 100일전 데이터 생성 및 다운로드(네이버 API 사용) 전처리(네이버 API 사용 X) …400일치 누적되면 구글 API를 이용해 삽입하는 모양새를 취하고 있는데, 각각 2,4번이 꽤 작업이 오래걸립니다(전체 시간 중 약 70~80%).따라서 일괄 생성 및 다운로드 방식으로 변경할 계획입니다. ...

2024년 8월 21일 · 3 분 · 배준수