온라인 은행 프로젝트 개요

완료됨

무엇을 만들지에 대해 알아보겠습니다. 앞서 설명한 것처럼 두 개의 프로젝트를 만듭니다. 하나는 프로그램의 핵심 논리를 위한 것이고, 다른 하나는 웹 API를 통해 논리를 공개하기 위한 것입니다. 현재 온라인 은행 시스템을 빌드하는 팀에 속해 있다고 가정해 보세요.

기능 및 요구 사항 정의

빌드하려는 온라인 은행은 개념 증명으로서, 은행 프로그램 빌드가 실행 가능한지 결정합니다. 이 첫 번째 반복에서 핵심 패키지와의 상호 작용은 CLI 프로그램을 통해 이루어집니다. 사용자 인터페이스가 없고, 데이터를 데이터베이스에 유지하지도 않습니다. 고객의 계좌 명세서를 보기 위해 엔드포인트를 공개합니다.

온라인 은행 시스템이 하는 일은 다음과 같습니다.

  • 고객이 계좌를 만들 수 있도록 합니다.
  • 고객이 출금할 수 있도록 합니다.
  • 고객이 다른 계좌로 송금할 수 있도록 합니다.
  • 계좌 명세서에 고객 데이터와 최종 잔액을 제공합니다.
  • 엔드포인트를 통해 웹 API를 공개하여 계좌 명세서를 인쇄합니다.

이 프로그램을 함께 빌드할 것이므로 지금은 세부 정보에 대해 너무 걱정하지 마세요.

초기 프로젝트 파일 만들기

프로그램에 필요한 초기 파일 집합을 만들어 보겠습니다. 모든 은행 핵심 논리와 main 프로그램을 위한 Go 패키지를 만들어 몇 명의 고객과 입금 및 송금 같은 작업으로 시스템을 초기화합니다. 또한 main 프로그램은 웹 API 서버를 시작하여 계좌 명세서의 엔드포인트를 공개합니다.

$GOPATH 디렉터리에 다음과 같은 파일 구조를 만들어 보겠습니다.

$GOPATH/
  src/
    bankcore/
      go.mod
      bank.go
    bankapi/
      go.mod
      main.go

그런 다음 적절한 파일에 코드를 작성하는 데만 집중할 수 있도록 bankapi 주 프로그램에서 bankcore 패키지를 호출할 수 있는지 확인하는 Hello World! 프로그램 작성을 시작하겠습니다.

다음 코드 조각을 복사하여 src/bankcore/bank.go에 붙여넣습니다.

package bank

func Hello() string {
    return "Hey! I'm working!"
}

Go 모듈을 사용하겠습니다. src/bankcore/go.mod에서 나중에 참조할 수 있도록 다음 콘텐츠를 추가하여 이 패키지에 적절한 이름을 지정합니다.

module github.com/msft/bank

go 1.14

그리고 다음 코드를 추가하여 src/bankapi/main.go에서 bankcore 패키지를 호출합니다.

package main

import (
    "fmt"

    "github.com/msft/bank"
)

func main() {
    fmt.Println(bank.Hello())
}

src/bankapi/go.mod에서 다음과 같이 bankcore 패키지 파일을 로컬에서 참조해야 합니다.

module bankapi

go 1.14

require (
    github.com/msft/bank v0.0.1
)

replace github.com/msft/bank => ../bankcore

모든 것이 작동하는지 확인하려면 $GOPATH/src/bankapi/ 디렉터리에서 터미널을 열고 다음 명령을 실행합니다.

go run main.go

다음 출력이 표시됩니다.

Hey! I'm working!

이 출력은 프로젝트 파일이 원하는 대로 정확히 설정되었다고 확인합니다. 다음으로 온라인 은행 시스템의 초기 기능 집합을 구현하는 코드 작성을 시작합니다.