본문 바로가기

전체 글125

우리도 구글 검색 1페이지에 나오고 싶다(2) SEO 개선을 위해 메타데이터를 넣고 schema.org를 넣었지만 아직 타겟 키워드 검색 시 웹사이트가 페이지가 5페이지 이내에 노출되지 않고 있다. 이를 위해서 schema.org 구조화 데이터로 seo를 개선하기로 했다. 구조화 데이터는 검색엔진이 웹페이지의 내용을 더 정확하게 이해할 수 있도록 돕는 코드이다. HTML에 보이지 않는 메타데이터를 추가해 검색엔진에게 "이 페이지는 무엇에 괂나 것이고, 어떤 정보를 담고 있는지"를 명확하게 알려준다.구조화 데이터의 주요 강점은 Rich Snippets, Knowledge Graph, 음성 검색 최적화, 검색 순위 개선이다. Rich Snippets는 검색결과에 별점, 가격, 이미지 등 풍부한 정보를 표시하며, Knowledge Graph는 브랜드/회사.. 2025. 10. 17.
Next.js 미들웨어 리디렉션과 Google 색인 문제 해결 웹페이지의 루트(/)로 접근하면 특정 페이지로 리디렉션하는 구조로 서비스를 운영하고 있었다. Google Search Console에 루트 URL을 등록하고 색인 생성을 요청했지만, 계속해서 색인이 생성되지 않는 문제가 발생했다.Google Search Console의 URL 검사 도구에서는 다음과 같은 오류 메시지를 확인할 수 있었다. 나는 루트고 접근하면 다른 페이지로 이동시키는 코드를 middleware에 작성해두었는데, Next.js(v14 이상, App Router)의 미들웨어에서 NextResponse.redirect()를 사용하면 기본적으로 307 상태 코드를 반환한다. 그럼 여기서 redirect를 뜻하는 301과 307 status code가 어떻게 다른지 확인해 봐야겠다. 301 Mov.. 2025. 10. 13.
우리도 구글 검색 1페이지에 나오고 싶다(1) 새로운 제품을 출시하고 나서 여러 경로를 통해 마케팅을 하게 된다.프론트엔드 개발자가 할 수 있는 마케팅은 무엇이 있을까? SEO를 통해 사용자들에게 노출되는 방법이 있을 것 같다.프로젝트 개요: 왜 Technical SEO가 중요했나지금 프로젝트는 랜딩 페이지다. 검색 유입이 비즈니스 성과와 직결되는 구조였기 때문에, 초기 설계 단계부터 SEO를 최우선 과제로 설정했다.유기적 검색 트래픽 확보핵심 키워드 상위 노출소셜 공유 시 풍부한 미리보기 제공모바일과 데스크톱 모두 최적화된 사용자 경험 1. 상세한 메타데이터: Open Graph부터 Twitter Card까지Next.js의 Metadata API를 활용하여 다층적인 메타데이터 전략을 구축했다. 실제 적용 내용:코드에서 shareData 객체를 통해.. 2025. 9. 29.
Google Ad manager에서 제공하는 URL 처리하기 어제 인앱웹뷰에서 광고를 클릭했을 때 해당 페이지로 나가는 로직을 짜 놓았는데 원하는대로 작동하지 않았다.처음에는 직접 웹뷰의 url을 바꿔보고 그 이후에는 새로운 창을 띄우도록 해봤지만 제대로 처리가 되지 않았는데 이유는 한번 클릭시 url이 2개씩 찍히고 있었다. 서버에서 제공해주는 url은 하나인데 왜 클릭했더니 2개로 로그가 찍히는걸까?알고보니 제공된 url은 google ad manager에서 제공하는 url이어서 실행시 일반적으로 2개의 url이 순차적으로 실행된다고 한다.나중에 기억 못할지도 모르니 기록으로 남겨놓으려고 한다.Google Ad Manager의 2단계 URL 실행 과정1단계: 클릭 추적 URL도메인: googleadservices.com 또는 doubleclick.net역할: .. 2025. 9. 2.
[회고] 쏙쏙 들어오는 함수형 코딩 북 스터디 https://github.com/The-survivor-is-strong/coding-study-of-death GitHub - The-survivor-is-strong/coding-study-of-death: 📚 🔥📚 🔥. Contribute to The-survivor-is-strong/coding-study-of-death development by creating an account on GitHub.github.com 이 책을 끝낼 무렵, 갑자기 일이 바빠지면서 회고를 쓰지 못하고 지나쳤다. 다시 그때의 기억을 더듬어 회고하고자 한다. 책 스터디의 2번째 책은 '쏙쏙 들어오는 함수형 코딩'으로 정해졌다. 지금 개발을 하고 있다면, 누구라도 한 번쯤은 들어봤을 키워드이다. 이 책은 개발을.. 2025. 8. 26.
인앱웹뷰에서 다이얼로그를 띄운 후 안드로이드 뒤로가기 버튼을 눌렀을 때 다이얼로그를 끄려면? 우리는 다이얼로그를 띄우고 없애기를 반복한다. 웹에서는 구현이 어렵지 않다. 사용자가 다이얼로그 바깥 부분(딤 영역)을 누르거나 취소 버튼을 누르면 사라지게 된다. 모든 것이 마우스 이벤트로 진행된다. 인앱웹뷰에서는 '터치'라는 이벤트가 발생하게 된다. 터치 이벤트 또한 쉽게 다룰 수 있다. 하지만 안드로이드에는 '뒤로가기' 물리 버튼이 존재한다. 뒤로가기 물리 버튼이 클릭된 것을 감지하여 다이얼로그를 꺼야 하는 상황이 왔다. 어떻게 해결할 것인가? 제일 처음 생각했던 방법은 안드로이드에서 뒤로가기 버튼을 눌렀을 때 네이티브 영역에서 인앱웹뷰 영역으로 데이터를 넘겨주는 것이었다. 이렇게 할 경우 네이티브를 담당하는 개발자에게도 공수가 들게 되어 좀 더 간단한 방법에 대해 알아보게 되었다.뒤로가기 버튼을 .. 2025. 5. 20.