우아한테크코스 8기 오픈미션은 프리코스 경험 기반으로 관련된 분야의 미션을 설계하고 구현하는 것이었다.
주제 선정
매주 나오던 미션의 형태가 아니라 직접 목표를 정하고 구현해야했기 때문에
어떠한 주제를 잡으면 좋을 지 고민하다가 평소 관심을 가지고 있었던 Google이 만든 Go에 대해 공부해보고 싶다는 생각이 들었고 이를 이용한 프로젝트를 이번 도전으로 정했다.
어떤 주제를 선정하면 좋을 지 고민하던 중에,
평소 다양한 기업의 테크 블로그를 둘러보며 해당 기업이 어떠한 기술에 관심이 있으며 현재 기술 트렌드가 어떠한 파악하곤 하는데 기업마다 사용하는 블로그 플랫폼이 달라 매번 개별 블로그에 접속하여 새로운 글이 올라왔는지 확인해야하는 한다는 점이 약간은 비효율적이라고 느꼈던 것이 생각났다. 내가 자주 보는 블로그에 새 글이 올라온다면 알림을 받을 수 있으면 좋겠다는 생각을 하였고, 이번 주제로 테크 블로그 알림 서비스를 만들기로 결정했다.
기획
초기 기획은 Go 언어를 처음 사용해보기 때문에 간단한 기능의 CLI 프로그램을 만드는 것이었다. 핵심 기능은 아래와 같다.
- 테크 블로그 구독
- 스케줄러를 통해 RSS Feed 주기적 체크
- 새 글 발견 시 Discord Webhook으로 알림 전송
하지만 Go 언어의 단순성으로 인해 빠르게 Go 언어를 배울 수 있었고 예상보다 구현도 빠르게 진행되었다. 그래서 최근 피드 조회, 구독 취소 등 부가 기능을 추가해 CLI 기반이 아닌 GUI 환경에서 사용할 수 있는 형태로 확장하였다.
현재 아래 링크에서 서비스를 확인할 수 있다.


트러블 슈팅
HTTPS 환경에서는 HTTP 서버로 요청을 보낼 수 없다
프로젝트를 배포하는 과정에서, 프론트엔드는 Vercel, 백엔드는 EC2에 배포했다.
Vercel에서 배포한 프론트엔드가 자동으로 HTTPS를 지원하였지만 직접 구축한 백엔드 서버는 HTTP만 지원하기 때문에 발생했다.
브라우저는 보안 정책에 따라 HTTPS 환경에서 HTTP로 요청을 보내는 것을 차단한다.
→ 이 때문에 프론트엔드에서 백엔드로 API 요청을 보낼 때 요청 자체가 차단되었다.
해결 방안을 고민해본 결과,
백엔드 서버의 경우 보안적인 요소를 고려해 설계를 하지 않았고, 간단한 프로젝트였기 때문에 도메인을 구입하고 https를 적용할 필요성이 낮다고 판단했다. 그래서 프론트엔드도 EC2에 직접 HTTP로 서비스하여 프로토콜을 통일하는 방식을 선택했다.
회고
Go를 이번 프로젝트에서 처음 배워 사용해봤는데, 문법이 단순하고 직관적이어서 쉽게 배우고 익숙해질 수 있었다. 그리고 C나 C++처럼 직접 메모리 관리를 하지 않아도 된다는 점이 편리하다고 느꼈다. 이번 개발 경험을 통해 왜 Go 언어의 인기가 높아지는 지 체감할 수 있었다. 언어 자체가 단순하다보니 구현에 대한 어려움보다는, 전체 구조를 어떻게 설계할지를 고민하는데 더 많은 시간을 쏟았다.
평소에는 특정 타겟을 설정하고 그 타겟이 필요로 하는 기능을 중심으로 서비스를 개발해왔다. 하지만 이번 프로젝트는 내 일상 속에서 직접 경험한 작은 불편함을 해결하는 데서 출발하였다 보니, 요구사항을 더 명확하게 정의할 수 있었고 개발 과정에서도 더 큰 몰입감을 느낄 수 있었다. 이를 통해 개발이 실제 생활에 있어 사소한 부분을 더 편리하게 만드는 도구가 될 수 있다는 점을 다시 한 번 느낄 수 있었다.
프론트엔드는 간편하게 배포할 수 있는 Vercel을 이용해 배포를 진행했다. 하지만 프론트엔드가 HTTPS로 서비스되는 구조에서, HTTP만 지원하는 백엔드와의 통신이 차단되는 Mixed Content 문제가 발생했다. 이전 프로젝트들은 대부분 HTTPS 적용했기 때문에 이러한 문제가 인식하지 못하고 있었다. 이번 경험을 통해 기능 개발에만 치중해 브라우저 보안 정책과 배포 환경에 대해 잘 알지 못하고 있다는 것을 느꼈고 앞으로 이러한 규칙이나 제약에 대한 공부를 통해 이를 고려하여 배포 환경에서도 안정적으로 동작할 수 있는 서버 구축을 위해 노력해야겠다는 생각이 들었다.
이전에 React 개발 경험이 있었기 때문에, Figma AI로 생성한 디자인을 기반으로 AI의 완전한 바이브 코딩을 통해 코드를 작성하고 내가 검수하는 방식으로 개발을 진행했다. 이 과정을 통해 개발 속도의 향상을 크게 체감할 수 있었고 AI를 적절히 활용하면 개발 생산성이 기하급수적으로 향상될 수 있다는 점을 느꼈다.
이번 프로젝트에서 아쉬웠던 점은, 처음 사용하는 언어로 개발하다 보니 보안성을 고려하기에는 한계가 있어 보안 관련 사항을 제외하고 구현을 진행했다는 점이다. 이러한 보안 요소를 반영하여 구조를 개선하고, 리팩토링을 진행할 필요가 있다고 느꼈다. 또한, 현재는 디스코드 알림을 활용하고 있지만, PWA를 적용하여 FCM과 같은 방식으로 직접 알림을 받을 수 있도록 개선한다면 더욱 서비스의 편리성이 올라갈 것 같다는 생각이 들었다.
'Etc.' 카테고리의 다른 글
| 남는 노트북으로 홈 서버 구축하기 (LG 그램, KT) (0) | 2025.12.20 |
|---|