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

무한탭열기
2,009
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한테 설계 맡겨보셨다면
프롬프트 공유해주시면 저도 참고하고 싶습니다 🙌

댓글 작성

10년 후 내 자산, 과연 얼마나 자랄까? 미리 보는 스마트한 방법!

"이 투자가 정말 괜찮을까?" 투자할 때마다 반복되는 이 고민, 정말 답답하지 않으세요?저는 자산관리 컨설턴트로 일하면서 ...

API 개발자의 밤샘을 막는 테크닉

중요한 API 프로젝트의 데드라인이 다가오고 있었습니다. 개발자는 밤을 새며 코드를 작성했지만, 테스트에서 계속 오류가 발...

프롬프트

ChatGPT

한계 없는 생각의 바다로 뛰어들다 창의적인 생각은 날 성장시킨다.

ChatGPT

시간을 지배하는 자가 업무를 지배한다

ChatGPT

복잡한 코드를 날카롭게 다듬는 법

ChatGPT

“스스로 길을 찾는 힘, 자기주도학습의 비밀”

ChatGPT

“모두 담지 마세요” — 분산투자의 진실

ChatGPT

마이너 코드에 잠긴 기억 선율은 나의 마음을 움직인다.

ChatGPT

사과과 떨어지는데 위로 떨어진다!!??(창의적 사고)

ChatGPT

뇌가 공부에 빠지는 순간

ChatGPT

한 푼도 쓰지 않는 날의 자유(자산의 관리)

ChatGPT

포스토 속에서 색깔의 형태가 속삭이는 것들

ChatGPT

당신의 글속의 문장들은 춤을 추고 있나요?

ChatGPT

모든 위대한 창작은 한순간의 망상에서 시작된다

ChatGPT

주니어에서 시니어까지, 5년을 3년으로 압축한 비밀

ChatGPT

하루 8시간 일하던 제가 4시간 만에 끝내는 법

ChatGPT

“불가능”이라는 말을 들었을 때 오히려 신나는 이유

ChatGPT

휴대폰으로 찍은 사진이 갤러리에 전시된 비결