Skip to content

rhyskim/AirLine_DB

Repository files navigation

✈️ CNU Airline (공항 데이터베이스 및 예약 시스템)

CNU Airline Banner

📌 소개 및 개발 목적

CNU Airline은 실제 공항 터미널 및 예약 시스템에서 발생할 수 있는 복잡한 트랜잭션을 처리하기 위해 고안된 데이터베이스 연동 풀스택 프로젝트입니다. 단순한 웹 프로젝트가 아닌, 데이터베이스 단에서 엄격한 **무결성(Integrity)**을 보장하도록 설계되었습니다. 오라클(Oracle) 제약조건과 트리거를 적극 활용하여, 티켓 예약 및 변경이 발생해도 테이블 간의 정합성이 완벽하게 유지됩니다. 또한 이메일 발송 API를 연동하여 실제 서비스에 가까운 사용자 경험을 구현했습니다.


🛠 사용된 기술 (Tech Stack)

🗄️ Database

  • Oracle Database (OCI): 클라우드 환경에서 운영
  • SQL / PLSQL: 복잡한 제약조건(Constraints) 및 업무 자동화(Triggers) 구현

💻 Frontend & Backend

  • Next.js (App Router): SSR 및 API Routes 활용
  • React 19 & TypeScript: 타입 안정성을 갖춘 UI 개발
  • Tailwind CSS v4: 최신 Tailwind v4를 적극 활용하여, 실제 대형 항공사 홈페이지와 동일한 수준의 프리미엄 UI(Glassmorphism, 반응형 디자인)를 직접 구현
  • 오라클 연동(oracledb 커넥터): 서버사이드 DB 통신 설계
  • Lucide React: 세련된 벡터 아이콘 라이브러리 사용

🔥 데이터베이스 핵심 설계 포인트 (Portfolio Highlight)

본 프로젝트는 어플리케이션(서버) 로직에 의존하는 것을 넘어, 데이터베이스 자체 기능을 십분 활용해 데이터의 신뢰성을 확보했습니다.

  1. 강력한 참조 무결성 보장 (ON DELETE CASCADE 등)
    • 예시: 회원 탈퇴 또는 운항 항공편 스케줄이 취소(삭제)될 경우, 해당 항공편을 예약한 승객의 결제 및 예약 로그가 정합성에 맞게 자동 처리됩니다.
  2. 비즈니스 로직을 처리하는 이벤트 트리거 (Trigger)
    • 예시: 사용자가 새로운 예약을 등록 시, FLIGHT 테이블의 현재 '남은 좌석 수'를 자동으로 차감하는 실시간 동기화 트리거.
  3. 스키마 및 더미 데이터: 모든 설계 내역은 리포지토리 루트의 /database/create_and_insert.sql 에 보관되어 있습니다.

📱 상세 주요 기능

  • 🛫 항공편 검색 및 조회: 날짜, 출발/도착지 정보를 기반으로 SQL 쿼리 최적화로 실시간 제공.
  • 🛡️ 사용자 관리 및 로그인/예약: C0, C001 과 같은 ID 형태 관리. 일반 유저 예약/취소 조회, 관리자(admin) 페이지 권한 분리.
  • 📧 E-Ticket 메일 자동 전송: 외부 이메일 API와 연동해 실제 공항에서의 항공권 결제 완료 메일과 동일한 발송 시뮬레이션 지원.
  • 📊 관리자 대시보드: 현재 항공편들의 운항 현황과 좌석 통계 제공.

🚀 로컬 환경 실행 가이드 (Getting Started)

프로젝트를 다운로드하고 구동해보려면 다음 단계를 따라 주세요!

1단계: 패키지 설치

이 프로젝트는 Node.js 환경에서 동작합니다. 아래 명령어로 의존성을 설치합니다.

npm install

2단계: 환경 변수 세팅 (.env.local)

보안 파일은 깃허브에 올라가지 않도록 설정되어 있습니다. 루트 폴더에 .env.local 파일을 생성하고 본인의 DB 또는 테스트용 API 키를 입력하세요.

# Oracle DB 연결 정보
DB_USER=your_db_username
DB_PASSWORD=your_db_password
DB_CONNECTION_STRING=your_oci_connection_string

# 이메일 / Azure 연동 API 키
# EMAIL_API_KEY=your_api_key...

3단계: 로컬 서버 실행

npm run dev

서버가 켜지면 브라우저에서 http://localhost:3000 으로 접속하여 사용할 수 있습니다!


처음으로 기획부터 데이터베이스 설계, 웹 구현까지 완성도 있게 만든 뜻깊은 프로젝트입니다. 관심 있게 봐주셔서 감사합니다!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors