코드 구조 잡는 데만 반나절 걸리던 개발 업무 GPT로 30분 컷

무한탭열기
2,071
0 0
새로운 기능 개발에 들어갈 때,
처음부터 코드 구조 설계하고 폴더 나누고 API 흐름 잡는 데
반나절은 기본으로 잡아야 했던 분들, 많으실 겁니다.
특히 내가 처음 다루는 프레임워크나 팀 컨벤션이 있는 환경이라면
“이거 어디서부터 어떻게 짜야 하지…” 하면서 텍스트 에디터만 멍하니 쳐다보는 시간도 꽤 길죠.
이번에 제가 맡은 작업은 Next.js 기반의 인증 API 모듈 직접 구현이었고,
next-auth 같은 라이브러리 없이 Google OAuth2 직접 연동해서
로그인 → 콜백 처리 → JWT 발급까지 처음부터 짜야 했습니다.
그래서 GPT에게 전체 구조 + 보안 조건 + 디렉토리 기준까지 다 정리해서 요청했더니,
진짜 실무자 코드처럼 전체 폴더 구조와 라우팅 흐름까지 정리해주더라고요.
💻 ChatGPT가 생성한 코드 설계 요약
📁 /app
 ┣ 📁 api
 ┃ ┣ 📁 auth
 ┃ ┃ ┣ 📄 google/start.ts
 ┃ ┃ ┣ 📄 google/callback.ts
 ┃ ┃ ┣ 📄 logout.ts
 ┣ 📁 lib
 ┃ ┣ 📄 jwt.ts # JWT 생성 및 검증 함수
 ┃ ┣ 📄 cookie.ts # 쿠키 설정 유틸
 ┣ 📁 db
 ┃ ┣ 📄 prisma.ts # Prisma 클라이언트 연결
 ┃ ┣ 📄 user.ts # 유저 DB 처리 함수

로그인 요청이 들어오면 /auth/google/start에서 구글 인증 URL로 리디렉션하고,
인증 성공 시 /auth/google/callback에서 코드를 받아 유저 정보를 조회,
신규 유저라면 자동 가입 처리 후 JWT 발급 → httpOnly 쿠키에 저장.
이후 클라이언트는 쿠키를 통해 로그인 상태를 유지.
로그아웃 시 /auth/logout에서 쿠키 삭제 후 세션 종료.
이 흐름이 코드와 주석까지 포함되어 있어서,
실제 프로젝트에서 바로 붙여 쓸 수 있을 정도의 구성이었습니다.
덕분에 설계 고민 없이 바로 로직 작업에 들어갈 수 있었어요.

프롬프트

복사
당신은 OAuth2 인증, 세션 설계, 보안 토큰 운용에 정통한 시니어 풀스택 개발자입니다.
나는 next-auth 같은 라이브러리를 사용하지 않고, Next.js 13(app router) 환경에서 Google OAuth2 인증 모듈을 직접 구현하고자 합니다. 아래 기준에 따라 실제 실무 프로젝트에서 바로 적용 가능한 수준으로 디렉토리 구조, 인증 흐름, 보안 설정, 확장 가능성을 포함한 설계를 제공해 주세요.

[환경]
- 프레임워크: Next.js 13 (App Router)
- 언어: TypeScript
- DB: PostgreSQL + Prisma
- 인증: Google OAuth2 직접 구현
- 세션: JWT (accessToken), httpOnly 쿠키 저장
- 제한: next-auth, passport 등 인증 라이브러리 미사용

[요청 항목]
1. 📁 전체 폴더 및 파일 구조 예시
- /app/api/auth/google/start.ts
- /app/api/auth/google/callback.ts
- /app/api/auth/logout.ts
- /lib/jwt.ts, /lib/cookie.ts
- /db/prisma.ts, /db/user.ts
- middleware.ts 포함
2. 🧭 인증 흐름 상세 설명
- 로그인 → 구글 리디렉션 → 콜백 → 유저 조회/가입 → JWT 발급 → httpOnly 쿠키 저장 → 메인 리디렉션
3. 🔐 JWT 설계 및 보안 설정
- payload 구성 (user_id, email 등)
- 서명 방식 및 만료시간
- .env 예시 포함 (.env.example)
4. 🍪 쿠키 설정 옵션 명세
- httpOnly, secure, sameSite, maxAge 등 실무 기준
- 도메인/서브도메인 대응 전략
5. 🧱 Prisma 유저 모델 구조 예시
- provider, oauth_id, email, nickname 등 필드 포함
- 신규 유저 자동 생성 방식 포함
6. 🛡️ 보안 고려사항
- CSRF 대응 방식
- redirect URL 검증 방식
- accessToken 탈취 대응 및 토큰 검증 시점
7. 🔄 확장 가능성 고려
- Kakao, Naver 등 추가 Provider를 붙일 때의 구조 확장 방향
- auth/[provider]/start.ts 구조 재사용 가능성
8. ⚙️ middleware.ts에서 인증 보호 처리
- 특정 페이지 접근 시 JWT 검증 → 미인증시 로그인 리디렉션
9. 📄 요청/응답 예시 및 클라이언트 처리 팁
- start.ts, callback.ts, logout.ts 요청 흐름 예시
- 클라이언트 단에서 로그인 버튼 클릭 및 상태 유지 방식 안내

[목적]
코드 복붙이 아닌 구조 전체를 실무에서 직접 설계할 수 있도록
"처음부터 인증 모듈을 만드는 상황"을 가정한 종합 설계 가이드를 요청합니다.
프레임워크에 종속되지 않고, 추후 React Native 또는 다른 프론트에도 확장할 수 있는 방향성도 고려해주세요.
🙌 설계부터 GPT한테 시키면 진짜 퇴근 시간이 달라집니다
코드 초안이 아예 처음부터 잡혀 있으니까
로직 짜는 데 집중할 수 있고, 실수도 줄고,
무엇보다 “구조 잡는 데 소모되는 에너지”를 줄일 수 있어서 진짜 실무가 편해져요.
여러분도 비슷한 기능 개발하면서 GPT한테 설계 맡겨보셨다면
프롬프트 공유해주시면 저도 참고하고 싶습니다 🙌

댓글 작성

서드파티 벽에 부딪힌 순간, 한 줄의 코드가 답이었다

API 문서를 며칠째 뒤적이며 머리를 쥐어뜯고 계신가요? 저도 그랬습니다. 결제 시스템 연동 프로젝트에서 토큰 인증이 계속 ...

색채가 말하는 무언의 메시지

우리가 보는 색은 단순한 시각적 경험이 아닙니다. 색은 감정을 자극하고, 행동을 유도하며, 때로는 말보다 강력한 메시지를 ...

프롬프트

ChatGPT

“15분 만에 지루한 수업을 매력적인 학습 경험으로”

ChatGPT

“말하지 않아도 따라오게 하는 조용한 리더십”

ChatGPT

보이지 않는 디자인이 만드는 강력한 경험

ChatGPT

색채가 말하는 무언의 메시지

ChatGPT

전문가들도 몰래 활용하는 부동산 골든 메트릭스

ChatGPT

아무도 클릭하지 않는 콘텐츠의 비극

ChatGPT

지식은 쌓는 것이 아니라 연결하는 것이다 !

ChatGPT

“데이터가 말하는 고객의 마음”

ChatGPT

“초보 개발자가 경험하는 ‘느린 코드’의 비밀”

ChatGPT

영감의 순간, 어떻게 붙잡을 것인가

ChatGPT

투자의 균형점: 수익과 안정 사이에서

ChatGPT

시간이 새는 구멍을 파악해보자

ChatGPT

학습의 벽, 어떻게 뛰어넘을 수 있을까?

ChatGPT

특별한 영감

ChatGPT

“시험 전날, 공부가 머리에 쏙쏙 들어오는 비법”

ChatGPT

느린 코드가 빛의 속도로 변하는 마법의 순간