강의

멘토링

커뮤니티

개발 · 프로그래밍

/

웹 개발

파이썬/장고로 결제 시작하기 (Feat. 아임포트) - 기본편

웹 서비스 결제 연동에 어려움을 겪고 계신가요? 장고와 아임포트를 통해 여러분의 서비스에 결제를 빠르게 적용해보세요.

(5.0) 수강평 9개

수강생 259명

  • 이진석
실습 중심
결제기능구현
PythonDjango

먼저 경험한 수강생들의 후기

수강 후 이런걸 얻을 수 있어요

  • 아임포트 결제 서비스에 대한 이해

  • 장고와 아임포트 API를 활용한 간결한 결제 구현

  • 장고를 활용한 쇼핑몰 핵심 기능 (장바구니 등) 만들기

인생은 짧습니다. 결제 연동에서도 파이썬/장고를 통해,
비즈니스를 빠르게 성공적으로 이끄시고 여러분의 시간도 아끼세요
. 💪

강의 듣고 PyCharm Professional 쿠폰 받자! 🎫

장고 개발의 최적의 IDE인 PyCharm Professional (유료 툴)을 강의 후에도 사용하실 수 있도록 JetBrains으로부터 6개월 쿠폰을 후원받았습니다.

  1. 강의 중에는 PyCharm Professional 트라이얼 1개월 라이센스로 진행합니다.
  2. 완강하지 않으셔도, 수강신청하셨다면 아래 구글폼을 통해 쿠폰 신청이 가능합니다.
    1. 신청 링크 : https://forms.gle/mvDwLQmaCz4Z2vQD9
  3. 매주 금요일까지 신청된 내역을 확인하여 신청하신 이메일 주소로 쿠폰을 보내드리겠습니다.
  4. 받은 쿠폰은 즉시 등록해주세요. 등록하지 않으면 JetBrains로부터 더 이상 라이센스 지원을 받을 수 없게 됩니다.
  5. 쿠폰 신청은 강의 별로 1인 1회 가능합니다.
  6. Tip: 본 쿠폰을 사용하신 후에, 해당 계정에서 이어서 유료로 JetBrains 구독하시면, 할인된 가격으로 구독하실 수 있습니다.

참고) 학생/교사이신 분은 JetBrains의 학생 지원 프로그램을 통해, JetBrains의 모든 툴을 1년 단위로 라이센스 받으실 수 있습니다. 해당 프로그램을 신청하시면 수일 내로 라이센스를 발급받으실 수 있습니다.

여러분들은 어떤 코드를 선택하시겠어요?

  • 왼쪽 코드 : 포트원 결제 API를 사용한 코드
  • 오른쪽 코드 : 이니시스 사의 JSP 샘플 코드

아임포트의 결제 API는 간결하고 강력하지만, 이를 웹서비스에 접목하기를 어려워하시는 분들이 많습니다. 이 강의 하나면 여러분의 장고 프로젝트에 아임포트 결제를 연동하실 수 있습니다.

아임포트 💳

웹 서비스에서 결제 연동은 오랫동안 우리를 힘들게 하는 기능이었습니다. PG사들은 결제 연동 개발 경험 개선에는 전혀 관심이 없었습니다.

  1. 각 PG사의 십수 년 전에 만들어진 장황한 개발문서와 노후한 PHP/JSP 샘플 코드
    • 현대적인 언어와 프레임워크에 적용하려면, 어디서부터 시작해야 할까? 😢
  2. PG사들마다 다른 프로토콜
    • PG를 하나만 쓰면 단일장애점이 되니, PG 2개 이상 쓸려면 각기 다른 PG 프로토콜 구현을 해야 한다고? 😨

그러한 어려움을 포트원 (구: 아임포트) 서비스가 해결해주었습니다. 디지털 타임즈의 "온라인 결제 서비스 업체 아임포트, 누적 거래액 4조 원 돌파해" (2020년 9월 9일 기사)에 따르면, 2020년 당시 당근마켓, 밀리의 서재, 라인프렌즈, 오늘의집, 번개장터, 스타일쉐어 등의 기업들이 아임포트를 활용해서 온라인 결제를 구현했다고 합니다.

아임포트 서비스는 다음 장점이 있습니다.

  1. 간결하고 명확한 결제 API를 제공합니다.
  2. 포트원의 단일 API만으로 국내 모든 PG사와 결제 연동이 가능합니다.
    • PG가 변경되면 소스코드를 변경할 필요 없이, 포트원 관리자 페이지에서 설정만 변경해주면 됩니다.
    • 여러 PG사의 계약을 위한 신청은 포트원 관리자에서  한 번에 진행할 수 있습니다.
  3. 친절하고 자세한 개발 가이드와 여러 언어/프레임워크에 최적화된 현대화된 라이브러리가 제공됩니다.
    • 파이썬, React, Vue, Cordova, Swift, Android, Flutter, Go, Java 등

이런 분들께 추천해요 🙆‍♀️

파이썬/장고 프로젝트에 결제를 연동하고 싶은 분

아임포트를 활용한 효율적인 결제 연동 방법을 알고 싶은 분

장고 기초 이후 새로운 도전을 찾고 있는 분


강의 특징 ✨

기초부터 차근차근 쌓아 올리는 결제 강의

장고 홀릭 개발자가 제시하는 효율적인 학습

결제 연동 2회 실습으로 이해도 Up

10분 내외의 영상으로 수강 편의성 증대

편한 학습 환경을 위한 한글 자막 제공

학습을 위한 강의 슬라이드 PDF 제공


학습 내용 📚

1. Overview

  • 실제 소스 코드 및 데모와 함께, 아임포트 결제 연동 핵심코드
  • 장고에서 포트원 API 연동을 위한 결제 프로세스 9단계




2. 장고 프로젝트 사전 작업

  • 장고 프로젝트 생성 밑 작업
  • 소스 코드 포맷팅 유틸리티 black과 djlint 설치 가이드
  • django-debug-toolbar 라이브러리 설치
  • django-environ 라이브러리를 활용한 환경변수 로딩 및 파싱
  • django-bootstrap5 라이브러리를 활용한 손쉬운 부트스트랩 연동

3. 아임포트 핵심 로직을 빠르게 살펴보고 구현해보기

포트원 JS API 및 REST API를 장고 프로젝트에 최소한의 코드로 적용하여, 포트원 API를 경험해봅니다.

  • 포트원 JS API만으로 결제해보기
  • Payment 모델을 통한 결제내역 저장 및 조회
  • 포트원 가맹점 식별코드 확인 및 환경변수로 지정 및 로딩
  • 포트원 REST API를 활용한 결제내역 검증

4. accounts 회원가입, 로그인, 로그아웃, 프로필 구현

결제 및 결제 확인을 위해서는 사용자 인증이 필수입니다. 장고 기본 앱 django.contrib.auth를 적극 활용하여 유저 인증을 구현합니다.

  • UserCreationForm과 CreateView를 활용한 회원가입 구현
  • LoginView를 활용한 로그인 구현
  • LogoutView를 활용한 로그아웃 구현
  • login_required 장식자를 활용한 프로필 구현

5. mall 앱 - 기본 구성

상품 관리 기능을 만들어봅니다.

  • 상품 분류(Category) 및 상품(Product) 모델링
  • 장고 커스텀 명령 load_products 구현을 통한, 300여 개의 상품 일괄 등록
  • 상품 사진 서빙을 위한 MEDIA 설정
  • 효율적인 상품 관리를 위한 Admin 커스텀
  • 유저 노출용 상품 페이지 만들기, 썸네일 이미지 생성, 페이징 지원, 검색 지원

6. mall 앱 - 장바구니

보다 편리한 결제를 위해서는 장바구니 기능은 필수입니다. 

  • CartProduct 모델을 통한 장바구니 구현
  • 자바스크립트 개입 없이 장고 formset만으로 장바구니 수정 구현
  • django-widget-tweaks 라이브러리를 활용한 위젯 스타일 변경
  • 부트스트랩을 활용한 장바구니 알림 구현

7. mall 앱 - 주문 및 결제

본 강의에서 하이라이트 섹션입니다.

  • 주문과 결제 모델링
  • 장바구니를 통한 주문 생성
  • 포트원 결제를 추상화한 모델 설계 : 다양한 도메인에 손쉽게 클래스 상속만으로 아임포트 결제를 붙일 수 있도록, abstract Model을 설계해봅니다.
  • 결제 페이지 구현, 결제 조회 페이지 구현
  • 주문 목록 페이지 구현
  •  Admin 페이지에서의 결제 취소 구현

8. mall 앱 - 결제 결과 받기

유저의 디바이스에 따라서 결제 결과를 받는 방법이 다릅니다. 안정적으로 결제 결과를 받는 방법을 살펴봅니다.

  • 아이폰/안드로이드 환경에서의 결제 대응을 위한 m_redirect_url 인자 지원 방법
  • 안정적인 결제 연동을 위한 웹훅 지원 방법
  • 웹훅 테스트를 위한 ngrok 연동 방법: DisallowedHost 예외, CSRF 검증 실패 오류 대응 방법

 


예상 질문 Q&A 💬

Q. 수강 전에 갖춰야 할 환경, 기타 유의 사항이 있나요?

본 강의는 파이썬/파이참 개발환경 구축에 대해서는 다루지 않습니다. 개발환경 구축은 <장고 설계철학으로 시작하는 파이썬/장고 입문>의 개발환경구축 섹션을 "미리보기"로 공개해뒀으니, 이를 참고해 구축해주세요.

Q. 결제 연동에 사업자가 필요한가요?

아니요. 포트원 회원가입만으로 신용카드 결제를 연동하실 수 있습니다. 사업자 및 PG 가입은 서비스 구현 뒤에 하셔도 됩니다.

Q. 장고를 처음 시작하는 사람도 들을 수 있는 강의인가요?

장고의 실습에는 지장이 없지만, 장고의 핵심 개념들을 알고 계신다면 강의 이해에 큰 도움이 됩니다.


지식공유자 소개 ✒️

파이썬과 장고에 진심인 소프트웨어 개발자 이진석입니다.

  • 파이썬 홀릭, 장고 실무 16년 차 개발자
  • 장고 질답 커뮤니티 Ask Company with Django/React (구. Ask Django) 운영자
  • 대전 <파이썬 사랑방> 운영자
  • Microsoft Azure MVP 어워드 수상 (2016년~2021년, Microsoft MVP가 무엇인가요?)
  • 서울대학교, 벤처경영학 연합전공, 파이썬/장고 강의 "벤처창업 웹프로그래밍" 강사 (2016년/2017년)
  • 패스트캠퍼스, 웹서비스 개발 캠프 (파이썬/장고) 3기 강사 (2015년)
  • 다수 대학 및 기업 강의 및 자문 : 서울대학교, 카이스트, 부산대학교, 한양대학교, 국민대학교, 삼성전자, LG전자, LS그룹, SK Planet, 엔코아, KB증권, SK텔링크, 현대자동차그룹 이노션, 코스콤, 네이버 NIT Service, 아트센터 나비, 한국은행, 한국산업기술평가원 등

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • 장고에서의 결제 연동에 대해서 궁금하신 분

  • 아임포트 공식 문서를 봐도, 서비스 연동이 어려우신 분

  • 장고 기본을 익히시고, 새로운 도전거리를 찾으시는 분

선수 지식,
필요할까요?

  • 파이썬 언어 기초 (함수, 클래스, 장식자)

  • 웹 프론트엔드 자바스크립트 기초 (함수, 이벤트 처리)

안녕하세요
입니다.

3,075

수강생

145

수강평

933

답변

4.7

강의 평점

5

강의

파이썬과 장고에 진심인 소프트웨어 개발자

대외 활동

  • 오프라인 교육 : SK텔링크, LS그룹, 삼성 디스플레이, 부산대학교 정보화본부, 서울대학교 벤처경영학연합전공, 패스트캠퍼스 웹서비스 개발 캠프 3기 등

  • 기술 자문 : 유클리드소프트, 부산대학교, 한국산업기술평가관리원, 한국방송통신전파진흥원 등

여러분의 파이썬/장고/리액트 페이스메이커가 되겠습니다. 😉

커리큘럼

전체

56개 ∙ (5시간 28분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

전체

9개

5.0

9개의 수강평

  • renine94dev1394님의 프로필 이미지
    renine94dev1394

    수강평 2

    평균 평점 5.0

    5

    100% 수강 후 작성

    If there is Kim Young-han in Spring, it seems like there is instructor Lee Jin-seok in Janggo :)

    • 22님의 프로필 이미지
      22

      수강평 2

      평균 평점 5.0

      5

      96% 수강 후 작성

      I am a beginner developer developing a web service with Django. Ultimately, I connected Import (Port One) to the service, but since there is no documentation for Django, I paid and took the course with the last rope in my hand. I tried to pick out only the parts I needed, but as I listened to the lecture, there were so many contents that were helpful for my coding (related to shopping malls). Here are the advantages: 1. Fast progress - There is no unnecessary content, and since he types fast, there is no waiting time and he delivers only the main points well. The audio is good, and the subtitles are great. All the waiting parts are edited, so I give it a thumbs up! 2. Good code writing method - For beginner developers like me, reading the code of experts is very helpful. However, as I read, there are many times when I don't know why something was written with this intention, but it was good because I could understand all the intentions by following it one by one. 3. Code that can be used in practice - It is not an easy code that you can see anywhere, and there are many practical contents that consider security, so I think I can just copy and paste it, so it was really good. I would like to visit you once and express my gratitude since you are organizing a Python meetup in Daejeon where I live. I have already finished developing my code, but I would like to change my code to be a bit more professional, so I am planning to take a regular Django course(?). I highly recommend it. You can learn just by looking at the code.

      • powernt2241님의 프로필 이미지
        powernt2241

        수강평 3

        평균 평점 5.0

        5

        100% 수강 후 작성

        I don't usually write online, but I'm curious so I'll write a few words. Why are there no reviews for this great lecture? Haha Thanks to Mr. Lee Jin-seok, I got started with Django and am studying all the lectures you've created. Thanks to you, I was able to run a business that was almost just an idea, but now I'm running a web service. Thank you for always providing great lectures and information. Other Django lectures were also helpful, but this is the only Django lecture that I think you provide that can be used practically. I look forward to more lectures that can utilize Django. By the way, beginners in Python and Django may find it difficult, but I think they'll come back here eventually. That's what I did... If there's a discount period, it might be a good idea to purchase the lecture in advance. It's the fastest shortcut to intermediate Django...

        • 22

          I also really enjoyed the lecture. It's not a part-time job.

      • lkh60357694님의 프로필 이미지
        lkh60357694

        수강평 4

        평균 평점 5.0

        5

        100% 수강 후 작성

        This is my first time with payments, but I'm learning a lot about how to implement it.

        • bluebamus님의 프로필 이미지
          bluebamus

          수강평 26

          평균 평점 5.0

          5

          100% 수강 후 작성

          I was able to learn the overall contents related to payment using iamport. Above all, I think the lectures have incorporated the key points that can be applied directly to the actual work well. The series of processes of putting a product in the shopping cart, paying, verifying the payment status, and canceling it are well covered. Among the many lectures I have paid for recently, this was a lecture that I did not regret spending money on. However, in terms of implementing an actual shopping mall, I felt that the contents of the above steps covered in the lectures were concise and only included the key parts, which was disappointing. I wish there had been more lectures on various situations that would occur in the actual work. For example, implementing payment by anonymous users is a really worrisome scenario. The current lecture alone is different from other lectures, but I hope that it will be updated with supplementary contents added little by little so that it will become a lecture that I visit many times. It was a lecture that I would actively recommend to people around me.

          • pyhub
            지식공유자

            Thank you for your review. The current cart/payment implementation is designed to have a foreign key relationship with the login User model, so you must be logged in. I will think about the "anonymous user payment" part you mentioned and share the results. Thank you so much for actively participating in the lecture. 👍

        ₩55,000

        이진석님의 다른 강의

        지식공유자님의 다른 강의를 만나보세요!

        비슷한 강의

        같은 분야의 다른 강의를 만나보세요!