동기
작년 4월, 대표님 오더가 있었다.
고객이 홈페이지(아입웹 이용)에서 청소 서비스의 견적 신청 및 서비스까지 신청할 수 있는 프로세스의 웹페이지를 구축해달라는 내용이였다.
그러나 작업중간에 네이버 쇼핑 및 아임웹 쇼핑몰 등록으로 변경되면서 해당 프로젝트는 중단 되었다..ㅠ
약 2개월동안 진행 하였으며 작업한 부분이 아쉬웠었다.
데브 코스 강의를 듣다보니 예전 작업 해놓은 프로젝트가 떠올라 시간이 많이 지났지만 작업한 부분까지
블로그에 기록해 볼려고 한다.
*작업된 부분까지는 특정번호에서만 동작 되도록 하였다.
*오렌만에 테스트 해보았는데 여전히 잘동작된다.
동작 프로세스
1.고객이 홈페이지에서 청소 서비스 신청시 알림톡으로 견적페이지 링크가 발송된다.
2.운영 페이지에 신청 내역이 넘어가며 운영진은 첨부된 사진을 보고 견적가를 보낸다.
3.견적 페이지 견적가가 전송되며 고객이 보고 예약 하기 및 서비스 확정(결제)를 한다.
4.운영 페이지 상태 및 켈린더에 확정 되어 운영진들이 보고 최종확인하여 서비스 여부를 판단한다.
도식화
동작 프로세스 상세
1.고객이 홈페이지에서 청소 서비스 신청시 알림톡으로 견적페이지 링크가 발송된다.
- 홈페이지(아임웹)에서 "무료 견적 받기" 버튼 누를시 js스크립트 동작하도록 하여 데이터가 자체서버로 넘어갈 수 있도록 하였다.
- 서버로 넘어간 데이터는 DB에 기록이 되며 Biztalk업체의 API를 이용하여 알림톡을 보낼 수 있도록 하였다.
2.운영 페이지에 신청 내역이 넘어가며 운영진은 첨부된 사진을 보고 견적가를 보낸다.
- 운영 페이지에 현제 고객의 신청 상태를 확인할 수 있으며 단계가 진행될수록 운영진 페이지 신청상태는 는
DB와 운영 페이지(실시간) 업데이트 된다.
(신청 상태 : 견적신청 -> 견적가제공 -> 입금확인중 -> 서비스확정 -> 서비스완료(작업X))
3.견적 페이지 견적가가 전송되며 고객이 보고 예약 하기 및 서비스 확정(결제)를 한다.
- 고객이 예약 하기 버튼을 누르면 운영페이지에 실시간으로 반영이 되며 운영진이 확인 가능하다
- 결제는 nicepay pg사의 API를 이용하여 테스트 모드에서 작업 하였다.
4.운영 페이지 상태 및 켈린더에 확정 되어 운영진들이 보고 최종확인하여 서비스 여부를 판단한다.
- 결제 완료시 서비스 확정 페이지로 넘어가며 DB 및 운영 페이지 신청 상태도 서비스 확정 으로 업데이트 된다.
사용된 기술
프론트 : javascript,jinja
백앤드 : flask
클라우드서비스: GCP
웹서버 : Apache
https 호스팅 : 가비아
알림톡api : Biztalk
pgapi : nicepay
작업코드
github에 업로드 하였으나, 회사 프로젝트이므로 비공개 처리 해놓았다.
동작영상(카드 결제 부분)
느낀점
기존 회사에서 java와 spring로 작업을 하였었는데 현회사는 언어에 대한 규제가 없어 구축이 쉽고 빨리 진행될수 있는 flask를 선택하여 진행해 보았다.
서버 구조는 크게 5가지로 나누어서 진행 하였다. server_init(서버실행시 초기화),router(url경로),provier(서비스),model(orm 데이터 모델),templates(웹 페이지)
DB 작업은 페이징 부분 처리를 위해 SQLAlchemy ORM 와 pymyslq을 같이 사용 하였으며
라우터 부분을 나누기 위해 Blueprint 를 사용하였다.
url에 쿼리스트링으로 핸드폰 번호가 있는데 암호화 하기 위해 Ferent를 사용 하였다.
Python에서 필요한 라이브러리를 즉시 import하여 사용하는 접근 방식은 Java의 라이브러리 적용 방식에 비해 훨씬 간단하고 편리했다.
블로그에 기록하면서 코드를 다시 검토하는 과정은 유익한것 같다.
프로젝트를 진행하면서 구조적으로 나누고 일관된 코드 컨벤션을 유지하려 노력했지만, 혼자 작업하다 보니 때로는 컨디션이 좋지 않은 날에는 코드를 지저분하게 작성한게 보인다..
추후 기존 작업된 코드들을 리팩토링 작업을 해볼까 한다.
'회사 > ELB' 카테고리의 다른 글
[실무] 네이버 카페 랜덤 이미지 넣는 기능 (1) | 2024.04.19 |
---|