이번 연재의 목표: Go로 패키지와 오류를 나누고, 그 규칙 위에서 대출 기록을 파일에 남기는 작은 프로그램을 완성합니다.

기준은 2026년 10월 19일에 나온 안정 버전 1.27.3입니다. 예제는 go mod로 모듈을 만들고 go run으로 실행합니다. 더 높은 1.27대 버전이어도 아래 문법 자체는 같습니다.

고수는 키워드를 많이 외운 상태가 아닙니다. 함수가 값과 오류를 같이 돌려주는 이유, 이름 첫 글자의 대소문자가 공개 범위인 이유, 채널에서 보내는 쪽과 받는 쪽이 만나는 지점을 설명할 수 있는 상태입니다.

목차

01 — 설치와 첫 실행 go 1.27.3을 두고, 모듈 안에서 한 줄을 출력합니다.

02 — 변수와 자료형 짧은 선언으로 정수와 문자열에 이름을 붙입니다.

03 — 함수 연체료 계산에 이름을 붙이고 정수를 돌려줍니다.

04 — 조건과 반복 if로 연체 문구를 고르고, for로 요금 합계를 구합니다.

05 — 슬라이스 길이가 늘어나는 목록에 연체 일수를 담고 합칩니다.

06 — 맵 종이책과 전자책의 하루 요율을 이름으로 찾습니다.

07 — 구조체 책 한 권의 제목과 연체 일수를 하나의 값으로 묶습니다.

08 — 포인터와 메서드 책 값에 계산을 붙이고, 일수를 바꾸는 메서드는 포인터로 받습니다.

09 — 인터페이스 종이책과 전자책이 서로 다른 요율을 쓰면서 같은 이름으로 호출됩니다.

10 — 오류 잘못된 입력을 error로 돌려 호출자가 처리하게 합니다.

11 — 패키지 계산을 다른 폴더로 옮기고, 내보낼 이름만 대문자로 둡니다.

12 — 테스트 go test로 0일과 3일의 연체료를 확인합니다.

13 — 문자열 한글 제목의 바이트 수와 글자 수를 구분하고 첫 단어를 자릅니다.

14 — defer 함수가 끝날 때 실행할 일을 먼저 적어 둡니다.

15 — 파일 연체료 한 줄을 텍스트 파일에 쓰고 다시 읽습니다.

16 — 제네릭 같은 비교를 정수에 한정하지 않고 타입 매개변수로 적습니다.

17 — 고루틴과 채널 계산을 다른 고루틴에서 실행하고 채널로 결과를 받습니다.

18 — 함수 값 요율을 정하는 함수를 인자로 넘겨 합계를 구합니다.

19 — 명령행 프로그램 인자로 제목과 연체 일수를 받습니다.

20 — 대출 기록기 제목과 연체 일수를 CSV에 남기고, 권마다 연체료를 출력합니다.

학습 방법

01편에서 library 모듈을 하나 만듭니다. 02편부터 10편, 13편부터 20편은 그 모듈의 main.go를 해당 편의 코드로 교체한 뒤 go run . 으로 확인합니다. 11편은 book 폴더를 추가하고, 12편은 그 패키지에 테스트를 붙입니다.

출력 숫자는 실행 전에 손으로 계산해 맞춥니다. 컴파일 오류가 나오면 다음 편으로 넘어가지 않습니다. 쓰이지 않는 이름과 import도 오류입니다.