본문 바로가기

반응형

전체 글

(25)
홈서버 구축기 #5 - Nginx Stream 모듈로 VM의 PostgreSQL 포트 포워딩하기 KVM/libvirt로 생성한 VM에서 실행 중인 PostgreSQL에 외부에서 접근하려면 포트 포워딩이 필요합니다. iptables를 사용하는 전통적인 방법도 있지만, Nginx의 Stream 모듈을 활용하면 더 직관적이고 관리하기 편한 솔루션을 구축할 수 있습니다. 응용하여, VM 내부에 실행 중인 프로세스를 외부에서 접속(연결)하도록 하고 싶은 경우에도 응용할 수 있습니다. 시작하기 전에이 가이드는 다음 환경을 가정합니다.호스트 OS: Ubuntu 24.04VM: KVM/libvirt로 생성된 VM (NAT 네트워크 사용)VM IP: 192.168.122.100 (예시)목표: 호스트의 5432 포트로 들어오는 연결을 VM의 PostgreSQL(5432)로 포워딩DBeaver 같은 툴로 외부에서 DB..
1인 창업 일지 #18 - AdMob 광고 제한 실제 경험기: "광고 게재가 제한되었습니다" 해결 완료! 안녕하세요, 혼자 앱을 개발하고 운영하며 애드몹으로 수익을 창출하고 있는 개발자입니다. 지난 8월, 저는 앱 계정 이전 과정에서 '광고 게재 제한'이라는 알림을 받고, 아래 글에 정리했습니다.https://hej-tech.tistory.com/26 1인 창업 일지 #17 - AdMob 광고 제한 실제 경험기 - "광고 게재가 제한되었습니다" 해결 가이드2025년 8월 30일 토요일 아침, 평소처럼 AdMob 대시보드를 확인하던 중 처음 보는 빨간 배너를 발견했습니다. "광고 게재가 현재 제한적입니다"라는 메시지였죠. 그런데 '제한적'이라는 표현과 달리hej-tech.tistory.com수익이 완전히 0원이 되는 당황스러운 상황이었지만, 마침내 9월 7일에 제한이 풀려 그 해결 경험을 다시 공유하고자 합니..
홈서버 구축기 #4 - Nginx 포워딩 & 웹 페이지 서빙 개요이번 시간에는 홈 서버의 호스트에 Nginx를 설치하여, 최초 가비아에서 설정한 서브도메인에 따라 다른 서비스를 응답하도록 할 예정입니다. SSL 설정까지 해보도록 할게요. 구현 아키텍처아래의 2가지 상황에대해서 설명해보도록 할게요.프론트엔드(Next.js), 백엔드(Nest.js)단순 웹페이지 서빙 예를들어 test.kr 도메인을 보유 중이라고 가정하고, blog.test.kr 요청 시, 블로그 서비스랑 연결되도록 해보겠습니다.DNS 설정최초 도메인 구매 업체에서, blog.test.kr이라는 도메인에 대한 DDNS 주소로의 CNAME을 설정합니다. (아래 글 참고)https://hej-tech.tistory.com/10?category=1274391 홈서버 구축기 #2 - SSH 원격 접속 설정 ..
홈서버 구축기 #3 - KVM 가상화, 하나의 컴퓨터에 여러 가상 서버 만들기 KVM 가상화란?KVM(Kernel-based Virtual Machine)은 리눅스 커널에 내장된 가상화 기술입니다. 리눅스 커널 자체를 하이퍼바이저로 변환하여, 하나의 물리적 서버에서 여러 개의 독립적인 가상 머신(VM)을 실행할 수 있게 해줍니다. KVM은 Type-1 하이퍼바이저(베어메탈)의 성능을 제공하면서도, 일반 리눅스 시스템의 모든 기능을 그대로 사용할 수 있다는 장점이 있습니다. Intel VT-x나 AMD-V 같은 하드웨어 가상화 기술을 활용하여 거의 네이티브에 가까운 성능을 제공합니다. 리눅스 홈 서버에서 KVM을 사용하는 이유자원 효율성과 격리 홈 서버 하나로 여러 서비스를 안전하게 운영할 수 있습니다. 예를 들어 웹 서버, 미디어 서버, NAS, 개발 환경 등을 각각 독립된 VM으..
iOS 앱 리젝트 해결기: App Tracking Transparency (ATT) 구현 필수! 리젝트 메시지Guideline 2.1 - Information NeededThe app uses the AppTrackingTransparency framework, but we are unable to locatethe App Tracking Transparency permission request when reviewed on iPadOS 18.6. 왜 리젝트됐을까?제 앱은 Google AdMob을 사용하는 메트로놈 앱입니다. 리젝트된 이유를 분석해보니 1. ATT 패키지는 설치했지만 실제로 사용하지 않음pubspec.yaml에 app_tracking_transparency 패키지 포함 ✅Info.plist에 권한 설명 추가 ✅실제 권한 요청 코드는 없음 ❌ 2. Apple의 판단"ATT 프레임워크가..
1인 창업 일지 #17 - AdMob 광고 제한 실제 경험기 - "광고 게재가 제한되었습니다" 해결 가이드 2025년 8월 30일 토요일 아침, 평소처럼 AdMob 대시보드를 확인하던 중 처음 보는 빨간 배너를 발견했습니다. "광고 게재가 현재 제한적입니다"라는 메시지였죠. 그런데 '제한적'이라는 표현과 달리 광고는 아예 나오지 않고 있습니다. 수익이 완전히 0원인 상태로 3일째 이어지고 있습니다. 갑자기 나타난 광고 제한 메시지정책 센터에 들어가보니 구체적인 내용이 나와있었습니다. "앱 트래픽 품질을 평가하는 동안 제품에 대한 광고 게재가 일시적으로 제한됩니다. Google에서는 트래픽을 계속 모니터링하면서 이 제한을 자동으로 검토 및 업데이트합니다"라는 설명이었습니다. 제한 시작일은 2025년 8월 30일. 그날부터 지금까지 수익이 완전히 0원입니다. 광고 요청은 되고 있지만, Fill Rate가 0%인 ..
1인 창업 일지 #16 - AI와 함께하는 1인 개발 창업, 한 달간의 솔직한 회고 들어가며개발 관련 1인 창업을 시작한 지 어느덧 한 달째가 되어간다. 안드로이드 앱, iOS 앱, 웹 서비스까지 전방위적으로 진행하며 여러 프로젝트를 동시에 진행하고 있다. 그중 하나가 개발자와 디자이너를 위한 툴을 모은 플랫폼으로, 20여 개의 온라인 도구들을 하나씩 구현해왔다. 그런데 최근, SEO를 공부하면서 충격적인 사실을 깨달았다. 내가 그동안 자랑스럽게 구축해온 서브도메인 구조가 구글의 관점에서는 '흩어진 작은 사이트들의 모음'에 불과했던 것이다. 서브디렉터리로 대대적인 리팩토링을 시작했고, 이 과정에서 예상치 못한 번아웃이 찾아왔다. 서브도메인의 함정, 개발자의 착각내가 만든 구조, 구글이 본 구조개발자로서 나는 깔끔한 모듈식 아키텍처를 추구했다. JSON 파서는 json.mytool.com..
1인 창업 일지 #15 - 구글 애드센스 승인, '콘텐츠 부족'의 진짜 이유 (어느 개발자의 SEO 삽질기) "귀하의 사이트는 가치가 낮은 콘텐츠를 포함하고 있어 애드센스 게재가 승인되지 않았습니다."개발자로서 기능 구현에만 집중했던 저에게 구글 애드센스의 거절 메일은 꽤나 당혹스러웠습니다. 제 사이트에는 JSON 파서, Base64 인코더 등 20개가 넘는, 제가 직접 만든 유용한 온라인 도구들이 잘 작동하고 있었기 때문입니다. 저는 자부심을 갖고 있었지만, 구글의 평가는 냉정했습니다. 애드센스 거절, 그리고 시작된 고민"콘텐츠가 부족하다니?" 처음에는 이해할 수 없었습니다. 이렇게 많은 기능이 있는데, 왜 가치가 낮다는 것일까? 간단한 설정 오류일 거라 생각하고 sitemap.xml과 robots.txt를 몇 번이고 다시 확인했지만, 기술적으로 명백한 버그는 보이지 않았습니다. 이때부터 저는 관점을 바꾸기 ..

반응형