Top

Pro Go [Golang을 이용한 안정적이고 효율적인 소프트웨어 프로그래밍]

  • 원서명Pro Go: The Complete Guide to Programming Reliable and Efficient Software Using Golang (ISBN 9781484273548)
  • 지은이애덤 프리먼(Adam Freeman)
  • 옮긴이김지원
  • ISBN : 9791161758169
  • 50,000원
  • 2024년 01월 30일 펴냄
  • 페이퍼백 | 1,120쪽 | 188*250mm
  • 시리즈 : 프로그래밍 언어

책 소개

요약

Go 언어에 관련한 지식을 좀 더 넓히고 싶은 중급 Go 프로그래머나 다른 프로그래밍 언어 경험이 있는 독자들을 대상으로 하는 책이다. Go 언어의 기본 개념부터 네트워크, 동시성, 테스트, gRPC, 제네릭 등의 주제들을 많은 실습 예제와 함께 소개한다. 3판에서는 2판에 비해 책의 두께를 줄였으며 더 자연스러운 흐름으로 재구성했다. 더 나은 Go 언어 개발자가 되고 싶다면 이 책이 도움을 줄 수 있을 것이다.

이 책에서 다루는 내용

◆ Go 언어 및 도구에 대한 확실한 이해를 얻는다.
◆ Go 표준 라이브러리에 대한 심층 지식을 얻는다.
◆ 동시/병렬 작업에 Go를 사용한다.
◆ 클라이언트 및 서버 측 개발에 Go를 사용한다.

이 책의 대상 독자

Go를 사용해 애플리케이션을 만들고 싶은 숙련된 개발자를 위한 책이다.

이 책의 구성

세 부분으로 나눠 Go 언어를 포괄적으로 소개한다. 1부는 Go 언어에 대한 전반적인 이해를 도와준다. 1부는 앱을 만드는 과정을 안내하고 Go 도구, 흐름 제어, 배열, 슬라이스 및 맵, 메서드 및 인터페이스 사용, 패키지 만들기 및 사용, 에러 처리 등을 소개한다. 2부는 Go 표준 라이브러리를 소개한다. 문자열 처리 및 정규식, 수학 함수 및 데이터 정렬, 파일 작업, HTML 및 텍스트 템플릿, 단위 테스트, 벤치마킹, 로깅, 영역을 배울 수 있다. 마지막으로 3부는 Go를 적용하는 방법을 다룬다. ‘SportsStore’ 애플리케이션을 개발하면서 웹 플랫폼, 미들웨어, 템플릿, 핸들러 등을 만드는 방법을 배울 수 있기 때문에 집에서도 쉽게 Go 개발을 할 수 있다.
각 주제는 명확하고 간결하고 실용적인 접근 방식으로 다뤄진다. 효과적인 학습에 진정으로 필요한 세부 정보로 가득 채우기 위해 장마다 일반적인 문제와 문제를 방지하는 방법을 포함하고 있다.

저자/역자 소개

지은이 소개

애덤 프리먼(Adam Freeman)

경험이 풍부한 IT 전문가로 다양한 회사에서 고위직을 역임했다. 가장 최근에는 글로벌 은행의 최고기술책임자(CTO) 및 최고운영책임자(COO)를 역임했다. 지금은 은퇴하고 글쓰기와 장거리 달리기에 시간을 보내고 있다.

옮긴이의 말

Go 언어는 아주 간단한 문법으로 다른 프로그래밍 언어에 비해 굉장히 배우기 쉽습니다. 컴퓨터공학 전공 수업 과제나 실습 수준의 개발 경험만 있던 신입사원도 입사하고 일주일 만에 Go언어를 공부하고 곧바로 프로젝트에 투입돼 Go 언어로 API를 개발할 수 있습니다.
하지만 제대로 Go 언어를 사용하기는 쉽지 않습니다. 간단한 문법은 그만큼 지원하지 않는 것이 많다는 것을 의미하고 나머지는 결국 개발자의 몫이 됩니다. 예를 들면 Go 언어는 클래스 문법을 지원하지 않기 때문에 개발자가 인터페이스와 메서드를 활용해서 다형성을 구현해야 합니다. Go 언어의 강력한 장점인 고루틴도 개발자가 스레드 개념을 정확하게 인지하지 못하고 채널을 통해 고루틴을 제대로 관리할 수 없다면 동시성 프로그래밍의 장점을 누릴 수 없습니다. 사실 C 언어든 자바(Java) 언어든 어느 정도 프로그래밍 언어를 공부하고 컴퓨터 사이언스 지식이 있어야 Go가 가장 최소한의 문법으로 자유도 높은 프로그래밍을 즐길 수 있는 언어라는 것을 느낄 수 있습니다.
그런 의미에서 이 책은 간단한 문법이 특징인 Go 언어를 공부하는 책 치곤 분량이 많다고 느낄 수 있지만 다른 프로그래밍 언어보다 Go 언어의 강력함을 최대한 느낄 수 있게끔 다양한 예제와 풍부한 설명을 담고 있습니다. 개발 경험이 적은 독자에게는 섬세하게 Go 언어 프로그래밍을 알려줄 수 있으며, 개발 경험이 있는 독자에게는 여러 해답을 제시하고 생각할 거리를 던져줄 것입니다.
이 책을 번역하기 위해 약 1년 간 주말마다 공부하던 시간이 소중하게 느껴집니다. 중간중간 포기하고 싶은 마음도 들었지만 많은 분의 도움이 있었기 때문에 성공적으로 마무리할 수 있었던 것 같습니다. 첫 번역이라 아쉬운 부분이 많지만 원서가 전달하려던 지식과 정보를 독자에게 정확하게 전달하기 위해 노력했습니다.

옮긴이 소개

김지원

현대자동차에서 클라우드 서비스 개발자로 근무하고 있으며, 2021년부터 현재까지 Go 언어를 활용해 다양한 시스템을 개발하고 있다. 요즘은 Go 언어로 쿠버네티스 오퍼레이터를 개발하면서 열심히 공부 중이다.

목차

목차
  • 1부 ― Go 언어 이해
  • 1장. 첫 번째 Go 애플리케이션
    • 시나리오 설정
    • 개발 도구 설치
      • Git 설치
      • 코드 에디터 선택
    • 프로젝트 생성
    • 자료형과 컬렉션
    • HTML 템플릿 생성
      • 템플릿 가져오기
    • HTTP 핸들러와 서버 생성하기
    • 폼 핸들링 함수 작성하기
      • 폼 데이터 처리하기
    • 데이터 유효성 검사 추가하기
    • 요약

  • 2장. 책의 내용과 구성
    • 왜 Go를 배워야 할까?
    • Go의 단점은 무엇인가?
    • Go를 사용하는 것이 후회될까?
    • 무엇을 알아야 할까?
    • 이 책의 구조는 어떻게 돼 있는가?
      • 1부: Go 언어 이해
      • 2부: Go 표준 라이브러리 사용
      • 3부: Go 활용
    • 이 책에서 다루지 않는 것은 무엇인가?
    • 이 책의 오류를 발견하면 어떻게 하면 되는가?
    • 예제가 많은가?
    • 예제에 필요한 소프트웨어는 무엇인가?
    • 예제를 실행하는 플랫폼은 무엇인가?
    • 예제를 따라가다 문제가 발생하면 어떻게 하는가?
    • 어디에서 예제 코드를 다운로드할 수 있는가?
    • 일부 예제에서 이상한 형식이 있는 이유는 무엇인가?
    • 저자와 어떻게 연락하는가?
    • 이 책에 대한 즐거움을 공유하고 싶은가?
    • 이 책에 분노를 느끼고 불평을 하고 싶은가?
    • 요약

  • 3장. Go 도구 사용
    • Go 명령어 사용
    • Go 프로젝트 생성
      • 패키지 선언 이해
      • import 문 이해
      • 함수 이해
      • 코드 실행문 이해
    • 소스 코드 컴파일 및 실행
      • 정리
      • Go Run 명령어 사용
      • 모듈 정의
    • Go 코드 디버깅
      • 디버거 준비
      • 디버거 사용
      • Delve 에디터 플러그인 사용
    • Go 코드 린팅
      • 린터 사용
      • 린터 규칙 비활성화
      • 린터 설정 파일 생성
    • Go 코드 내 보편적인 문제 해결
    • Go 포매팅 지정
    • 요약

  • 4장. 기본 자료형, 값, 포인터
    • 4장 준비
    • Go 표준 라이브러리 사용
    • 기본 자료형 이해
      • 리터럴 값 이해
    • 상수 사용
      • 타입 없는 상수 이해
      • 단일 코드 실행문으로 여러 상수 정의
      • 리터럴 값 재방문
    • 변수 사용
      • 변수 자료형 생략
      • 변수 값 할당 생략
      • 단일 코드 실행문으로 여러 변수 정의
      • 짧은 변수 선언 구문 사용
      • 변수를 재정의하기 위한 짧은 변수 구문 사용
    • 빈 식별자 사용
    • 포인터 이해
      • 포인터 정의
      • 포인터 역참조
      • 포인터 제로 값 이해
      • 포인터를 가리키는 포인터
      • 왜 포인터는 유용한가
    • 요약

  • 5장. 연산과 변환
    • 5장 준비
    • Go 연산자 이해
      • 산술 연산자 이해
      • 문자열 연결
      • 비교 연산자 이해
      • 논리 연산자 이해
    • 값 변환, 파싱, 포매팅
      • 명시적 타입 변환
      • 부동 소수점 값을 정수로 변환
      • 문자열 파싱
      • 문자열 값 포매팅
    • 요약

  • 6장. 흐름 제어
    • 6장 준비
    • 흐름 제어 이해
    • if 문 사용
      • else 키워드 사용
      • if 문 범위 이해
      • if 문으로 초기화 문 사용
    • for 루프 사용
      • 루프에 조건 통합
      • 초기화 및 종결문 사용
      • 루프 지속
      • 시퀀스 열거
    • switch 문 사용
      • 여러 값 일치
      • 다음 case 문으로 폴스루 강제 실행
      • default 문 제공
      • 초기화 문 사용
      • 비교 값 생략
    • 라벨 문 사용
    • 요약

  • 7장. 배열, 슬라이스, 맵 사용
    • 7장 준비
    • 배열 작업
      • 배열 리터럴 구문 사용
      • 배열 타입 이해
      • 배열 값 이해
      • 배열 비교
      • 배열 열거
    • 슬라이스 작업
      • 슬라이스에 항목 추가
      • 한 슬라이스를 다른 슬라이스에 추가
      • 배열에서 슬라이스 생성
      • 배열에서 슬라이스 생성할 때 용량 명시
      • 다른 슬라이스에서 슬라이스 생성
      • copy 함수 사용
      • 슬라이스 항목 삭제
      • 슬라이스 열거
      • 슬라이스 정렬
      • 슬라이스 비교
      • 슬라이스 기반 배열
    • 맵 작업
      • 맵 리터럴 구문 사용
      • 맵 항목 확인
      • 맵 항목 제거
      • 맵 열거
    • 문자열의 이중 특성 이해
      • 문자열을 rune으로 변환
      • 문자열 열거
    • 요약

  • 8장. 함수 정의 및 사용
    • 8장 준비
    • 간단한 함수 정의
    • 함수 매개변수 정의 및 사용
      • 매개변수 타입 생략
      • 매개변수 이름 생략
      • 가변 매개변수 정의
      • 함수 매개변수로 포인터 사용
    • 함수 결과 정의 및 사용
      • 여러 함수 결과 반환
    • defer 키워드 사용
    • 요약

  • 9장. 함수 타입 사용
    • 9장 준비
    • 함수 타입 이해
      • 함수 비교와 제로 타입 이해
      • 인수로 함수 사용
      • 결과로 함수 사용
    • 함수 타입 별칭 생성
    • 리터럴 함수 구문 사용
      • 함수 변수 범위 이해
      • 함수 값 직접 사용
      • 함수 클로저 이해
    • 요약

  • 10장. 구조체 정의
    • 10장 준비
    • 구조체 정의 및 사용
      • 구조체 값 생성
      • 구조체 값 사용
      • 구조체 값 부분 할당
      • 필드 위치 사용해 구조체 값 생성
      • 임베디드 필드 정의
      • 구조체 값 비교
      • 익명 구조체 타입 정의
    • 구조체 값을 포함한 배열, 슬라이스, 맵 생성
    • 구조체와 포인터 이해
      • 구조체 포인터 편의 구문 이해
      • 포인터 값 이해
      • 구조체 생성자 함수 이해
      • 구조체 필드를 위한 포인터 타입 사용
      • 구조체 제로 값 및 구조체 포인터 이해
    • 요약

  • 11장. 메서드 및 인터페이스 사용
    • 11장 준비
    • 메서드 정의 및 사용
      • 메서드 매개변수 및 결과 정의
      • 메서드 오버로딩 이해
      • 포인터와 값 리시버 이해
      • 타입 별칭으로 메서드 정의
    • 별도 파일에 타입 및 메서드 정의
    • 인터페이스 정의 및 사용
      • 인터페이스 정의
      • 인터페이스 구현
      • 인터페이스 사용
      • 포인터 메서드 리시버 효과 이해
    • 인터페이스 값 비교
    • 타입 단언 수행
      • 타입 단언 수행 전 테스트
      • 동적 타입에 대한 switch 문
    • 빈 인터페이스 사용
      • 함수 매개변수로 빈 인터페이스 사용
    • 요약

  • 12장. 패키지 생성 및 사용
    • 12장 준비
    • 모듈 파일 이해
    • 사용자 정의 패키지 생성
      • 사용자 정의 패키지 사용
      • 패키지 접근 제어 이해
      • 패지지에 코드 파일 추가
      • 패키지 이름 충돌 해결
      • 중첩 패키지 생성
      • 패키지 초기화 함수 사용
    • 외부 패키지 사용
      • 외부 패키지 관리
    • 요약

  • 13장. 타입 및 인터페이스 합성
    • 13장 준비
    • 타입 합성 이해
      • 기본 타입 정의
    • 타입 합성
      • 임베디드 타입 체인 생성
      • 동일 구조체 내 여러 임베디드 타입 사용
      • 승격 수행을 할 수 없는 상황 이해
    • 합성과 인터페이스 이해
      • 인터페이스 구현을 위한 합성 사용
      • 인터페이스 합성
    • 요약

  • 14장. 고루틴 및 채널 사용
    • 14장 준비
    • Go 코드 실행 방법 이해
    • 고루틴 추가 생성
    • 고루틴 결과 값 반환
      • 채널을 사용해 결과 값 전송
      • 채널을 사용해 결과 값 수신
    • 채널 작업
      • 채널 조정
      • 미정 개수 값 전송 및 수신
      • 채널 방향 제한
    • select 문 사용
      • 블로킹 없는 수신
      • 여러 채널로 수신
      • 블로킹 없는 전송
      • 여러 채널로 전송
    • 요약

  • 15장. 에러 처리
    • 15장 준비
    • 복구 가능한 에러 처리
      • 에러 생성
      • 채널을 통한 에러 보고
      • 에러 편의 함수 사용
    • 복구 불가능한 에러 처리
      • 패닉 복구
      • 복구 후 패닉
      • 고루틴 패닉 복구
    • 요약

  • 2부 ― Go 표준 라이브러리 사용
  • 16장. 문자열 및 정규식 처리
    • 16장 준비
    • 문자열 처리
      • 문자열 비교
      • 문자열 대소문자 변환
      • 문자 대소문자 작업
      • 문자열 검사
      • 문자열 조작
      • 문자열 트리밍
      • 문자열 변경
      • 문자열 형성 및 생성
    • 정규식 사용
      • 패턴 컴파일 및 재사용
      • 정규식을 사용한 문자열 분할
      • 하위 표현식 사용
      • 정규식을 사용한 부분 문자열 치환
    • 요약

  • 17장. 문자열 포매팅 및 스캔
    • 17장 준비
    • 문자열 작성
    • 문자열 포매팅
      • 포매팅 동사 이해
      • 범용 포매팅 동사 사용
      • 정수 포매팅 동사 사용
      • 부동 소수점 포매팅 동사 사용
      • 문자열 및 문자 포매팅 동사 사용
      • bool 포매팅 동사 사용
      • 포인터 포매팅 동사 사용
    • 문자열 스캔
      • 개행 문자 처리
      • 다른 문자열 소스 사용
      • 스캔 템플릿 사용
    • 요약

  • 18장. 수학 함수와 데이터 정렬
    • 18장 준비
    • 숫자 작업
      • 난수 생성
    • 데이터 정렬
      • 숫자 및 문자열 슬라이스 정렬
      • 정렬 데이터 검색
      • 사용자 정의 자료형 정렬
    • 요약

  • 19장. 날짜, 시간, 기간
    • 19장 준비
    • 날짜 및 시간 작업
      • 날짜 및 시간 표현
      • 기간 표현
    • 고루틴 및 채널에 시간 기능 사용
      • 고루틴 절전 모드 전환
      • 함수 실행 연기
      • 시간 지정 알림 수신
      • 반복 알림 수신
    • 요약

  • 20장. 데이터 읽기 및 쓰기
    • 20장 준비
    • Reader 및 Writer 이해
      • Reader 이해
      • Writer 이해
    • Reader 및 Writer 유틸리티 함수 사용
    • 특수 Reader 및 Writer 사용
      • 파이프 사용
      • 다중 Reader 연결
      • 다중 Writer 연결
      • Writer에 에코 읽기
      • 읽기 데이터 제한
    • 버퍼링 데이터
      • 버퍼링한 Reader 추가 메서드 사용
      • 버퍼 쓰기 수행
    • Reader 및 Writer로 포매팅 및 스캔
      • Reader에서 값 스캔
      • Writer에 포매팅한 문자열 쓰기
      • Writer로 Replacer 사용
    • 요약

  • 21장. JSON 데이터 작업
    • 21장 준비
    • JSON 데이터 읽기 및 쓰기
      • JSON 데이터 인코딩
      • JSON 데이터 디코딩
    • 요약

  • 22장. 파일 작업
    • 22장 준비
    • 파일 읽기
      • 읽기 편의 함수 사용
      • 파일 구조체를 사용한 파일 읽기
    • 파일 쓰기
      • 쓰기 편의 함수 사용
      • 파일 구조체를 사용한 파일 쓰기
      • JSON 데이터 파일 쓰기
    • 편의 함수를 사용한 새 파일 생성
    • 파일 경로 작업
    • 파일과 디렉터리 관리
    • 파일 시스템 탐색
      • 파일 존재 여부 확인
      • 패턴을 사용한 파일 찾기
      • 디렉터리 내 모든 파일 처리
    • 요약

  • 23장. HTML 및 텍스트 템플릿 사용
    • 23장 준비
    • HTML 템플릿 생성
      • 템플릿 로딩 및 실행
      • 템플릿 액션 이해
    • 텍스트 템플릿 생성
    • 요약

  • 24장. HTTP 서버 생성
    • 24장 준비
    • 간단한 HTTP 서버 생성
      • HTTP 리스너 및 핸들러 생성
      • 요청 검사
      • 요청 필터링 및 응답 생성
      • 응답 편의 함수 사용
      • 편의 라우팅 핸들러 사용
      • HTTPS 요청 지원
    • 정적 HTTP 서버 생성
      • 정적 파일 경로 생성
    • 응답 생성을 위한 템플릿 사용
    • JSON 데이터 응답
    • 폼 데이터 처리
      • 폼 데이터 요청 읽기
      • 멀티파트 폼 읽기
    • 쿠키 읽기 및 설정
    • 요약

  • 25장. HTTP 클라이언트 생성
    • 25장 준비
    • 간단한 HTTP 요청 전송
      • POST 요청 전송
    • HTTP 클라이언트 요청 구성
      • 요청 생성을 위한 편의 함수 사용
      • 쿠키 작업
      • 리디렉션 관리
    • 멀티파트 폼 생성
    • 요약

  • 26장. 데이터베이스 작업
    • 26장 준비
      • 데이터베이스 준비
    • 데이터베이스 드라이버 설치
    • 데이터베이스 열기
    • 스테이트먼트 및 쿼리 실행
      • 여러 행 쿼리
      • 플레이스홀더가 있는 명령문 실행
      • 단일 행 쿼리 실행
      • 기타 쿼리 실행
    • 프리페어드 스테이트먼트 사용
    • 트랜잭션 사용
    • 데이터를 구조체로 스캔하기 위한 리플렉션 사용
    • 요약

  • 27장. 리플렉션 사용 - 1부
    • 27장 준비
    • 리플렉션 필요성 이해
    • 리플렉션 사용
      • 기초 타입 기능 사용
      • 기초 값 기능 사용
    • 타입 식별
      • 바이트 슬라이스 식별
    • 기본값 얻기
    • 리플렉션을 사용한 값 설정
      • 다른 값을 사용한 한 값 설정
    • 값 비교
      • 비교 편의 함수 사용
    • 값 변환
      • 숫자 타입 변환
    • 새 값 생성
    • 요약

  • 28장. 리플렉션 사용 - 2부
    • 28장 준비
    • 포인터 작업
      • 포인터 값 작업
    • 배열 및 슬라이스 타입 작업
    • 배열 및 슬라이스 값 작업
      • 슬라이스 및 배열 열거
      • 기존 슬라이스에서 새 슬라이스 생성
      • 슬라이스 요소 생성, 복사, 추가
    • 맵 타입 작업
    • 맵 값 작업
      • 맵 값 설정 및 제거
      • 새 맵 생성
    • 구조체 타입 작업
      • 중복 필드 처리
      • 이름으로 필드 찾기
      • 구조체 태그 검사
      • 구조체 타입 생성
    • 구조체 값 작업
      • 구조체 필드 값 설정
    • 요약

  • 29장. 리플렉션 사용 - 3부
    • 29장 준비
    • 함수 타입 작업
    • 함수 값 작업
      • 새 함수 타입과 값 생성 및 호출
    • 메서드 작업
      • 메서드 호출
    • 인터페이스 작업
      • 인터페이스의 기본 값 얻기
      • 인터페이스 메서드 검사
    • 채널 타입 작업
    • 채널 값 작업
    • 새 채널 타입 및 값 생성
    • 여러 채널 선택
    • 요약

  • 30장. 고루틴 조정
    • 30장 준비
    • 대기 그룹 사용
    • 상호 배제 사용
      • 읽기-쓰기 뮤텍스 사용
    • 고루틴 조정을 위한 조건 사용
    • 함수 단일 실행 보장
    • 콘텍스트 사용
      • 요청 취소
      • 데드라인 설정
      • 요청 데이터 제공
    • 요약

  • 31장. 단위 테스팅, 벤치마킹, 로깅
    • 31장 준비
    • 테스팅 사용
      • 단위 테스트 실행
      • 테스트 실행 관리
    • 코드 벤치마킹
      • 벤치마크 설정 제거
      • 서브 벤치마크 수행
    • 데이터 로깅
      • 커스텀 로거 생성
    • 요약

  • 3부 ― Go 적용
  • 32장. 웹 플랫폼 생성
    • 프로젝트 생성
    • 기본 플랫폼 기능 생성
      • 로깅 시스템 생성
      • 구성 시스템 생성
    • 서비스 관리를 위한 의존성 주입
      • 서비스 라이프사이클 정의
      • 내부 서비스 함수 정의
      • 서비스 등록 함수 정의
      • 서비스 해결 함수 정의
      • 서비스 등록 및 사용
    • 요약

  • 33장. 미들웨어, 템플릿, 핸들러
    • 요청 파이프라인 생성
      • 미들웨어 컴포넌트 인터페이스 정의
      • 요청 파이프라인 생성
      • 기본 컴포넌트 생성
      • HTTP 서버 생성
      • 애플리케이션 구성
      • 서비스 해결 간소화
    • HTML 응답 생성
      • 레이아웃 및 템플릿 생성
      • 템플릿 실행 구현
      • 템플릿 서비스 생성 및 사용
    • 요청 핸들러 소개
      • URL 경로 생성
      • 핸들러 메서드를 위한 매개변수 값 준비
      • 요청 경로 매칭
    • 요약

  • 34장. 액션, 세션, 인가
    • 액션 결과 도입
      • 공통 액션 결과 정의
      • 액션 결과 사용을 위한 플레이스홀더 업데이트
    • 템플릿에서 요청 핸들러 호출
      • 요청 처리 업데이트
      • 애플리케이션 구성
    • 경로에서 URL 생성
      • URL 생성자 서비스 생성
    • 별칭 경로 정의
    • 요청 데이터 유효성 검사
      • 데이터 유효성 검사 수행
    • 세션 추가
      • 응답 데이터 쓰기 지연
      • 세션 인터페이스, 서비스, 미들웨어 생성
      • 세션 사용 핸들러 생성
      • 애플리케이션 구성
    • 사용자 인가 추가
      • 기본 인가 타입 정의
      • 플랫폼 인터페이스 구현
      • 액세스 제어 구현
      • 애플리케이션 플레이스홀더 기능 구현
      • 인증 핸들러 생성
      • 애플리케이션 구성
    • 요약

  • 35장. SportsStore: 실제 애플리케이션
    • SportsStore 프로젝트 생성
      • 애플리케이션 구성
    • 데이터 모델 시작
      • 리포지터리 인터페이스 정의
      • (임시) 리포지터리 구현
    • 제품 리스트 표시
      • 템플릿 및 레이아웃 생성
      • 애플리케이션 구성
    • 페이지네이션 추가
    • 템플릿 콘텐츠 스타일링
      • 부트스트랩 CSS 파일 설치
      • 레이아웃 업데이트
      • 템플릿 콘텐츠 스타일링
    • 카테고리 필터링 지원 추가
      • 요청 핸들러 업데이트
      • 카테고리 핸들러 생성
      • 제품 리스트 템플릿 내 카테고리 내비게이션 표시
      • 핸들러 등록 및 별칭 업데이트
    • 요약

  • 36장. SportsStore: 카트 및 데이터베이스
    • 쇼핑 카트 형성
      • 카트 모델 및 리포지터리 정의
      • 카트 요청 핸들러 생성
      • 카트에 제품 추가
      • 애플리케이션 구성
      • 카트 요약 위젯 추가
    • 데이터베이스 리포지터리 사용
      • 리포지터리 타입 생성
      • 데이터베이스 열기 및 SQL 명령어 로딩
      • 시드 정의 및 명령문 초기화
      • 기본 쿼리 정의
      • 페이징 쿼리 정의
      • SQL 리포지터리 서비스 정의
      • SQL 리포지터리 사용을 위한 애플리케이션 구성
    • 요약

  • 37장. SportsStore: 결제 및 관리
    • 결제 프로세스 생성
      • 모델 정의
      • 리포지터리 확장
      • 임시 리포지터리 비활성화
      • 리포지터리 메서드 및 명령어 정의
      • 요청 핸들러 및 템플릿 생성
    • 관리 기능 생성
      • 제품 관리 기능 생성
      • 카테고리 관리 기능 생성
    • 요약

  • 38장. SportsStore: 마무리 및 배포
    • 관리 기능 완성
      • 리포지터리 확장
      • 요청 핸들러 구현
      • 템플릿 생성
    • 관리 기능 접근 제한
      • 사용자 스토어 및 요청 핸들러 생성
      • 애플리케이션 구성
    • 웹 서비스 생성
    • 배포 준비
      • 인증서 설치
      • 애플리케이션 구성
      • 애플리케이션 빌드
      • 도커 데스크톱 설치
      • 도커 구성 파일 생성
    • 요약

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안