프론트엔드에서 서비스 개발까지: Link Dropper 개발기
SEO 설명: 프론트엔드 개발자들이 Next.
# 프로젝트 요약: 링크 드로퍼 (Link Dropper) 개발 기록

## 📌 카테고리
**프로그래밍/소프트웨어 개발**

## 🎯 타겟 대상
- 프론트엔드 개발자로 전환 중인 개발자
- 백엔드 개발 및 인프라 구축에 관심 있는 개발자
- 동적 크롤링 및 NestJS 기초 학습자

---

## 🚀 핵심 요약
- **풀스택 서비스 구축**: 프론트엔드(Next.js)와 백엔드(NestJS)를 분리하여 개발 중
- **동적 크롤링 해결**: Playwright를 활용해 동적 렌더링 사이트의 메타데이터 추출
- **인프라 구축**: AWS를 기반으로 API 서버 및 스토리지 인프라 확보
- **학습 과정**: 기초 Python → Playwright → NestJS까지의 기술적 시행착오 기록

---

## 📂 1. 기술 스택 소개
| 분야         | 기술/도구                                                                 |
|--------------|---------------------------------------------------------------------------|
| **프론트엔드** | Next.js 13, React, Tailwind CSS                                           |
| **백엔드**    | NestJS (TypeScript), Express, MongoDB (Atlas)                            |
| **크롤링**    | Python + Playwright (Chromium 브라우저 기반 동적 렌더링)                |
| **인프라**    | AWS EC2 (API 서버), S3 (스토리지), CloudFront (CDN)                     |

---

## 🛠️ 2. 핵심 개발 과제
### 🔍 동적 크롤링 문제 해결
- **문제**: 동적 렌더링 페이지 및 보안 강화된 사이트에서 메타데이터 불가
- **해결 방법**:
  - Python 기초 → Playwright 도입
  - 동적 페이지 로드 시뮬레이션 및 JavaScript 실행
  - 결과: 90% 이상의 사이트에서 title, description, image 추출 성공

### 🔄 백엔드 분리 개발
- **문제**: Next.js 기반 API 서버로 앱 확장성 한계
- **해결 방법**:
  - NestJS로 독립적인 백엔드 서버 구축
  - API 설계 및 모듈화로 코드 유지보수성 향상
  - 타입스크립트로 타입 에러 사전 예방

---

## 🧠 3. 학습 및 개발 팁
- **Python 기초 → Playwright 학습**:
  - `playwright install chromium`로 브라우저 실행
  - `page.content()`로 동적 콘텐츠 추출
- **NestJS 학습 전략**:
  - 공식 문서 및 강의로 핵심 개념 이해
  - `@Injectable()`, `@Inject()` 등 주요 데코레이터 활용
- **인프라 구성 사전**:
  - AWS EC2 인스턴스 생성 → 보안 그룹 설정 → 스토리지 연동

---

## 🧭 4. 현재 상태 및 피드백
- **베타 서비스 운영 중**:
  - 사용자 피드백을 통한 기능 개선 및 버그 수정
  - `https://linkdropper.com`에서 직접 사용 가능
- **개발자 팁**:
  - "풀스택"은 단순히 기술 스택 확장이 아니라 문제 해결 역량의 증가
  - 시행착오를 기록하며 성장하는 개발자 여정을 추천

---

## 📌 마무리
프론트엔드 개발자로서 서비스 기획 및 개발을 경험하며, **"기술적 시행착오"가 학습의 필수 과정**임을 깨달았습니다.
앞으로도 실제 개발 과정에서 겪은 문제 해결 사례를 기록하며, 개발자 커뮤니티와 공유할 예정입니다.
**피드백을 주셔서 감사합니다!** 🙌

---

✅ 핵심 요약 (요약 버전)

- 기술 스택: Next.js(프론트엔드) + NestJS(백엔드) + Playwright(크롤링) + AWS

- 주요 성공 사항: 동적 사이트 메타데이터 추출, 백엔드 분리 구축

- 학습 팁: Python → Playwright → NestJS 기초 학습, 인프라 구성 사전 준비

- 현재 상태: 베타 서비스 운영 중, 사용자 피드백 기반 개선 중