본문 바로가기
Team Project/Airlines Web Project

[개발 일지] 항공사 Web 개발 프로젝트 0일차 (기획 단계)

by 스응 2023. 5. 13.
728x90
728x90

팀 프로젝트 주제

항공사 홈페이지 개발

 

프로젝트 기간

2023/05/12 ~ 2023/06/07 (변동될 수 있음)

 

깃허브 주소

https://github.com/seoyounglee0105/green_airline_project

 

데이터베이스 관련

MyBatis

초반에는 H2 Database를 사용하고, 나중에 샘플 데이터가 준비되면 MySQL로 전환할 예정

 

협업 툴

Jira

 

 


국비지원교육 마지막 팀 프로젝트 주제로 항공사 홈페이지를 하게 되었다. 

마지막 프로젝트인 만큼, 팀원 모두 자랑할 만한 주요 기능 하나씩은 맡을 수 있게 주요 기능을 4가지 정했다.

주요 기능부터 개발한 후, 자잘한 기능들도 분담해서 진행할 예정이다.

나는 우선 항공권 예약 + 결제 기능을 맡았다.

 

주요 기능

#  항공권 예약 + 결제

  - 왕복 or 편도 선택

  - 출발지/도착지/탑승일 선택

  - 예약할 좌석 수 선택

  - 나이 계산기 (소아/유아 구분)

  - 항공 일정 선택

  - 좌석 선택 (AJAX 통신 활용) 

  - 좌석 선택 후 결제

      · 쿠폰, 마일리지 사용할 수 있게

      · 가격 결정 기준

          - 운항 시간

          - 좌석 등급

          - 승객 연령

          - 회원 등급에 따라 할인 적용

 

#  기내 서비스 신청 + 고객센터

  - 기내 서비스 신청

      : 해당 스케줄의 운항 시간에 따라 신청 가능한 서비스 종류가 다름

  - 기내식 신청

  - 수하물 계산 (보류)

  - 공지사항

      · 검색 기능, 페이징 처리

  - FAQ

  - 항공권 취소/환불 처리

      · 환불 안내, 환불 수수료

 

#  추천 여행지 게시판 + 여행지 추천 서비스

  - 추천 여행지 게시판

      · 조회수 (한 회원이 조회수를 중복으로 올리는 것 금지) → 쿠키 활용

      · 이미지 업로드 기능 (한 게시글에 여러 이미지 업로드 가능)

      · 좋아요 기능

      · 정렬 기능

      · '공항' 테이블에 있는 지역들에 대해서 글 작성

      · 페이징 처리

  - 여행지 추천

      · 추천 여행지 게시판에서 좋아요가 많은 게시글 추천

      · 최근 예매 내역이 많은 지역 추천

      · 여행지 정보

 

#  마일리지샵

  - 재고 관리

      · 재고가 0이 되면 '품절'로 표시

  - 페이징 처리

  - 구매 시 이메일로 기프티콘 이미지 전송

  - 기프티콘 유효기간 연장 신청

  - 기프티콘 환불 신청

 

반응형

 

그 외 기능

#  로그인

  - 소셜 로그인

  - 비회원 로그인 (보류)

 

#  회원가입

  - 아이디 중복 확인

  - 비밀번호 확인 (AJAX 통신)

  - 국적 선택 (국가 코드 API 활용)

 

#  마일리지

  - 적립 내역 및 사용 내역

  - 마일리지 유효기간 

 

#  항공권 조회

 

#  마이페이지

  - 회원정보 수정

  - 비밀번호 변경

  - 회원 탈퇴

  - 결제 내역 조회

 

#  회원 등급

  - 등급 상승 기준 결정

  - 등급에 따른 혜택 결정

 

#  운항 일정 생성

  - 같은 시간대에 같은 비행기 운항 불가능

 

 


네이밍 컨벤션

더보기

파일 관련

  • 폴더 및 패키지 : 스네이크 케이스 (aaa_bbb)
  • 정적 파일 (css, image, xml 등) : 스네이크 케이스
  • .java 파일 : 파스칼 케이스 (AaaBbb)
  • .jsp 파일 : 카멜 케이스 (aaaBbb)

 

메서드 관련

  • repository
    • 접두사 (insert, select, update, delete) 붙이기 ex) insertUser()
    • WHERE 절이 있다면 뒤에 ‘by대상’ 붙이기 ex) selectUserById()
  • service
    • 접두사 (create, read, update, delete) 붙이기 ex) createUser()
    • WHERE 절이 있다면 뒤에 ‘by대상’ 붙이기 ex) readUserById()
  • view를 반환하는 controller
    • GET 방식 : 접미사 (Page) 붙이기 ex) userListPage()
    • 그 외 방식 : 접미사 (Proc) 붙이기 ex) createUserProc()
  • Controller 주소 매핑
    • 카멜 케이스

 

HTML 관련

  • id 속성 : 카멜 케이스
  • name 속성 : 카멜 케이스
  • class 속성 : aaa--bbb (하이픈 2개)

 

테이블 명세서

우선 주요 기능들에 대해서만 테이블 생성을 마친 상태고, 이후 더 추가할 예정이다.

이번에도 구글 스프레드 시트를 활용했다.

 

 

320x100
반응형

댓글