90DaysOfDevOps (Day 48)

고태규·2025년 11월 22일
0

DevOps

목록 보기
44/50
post-thumbnail

해당 스터디는 90DaysOfDevOps
https://github.com/MichaelCade/90DaysOfDevOps
를 기반으로 진행한 내용입니다.

Day 48 - From Puddings to Platforms: Bringing Ideas to life with ChatGPT


1. 아키텍처 설계 및 기술 스택 선정 by AI


본 프레젠테이션은 V Software CTO 앤서니 스퍼의 프레젠테이션 내용을 바탕으로, 비전문가가 ChatGPT를 개발자로 활용하여 복잡한 기술 스택을 갖춘 상업용 웹 애플리케이션을 구축한 과정에 대한 프레젠테이션이다.

발표자는 전문 개발자가 아님에도 불구하고, ChatGPT와의 대화를 통해 아이디어에 최적화된 엔터프라이즈급 기술 스택과 아키텍처를 수립하였다.

  • 백엔드 프레임워크: Python 기반의 Flask를 메인 백엔드 프레임워크로 채택

  • 데이터베이스 관리: 데이터의 안정성과 확장성을 고려하여 PostgreSQL을 선택하였으며, ORM으로 SQL Alchemy를 활용하여 데이터 모델을 정의

  • 클라우드/인프라: AWS LightSail VM을 호스팅 환경으로 사용하고, 웹 서버로는 Engine X를 구성하여 프론트엔드 서비스를 제공

  • 아키텍처 설계 요청: 발표자가 "프론트엔드와 백엔드를 나눠서 설계해 달라"고 요청하면, ChatGPT는 HTML/CSS/JavaScript와 Flask/Python 기반의 모듈화된 아키텍처를 제안하며 개발의 기반을 닦음.


2. 외부 서비스와의 연동 및 로직 구현


이 앱은 단순 검색을 넘어, 외부 전문 서비스들을 통합하고 복잡한 연산 로직을 처리하는 데 ChatGPT를 활용하였다.

  • 위치 기반 로직:

    • Google Maps/Places API를 사용하여 지도 시각화와 위치 검색 기능을 구현

    • 사용자의 현재 위치와 데이터베이스 내 위치 간의 정확한 거리 및 경로를 계산하는 복잡한 수학 함수는 ChatGPT가 거의 처음부터 구현하여 기술적 난이도를 해결

  • 보안 및 인증 시스템:

    • Firebase Authentication을 통합하여 안전한 사용자 등록, 로그인 및 계정 관리 기능을 구현하였으며, 사용자 정보가 PostgreSQL뿐만 아니라 Firebase 내에서도 관리되도록 연동

    • 민감 정보 (API 키 등) 유출 방지를 위해 서버 환경 변수(Server Variables)를 사용하여 코드가 아닌 외부에서 키를 로드하는 보안 습관을 ChatGPT의 지침을 통해 학습하고 적용하였다.

  • 상업적 기능 통합: 유료 기능 (위치 검증 등) 구현을 위해 Stripe 결제 API를 Flask 백엔드에 직접 통합하는 등 복잡한 상업적 로직을 AI의 도움으로 구현


3. 개발 프로세스 및 운영 환경 관리


개발 과정에서 10,000줄 이상의 코드를 생성한 발표자는, 전문 개발자와의 차이를 프롬프트 엔지니어링 능력으로 극복하였다.

  • 반복적 피드백 루프:

    • 개발자는 코드를 실행하여 발생한 오류 메시지 전체를 ChatGPT에 피드백하고, ChatGPT는 이를 기반으로 디버깅된 수정 코드를 제공
  • 코드 품질:

    • ChatGPT는 많은 양의 코드(예: 1,194줄의 JavaScript)를 생성하면서도 꼼꼼한 주석 처리를 기본으로 제공하여, 비전문가가 코드를 이해하고 관리하기 쉽게 만듦.
  • 배포 자동화:

    • 전문적인 CI/CD 파이프라인 대신, GitHub와 AWS LightSail 서버 간에 연동되는 간단한 스크립트를 사용하여 변경 사항을 즉시 반영하고 서비스를 재시작하는 'Poor Man's CI/CD' 전략을 구축하여 운영의 효율성을 확보

4. AWS LighSail


AWS LightSail은 복잡한 AWS 서비스 대신 단순함과 사용 편의성을 극대화한 가상 사설 서버 (VPS) 서비스이다.

  • 정의 및 목표:

    • 개인 개발자, 소규모 프로젝트, 스타트업을 위한 단순화된 클라우드 컴퓨팅 플랫폼

    • 복잡한 AWS 환경에 익숙하지 않은 사용자도 쉽게 클라우드 환경을 시작할 수 있도록 설계

  • 핵심 특징 (번들 방식):

    • 올인원 패키지: VM, SSD 스토리지, 데이터 전송량, 고정 IP, DNS 관리가 하나의 월별 요금제로 통합 제공

    • 예측 가능한 비용: 월정액 요금으로 구성되어 있어 클라우드 비용 관리가 투명하고 예측 가능

  • 주요 용도:

    • 웹사이트 및 블로그(WordPress 등)의 간편 호스팅.

    • 소규모 웹 애플리케이션 및 모바일 앱의 백엔드 배포.

    • 개발 및 테스트를 위한 격리된 서버 환경 구축.


5. Firebase Authentication


Firebase Authentication은 앱에 필요한 모든 사용자 인증 기능을 제공하는 백엔드 서비스(BaaS) 솔루션이다.

  • 정의 및 역할:

    • 모바일 및 웹 애플리케이션에 안전하고 확장 가능한 사용자 인증 시스템을 구축

    • 개발자가 직접 인증 로직을 코딩할 필요 없이, Google의 강력한 인프라를 활용

  • 인증 방식 지원:

    • 다양한 통합: 이메일/비밀번호 인증 외에, Google, Facebook, Twitter 등 주요 소셜 로그인 방식을 모두 지원

    • SMS를 통한 전화번호 기반 인증도 쉽게 통합할 수 있음.

  • 기술적 이점 및 보안:

    • 보안 자동 처리: 사용자 비밀번호 해싱, 세션 및 토큰 (JWT) 관리를 Firebase가 전담하여 보안 취약점을 최소화합

    • 풍부한 SDK와 미리 구축된 UI 라이브러리를 통해 인증 시스템 구축 시간을 단축

  • 시스템 통합:

    • 인증 완료 후 발급되는 토큰을 사용하여 앱의 데이터베이스나 다른 백엔드 서비스에 접근하는 사용자의 권한을 검증하는 기반 역할을 수행

5. 정리


해당 프레젠테이션 사례는 생성형 AI (ChatGPT)가 비전문가도 복잡한 시스템을 구축할 수 있도록 돕는 혁신적인 도구임을 입증하며, 누구나 자신의 아이디어를 현실의 플랫폼으로 만들 수 있는 가능성을 열어주었다.


0개의 댓글