HOME / CATALOG / 오픈소스 & 웹
오픈소스 & 웹

스프링 프레임워크 첫걸음 (개정판)

기초 이론부터 웹 애플리케이션 제작까지, 그림과 실습으로 배우는 스프링 프레임워크 완벽 입문서
지은이 키노시타 마사아키
옮긴이 트랜스메이트
도서 정보
출간일
2025년 2월 12일
쪽수
464쪽
판형
188*240*19mm
ISBN
9791158395704
시리즈
오픈소스 & 웹 시리즈_121
정가
30,000원
난이도
도서 소개
저자 소개
역자 소개
목차
예제 코드
정오표

도서 소개

세상에서 가장 친절한 스프링 프레임워크 입문서!

스프링 프레임워크는 전 세계적으로 가장 널리 사용되는 오픈소스 자바 애플리케이션 프레임워크입니다. 이 책에서는 스프링 프레임워크를 처음 시작하는 분들을 위해 초보자의 눈높이에 맞춰 스프링 프레임워크를 설명합니다. 풍부한 그림과 실습을 통해 스프링 프레임워크에 관한 사전 지식이 없더라도 쉽게 이해하고 스프링 웹 개발을 시작할 수 있도록 도와줍니다.

이 책은 최신 버전인 스프링 프레임워크 6과 스프링 부트 3을 기반으로, 스프링 프레임워크를 이해하기 위한 자바 기초, 스프링 프레임워크의 핵심 원리, 웹 애플리케이션 개발을 위한 웹 애플리케이션의 동작 원리, 데이터 조작 방법, 스프링 MVC를 활용한 웹 애플리케이션 개발 등을 설명하고, 실제 웹 애플리케이션을 직접 만들어 보면서 스프링 프레임워크 기반의 웹 애플리케이션 개발 프로세스를 익히도록 구성돼 있습니다.

이번 개정판에서는 입력 유효성 검사와 로그인 인증 등을 14장, 15장, 부록에서 설명하고 있어 앱의 보안까지 고려한 앱 개발의 전체적인 과정을 이 책 한 권으로 배울 수 있습니다.

 

도서 소개

저자 소개

키노시타 마사아키

대학 졸업 후 IT 벤처기업에 입사해서 다양한 현장에서 요구사항 정의, 설계, 구현, 테스트, 납품 및 유지보수까지 모든 공정을 경험했습니다. SES, 자사 패키지의 개발 경험 후 대형 식품회사의 통신판매부에서 시스템 담당자로 업체 관리를 담당했습니다. 통신판매부의 사업을 정리하는 것을 계기로 주식회사 후루네스에 입사해서 현재는 IT 교육을 담당하고 있습니다.

역자 소개

트랜스메이트

다양한 IT 기술과 주제에 관심 있는 사람들이 함께하는 번역가 모임이다. 시시각각 변화하는 IT 분야에 발맞춰 정확하게 이해하고 편안하게 읽을 수 있는 기술서로 거듭날 수 있게 노력하고 있다.

목차

  • ▣ 01장: 스프링 프레임워크 알아보기
  • 1-1 스프링 프레임워크 개요
  • ___1-1-1 프레임워크란?
  • ___1-1-2 스프링 프레임워크란?
  • 1-2 개발 환경 준비(IDE)
  • ___1-2-1 IDE 설치
  • 1-3 개발 환경 준비(PostgreSQL)
  • ___1-3-1 PostgreSQL 설치
  •  
  • ▣ 02장: 기초 지식 배우기
  • 2-1 자바 기초 지식 복습
  • ___2-1-1 인터페이스란?
  • ___2-1-2 컴파일 오류란?
  • ___2-1-3 의존성이란?
  • ___2-1-4 인터페이스에 의존하는 프로그램 만들기
  • ___2-1-5 다형성이란?
  • 2-2 웹 애플리케이션 제작을 위한 필수 지식
  • ___2-2-1 클라이언트와 서버
  • ___2-2-2 애플리케이션과 웹 애플리케이션
  • ___2-2-3 AP 서버
  • ___2-2-4 HTTP 통신
  • ___2-2-5 GET 메서드와 POST 메서드
  • ___2-2-6 3계층 구조
  • 2-3 개발에 유용한 라이브러리와 도구
  • ___2-3-1 롬복이란?
  • ___2-3-2 롬복을 사용하는 프로그램 만들기
  • ___2-3-3 그레이들이란?
  •  
  • ▣ 03장: 스프링 프레임워크의 핵심 기능(DI) 알아보기
  • 3-1 스프링 프레임워크의 핵심 기능
  • ___3-1-1 의존성 주입
  • ___3-1-2 관점지향 프로그래밍
  • 3-2 DI 컨테이너 알아보기
  • ___3-2-1 DI 컨테이너
  • ___3-2-2 5가지 규칙
  • ___3-2-3 DI를 사용하는 프로그램 만들기
  • ___3-2-4 요약
  • 3-3 DI 컨테이너 알아보기 (인스턴스 생성)
  • ___3-3-1 빈이란?
  • ___3-3-2 빈 정의란?
  • ___3-3-3 자바 컨피그를 이용하는 프로그램
  • ___3-3-4 요약
  • 3-4 DI 컨테이너 알아보기 (주입)
  • ___3-4-1 주입 방법
  • ___3-4-2 각 주입 방법을 사용하는 프로그램 만들기
  • ___3-4-3 DI 이해하기
  •  
  • ▣ 04장: 스프링 프레임워크의 핵심 기능(AOP) 알아보기
  • 4-1 AOP(관점지향 프로그래밍)의 기초 지식
  • ___4-1-1 AOP 예제(데이터베이스 접근)
  • ___4-1-2 AOP 고유 용어
  • ___4-1-3 포인트컷 식
  • 4-2 AOP 프로그램 만들기
  • ___4-2-1 프로젝트 생성 및 AOP 사용 준비
  • ___4-2-2 타깃 만들기
  • ___4-2-3 애스펙트 만들기
  • ___4-2-4 시작 클래스 생성 및 동작 확인
  • 4-3 스프링 프레임워크가 제공하는 AOP 기능 이해하기
  • ___4-3-1 트랜잭션 관리
  • ___4-3-2 AOP 이해하기
  •  
  • ▣ 05장: MVC 모델 알아보기
  • 5-1 MVC 모델 알아보기
  • ___5-1-1 MVC 모델이란?
  • ___5-1-2 MVC 모델의 개요와 이점
  • 5-2 스프링 MVC 알아보기
  • ___5-2-1 스프링 MVC란?
  • ___5-2-2 요청 수신에서 응답 전송까지의 흐름
  • 5-3 스프링 MVC 사용해보기
  • ___5-3-1 스프링 MVC 프로그램 만들기
  • ___5-3-2 요약
  •  
  • ▣ 06장: 템플릿 엔진(타임리프) 알아보기
  • 6-1 타임리프 알아보기
  • ___6-1-1 타임리프란?
  • ___6-1-2 Model 인터페이스란?
  • ___6-1-3 기억해야 할 중요한 메서드
  • 6-2 Model을 사용하는 프로그램 만들기
  • ___6-2-1 Model을 사용하는 프로젝트
  • ___6-2-2 ModelAndView 사용법
  • 6-3 타임리프 사용법
  • ___6-3-1 타임리프를 사용하는 프로젝트
  • ___6-3-2 타임리프 사용법
  • ___6-3-3 컨트롤러와 뷰 생성
  • ___6-3-4 직접 문자를 삽입해서 값 결합 만들기
  • ___6-3-5 값 결합(리터럴 치환)에서의 비교와 등가
  • ___6-3-6 조건 연산자를 이용한 조건부 분기(false) 예시
  • ___6-3-7 switch에서 th:object 만들기
  • ___6-3-8 참조(List) 반복 예시
  • ___6-3-9 반복 상태에서 유틸리티 객체 만들기
  • ___6-3-10 HTML 파일의 부품화 예시
  • ___6-3-11 공통 레이아웃 만들기
  • ___6-3-12 요약
  •  
  • ▣ 07부: 서버로 데이터를 전송하는 방법
  • 7-1 요청 파라미터 알아보기
  • ___7-1-1 요청 파라미터란?
  • ___7-1-2 요청 파라미터를 획득하는 방법
  • ___7-1-3 요청 파라미터를 사용하는 프로그램 만들기
  • 7-2 여러 개의 요청 파라미터 전송하기
  • ___7-2-1 @RequestParam으로 여러 개의 값 받기
  • ___7-2-2 Form 클래스란?
  • ___7-2-3 요약
  • 7-3 URL에 내장된 값 받기
  • ___7-3-1 프로젝트 생성(링크)
  • ___7-3-2 프로젝트 생성(버튼)
  •  
  • ▣ 08부: 유효성 검사 기능 알아보기
  • 8-1 입력 체크 알아보기
  • ___8-1-1 유효성 검사와 유효성 검사기
  • ___8-1-2 단일 항목 검사란?
  • ___8-1-3 상관 항목 검사란?
  • ___8-1-4 요약
  • 8-2 단일 항목 검사를 사용하는 프로그램 만들기
  • ___8-2-1 프로젝트 생성
  • ___8-2-2 애플리케이션 계층 생성
  • ___8-2-3 @ModelAttribute란?
  • 8-3 상관 항목 검사를 사용하는 프로그램 만들기
  • ___8-3-1 프로젝트 생성
  • ___8-3-2 @AssertTrue 활용법
  • ___8-3-3 Validator 인터페이스 구현 방법
  •  
  • ▣ 09부: O/R 매퍼(MyBatis) 알아보기
  • 9-1 MyBatis 알아보기
  • ___9-1-1 O/R 매퍼란?
  • ___9-1-2 MyBatis란?
  • ___9-1-3 MyBatis 사용법
  • 9-2 MyBatis 사용해보기
  • ___9-2-1 프로젝트 생성
  • ___9-2-2 엔티티 생성
  • ___9-2-3 매퍼 파일 사용법
  • ___9-2-4 컨트롤러 만들기
  • ___9-2-5 뷰 만들기
  • ___9-2-6 동작 확인
  • ___9-2-7 요약
  • 9-3 resultMap 알아보기
  • ___9-3-1 resultMap이란?
  • ___9-3-2 테이블 구성
  • ___9-3-3 엔티티 추가 및 수정
  • ___9-3-4 매퍼 파일 수정
  • ___9-3-5 뷰 수정
  • ___9-3-6 동작 확인
  • ___9-3-7 요약
  •  
  • ▣ 10부: 애플리케이션 제작 준비하기
  • 10-1 애플리케이션 개요
  • ___10-1-1 ToDo 앱이란?
  • ___10-1-2 프로젝트 생성 준비
  • ___10-1-3 제작 절차
  • 10-2 ToDo 앱 만들기 준비하기
  • ___10-2-1 데이터베이스 생성
  • ___10-2-2 프로젝트 생성
  • ___10-2-3 application.properties 설정
  • ___10-2-4 계층화
  • 10-3 테이블과 데이터 만들기
  • ___10-3-1 애플리케이션 실행
  • ___10-3-2 테이블 확인
  • ___10-3-3 데이터 확인
  •  
  • ▣ 11부: 앱 만들기(데이터베이스 조작)
  • 11-1 도메인 객체와 리포지터리 만들기
  • ___11-1-1 이번에 만드는 컴포넌트
  • ___11-1-2 도메인 객체: 엔티티 생성하기
  • ___11-1-3 리포지터리 생성
  • 11-2 SQL 생각해보기
  • ___11-2-1 SQL 작성
  • 11-3 매퍼 파일 만들기
  • ___11-3-1 매퍼 파일 생성
  • ___11-3-2 동작 확인
  •  
  • ▣ 12부: 앱 만들기(서비스)
  • 12-1 서비스와 ServiceImpl 만들기
  • ___12-1-1 이번에 만드는 컴포넌트
  • ___12-1-2 서비스 생성
  • ___12-1-3 ServiceImpl 생성
  • 12-2 트랜잭션 관리에 대해 알아보기
  • ___12-2-1 트랜잭션이란?
  • ___12-2-2 트랜잭션 경계란?
  • ___12-2-3 트랜잭션 관리 방법
  • ___12-2-3 동작 확인
  •  
  • ▣ 13부: 앱 만들기(애플리케이션 계층)
  • 13-1 ToDo 앱의 조회 기능 구현하기
  • ___13-1-1 이번에 만들 컴포넌트
  • ___13-1-2 컨트롤러 생성(ToDo 목록, ToDo 상세)
  • ___13-1-3 뷰 생성(ToDo 목록, ToDo 상세)
  • ___13-1-4 동작 확인
  • 13-2 ToDo 앱: 등록 및 업데이트 구현하기
  • ___13-2-1 폼 생성
  • ___13-2-2 헬퍼 만들기
  • ___13-2-3 컨트롤러 수정(ToDo 등록, ToDo 업데이트)
  • ___13-2-4 뷰 생성 (ToDo 등록, ToDo 업데이트)
  • ___13-2-5 동작 확인
  • 13-3 ToDo 앱: 삭제 구현하기
  • ___13-3-1 컨트롤러 생성(ToDo 삭제)
  • ___13-3-2 뷰 생성 (ToDo 삭제)
  • ___13-3-3 동작 확인
  •  
  • ▣ 14부: 입력 체크 구현하기
  • 14-1 입력 체크 준비하기
  • ___14-1-1 유효성 검사 고려하기
  • ___14-1-2 스프링 이니셜라이저로 의존성 추가하기
  • 14-2 입력 체크 구현하기
  • ___14-2-1 폼 클래스 수정
  • ___14-2-2 컨트롤러 수정
  • ___14-2-3 뷰 수정
  • ___14-2-3 동작 확인
  •  
  • ▣ 15부: 로그인 인증 구현하기
  • 15-1 스프링 시큐리티 개요
  • ___15-1-1 스프링 시큐리티란?
  • ___15-1-2 메뉴 화면 만들기
  • 15-2 스프링 시큐리티 도입하기
  • ___15-2-1 스프링 이니셜라이저로 의존성 추가하기
  • ___15-2-2 기본 설정 확인
  • ___15-2-3 커스터마이징 설정 개요
  • 15-3 인가 알아보기
  • ___15-3-1 스프링 시큐리티의 인가
  • ___15-3-2 인증과 인가의 차이점
  • ___15-3-3 의존성 추가
  • 15-4 커스텀 오류 페이지란?
  • ___15-4-1 커스텀 오류 페이지 생성
  • ___15-4-2 마무리
  •  
  • ▣ 부록A: 스프링 시큐리티
  • A-1 스프링 시큐리티를 복습하자
  • ___A-1-1 스프링 시큐리티 돌아보기
  • ___A-1-2 커스터마이즈 설정의 개요
  • A-2 커스터마이즈 설정을 해보자
  • ___A-2-1 커스터마이즈 설정: 로그인 화면 표시
  • ___A-2-2 커스터마이즈 설정: 인증 처리 ①
  • ___A-2-3 커스터마이즈 설정: 인증 처리 ②
  • ___A-2-4 커스터마이즈 설정: 데이터베이스에서의 취득
  • A-3 인가 처리를 프로그램에 적용해보자
  • ___A-3-1 권한 추가
  • ___A-3-2 접근 제어
  • A-4 커스텀 에러 페이지를 만들어보자
  • ___A-4-1 커스텀 에러 페이지 생성
  • A-5 커스텀 속성을 추가해보자
  • ___A-5-1 커스텀 속성이란?
  • ___A-5-2 커스텀 속성의 추가
  • ___A-5-3 정리

정오표

  • 349쪽, 예제 코드의 밑에서 3번째 줄(34번째 줄)

    <a th:href="@{/todos}">돌아가기</a></a>

    ==>

    <a th:href="@{/todos}">돌아가기</a>
  • 354쪽, 예제 13.12의 9번째 줄

    <a th:href="@{/toDos}}">ToDo 목록으로 가기</a></a>

    ==>

    <a th:href="@{/toDos}}">ToDo 목록으로 가기</a>
  • 405쪽, 본문 5번째 줄

    LoginUserDatailsServiceImpl 클래스를 생성합니다.

    ==>

    LoginUserDetailsServiceImpl 클래스를 생성합니다.

  • 405쪽, 두 번째 표(설정 내용)의 2행 2열

    LoginUserDatailsServiceImpl

    ==>

    LoginUserDetailsServiceImpl

  • 405쪽, 본문 밑에서 첫 번째 줄

    LoginUserDatailsServiceImpl 클래스의 내용은

    ==>

    LoginUserDetailsServiceImpl 클래스의 내용은

  • 405쪽, 페이지 하단 예제 코드 A.8의 제목

    예제 A.8 LoginUserDatailsServiceImpl

    ==>

    예제 A.8 LoginUserDetailsServiceImpl

  • 406쪽, 예제 코드의 16번째 줄

    public class LoginUserDatailsServiceImpl implements UserDetailsService {

    ==>

    public class LoginUserDetailsServiceImpl implements UserDetailsService {
  • 408쪽, 본문 밑에서 3번째 줄

    방금 만든 LoginUserDatailsServiceImpl과

    ==>

    방금 만든 LoginUserDetailsServiceImpl과

  • 414쪽, 페이지 중간 표(수정 내용)의 2행 2열

    LoginUserDatailsServiceImpl

    ==>

    LoginUserDetailsServiceImpl

  • 414쪽, 본문 밑에서 첫 번째 줄

    LoginUserDatailsServiceImpl 클래스의 수정 내용은

    ==>

    LoginUserDetailsServiceImpl 클래스의 수정 내용은

  • 414쪽, 페이지 하단 예제 코드 A.16의 제목

    예제 A.16 LoginUserDatailsServiceImpl

    ==>

    예제 A.16 LoginUserDetailsServiceImpl

  • 415쪽, 예제 코드의 21번째 줄

    public class LoginUserDatailsServiceImpl implements UserDetailsService {

    ==>

    public class LoginUserDetailsServiceImpl implements UserDetailsService {
  • 426쪽, 본문 2번째 줄

    LoginUserDatailsServiceImpl 수정

    ==>

    LoginUserDetailsServiceImpl 수정

  • 426쪽, 본문 3번째 줄

    인증 서비스를 제공하는 LoginUserDatailsServiceImpl에서

    ==>

    인증 서비스를 제공하는 LoginUserDetailsServiceImpl에서

  • 426쪽, 페이지 중간 표(수정 내용)의 2행 2열

    LoginUserDatailsServiceImpl

    ==>

    LoginUserDetailsServiceImpl

  • 426쪽, 본문 밑에서 첫 번째 줄

    LoginUserDatailsServiceImpl 클래스의 수정 내용은

    ==>

    LoginUserDetailsServiceImpl 클래스의 수정 내용은

  • 426쪽, 페이지 하단 예제 코드 A.26의 제목

    예제 A.26 LoginUserDatailsServiceImpl

    ==>

    예제 A.26 LoginUserDetailsServiceImpl

  • 441쪽, 본문 밑에서 4번째 줄

    LoginUserDatailsServiceImpl 수정

    ==>

    LoginUserDetailsServiceImpl 수정

  • 441쪽, 본문 밑에서 3번째 줄

    인증 서비스를 제공하는 LoginUserDatailsServiceImpl에서

    ==>

    인증 서비스를 제공하는 LoginUserDetailsServiceImpl에서

  • 441쪽, 페이지 하단 표(수정 내용)의 2행 2열

    LoginUserDatailsServiceImpl

    ==>

    LoginUserDetailsServiceImpl

  • 441쪽, 본문 밑에서 첫 번째 줄

    LoginUserDatailsServiceImpl 클래스의

    ==>

    LoginUserDetailsServiceImpl 클래스의

  • 442쪽, 페이지 상단 예제 코드 A.36의 제목

    예제 A.36 LoginUserDatailsServiceImpl

    ==>

    예제 A.36 LoginUserDetailsServiceImpl

WHERE TO BUY · 정가 30,000원
WHERE TO BUY · 정가 30,000원