EC2 스크립트 쉘 레벨 문제

Today I Learned 날짜 2024년 9월 11일 수요일 내용 실서버 배포 여정 진행중인 인스타그램 기능을 실서버에 우선 올리기로 했다. 새 서비스로 사용자가 없는 서비스라 별 문제는 없을 듯 싶다. 데이터베이스 구조가 변경되어 마이그레이션이 필요했기 떄문에 실서버 코드가 반영된 EC2에 접속했다. 근데 터미널 bash창에 커서도 안뜨고 이런 오류가 계속 나타난다. 1 2 3 /usr/bin/sh: warning: shell level (1000) too high, resetting to 1 /usr/bin/sh: warning: shell level (1000) too high, resetting to 1 bash: warning: shell level (1000) too high, resetting to 1 쉘 레벨이 너무 높다는 경고라고 한다. 호출이 지나치가 많다는 의미인데, 쉘이나 스크립트에서 무한재귀에 빠졌을 때 발생하는 오류 메시지라고 한다. ...

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

비활성화와 삭제 구분하기

Today I Learned 날짜 2024년 9월 10일 화요일 내용 비활성 샵과 삭제한 샵 비활성화된 스토어들을 캐시에서 삭제했었다. 리뷰서버에서 샵 데이터를 Redis 캐시에서 받아 쓰는데, 캐시에 올라가있지 않으면 애초에 처리하지 않을 거라고 생각했기 떄문이다. 그럼에도 불구하고 몇일 간격으로 오류가 발생한다. 처음 몇번은 비활성화 된 샵인데도 캐시에 남아있는 경우가 있었다. 왜인지는 모르곘으나, Redis 관련 요청이 성공률이 높지 않다. 그래서 기존 코드에도 3회 정도 반복하는 코드가 있었구나 싶었다. 별 수 없어서 열심히 처리했는데 또 난다. ...

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

Shopify에서 Shop URL이 2개인 이유

Today I Learned 날짜 2024년 9월 9일 월요일 내용 샵 URL이 2개인 이유 쇼피파이에서 유저가 앱을 설치하면, 가장 먼저 알게 되는 샵 정보는 샵의 URL이다. 알파플러스에선 샵의 URL을 shop_url과 platform_shop_url 이라는 두 값으로 저장한다. 사실 왜 두 개인지 몰랐다. 뭐 레거시 인가 싶긴 했는데.. 그래서 인스타그램 코멘트를 만들때는 그냥 샵 URL을 하나만 가져왔다. 이게 모든 문제의 원인일 줄이여… 실제로 쇼피파이에서도 샵의 URL 관련 정보는 2가지이다. 하나는 “domain”, 다른 하나는 “myshopify_domain”이다. 전자는 유저가 설정에서 바꿀 수 있다. 스토어 이용 고객이 접속할 때 쓰는 URL이고 변경가능하다는 의미이다. 실제로 변경하는 스토어가 왕왕 있다. 반면 후자는 샵을 생성하면서 고정되는 값으로 변경되지 않는다. 각 스토어가 쇼피파이에서 가지는 고유한 ID가 있듯, 이 URL도 고유한 값이다. 따라서 스토어와 관련된 데이터를 쇼피파이에 요청할 때도 이 URL이 쓰인다. 우리가 테마를 조회하던, 메타필드를 조회하던, 주문 데이터를 조회하던 이 값이 없으면 아무것도 못한다. ...

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

나는 메타 혐오 개발자다.

Today I Learned 날짜 2024년 9월 6일 금요일 내용 나는 메타 혐오 개발자다. 페이스북 로그인한 계정의 페이지에서 연동된 인스타그램 비즈니스 계정을 가지고 오기 위한 사투는 계속되고 있다. 우선 되는 것부터 만들자는 생각에 비즈니스 계정이 아닌 일반 계정의 게시글을 불러오는 작업을 시작했다. Docs에 들어가보니.. 그저께 충격적인 발표가 있었다. 뭔 중대발표를 90일을 남기고 하냐… 내용을 설명하자면 다음과 같다. 페이스북의 API를 이용하기 위해선 페이스북의 앱으로 등록해야 한다. 이때 앱의 유형을 선택할 수 있는데 그 중 인스타그램 일반 계정에 관한 API 사용을 위해선 앱 유형이 “소비자” 여야하고, 인스타그램 비즈니스 계정에 관해선 “비즈니스” 타입이여야 한다. 유형이 소비자인 앱이 사용하는 인스타그램 API 가 인스타그램 기본 디스플레이 API고, 유형이 비즈니스인 앱이 사용하는 API는 인스타그램 그래프 API다. 이 중 인스타그램 기본 디스플레이 API가 90일 이후부터는 사용할 수 없다는 이야기다. ...

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

페이스북 앱의 권한

Today I Learned 날짜 2024년 9월 5일 목요일 내용 페이스북 권한의 종류 대참사났다.. 페이스북 로그인 후 댓글까지 가져오는 로직에서 도저히 연관된 비즈니스 계정이 가져와지지 않고 있었다. 로그인 후 부터 발생하는 로직은 다음과 같다. 유저가 페이스북 로그인 서버는 페이스북 계정이 가진 페이스북 페이지를 모두 불러와 저장 이때, 페이스북 페이지와 연동된 인스타그램 비즈니스 계정 정보도 저장 유저가 사용할 페이스북 페이지 선택 선택된 페이스북 페이지와 연동된 인스타그램 비즈니스 계정의 미디어 정보를 조회 해당 미디어들의 댓글 정보를 모두 조회 조회한 데이터를 저장 3번에서 어떤 경우에는 불러와지고, 어떤 경우에는 불러와지지 않았다. 심지어 같은 계정 내에서도 어떤 페이지는 불러와지는 반면 어떤 페이지는 분명 비즈니스계정과 연동되어 있음에도 불러와지지 않았다. 왜 그런지 도저히 모르겠어서 열심히 메타 개발자 Docs를 뒤져봤다… ...

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

서비스 분리시키기

Today I Learned 날짜 2024년 9월 4일 수요일 내용 기존 서비스 분리 알파플러스에 기생(?)시켜놨던 인스타그램 코멘트 기능을 분리했다. 사실 애초에 만들때도 같은 서버에 있을 뿐 서로 연관은 전혀 없도록 해놨기 떄문에 그냥 복붙하면 될줄 알았는데… 바로 다음 스프린트인 네이버 플랫폼 추가를 고려하느라 데이터베이스를 열심히 수정해놨더니 제대로 되는게 하나도 없다… 데이터베이스의 구조가 바뀐다는 로직도 변경되야 할 수 있음을 간과했다. 예를 들어, 현재는 페이스북 계정을 로그아웃 할 경우 기존에 게시해둔 댓글 위젯을 삭제하지 않는다. 다른 계정으로 로그인 했을 떄 연결이 남아있는 것이 있다면 삭제해주는 로직을 취하는데, 이번에는 그럴수가 없게 됐다. 페이스북 로그인, 인스타그램 로그인이 따로 존재하면서 둘 간의 서열이 존재해야 하기 때문이다. ...

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

서비스 진입 구상하기

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 분 · 배준수

2023년 9월 4주차 주간 기록

주간기록 날짜 2023년 9월 25일 ~ 2023년 10월 01일 계획 책너두 : 클린코드, Real MySQL 8.0 1권, 코딩 인터뷰 완전정복 매일 알고리즘 3문제 9월 27일 : 알고리즘 스터디 9월 30일 : 코딩 테스트 10월 1일 : 48시간 과제 테스트 결과 책너두 5기 클린코드 종료 회고 자소서 지옥 끝나니 코테, 인적성 지옥 몰려온다. 심화 데브캠프 열심히 해보자.

2023년 10월 1일 · 1 분 · 배준수

2023년 9월 3주차 주간 기록

주간기록 날짜 2023년 9월 18일 ~ 2023년 9월 24일 계획 책너두 : 클린코드, Real MySQL 8.0 1권, 코딩 인터뷰 완전정복 매일 알고리즘 3문제 9월 20일 : 알고리즘 스터디 9월 24월 : 코딩 테스트 결과 공채시즌이라 너무 바쁘다.. 알고리즘을 놔버렸다. 회고 …

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