공인 IP와 사설 IP

Today I Learned 날짜 2024년 10월 7일 월요일 내용 공인 IP 주소 네이버 커머스 API 개발을 시작했다! 여기서 우선 내 스토어에서만 사용하는 애플리케이션을 개발하고 있는데, IP를 등록해야 한다. 해당 IP에서 오는 요청만 네이버 API가 답해준다. warp 터미널에 있는 AI한테 내 IP 확인 커맨드를 물어봤다. ipconfig getifaddr en0 그랬더니 192.168.0.2 가 떴다. 네이버에 요청을 보내니 허용되지 않은 IP라는 답만 받았다. 이것 저것 알아보면서 2시간을 낭비했고, 혹시나 싶어 구글에 내 공인 IP 확인 사이트에 들어가서 확인해보니 내 IP는 전혀 달랐다! 이 값으로 설정하니 바로 요청이 성공했다. 그럼 저 IP는 뭔가 찾아보니, 사설 IP라고 한다. ...

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

잘 만들기 잘했다.

Today I Learned 날짜 2024년 10월 4일 금요일 내용 다음 주 네이버 스마트스토어에 배포할 새로운 서비스에 들어가기 전, 긴급하게 아임리포트를 수리했다. 기존 몇 개의 로우데이터 타입을 삭제하고 새롭게 추가해야 하는데.. 생각보다 상당히 금방 됐다. 이틀 걸릴 줄 알았는데 3시간 정도…? 추상 클래스나, 디렉토리 구조 등을 내가 평소에 생각하고 고민했던 걸 충분히 반영했더니 유지 보수가 상당히 쉽다. 열심히 고민한 보람도 있고… 근데 다른 사람이 볼 때는 어떨란지 모르겠다. 회고 문서화 다해놨는데 싹 갈아 엎어야하네 아오 ...

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

검색광고에서 키워드와 검색어는 다르다

Today I Learned 날짜 2024년 10월 2일 수요일 내용 키워드와 검색어는 다르다. 아임리포트에 데이터 오차 문제를 해결하다가 큰 문제를 발견했다… 네이버 검색광고 데이터엔 키워드와 검색어라는 게 있는데, 난 그동안 이게 같은건 줄 알았다. 코드 상에서도 혼동해서 쓰고 있기도 했고… 하지만 이 둘은 명백히 다른 데이터다. 모든 캠페인 내 광고그룹들은 항상 검색어를 가진다. 하지만 키워드는 어떤 광고그룹들은 가지고 있지 않은 경우가 있다. 예를 들어, 쇼핑몰 상품형 광고그룹 데이터들은 키워드를 가지고 있지 않아서 조회할 수 없다. ...

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

굿바이 엘라스틱

Today I Learned 날짜 2024년 9월 30일 월요일 내용 굿바이 엘라스틱 알파플러스는 에러 추적을 위해 그동안 Elastic apm을 사용하고 있었다. 이 서비스가 상당히 고가라는 제보를 받고 확인했더니 무려 매달 89달러였다! 로그가 많이 쌓여 비싼줄 알았는데, 1년 전부터 계속 이정도의 가격이었다. 새로 개발한 서비스들에 도입한 sentry는 달에 29달러기 떄문에 후딱 바꿔주었다. 바꾼 후 단점이라면, 현재로선 에러가 발생했을 때, 변수값들을 확인할 수 가없다. 찾아보니 stack trace에서 local varialbe을 추적할 수 있다곤 하는데… 설정법이 마냥 쉽지는 않다. 저번 데이터독 세션때부터 느꼈는데 이런 서비스들은 알면 알수록 유용하게 쓸 수 있는 반면, 모르면 돈 낭비가 따로 없다. ...

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

N+1 Query 문제

Today I Learned 날짜 2024년 9월 27일 금요일 내용 joinedload 는 earger loading이다. 최근 새 서비스를 개발하면서, 써보고 싶은 코드를 써보고 있다. 그 중 자주 쓰는게 현재 hybrid property다. 연관된 테이블이 있는지를 나타내기 위해 쓰고 있다. 예를 들어, 각 스토어가 연결한 인스타그램 계정을 나타내기 위해 다음과 같이 해놨다. 1 코드 비공개 이런 식으로 데이터베이스 구조가 짜여 있다. 스토어를 가져와서 그 스토어가 연결된 인스타그램 계정이 있는지 확인해보려면 다음과 같이 써야한다. ...

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

요청의 성능 높이기

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