'전체카테고리'에 해당되는 글 315건
- 14:33:26 :: [신간소개] 생성형 AI를 활용한 게임 개발: ChatGPT, Tensor.Art, Udio 1
- 14:32:37 :: [오탈자 정보] 생성형 AI를 활용한 게임 개발: ChatGPT, Tensor.Art, Udio
- 14:31:45 :: [도서 자료] 생성형 AI를 활용한 게임 개발: ChatGPT, Tensor.Art, Udio
- 2024.04.16 :: [신간안내] 백견불여일타(이젠 프로젝트다!)리액트 쇼핑몰 프로젝트
- 2024.04.16 :: [오탈자 정보] 백견불여일타(이젠 프로젝트다!)리액트 쇼핑몰 프로젝트 2
- 2024.04.16 :: [도서 자료] 백견불여일타(이젠 프로젝트다!)리액트 쇼핑몰 프로젝트
- 2023.11.06 :: [신간안내] 시작하는 개발자들을 위한 기술 여행 가이드: 개발 지식을 높은 곳에서 한눈에 조망할 수 있는 책
- 2023.11.06 :: [오탈자 정보] 시작하는 개발자들을 위한 기술 여행 가이드: 개발 지식을 높은 곳에서 한눈에 조망할 수 있는 책 3
- 2023.11.06 :: [도서 자료] 시작하는 개발자들을 위한 기술 여행 가이드 : 개발 지식을 높은 곳에서 한눈에 조망할 수 있는 책
- 2023.10.13 :: [신간 안내] 자바의 신 VOL.2 주요 API 응용편, 3rd Edition
● 지은이: 정금호
● 페이지: 424
● 판형: 172 * 225
● 도수: 2도
● 정가: 27,000원
● 발행일: 2024년 12월 12일
● ISBN: 979-11-93229-30-9 93000
[오탈자 사이트] [자료실]
[강컴] [교보] [반디] [알라딘] [예스24] [인터파크]
_도서 내용
ChatGPT, Tesor.Art, Udio 등의 생성형 AI를 활용하여 게임을 만들고 앱 스토어에 배포까지 따라하며 배울 수 있는 책이다. AI로 게임을 만들기 위해서는 많은 시행착오를 겪어야 하지만, 저자가 먼저 수많은 시도와 실패로 얻은 경험을 책에 녹여냈다. 출간 전에 이 책의 내용으로 2주 간의 특강을 진행하였는데, 10명의 수강생이 자신만의 게임을 만들어 앱을 성공적으로 배포할 수 있었다. 코딩을 잘 모르는 독자도 좋은 아이디어만 있다면 한번 도전하여 멋진 게임을 유료로 배포하는 성공의 기쁨을 맛보길 바란다.
_대상 독자
평소에 게임을 만들어보고 싶었던 누구나!
게임 프로그래머가 되기 위해 준비 중이며 경험과 포트폴리오가 필요한 독자!
앱을 만들어 배포하는 방법까지 알고 싶어하는 독자!
생성형 AI를 어디까지 활용할 수 있는지 미치도록 알고 싶은 누구나!
_목차
추천사
머리말
01장. 생성형 AI 소개
1.1 생성형 AI란 무엇인가
1.2 생성형 AI 종류
1.2.1 대규모 언어 모델
1.2.2 텍스트-이미지 모델
1.2.3 텍스트-음악 모델
1.2.4 텍스트-비디오 모델
1.3 생성형 AI의 현재
1.4 생성형 AI의 미래와 우리의 자세
1.5 저작권 이슈
02장. 생성형 AI를 이용해서 게임용 이미지 생성하기
2.1 Tensor.Art 소개
2.2 적당한 체크포인트, LoRA 선택 및 프롬프트 찾기
2.3 생성된 이미지를 게임에서 사용할 때의 문제점
2.3.1 생성된 이미지 후처리 이슈
2.3.2 일관성 유지 이슈
2.3.3 군중신 표현의 어려움
2.3.4 등급 분류의 이슈
2.3.5 남성 캐릭터 이미지 생성의 어려움
03장. 생성형 AI를 이용해서 게임용 BGM 생성하기
3.1 Udio.com 소개
3.2 가사가 있는 노래 만들기
3.3 가사가 없는 BGM 만들기
04장. 챗GPT를 이용해서 게임 시나리오 생성하기
4.1 챗GPT로 콘텐츠 만들기
4.2 게임의 캐릭터와 배경 설정하기
4.3 캐릭터별 이벤트 목록 작성하기
4.4 이벤트 스크립트 만들기
4.5 다국어 지원 테스트해보기
05장. 생성형 AI를 활용한 게임 프로젝트 사례 소개
5.1 20년 전에 출시한 게임의 리메이크 버전 개발
5.1.1 기존 CG를 대체하는 이미지 생성
5.1.2 새로운 캐릭터 설정 추가
5.1.3 콘텐츠 강화
5.1.4 프로그램 리뉴얼
5.1.5 등급 분류 신속 대응
5.2 생성형 AI를 활용한 오리지널 게임 개발
5.2.1 챗GPT를 활용한 시나리오 작업
5.2.2 음악 생성형 AI를 이용한 BGM 생성 작업
5.2.3 새로운 모델 및 LoRA 활용 방법
5.2.4 앱스토어 검수 이슈
5.3 개발 중인 게임 프로젝트 소개
5.3.1 판타지 육성 시뮬레이션 게임
5.3.2 판타지 연애 시뮬레이션 게임
5.3.3 일제 강점기 배경 전략 시뮬레이션 게임
5.3.4 SF 비주얼 노블 게임
06장. 생성형 AI를 활용한 게임 프로젝트 진행하기
6.1 게임 기획 및 시나리오 작업
6.1.1 게임에 등장하는 캐릭터 설정하기
6.1.2 게임 배경 설정하기
6.1.3 게임 이벤트 설정하기
6.1.4 게임 이벤트 스크립트 생성하기
6.1.5 게임 이벤트 CG 목록 생성하기
6.1.6 게임 인트로 및 엔딩 스크립트 생성하기
6.2 게임 리소스 생성하기
6.2.1 설정된 캐릭터에 맞는 모델 및 LoRA 선택하기
6.2.2 캐릭터별 이미지 생성하기
6.2.3 메인 화면, 아이콘용 이미지 생성하기
6.2.4 게임 배경 이미지 생성하기
6.2.5 김프를 이용해서 게임용 이미지 가공하기
6.2.6 게임용 음악 생성하기
6.2.7 캐릭터별 이벤트 스크립트 작업하기
6.2.8 Sqlite로 게임용 데이터베이스 파일 생성하기
07장. 게임 프로젝트 프로그래밍하기
7.1 게임 프로그래밍 하기
7.1.1 모바일 게임에 대한 이해
7.1.2 안드로이드 스튜디오 설치 및 실행
7.1.3 기본 프로그램 예제 불러오기
7.1.4 기본 프로그램 빌드 및 실행하기
7.1.5 생성한 게임 리소스를 프로그램에 적용하기
7.1.6 프로그램 테스트 및 마무리
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 앱스토어 규정에 맞게 추가 정보 등록하기
8.2.4 빌드된 최종 패키지 업로드하기
8.2.5 검수 요청하기
09장. 생성형 AI를 이용한 게임 개발의 장단점
9.1 생성형 AI를 이용한 게임 개발의 장점
9.1.1 높은 생산성
9.1.2 높은 품질
9.1.3 단점을 커버하는 물량 공세
9.1.4 다양한 실험과 시도가 가능
9.1.5 창고에 쌓아 두었던 기획서들을 다시 꺼내야 할 때
9.2 생성형 AI를 이용한 게임 개발의 단점
9.2.1 생성형 AI에 대한 사용자의 거부감
9.2.2 학습 데이터가 부족한 분야에 대한 제한
9.2.3 최종 결과물을 얻기 위한 수율이 낮음
9.2.4 높은 생산성으로 인한 지나친 욕심
9.2.5 결국 사람의 손으로 해야 하는 마무리
9.3 생성형 AI를 이용하여 개발한 게임 소개
찾아보기
생성형 AI의 힘을 빌어 게임 개발을 더 쉽고 빠르게!
생성형 AI가 있다면 혼자서 한 달에 하나씩 게임 앱 출시도 거뜬
이 책은 생성형 AI를 활용해 게임 개발에서 혼자서는 하기 힘든 시나리오와 캐릭터 선정부터 그리기, 이벤트 및 이벤트 스크립트, 배경 이미지와 음악, 주제가 등을 쉽게 개발하여 게임 개발을 획기적으로 단축할 수 있게끔 해주는 책이다.
저자는 이미 십 년 전에 개발한 게임 두 개를 불과 몇 개월 만에 생성형 AI를 활용하여 재론칭하였고, 이 책의 내용으로 국내에서 2주 특강을 열어, 수강생 10명 이상이 자신의 게임을 5일~2주 만에 앱스토어에 출시하고, 저자 자신도 이후 3개월 간 무려 22개의 게임을 출시하는 놀라운 성과를 냈다.
_주요 내용
1. 생성형 AI를 활용한 이미지 생성:
게임 개발에 필요한 캐릭터와 배경 이미지 등을 생성하는 방법. 이미지 생성 시 프롬프트 작성 요령과 생성형 AI의 한계, 저작권 문제 설명.
2. 게임용 BGM과 음악 생성:
게임 내에서 배경 음악(BGM)이나 주제가를 생성하는 방법. AI 도구를 사용해 다양한 음악을 자동 생성하고 수정하는 과정 수록.
3. 게임 시나리오 작성:
챗GPT를 활용하여 게임 시나리오를 자동 생성하는 방법. 캐릭터의 대사나 이벤트를 구성하는 구체적인 방법과 예시.
4. 생성형 AI를 활용한 게임 개발 실전 프로젝트:
게임 시나리오, 이벤트, 이벤트별 스크립트, 캐릭터 및 배경 이미지 개발, 배경음악 및 주제가 작곡, 게임 코드를 깃허브에서 개발 툴로 받아와 AI로 만든 리소스를 활용한 게임 완성하기.
5. 게임 개발 마무리 및 앱스토어 출시:
생성형 AI를 통해 제작한 게임을 앱스토어에 등록하는 과정. 게임의 등급 분류, 상품 정보 등록, 마케팅 자료 제작 등 실질적인 운영 방법 제시.
_저자 서문 중에서
이미지 생성형 AI를 사용해봄으로써, 예상치 못한 곳에서 내가 오랫동안 풀기 힘들었던 문제에 대한 힌트를 얻게 된 것이다. 그것이 현실적으로 가능한지 테스트해보기 위해서, 20년 전에 만들었던 게임의 리메이크REMAKE 버전을 이미지 생성형 AI를 이용해서 만들어 보기로 결정했다. 그리고 2개월 후인 2023년 12월 24일, 완성된 리메이크 버전을 구글 플레이 스토어와 원스토어에 출시함으로써 그것이 가능하다는 것을 입증할 수 있었다.
24년 전에는 5~6명의 게임 개발팀을 이끌고 3개월에 게임 하나씩 만들어 출시했는데, 지금은 나 혼자서 당시 만들었던 게임보다 더 풍부한 콘텐츠를 가진 게임을 2~3개월에 하나씩 만들 수 있게 된 것이다. 우여곡절이 있기는 했지만 2024년 5월말 두 번째 게임도 원스토어에 출시했다.
_추천글
이 책은 ChatGPT로 게임 시나리오를 만들고, Tensor.Art로 캐릭터를 디자인하며, Udio로 배경음악을 제작하는 전 과정을 담고 있다. 이렇게 하면 잘될 거라고 말하는 성공의 비결을 가르쳐주는 그런 책이 아니라, 새로운 분야에 처음으로 뛰어든 퍼스트 펭귄의 기록 같은 책이다.
게임 시나리오부터 캐릭터와 배경음악까지, 아직 사람이 다닌 흔적도 별로 없고 이정표도 제대로 없는 길을 가면서 겪었던 시행착오의 기록이기도 하다.
저자가 혼자서 생성형 AI로 게임을 만들어 보겠다고 용감하게 뛰어 들고, 개발부터 심의, 출 시까지 모든 과정에서 얻은 실전적인 노하우와 값진 시행착오의 경험들을 이 책을 통해 나누어 주는 것에 감사한다.
이 책을 통해 누구나 AI의 도움을 받아 자신만의 게임을 기획하고, 개발하고, 더 나아가 실제로 출시까지 할 수 있게 되기를 기대한다.
_김성완 - GenAI Korea 운영자, 전 펄어비스 AI 연구원
_저자 소개
지은이 정금호
1984년에 애플 Ⅱ+로 컴퓨터 프로그래밍을 시작하였고, 대학교 1학년이었던 1993년부터 PC 통신을 이용하여 여러 가지 공개 소프트웨어와 셰어웨어를 만들어 발표하였다. 1997년부터 다수의 윈도우즈용 상용 게임과 상용 애플리케이션 및 웹 애플리케이션, 임베디드 애플리케이션 등을 개발해왔으며, 2005년부터는 윈도우즈 모바일, 아이폰, 안드로이드용 애플리케이션 및 게임을 직접 개발하거나 모바일 앱 서비스 개발 총괄 등을 맡아왔다.
2018년부터는 가족들과 함께 독일로 이사했고, 베를린의 글로벌 스타트업에서 풀스택 개발자로 일하였으며, 현재는 인공지능 스타트업에서 일하고 있다. 2023년 10월부터 생성형 AI를 이용하여 22개 이상의 게임을 개발해서 구글 플레이 스토어와 원스토어에 출시했다.
저서로는 『이것이 진짜 안드로이드 프로그래밍이다』, 『스마트 TV 애플리케이션 프로그래밍』(2014년), 『벤츠 타는 프로그래머』(2013년), 『실전 아이폰 프로그래밍』, 『실전 안드로이드 프로그래밍』(2011년), 『애플리케이션 개발자, 윈도 모바일 매력에 빠지다』(2010년)가 있다.4o
_상세 이미지
_끝
'신간소개' 카테고리의 다른 글
[신간안내] 백견불여일타(이젠 프로젝트다!)리액트 쇼핑몰 프로젝트 (0) | 2024.04.16 |
---|---|
[신간안내] 시작하는 개발자들을 위한 기술 여행 가이드: 개발 지식을 높은 곳에서 한눈에 조망할 수 있는 책 (0) | 2023.11.06 |
[신간 안내] 자바의 신 VOL.2 주요 API 응용편, 3rd Edition (0) | 2023.10.13 |
[신간 안내] 자바의 신 VOL.1 기초 문법편, 3rd Edition (0) | 2023.10.13 |
[신간안내] 개발자로 첫 출근했어요: 사내 개발 도구, 기술, 문화 적응 가이드 (0) | 2023.09.27 |
'오탈자 정보' 카테고리의 다른 글
[오탈자 정보] 백견불여일타(이젠 프로젝트다!)리액트 쇼핑몰 프로젝트 (2) | 2024.04.16 |
---|---|
[오탈자 정보] 시작하는 개발자들을 위한 기술 여행 가이드: 개발 지식을 높은 곳에서 한눈에 조망할 수 있는 책 (3) | 2023.11.06 |
[오탈자 정보] 자바의 신 VOL.2, 3rd Edition (4) | 2023.10.13 |
[오탈자 정보] 자바의 신 VOL.1, 3rd Edition (4) | 2023.10.13 |
[오탈자 정보] 개발자로 첫 출근했어요 (0) | 2023.09.27 |
'자료실' 카테고리의 다른 글
[도서 자료] 백견불여일타(이젠 프로젝트다!)리액트 쇼핑몰 프로젝트 (0) | 2024.04.16 |
---|---|
[도서 자료] 시작하는 개발자들을 위한 기술 여행 가이드 : 개발 지식을 높은 곳에서 한눈에 조망할 수 있는 책 (0) | 2023.11.06 |
[도서 자료] 자바의 신 VOL.2, 3rd Edition (0) | 2023.10.13 |
[도서 자료] 자바의 신 VOL.1, 3rd Edition (0) | 2023.10.13 |
[도서 자료] 개발자로 첫 출근했어요 (0) | 2023.09.27 |
● 지은이: 홍준혁
● 페이지: 412
● 판형: 188 * 257
● 도수: 2도
● 정가: 30,000원
● 발행일: 2024년 4월 12일
● ISBN: 979-11-93229-28-6 93000
[오탈자 사이트] [자료실] [강의교안 신청하기]
[강컴] [교보] [반디] [알라딘] [예스24] [인터파크]
_도서 내용
만들면서 리액트를 빠르게 배울 수 있는 책입니다. ‘쇼핑몰 서비스’를 만들어볼 주제로 택한 이유는 쇼핑몰의 CRUD(상품 등록, 조회, 수정, 삭제) 기능 구현을 통해 다른 주제로 쉽게 확장할 수 있기 때문입니다. 순수 리액트로만 쇼핑몰을 개발하며 서버는 다른 기능 없이 데이터만 주고받을 수 있게끔 최소한의 기능만 제공하고 있습니다. 이 책으로 프론트엔드 개발을 재밌고 빠르게 배울 수 있기를 바랍니다.
_대상 독자
1. 리액트 기본은 떼었는데, 다음 단계의 실습을 원하는 독자
2. 회사에서 다음 프로젝트에 리액트를 써야 하는데, 빠르게 기술 습득을 해야 하는 독자
_목차
지은이의 말
기획자의 말
일러두기
1장 쇼핑몰 서비스 완성본 미리보기
1.1 VSCode 설치하기
1.2 패키지 매니저 이해하기
1.3.1 패키지를 초기화하고 종속성 추가하기
1.3 Yarn 사용하기
1.3.2 패키지 업데이트하기
1.4.1 깃 설치
1.4 깃 이해하고 사용하기
1.4.2 깃 명령어
1.5 깃허브로 쇼핑몰 앱 접속하기
1.6 완성본 프로젝트 살펴보기
1.7 완성된 쇼핑몰 앱 둘러보기
2장 프로젝트 준비하기
2.1 간단한 리액트 프로젝트 만들기
2.2 모듈 분리해서 보기
2.3 Create-React-App 프로젝트 설정하기
2.4 API 서버 설정하기
2.5 클라이언트 사이드 렌더링
2.6 API 서버 테스트하기
[함께 해봐요 2-1] 기본적인 HTML 페이지 만들기
[함께 해봐요 2-2] React와 ReactDOM을 CDN으로 불러오는 HTML 파일
[함께 해봐요 2-3] 리액트 코드 작성하기
[함께 해봐요 2-4] 바벨로 변경한 전체 HTML 파일
[함께 해봐요 2-5] 루트 디렉터리에 App.js 파일 만들기
[함께 해봐요 2-6] App.js를 불러오는 index.html
[함께 해봐요 2-7] A.js와 B.js를 불러오는 index.html
[함께 해봐요 2-8] 모듈을 분리하기 위한 App.js 만들기
[함께 해봐요 2-9] 기본으로 제공되는 App.tsx 수정하기
[함께 해봐요 2-10] App 컴포넌트를 사용하기 위한 index.tsx 수정하기
[함께 해봐요 2-11] index.html 수정하기
3장 리액트는 어떻게 동작하는가
3.1 웹 서비스의 전반적인 흐름
3.2 컴포넌트를 알아보자(with JSX)
3.3 Props: 컴포넌트 간 데이터 전달을 위한 객체
3.4 리액트 앱의 렌더링 방식(with State)
3.5 훅 개념과 활용법
[함께 해봐요 3-1] 데이터 흐름을 파악하기 위한 리액트 App 컴포넌트
[함께 해봐요 3-2] 가상 DOM을 사용하는 이유를 알아보기 위해 App 컴포넌트 수정하기
4장 쇼핑몰 기본 구조 만들어보기
4.1 요구사항 살펴보기
4.2 상품 목록 렌더링하기
4.3 상품 추가하기
4.4 상품 목록 삭제하기
4.5 상품 목록 수정하기
4.6 React-Router-Dom 설정하기
4.7 상품 상세 페이지 나누기
4.8 Context API 설정하기
4.9 동기와 비동기 이해하기
4.10 API 서버에서 상품 목록 가져오기
4.11 상품 상세 데이터 가져오기
4.12 상품 수정과 삭제 요청하기
[함께 해봐요 4-1] interface 키워드로 ProdutType을 만들고 products 변수 선언하기
[함께 해봐요 4-2] products 변수의 초깃값으로 가짜 데이터 입력하기
[함께 해봐요 4-3] products 상태를 화면에 표시하기(오류 버전)
[함께 해봐요 4-4] products 상태를 화면에 표시하기(오류 수정 버전)
[함께 해봐요 4-5] products 상태를 화면에 표시하기(map 메서드 사용하기)
[함께 해봐요 4-6] products 상태를 화면에 표시하기(경고 문구 해결하기)
[함께 해봐요 4-7] 상품 목록을 렌더링하는 최종 App.js 코드
[함께 해봐요 4-8] 상품 추가하기를 위한 form 작성하기
[함께 해봐요 4-9] ‘상품 추가하기’를 위한 form 작성하기(수정 버전)
[함께 해봐요 4-10] 상태변경함수(useState)를 활용하여 데이터를 다시 선언하기
[함께 해봐요 4-11] 상품 데이터를 변경시키고 활용하기(onChange 속성)
[함께 해봐요 4-12] 상품 데이터를 변경시키고 활용하기(onChange 이벤트 핸들러 사용하기)
[함께 해봐요 4-13] 상품 데이터를 products state에 추가하기(타입 오류 버전)
[함께 해봐요 4-14] 상품 데이터를 products state에 추가하기(두 번째 상품 데이터 추가부터 오류 발생 버전)
[함께 해봐요 4-15] 상품 데이터를 products state에 추가하기(useRef 함수를 활용한 오류 수정 버전)
[함께 해봐요 4-16] 상품 추가하기 최종 소스
[함께 해봐요 4-17] 상품 렌더링 로직 수정하기(product를 분해하여 단일 속성값으로 접근할 수 있게 수정)
[함께 해봐요 4-18] [삭제하기] 버튼의 onClick 함수 작성하기
[함께 해봐요 4-19] [수정하기] 버튼 렌더링하기
[함께 해봐요 4-20] 컴포넌트를 분리하여 내부 상태를 선언 가능한 형태로 작성하기(ProductItem 컴포넌트 만들기)
[함께 해봐요 4-21] 컴포넌트를 분리한 후 기존 로직이 동작하지 않는 문제 수정하기(onDelete 함수로 행동 위임하기)
[함께 해봐요 4-22] isEditMode가 true일 때 조건부 Form 렌더링으로 수정하기
[함께 해봐요 4-23] 상품 수정 form에서 작성한 상품 정보를 객체로 전달하는 방식으로 수정하기
[함께 해봐요 4-24] 상품 정보 수정이 완료되도록 App 컴포넌트의 handleUpdate 함수 수정하기
[함께 해봐요 4-25] 상품 목록 수정하기 최종 코드
[함께 해봐요 4-26] index.tsx에서 BrowserRouter 컴포넌트로 App 컴포넌트 감싸주기
[함께 해봐요 4-27] HomePage.tsx를 만들고 App.tsx에서 소스 복사하기
[함께 해봐요 4-28] index.ts를 만들고 HomPage 컴포넌트 내보내기
[함께 해봐요 4-29] App.tsx 컴포넌트 수정하기
[함께 해봐요 4-30] 상품 상세 페이지 만들기(ProductPage.tsx)
[함께 해봐요 4-31] index.ts를 통해 내보내기
[함께 해봐요 4-32] App.tsx에 상세 페이지 추가하기
[함께 해봐요 4-33] path 속성을 알아보기 위해 상세 페이지 수정하기
[함께 해봐요 4-34] 데이터를 담을 수 있는 공간으로 Context 만들기(ProductContext.tsx)
[함께 해봐요 4-35] 하위 컴포넌트에 데이터 전송을 위한 Provider 정의하기
[함께 해봐요 4-36] 데이터 사용을 위해 Consumer를 선언하고, useContext 함수로 접근하기
[함께 해봐요 4-37] Context를 적용한 최종 코드
[함께 해봐요 4-38] 작성한 Context 사용하기(ProductPage.tsx 수정)
[함께 해봐요 4-39] 작성한 Context 사용해보기 2(index.tsx 수정)
[함께 해봐요 4-40] URL 매개변수 id 값을 받아 상품 정보를 보여주는 로직(ProductPage.tsx 수정)
[함께 해봐요 4-41] URL 매개변수 id 값을 받아 상품 정보를 보여주는 로직(undefined 시에 UX를 고려한 문자열 추가)
[함께 해봐요 4-42] 메인 페이지에서 상품 상세 페이지로 이동하기
[함께 해봐요 4-43] 상품을 새로 추가하고 해당 상품으로 이동할 때 아무런 결과 값이 나타나지 않는 현상 해결하기(타입 오류 발생)
[함께 해봐요 4-44] 상품을 새로 추가하고 해당 상품으로 이동할 때 아무런 결과 값이 나타나지 않는 현상 해결하기(타입 오류 수정)
[함께 해봐요 4-45] 메인 페이지의 product을 Context로 구현하기 1(HomePage.tsx 수정하기)
[함께 해봐요 4-46] 메인 페이지의 product을 Context로 구현하기 2(ProductPage.tsx 수정하기)
[함께 해봐요 4-47] fetch 함수로 상품 목록 데이터 가져오기(HomePage.tsx)
[함께 해봐요 4-48] 프록시 서버 설정하기(client/package.json 수정하기)
[함께 해봐요 4-49] 동기화 작업을 위한 fetch 함수 수정하기
[함께 해봐요 4-50] 필요 없게 된 기존의 Context 제거하기 1(index.ts에서 ProductProvider 제거하기)
[함께 해봐요 4-51] 필요 없게 된 기존의 컨텍스트 제거하기 2(Homepage.tsx에서 product 설정 코드 변경하기)
[함께 해봐요 4-52] 상품 상세 데이터 가져오기(ProductPage.tsx 수정하기)
[함께 해봐요 4-53] 상품 추가하기(Homepage.tsx의 handleCreate 함수 수정하기)
[함께 해봐요 4-54] 상품 삭제하기(Homepage.tsx의 handleDelete 함수 수정하기)
[함께 해봐요 4-55] 상품 수정하기(Homepage.tsx의 handleUpdate 함수 수정하기)
5장 쇼핑몰 설계를 어떻게 하면 좋을까(feat. 좋은 아키텍처란)
5.1 리액트 컴포넌트, 꼭 나눠야 할까
5.2 데이터를 기반으로 컴포넌트 분리하기
5.3 역할 중심으로 컴포넌트 분리하기
5.4 전체 구조는 어떻게 짤까
5.5 지금까지의 구조를 수정하자
[함께 살펴봐요 5-1] Cart에서 데이터를 분리하기 전의 코드(단순 예시 코드)
[함께 살펴봐요 5-2] 데이터 기반으로 컴포넌트 분리하기(단순 예시 코드)
[함께 살펴봐요 5-3] 역할 중심으로 컴포넌트 분리하기 1(단순 예시 코드)
[함께 살펴봐요 5-4] 역할 중심으로 컴포넌트 분리하기 2(단순 예시 코드)
[함께 살펴봐요 5-5] Cart 컴포넌트 구현(단순 예시 코드)
[함께 살펴봐요 5-6] CartList 컴포넌트 구현(단순 예시 코드)
[함께 살펴봐요 5-7] CarItem 컴포넌트 구현(단순 예시 코드)
[함께 살펴봐요 5-8] CartIncreaseButton 컴포넌트 구현(단순 예시 코드)
[함께 살펴봐요 5-9] CartDecreaseButton 컴포넌트 구현(단순 예시 코드)
[함께 살펴봐요 5-10] CartDeleteButton 컴포넌트 구현(단순 예시 코드)
[함께 살펴봐요 5-11] 분리하기 전 HomePage 코드
[함께 해봐요 5-1] HomePage에서 ProductList를 분리해서 구현하기
[함께 해봐요 5-2] 타입을 한 번에 모아서 관리하는 폴더를 만들고 불러오기(types 폴더와 index.ts)
[함께 해봐요 5-3] 타입 별칭들도 모듈처럼 지정하기(ProductItem이 정의되어 있지 않은 상태)
[함께 해봐요 5-4] ProductItem 컴포넌트 분리하기
[함께 해봐요 5-5] index.ts를 통해 내보내기
[함께 해봐요 5-6] ProductList 컴포넌트에서 ProductItem 불러오기
[함께 해봐요 5-7] 분리된 컴포넌트 기반으로 HomePage 수정하기
[함께 해봐요 5-8] ProductCreateForm 작성하기
[함께 해봐요 5-9] ProductCreateForm 내보내기
[함께 해봐요 5-10] ProductCreatePage 작성하기
[함께 해봐요 5-11] index.ts를 통해 내보내기
[함께 해봐요 5-12] Page 컴포넌트를 Route에 추가하기(App.tsx 수정)
6장 MUI UI 컴포넌트를 활용하여 쇼핑몰 개선하기
6.1 MUI 도입하기
6.2 CSS 정규화
6.3 MUI 그리드
6.4 레이아웃 구현하기
6.5 로딩 기능 추가하기
6.6 상품 생성 컴포넌트를 MUI로 마이그레이션하기
6.7 API를 이용한 섬네일 업로드 구현하기
6.8 섬네일이 나오지 않는 문제를 수정하기
6.9 상품 목록을 MUI로 마이그레이션하기
6.10 상품 아이템을 MUI로 마이그레이션하기
6.11 상품 상세보기 페이지를 MUI로 마이그레이션하기
6.12 구매 페이지 구현하기
6.13 상품 구매 모달 구현하기
6.14 상품 생성 모달 구현하기
6.15 장바구니 페이지 구현하기
6.16 404 페이지 구현하기
[함께 해봐요 6-1] MUI 테스트 예제 준비
[함께 해봐요 6-2] MUI 테스트: 스타일이 입혀진 버튼
[함께 해봐요 6-3] 옵션을 활용하여 다양한 버튼의 모양으로 렌더링 해보기
[함께 해봐요 6-4] MUI를 전역 공간에서 실행하기
[함께 해봐요 6-5] 그리드 컴포넌트 활용 예제
[함께 해봐요 6-6] 웹의 기초적인 구조를 그리드로 만들어보는 예제
[함께 해봐요 6-7] 테스트용으로 변경했던 앱 컴포넌트를 원래대로 되돌리기
[함께 해봐요 6-8] 레이아웃 작성하기(Layout.tsx)
[함께 해봐요 6-9] Layout 컴포넌트 내보내기(index.ts)
[함께 해봐요 6-10] Layout 컴포넌트를 App 컴퍼넌트 상단에 모두 묶기
[함께 해봐요 6-11] 각 버튼에 이벤트 핸들러를 연결하여 페이지를 이동하는 로직 추가하기
[함께 해봐요 6-12] HomePage에서 임시로 해당 컴포넌트 불러오기
[함께 해봐요 6-13] HomePage 컴포넌트 원상복구
[함께 해봐요 6-14] 로딩이 true, false에 따라 달라지는 렌더링 구현하기
[함께 해봐요 6-15] CreateIcon을 불러와서 Layout에 [추가하기] 버튼 바꾸기
[함께 해봐요 6-16] 쇼핑몰다운 UI로 수정하기(ProductCreateForm.tsx)
[함께 해봐요 6-17] 섬네일 업로더 컴포넌트 구현하기 1(ThumbnailUploader.tsx)
[함께 해봐요 6-18] 섬네일 업로더 컴포넌트 구현하기 2(ThumbnailUploader.tsx)
[함께 해봐요 6-19] ThumbnailUploader 컴포넌트 내보내기
[함께 해봐요 6-20] ProductCreateForm 수정하기
[함께 해봐요 6-21] ThumbnailUploader 컴포넌트에서 input에 hidden 속성 부여하기
[함께 해봐요 6-22] 섬네일 업로더 컴포넌트 구현하기 3(ThumbnailUploader.tsx)
[함께 해봐요 6-23] 파일 선택 후 섬네일을 화면에서 임시로 렌더링하는 로직(ThumbnailUploader.tsx)
[함께 해봐요 6-24] 2단계 섬네일 요청 구현하기(ProductCreateForm.tsx)
[함께 해봐요 6-25] thumbnail 속성 추가에 따른 ProductType 업데이트
[함께 해봐요 6-26] thumbnail 속성 추가에 따른 ProductItem 업데이트
[함께 해봐요 6-27] 상품 목록 디자인 1: Grid 컴포넌트로 ProductItem 묶어주기(ProductList.tsx)
[함께 해봐요 6-28] 상품 목록 디자인 2: Grid 컴포넌트로 ProductItem 묶어주기(ProductItem.tsx)
[함께 해봐요 6-29] 상품 아이템에 스타일 지정하기(ProductItem.tsx)
[함께 해봐요 6-30] 오류 제거를 위한 ProductList 컴포넌트 수정하기
[함께 해봐요 6-31] App.tsx에서 상품 상세 페이지 주소 수정하기
[함께 해봐요 6-32] ProductPage UI 수정하기
[함께 해봐요 6-33] 구매 페이지 구현하기(PurchasePage.tsx)
[함께 해봐요 6-34] PurchasePage 컴포넌트 내보내기
[함께 해봐요 6-35] PurchasePage를 Router와 연결하기
[함께 해봐요 6-36] form 코드를 별도 컴포넌트로 분리하기(PurchaseForm.tsx)
[함께 해봐요 6-37] PurchaseForm 컴포넌트 내보내기
[함께 해봐요 6-38] PurchasePage 수정하기
[함께 해봐요 6-39] createProductId와 isModalOpen 상태를 함께 구현한 코드
[함께 해봐요 6-40] handlePushProductPage에 대한 구현 코드
[함께 해봐요 6-41] 장바구니 페이지 만들기(CartPage.tsx)
[함께 해봐요 6-42] 장바구니 페이지 내보내기
[함께 해봐요 6-43] 장바구니 페이지 꾸미기
[함께 해봐요 6-44] 장바구니 페이지를 Router에 연결하기
[함께 해봐요 6-45] [장바구니 담기] 버튼을 클릭하면 쿠키에 상품값을 추가하는 로직 작성하기
[함께 해봐요 6-46] MUI를 이용하여 장바구니 페이지 스타일 꾸미기(CartPage.tsx)
[함께 해봐요 6-47] 장바구니 아이템 컴포넌트 코드를 작성하고 장바구니 페이지 완성하기
[함께 해봐요 6-48] CartItem 컴포넌트 내보내기
[함께 해봐요 6-49] 장바구니 페이지(CartPage)의 최종 코드
[함께 해봐요 6-50] 404 페이지 만들기(NotFoundPage.tsx)
[함께 해봐요 6-51] 404 페이지 만들기 컴포넌트 내보내기
[함께 해봐요 6-52] 404 페이지를 와일드카드에 연결하기(App.tsx)
[함께 살펴봐요 6-1] 기존에 구현한 ProductPage
[함께 살펴봐요 6-2] <Route> 컴포넌트 동작 예시
7장 코드 리뷰: 개선점 찾기와 더 나은 서비스 만들기
7.1 장바구니 관련 쿠키 정보를 쉽게 관리하기 위한 훅 만들기
7.2 ID 기반으로 변경해서 쿠키 용량 문제 해결하기
7.3 장바구니가 중복되는 현상 막기
7.4 HTTP 요청 부분을 Axios로 변경하기
7.5 useAsync 함수 만들기
7.6 concurrently를 사용하여 클라이언트와 서버를 동시에 실행하기
[함께 해봐요 7-1] 쿠키를 재활용하는 훅 만들기(useCart.ts)
[함께 해봐요 7-2] 만든 훅 내보내기
[함께 해봐요 7-3] 훅을 활용하기 위해 상품 페이지 수정하기(ProductPage.tsx)
[함께 해봐요 7-4] 훅을 활용하기 위해 장바구니 페이지 수정하기(CartPage.ts)
[생각 해봐요 7-1] useCart 훅에서 ID 기반 상품 로직으로 저장 방식을 수정하기
[함께 해봐요 7-5] productIds 변숫값 지정하기
[함께 해봐요 7-6] 장바구니 정보를 가져오기 위한 코드 작성하기
[함께 해봐요 7-7] useCart 훅을 다른 코드에 반영하기(ProductPage.tsx)
[함께 해봐요 7-8] useCart 훅을 다른 코드에 반영하기(CartPage.tsx)
[함께 해봐요 7-9] 장바구니에서 중복되는 현상 막기 코드(useCart 수정 코드)
[함께 해봐요 7-10] useCart를 사용하는 컴포넌트 수정하기(CartPage.tsx)
[함께 해봐요 7-11] API를 한곳에 묶어서 관리하기
[함께 해봐요 7-12] API를 한곳에 묶어서 관리하기(Axios를 활용한 버전)
[함께 해봐요 7-13] API를 한 곳에 묶어서 관리하기(Axios를 활용한 버전) - ProductPage 수정하기
[함께 해봐요 7-14] API를 한 곳에 묶어서 관리하기 (Axios를 활용한 버전) - PurchasePage 수정하기
[함께 해봐요 7-15] API를 한 곳에 묶어서 관리하기(Axios를 활용한 버전) - ProductList 수정하기
[함께 해봐요 7-16] API를 한 곳에 묶어서 관리하기(Axios를 활용한 버전) - ProductCreateForm 수정하기
[함께 해봐요 7-17] API를 한 곳에 묶어서 관리하기(Axios를 활용한 버전) - useCart 함수 수정하기
[함께 해봐요 7-18] useAsync 훅 만들기
[함께 해봐요 7-19] 기존의 레거시 코드를 useAsync로 적용하기(ProductList.tsx 수정)
[함께 해봐요 7-20] 상품 데이터를 가져오는 부분에 useAsync 도입할 때 수정/삭제 시 문제 해결하기
[함께 해봐요 7-21] 상품 페이지에 useAsync 적용하기
[함께 해봐요 7-22] 섬네일 업로드를 위해 useAsync 수정하기
[함께 해봐요 7-23] ProductCreateForm 수정하기
[함께 해봐요 7-24] PurchasePage 수정하기
[함께 살펴봐요 7-1] 장바구니에서 중복되는 현상 막기 코드(useCart의 기존 코드)
[함께 살펴봐요 7-2] 확장성을 위한 action 객체 사용
[함께 살펴봐요 7-3] useAsync 훅 살펴보기
에필로그
찾아보기
_주요 내용
만들어 보고!
수정하고!
응용하여 확장하기!
가장 빠른 코딩 학습 방법입니다.
당장 몇 주 후에 리액트 프로젝트를 시작해야 한다면, 클론 코딩을 해보는 게 가장 빠른 학습 방법입니다. 이 책은 클론 코딩의 주제로 쇼핑몰 서비스를 제시합니다. 쇼핑몰의 CRUD 기능이야말로 거의 모든 서비스에 응용할 수 있는 가장 보편적이기 때문입니다.
또한 리액트로만 클라이언트를 구현하기 때문에 웬만한 리액트 기능은 모두 학습해볼 수 있는 장점이 있습니다. 완성된 쇼핑몰을 먼저 실행해봄으로써 학습 동기 부여를 해주고, 이후에 단계별로 간단한 텍스트 표현부터 차근차근 만들어 가기 때문에 초보자도 쉽게 따라하며 배울 수 있습니다.
[프로젝트 개발 환경]
1. 운영체제: Mac OS, Windows10
2. 통합개발환경(IDE): VSCode
3. 사용 언어: 타입스크립트
4. 클라이언트 프레임워크: 리액트
5. 서버: 깃허브에서 API 서버 코드 기본 제공 (설정 방법은 책에서 자세히 설명합니다)
6. UI: MUI 컴포넌트
7. 패키지 매니저: Yarn
8. 버전 관리: 깃
9. Node 버전 : 18.17.0
[저자 에필로그 중에서]
이 책에서는 작은 쇼핑몰 서비스를 예로 들었지만 결국 여러분이 만들 거의 모든 서비스는 책에서 제시한 쇼핑몰의 CRUD 구조와 유사합니다. 거기에서 얼마나 고도화하였는지의 차이지 큰 틀은 바뀌지 않습니다. 하지만 클론 코딩은 여러분의 실력을 크게 늘려주지는 않습니다. 따라하며 쓴 코드를 이해하고 여러분만의 독자적인 프로젝트를 개발하여 여러분의 것으로 만들어 보는 데까지 꼭 나아가야 진짜 실력있는 개발자가 될 수 있다는 걸 명심하길 바랍니다.
[베타테스터겸 기획자 소감글 중에서]
변경사항을 저장하지 않고 실행하다가 왜 안 되지? 하며 하루를 꼬박 날려버린 적도 있었고, 리액트 앱을 껐다가 다시 실행해야 되는데, 책에 표시되지 않아 한참을 헤맨 후에 책 내용에 포함하게 되는 경우도 있었습니다. 이렇게 하다 보니 사소한 소스 오타는 금방 찾아낼 수 있게 된 것 같습니다. 그리고 오류가 났을 때 뒤로 갈수록 오류 메시지가 비슷한 경우가 많아 쉽게 해결해서 찾았던 것 같습니다. 사실, 기획자가 잘못한 경우가 훨씬 많았지만요.
개발 능력이 없은 기획자도 처음부터 끝까지 따라해보며 책을 학습했는데, 여러분은 저보다 충분히 더 잘 해낼 수 있을 겁니다.
예제 소스는 깃허브에서 별도로 제공됩니다.
https://github.com/Hong-JunHyeok/shopping_app_example
카페에서 저자와 소통하며 공부하세요
https://cafe.naver.com/codefirst
_저자 소개
안녕하세요 웹 프론트엔드 개발자 홍준혁입니다.
예전부터 코딩이라는 기술로 나만의 상상을 구현하는 것에 관심이 많았습니다. 그 때문인지 지금은 웹 프론트엔드 개발자로 일하고 있습니다.
현재는 웹에만 종속되는 것보다 다양한 플랫폼으로 구현하는 것(앱, 윈도우 등)에 관심이 있으며 주력으로 하고 있는 언어는 JavaScript입니다.
개발을 하면서 어려움이 있는 주변 사람들에게 알려주는 것을 즐기는 편이고 내가 알려준 것을 기반으로 좋은 프로젝트가 나왔을 때 성취감을 느낍니다.
이번 기회에 집필한 책에서도 그러한 효과가 있으면 저자로서 너무 행복할 것입니다. 책에서 다 담지 못한 정보들이 궁금한 경우나 필자와 얘기해보고 싶은 주제가 있다면 언제는 백견불여일타 독자 카페를 이용해주시기 바랍니다.
_상세 이미지
_끝
'신간소개' 카테고리의 다른 글
[신간소개] 생성형 AI를 활용한 게임 개발: ChatGPT, Tensor.Art, Udio (1) | 2024.12.03 |
---|---|
[신간안내] 시작하는 개발자들을 위한 기술 여행 가이드: 개발 지식을 높은 곳에서 한눈에 조망할 수 있는 책 (0) | 2023.11.06 |
[신간 안내] 자바의 신 VOL.2 주요 API 응용편, 3rd Edition (0) | 2023.10.13 |
[신간 안내] 자바의 신 VOL.1 기초 문법편, 3rd Edition (0) | 2023.10.13 |
[신간안내] 개발자로 첫 출근했어요: 사내 개발 도구, 기술, 문화 적응 가이드 (0) | 2023.09.27 |
'오탈자 정보' 카테고리의 다른 글
[오탈자 정보] 생성형 AI를 활용한 게임 개발: ChatGPT, Tensor.Art, Udio (0) | 2024.12.03 |
---|---|
[오탈자 정보] 시작하는 개발자들을 위한 기술 여행 가이드: 개발 지식을 높은 곳에서 한눈에 조망할 수 있는 책 (3) | 2023.11.06 |
[오탈자 정보] 자바의 신 VOL.2, 3rd Edition (4) | 2023.10.13 |
[오탈자 정보] 자바의 신 VOL.1, 3rd Edition (4) | 2023.10.13 |
[오탈자 정보] 개발자로 첫 출근했어요 (0) | 2023.09.27 |
예제소스 깃허브 링크입니다.
https://github.com/Hong-JunHyeok/shopping_app_example
-----------------------------------------------------------------------------------------------------------
강의자료가 필요하신 교수님이나 강사님은 연락주시면 보내드리겠습니다.
담당: 임성춘 편집장
이메일: chief@roadbook.co.kr
TEL: 02-874-7883(010-9490-7883)
이메일로 연락하실 때는, 아래 내용을 꼭 알려주세요.
대학명(학원명), 강의과정명, 수강인원수, 수강기간, 전화번호
[샘플 다운로드]
'자료실' 카테고리의 다른 글
[도서 자료] 생성형 AI를 활용한 게임 개발: ChatGPT, Tensor.Art, Udio (0) | 2024.12.03 |
---|---|
[도서 자료] 시작하는 개발자들을 위한 기술 여행 가이드 : 개발 지식을 높은 곳에서 한눈에 조망할 수 있는 책 (0) | 2023.11.06 |
[도서 자료] 자바의 신 VOL.2, 3rd Edition (0) | 2023.10.13 |
[도서 자료] 자바의 신 VOL.1, 3rd Edition (0) | 2023.10.13 |
[도서 자료] 개발자로 첫 출근했어요 (0) | 2023.09.27 |
● 지은이: 이재용
● 페이지: 608
● 판형: 152 * 223
● 도수: 2도
● 정가: 25,000원
● 발행일: 2023년 11월 10일
● ISBN: 979-11-93229-03-3 93000
[강컴] [교보] [반디] [알라딘] [예스24] [인터파크]
_도서 내용
개발을 한번 선택하면 은퇴할 때까지 해야 할지도 모릅니다. 정말 길고 긴 여행이 될지도 모르는데, 나침반과 지도 같은 가이드가 필요하지 않을까요? 이 책은 저자의 경험을 바탕으로 개발이라는 긴 여행을 하면서 필요한 여행 정보를 두루두루 실은 기술 여행 가이드입니다. 두렵기도 하고 설레기도 한 개발 여정에 오래오래 함께하는 책이 될 수 있도록 만들었습니다. 높은 곳에서 넓게 바라볼 때 시야가 트이고 가야 할 길도 또렷하게 잘 보이는 법을 생각하며 만든 책입니다. 기술과 교양을 넘나들며 누구나 쉽게 읽을 수 있게 만들었습니다.
_대상 독자
“개발자가 되기 위해 코딩만 열심히 하고 있는데, 내가 잘하고 있는 건지 모르겠다. 배워야 할 게 너무 많아 항상 불안하다.”
“개발자가 된 지 이제 불과 1년도 안 됐는데, 밤낮으로 프로젝트에 파묻혀 살다 보니 단순 코딩 머신이 되어 가는 느낌이다. 높은 곳에서 내가 있는 위치를 한번 확인해보고 싶다.”
_목차
저자 서문
1부 | 코드 이야기
1장_좋은 코드를 위한 고민
코드의 본질
좋은 코드를 위한 은유
좋은 코드를 위한 추상화
관심사의 분리
1장을 마치며
2장_안전한 코드를 위해서
버그와 장애
테스트 자동화
테스트 가능한 코드
테스트 환경
포스트 모텀
2장을 마치며
3장_코드 속 버그 잡아내기
동전의 양면과 같은 코딩과 디버깅
기상천외한 버그들
탐정이 될 시간
기본적인 디버깅 기술
그래도 안 풀려요!
3장을 마치며
4장_코드에도 패턴이 있다
건축학 개론
소프트웨어에서의 패턴
패턴의 발견
패턴이 유용한 이유
패턴의 유혹
4장을 마치며
5장_깃, 나는 네가 지난여름에 짠 코드를 알고 있다
버전을 관리해야 하는 이유
버전 관리 시스템의 역사
깃을 만든 리누스 토발즈
커밋 메시지 잘 작성하기
하나의 변경은 하나의 커밋으로
커밋으로 협업하기
5장을 마치며
6장_여전히 성장 중인 자바
다재다능한 자바
자바의 탄생
자바와 JVM
자바를 싫어하는 사람들
객체 지향 패러다임
6장을 마치며
7장_간결한 코드를 위한 파이썬
파이썬의 탄생
파이썬의 생산성
파이썬 vs. 펄
Pythonic하게 코드를 짜세요
7장을 마치며
8장_구글이 만든 프로그래밍 언어, Go
Go의 탄생
Go가 해결하고자 했던 문제
동시성 프로그래밍의 어려움
Go의 동시성 프로그래밍
경량 스레드, 고루틴
Go의 오류 처리
8장을 마치며
2부 | 환경 이야기
9장_서버 환경의 변화
정적 링크와 동적 링크
패키지 관리자
설치 문서
프로비저닝 도구
컨테이너의 시대
새로운 시대의 운영체제, 쿠버네티스
9장을 마치며
10장_클라우드로의 여정
전산실에서 IDC로
IDC에서 클라우드로
IaaS, PaaS, SaaS
클라우드 전환기
클라우드 네이티브의 특징
10장을 마치며
11장_태생의 한계에 도전하는 웹 이야기
웹의 탄생
정적인 웹에서 동적인 웹으로
Ajax의 등장
또 하나의 자바스크립트
jQuery의 군림
새로운 자바스크립트 프레임워크의 등장
싱글 페이지 애플리케이션
서버 측 랜더링이 포함된 SPA
11장을 마치며
12장_데이터베이스: 초기부터 오늘날까지
데이터가 사는 곳: 메모리와 디스크
데이터베이스의 등장
관계형 데이터베이스의 저력
관계형 데이터베이스의 한계
새로운 데이터베이스를 위한 시도: NoSQL
12장을 마치며
13장_웹 서비스를 위한 아키텍처 성장기
최초의 애플리케이션
애플리케이션 서버의 확장
데이터베이스 서버의 확장
캐시
HTTP 캐시
애플리케이션 캐시
CDN을 이용한 캐시
13장을 마치며
14장_모니터링으로 꿰뚫어보기
베일에 감춰진 코드의 동작
시스템 관리자의 모니터링
모니터링 데이터: 메트릭
모니터링 데이터: 로그
데이터 시각화
24/7 모니터링을 위한 알림 창
이상치 탐지
14장을 마치며
15장_코드는 파이프라인을 타고
소프트웨어 배포
배포의 고통
지속적인 배포를 위해
간단한 ‘지속적인 배포’ 맛보기
GitOps
무중단 배포
15장을 마치며
16장_마이크로서비스
서브 루틴의 진화
마이크로서비스의 출현
마이크로서비스의 한계
마이크로서비스 간의 통신
마이크로서비스로의 전환
장애 전파
SRE: Site Reliability Engineering
16장을 마치며
17장_데이터 포맷
네트워크 너머로 데이터 보내기
0과 1로 표현하기
비트들을 그대로 저장할 수 없는 이유
직렬화
17장을 마치며
3부 | 개발자 이야기
18장_프로그래밍에 대한 열정
재미있고 어렵다
프로그래밍을 향한 동기
결과물 파 vs 순수 코드 파
몰입의 즐거움
18장을 마치며
19장_더 나은 개발자로 성장하기
성장 가능성
무엇을 먼저 공부해야 하나
개발자의 자질
좋은 개발자의 모습
끊임없는 학습
안전지대 벗어나기
나보다 나은 개발자 만나기
기술 블로그 만들기
토이 프로젝트 및 스터디
19장을 마치며
20장_더 나은 팀 문화를 위하여
개발팀의 문화
업무 환경의 변화
비동기 의사소통
문서화의 중요성
모두의 코드를 위한 리뷰
20장을 마치며
19장_더 나은 개발자로 성장하기
성장 가능성
무엇을 먼저 공부해야 하나
개발자의 자질
좋은 개발자의 모습
끊임없는 학습
안전지대 벗어나기
나보다 나은 개발자 만나기
기술 블로그 만들기
토이 프로젝트 및 스터디
19장을 마치며
20장_더 나은 팀 문화를 위하여
개발팀의 문화
업무 환경의 변화
비동기 의사소통
문서화의 중요성
모두의 코드를 위한 리뷰
20장을 마치며
찾아보기
매일 파도처럼 밀려오는 새로운 지식에 치이지 않기 위한 나침반과 같은 책
넓은 기술 분야의 지식을 높은 곳에서 한눈에 조망할 수 있는 책
각 지식 간의 연결 고리를 이어주어 인사이트를 주는 책
매일 파도처럼 밀려오는 새로운 지식들을 헤쳐 나가는 것은 어두운 미로를 손전등 하나만 들고 헤매는 것과 같습니다. 그것들 간의 맥락을 설명해주는 나침반과 지도가 꼭 있어야 합니다. 높은 곳에서 한눈에 조망할 수 있다면 이를 기반으로 각 지식 간의 연결 고리를 쉽게 이어갈 수 있습니다.
때로는 한껏 줌을 땡겨 좁은 영역에 복잡한 기술 지식을 자신만의 언어와 표기법으로 새겨 넣습니다. 이러한 과정을 반복하다 보면 멀리서 봤을 때 여러 기술 지식들이 얽히고 설켜 복잡한 개미굴과 같은 3차원의 지도가 완성되어 갑니다.
여러분의 기술 지도를 확장해 나가는 데 도움이 되었으면 좋겠습니다.
닻을 올리고 개발자로서 여행을 떠나는 이들이 더 멀리까지 바라볼 수 있도록 도와주는 책이면 좋겠습니다.
여행 가이드 북이라는 제목처럼 아주 세세한 내용까지는 다루지는 못했습니다. 이때 둘러대기 가장 좋은 핑계는 역시 "지면의 한계"일 것입니다. 하지만 설령 그 한계가 무한하다 하더라도 앞으로 여러분이 기술 분야에서 겪게 될 모든 경험과 즐거움을 책 한 권에 녹여내는 일은 불가능합니다.
그 부분은 여러분의 설레는 탐험의 몫으로 남겨놓겠습니다.
어쩌면 저도 미처 발견하지 못한 아름다운 여행지를 찾게 될지도 모르는 일입니다. 아니, 분명 그렇게 될 것입니다.
_본문 속의 글, 글, 글
“하지만 컴퓨터라는 독자만을 염두에 두고 코드를 작성하다가는 머지않아 큰 문제에 부딪히게 됩니다. 2차 독자인 사람을 염두에 두지 않았기 때문입니다.”
“자바에서 예외를 처리할 때 사용되는 throw와 catch라는 키워드 역시 일종의 은유입니다. 사실 이 은유는 다른 언어와는 다른 자바의 예외 처리 방식을 효과적으로 나타내기 위한 목적이 있습니다.”
“관심사를 분리하여 코드를 작성하면 각각의 코드 영역에서 적은 수의 관심사에만 집중할 수 있기 때문에 코드를 파악하는 것이 훨씬 수월합니다.”
“코드가 강하게 결합되어 있다면 유지 보수 비용이 크게 드는 경향이 있습니다. 일반적으로 ‘의존성 주입 (Dependency Injection)’ 등의 기법을 통해 결합도를 낮출 수 있습니다.”
“이 과정에서 인상적이었던 부분은 깃랩의 사고 수습 및 복구 과정이 상당히 투명하게 공개되었다는 것입니다. 그들은 복구 진행 프로세 스 전반을 트위터 계정을 통해 실시간으로 알렸습니다.”
“이제부터는 바야흐로 탐정이 될 시간입니다. 디버깅은 수수께끼를 푸는 것과 비슷합니다. 복잡한 수수께끼를 풀기 위해 관찰력, 지식, 직관, 추론 능력으로 중무장하고 끈기와 인내로 문제를 해결해 나가는 셜록 홈즈가 되어야 합니다.”
“버그 재현과 로그를 통해 디버깅을 수행할 때 그 과정을 꼼꼼히 기록하는 것도 큰 도움이 됩니다. 복잡하거나 난해한 버그의 경우 이를 추적하는 데 며칠에서 길게는 몇 달까지 걸릴 수 있습니다. 이 기간 동안 획득한 단서나 실험 결과를 머릿속에만 유지하기보다는 일종의 디버깅 문서를 만들어 기록하는 것이 좋습니다.”
“패턴에는 이름도 중요합니다. 만약, ‘문’이라는 이름이 없었다면 건축 사무소에 온 손님에게 도면을 설명하기 위해 “여기에 문을 달겠습니다” 대신 “여기에 경첩이 달린 직사각형 형태의 나무를 대고 손잡이를 달아서 여닫을 수 있는 물체를 달겠습니다”라고 설명해야 할 것입니다.”
“그제서야 각 개발자는 각자의 사본을 가지고 직접 브랜치를 생성하고 커밋을 만들어 나갈 수 있었습니다. 이를 통해 정말 훌륭한 기능을 추가하거나 심각한 버그를 고칠 수 있게 되었습니다.”
““혼자 가면 빨리 갈 수 있지만 함께 가면 멀리 간다”라는 말이 있습니다. 본문에서 언급한 리누스 토발즈도 사실은 리눅스와 깃을 오롯이 혼자 만들지는 않았습니다. 수많은 오픈소스 기여자들과 함께 수십 년 간 훌륭한 소프트웨어를 만들어 오고 있습니다.”
“자바의 생태계에서도 이러한 문제를 인식하고 자바의 장황함을 줄이고자 노력하고 있습니다. 예를 들어, 자바 8에서 ‘람다 표현식’을 도입함에 따라 새로운 스레드를 생성하기 위한 코드가 아래와 같이 간결해졌습니다.”
“재미있는 점은 위의 코드 대신 for (i = 0; i <=9; i++)로 써도 동작은 동일하게 돌아가지만 이렇게는 잘 쓰지 않는다는 점입니다. 사람들은 이미 전자의 패턴에 익숙해져 있는 상태에서 0~9가 아닌 0~8까지 도는 반복문이라고 잘못 인식할 가능성이 있기 때문입니다.”
“이와 같이 Go의 특징을 통해 설계 철학을 엿보다 보면 Go의 목적이 가장 뛰어난 프로그래밍 언어를 만들기 위한 연구의 성격이 아닌 동료의 작업 환경을 개선하고 생산성을 향상시키기 위한 시도였다는 것을 알 수 있습니다. 대학을 갓 졸업하고 구글에 입사한 주니어 개발자들도 새로운 언어를 쉽게 익혀 안전한 코드를 작성할 수 있도록 말입니다.”
“개발자들이 자주 하는 변명에 대해 순위를 매겨본다면 아마 다음의 말이 1위를 차지하지 않을까 싶습니다. “제 컴퓨터에선 잘 되는데요?””
“json 같은 텍스트 형태의 데이터는 저장할 때 파일 전체를 처음부터 끝까지 다시 기록해야 합니다. 수천 명의 회원 목록 중 단 한 명의 데이터만 변경되었다고 하더라도 수천 명의 회원 목록 전부 다시 기록해야 한다는 이야기입니다”
_상세 이미지
_끝
'신간소개' 카테고리의 다른 글
[신간소개] 생성형 AI를 활용한 게임 개발: ChatGPT, Tensor.Art, Udio (1) | 2024.12.03 |
---|---|
[신간안내] 백견불여일타(이젠 프로젝트다!)리액트 쇼핑몰 프로젝트 (0) | 2024.04.16 |
[신간 안내] 자바의 신 VOL.2 주요 API 응용편, 3rd Edition (0) | 2023.10.13 |
[신간 안내] 자바의 신 VOL.1 기초 문법편, 3rd Edition (0) | 2023.10.13 |
[신간안내] 개발자로 첫 출근했어요: 사내 개발 도구, 기술, 문화 적응 가이드 (0) | 2023.09.27 |
'오탈자 정보' 카테고리의 다른 글
[오탈자 정보] 생성형 AI를 활용한 게임 개발: ChatGPT, Tensor.Art, Udio (0) | 2024.12.03 |
---|---|
[오탈자 정보] 백견불여일타(이젠 프로젝트다!)리액트 쇼핑몰 프로젝트 (2) | 2024.04.16 |
[오탈자 정보] 자바의 신 VOL.2, 3rd Edition (4) | 2023.10.13 |
[오탈자 정보] 자바의 신 VOL.1, 3rd Edition (4) | 2023.10.13 |
[오탈자 정보] 개발자로 첫 출근했어요 (0) | 2023.09.27 |
'자료실' 카테고리의 다른 글
[도서 자료] 생성형 AI를 활용한 게임 개발: ChatGPT, Tensor.Art, Udio (0) | 2024.12.03 |
---|---|
[도서 자료] 백견불여일타(이젠 프로젝트다!)리액트 쇼핑몰 프로젝트 (0) | 2024.04.16 |
[도서 자료] 자바의 신 VOL.2, 3rd Edition (0) | 2023.10.13 |
[도서 자료] 자바의 신 VOL.1, 3rd Edition (0) | 2023.10.13 |
[도서 자료] 개발자로 첫 출근했어요 (0) | 2023.09.27 |
● 지은이: 이상민
● 페이지: 428
● 판형: 188 * 257
● 도수: 2도
● 정가: 35,000원
● 발행일: 2023년 10월 16일
● ISBN: 979-11-93229-02-6 93000
[강컴] [교보] [반디] [알라딘] [예스24] [인터파크]
_도서 내용
이 책은 <자바의 신> VOL.1 기초 입문서를 배운 독자가 개발을 하면서 좀더 심화한 API를 활용해야 할 때 제대로 활용할 수 있는 법을 담았다. 내용 구석구석 NAVER, NHN, SKPlanet 등에서 성능 전문가의 풍부한 경험이 녹아 있다. 수십 년 간 버전 업이 지속되는 자바의 주요 API를 버전에 맞게 어떻게 활용할 수 있는지 노하우를 얻을 수 있을 것이다.
_대상 독자
Q. 자바 개발자로 일하고 싶은데, 무엇을 어떻게 시작해야 할까요?
A: 우선 VOL.1을 마스터하세요. 연습문제를 반드시 풀어봐야 합니다.
Q. 현업에서 개발자로 일하고 있지만, 나의 개발 방식이 가끔 맞는 것인지 헷갈릴 때가 있어요.
A: VOL.1을 건너 뛰고 VOL.2를 학습해도 됩니다. 레퍼런스로 찾아서 필요한 부분만 읽어도 됩니다.
Q. 개발자는 아니지만, 개발자들과 소통할 일이 많아요.
A: VOL.1만 공부해도 충분합니다. 개념을 익히는 데 많은 도움을 받을 수 있어요.
_목차
머리말
이렇게 학습하세요
감수자 & 베타리더의 글
1장. 이쯤에서 자바의 역사와 JVM에 대해서 알아보자
자바의 역사
JDK의 플랫폼에 따른 차이
JDK, J2SE, Java SE 외에 자바에서 사용되는 다른 용어들
자바언어의 특징은 다음과 같다
자바의 버전별 차이
JIT 컴파일러는 도대체 뭘까?
HotSpot은 또 뭐야?
자바를 배우면 꼭 알아야 하는 용어
자바의 GC는 어떻게 진행되나요?
정리하며
2장. 가장 많이 쓰는 패키지는 자바랭
java.lang 패키지는 특별하죠
숫자를 처리하는 클래스들
각종 정보를 확인하기 위한 System 클래스
System.out을 살펴보자
정리하며
직접해 봅시다
정리해 봅시다
3장. 실수를 방지하기 위한 제네릭이라는 것도 있어요
실수를 방지할 수 있도록 도와주는 제네릭
제네릭이 뭐지?
제네릭 타입의 이름 정하기
제네릭에 ?가 있는 것은 뭐야?
제네릭 선언에 사용하는 타입의 범위도 지정할 수 있다
메소드를 제네릭하게 선언하기
정리하며
직접해 봅시다
정리해 봅시다
4장. 자바랭 다음으로 많이 쓰는 애들은 컬렉션 - Part1(List)
자바 컬렉션
List 인터페이스와 그 동생들
ArrayList에 대해서 파헤쳐보자
ArrayList의 생성자는 3개다
ArrayList에 데이터를 담아보자
ArrayList에서 데이터를 꺼내자
ArrayList에 있는 데이터를 삭제하자
Stack 클래스는 뭐가 다른데?
정리하며
직접해 봅시다
정리해 봅시다
5장. 자바랭 다음으로 많이 쓰는 애들은 컬렉션 - Part2(Set과 Queue)
Set이 왜 필요하지?
HashSet에 대해서 파헤쳐 보자
HashSet의 생성자들도 여러 종류가 있다
HashSet의 주요 메소드를 살펴보자
Queue는 왜 필요할까?
LinkedList를 파헤쳐보자
LinkedList의 생성자와 주요 메소드를 살펴보자
정리하며
직접해 봅시다
정리해 봅시다
6장. 자바랭 다음으로 많이 쓰는 애들은 컬렉션 - Part3(Map)
Map이란?
Map을 구현한 주요 클래스들을 살펴보자
HashMap 클래스에 대해서 자세히 알아보자
HashMap 객체에 값을 넣고 확인해보자
HashMap 객체의 값을 확인하는 다른 방법들을 알아보자
정렬된 키의 목록을 원한다면 TreeMap을 사용하자
Map을 구현한 Properties 클래스는 알아두면 편리하다
자바의 자료 구조를 정리해보자
정리하며
직접해 봅시다
정리해 봅시다
7장. 쓰레드는 개발자라면 알아두는 것이 좋아요
쓰레드가 도대체 뭘까?
Runnable 인터페이스와 Thread 클래스
Thread 클래스의 생성자를 살펴보자.
많이 사용되는 sleep( ) 메소드에 대해서 살펴보자
Thread 클래스의 주요 메소드를 살펴보자
쓰레드와 관련이 많은 synchronized
synchronized 블록은 이렇게 사용한다
쓰레드를 통제하는 메소드들
Object 클래스에 선언된 쓰레드와 관련있는 메소드들
ThreadGroup에서 제공하는 메소드들
정리하며
직접해 봅시다
정리해 봅시다
8장. 파일에 있는 것을 읽고 쓰려면 아이오를 알아야죠
I/O는…
자바의 File과 Files 클래스
File 클래스를 이용하여 파일의 경로와 상태를 확인해 보자
File 클래스를 이용하여 파일을 처리하자
디렉터리에 있는 목록을 살펴보기 위한 list 메소드들
InputStream과 OutputStream은 자바 스트림의 부모들이다
Reader와 Writer
텍스트 파일을 써보자
텍스트 파일을 읽어보자
정리하며
직접해 봅시다
정리해 봅시다
9장. Serializable과 NIO도 살펴 봅시다
Serializable에 대해서 좀 살펴보자
객체를 저장해보자
객체를 읽어보자
transient라는 예약어는 Serializable과 떨어질 수 없는 관계다
자바 NIO란?
NIO의 Buffer 클래스
정리하며
정리해 봅시다
10장. 다른 서버로 데이터를 보내려면 어떻게 하면 되나요?
네트워크 프로그래밍이란?
소켓 통신을 하기 위해서 알아야 하는 Socket 클래스
간단하게 소켓 통신을 해보자
UDP 통신을 위해서 알아야 하는 Datagram 관련 클래스
간단하게 UDP 통신을 해보자
자바에서 웹 페이지 요청을 하려면 어떻게 해야 하지?
정리하며
직접해 봅시다
정리해 봅시다
11장. 이제 주요 API도 알아봤으니 정리해 봅시다
자바의 예약어들
제네릭
쓰레드
자바 API에서 제공하는 자료 구조와 Collection
Collection-List 인터페이스
Collection-Set 인터페이스
Collection-Queue 인터페이스
Collection-Map 인터페이스
IO 관련 클래스들
네트워크 관련 클래스들
정리하며
<자바의 신> 기말고사
<자바의 신> 기말 실습문제
12장. Java 7에서 달라진 것들에는?
Java 7에서는…
달라진 숫자 표현법!!!
switch 문장도 좀 확장되었대요
제네릭은 다이아몬드를 쓰면 쉬워요
Non reifiable varargs 타입
예외도 이렇게 보완 되었답니다
Java 7부터는 꼭 안닫아도 되는 애들이 있어요
정리하며
정리해 봅시다
13장. Java 7에 추가된 것들에는?
Fork/Join은 CPU를 더 쉽게, 효율적으로 사용하기 위해서 만들어진 거에요
NIO도 잘 모르는데 NIO 2가 나왔다
Files 클래스는 파일을 다루기 위한 클래스랍니다
파일이 변경되었는지 확인하는 WatchService 클래스도 추가되었어요
파일과 관련된 다른 새로운 API에는 어떤 것들이 있을까?
Fork/Join과 NIO2 외에 추가 및 변경된 것들을 간단히 살펴보죠
정리하며
정리해 봅시다
14장. Java 8에 추가된 것들은?
Java 8의 새로운 것들
Optional
Default method
날짜 관련 클래스들
병렬 배열 정렬(Parallel array sorting)
StringJoiner
정리하며
15장. Java 8에서 변경된 것들은?
Lambda 표현식(expression)
java.util.function 패키지
stream
stream forEach( )
메소드 참조
stream map( )
stream filter( )
Stream을 다시 한번 정리해 보자
정리하며
16장. Java 9에서 변경된 것들은?
Java의 변경된 정책은 꼭 알아야 해요.
Java 버전별 추가된 사항은 어디서 확인해야 할까?
Java 9에서 추가되거나 달라진 것들은?
Java 9부터 변경된 String 클래스
Interface의 private 메소드를 추가할 수 있다
새로운 HTTP 클라이언트를 쓰면 뭐가 좋을까?
Publish–Subscribe 프레임워크
자바의 모듈화–직소 프로젝트
정리하며
17장. Java 10에서는 무엇이 달라졌을까?
Java 10에서 추가되거나 달라진 기능들은?
타입을 일일이 입력하기 귀찮다면 var를 사용해도 된다.
수정 불가능한 Collection
정리하며
18장. Java 11은 얼마나 달라졌을까?
Oracle JDK의 유료화
Java 11에 추가되거나 개선된 기능들은?
컴파일 없이 java 파일의 실행하는 방법은?
Lambda에서 var 사용해보기
정리하며
19장. Java 12~17 버전을 살펴보자
Java 12에 추가되거나 개선된 기능들은?
java 13에 추가되거나 개선된 기능들은?
Java 14에 추가되거나 개선된 기능들은?
Java 15에 추가되거나 개선된 기능들은?
Java 16에 추가되거나 개선된 기능들은?
Java 17에 추가되거나 개선된 기능들은 ?
switch–case 문이 좀 달라졌어요.
따옴표 세개를 연달아 쓰면 text 블록을 사용할 수 있어요.
record 클래스가 뭔가요?
sealed 클래스는 어디에 사용하는 것인가요?
정리하며
찾아보기
<VOL.1의 주요 목차 요약>
1장. 프로그래밍이란 무엇인가?
2장. Hello God Of Java
3장. 자바를 제대로 알려면 객체가 무엇인지를 알아야 해요
4장. 정보를 어디에 넣고 싶은데
5장. 계산을 하고 싶어요
6장. 제가 조건을 좀 따져요
7장. 여러 데이터를 하나에넣을 수는 없을까요?
8장. 참조 자료형에 대해서 더 자세히 알아봅시다
9장. 자바를 배우면 패키지와 접근 제어자는 꼭 알아야 해요
10장. 자바는 상속이라는 것이 있어요
11장. 매번 만들기 귀찮은데 누가 만들어 놓은 거 쓸 수 없나요?
12장. 모든 클래스의 부모 클래스는 Object에요
13장. 인터페이스와 추상클래스, enum
14장. 다 배운 것 같지만, 예외라는 중요한 것이 있어요
15장.String
16장. 클래스 안에 클래스가 들어갈 수도 있구나
17장. 어노테이션이라는 것도 알아야 한다
18장. 이제 기본 문법은 거의 다 배웠으니 정리해 봅시다
<자바의 신> 중간 점검 및 실습
_주요 내용
[3판의 주요 변경사항]
최근 자바의 버전은 급격하게 변합니다. 6개월에 버전이 1씩 증가하는데, 회사에서 사용하는 자바의 버전은 프로젝트가 시작될 때 가장 최신 버전에 머물러 있는 경우가 많습니다. 그래서 <자바의 신> 3판에서는 최신 자바 버전에서 달라진 부분에 대해서 최대한 신입 및 기존 개발자분들이 쉽게 이해할 수 있도록 작성하였습니다. <자바의 신> 2판을 쓸 때인 2017년에는 최신 버전이 Java 8이었지만 지금은 Java 20이 가장 최신 버전이며, 장기 지원 버전인 Java 21은 올해 출시될 예정입니다. 왜 이렇게 버전 번호가 급격하게 올라갔는지는 본문에서 확인할 수 있습니다.
이 책은 VOL.2로 주요 API 활용법을 다루고 있습니다.
VOL.1이 기초 문법을 다루었다면, VOL.2에서는 개발 현장에 많이 활용하는 주요 API가 무엇이고 어떻게 쓰이는지를 다룹니다.
가장 신경 쓴 점은 “생각하는 습관”을 갖도록 하는 데 있습니다.
이 책에는 “생각해 봅시다”라는 쉬어가는 코너가 아주 자주 등장합니다. 이 코너에서는 독자에게 화두를 던지고 그에 대해 짧게는 1분에서 길게는 10분까지 생각해볼 수 있도록 하였습니다. 이를 통해 현업에서 개발자로 성장했을 때 단순 코더가 아니라 생각하는 코더가 될 수 있도록 세심하게 배려하였습니다.
연습문제에 심혈을 기울였습니다.
문제를 풀어보는 것만큼 실력을 높일 수 있는 지름길은 없습니다. 서술형 문제에서는 이미 학습한 내용을 잘 기억하고 있는지 테스트할 수 있습니다. 실습 문제에서는 작은 단위의 프로그램을 만들어보면서 프로그램 짜는 능력을 쑥쑥 키워갈 수 있습니다.
VOL.1 & VOL.2 공통 온라인 특별판 PDF 무료 제공
1장. 저는 이런 것 말고 웹 페이지를 만들고 싶었다구요
2장. 그럼 데이터를 저장하려면 어떻게 해야 하는데요?
부록 1. Tomcat 설치하기
부록 2. JSP와 web.xml 추가 설명
부록 3. SQL 기초와 JDBC 타입
부록 4. GUI 도구인 JavaFX
부록 5. JavaFX로 계산기를 만들어보자
부록 6. 자바 설치 가이드
[다운로드 링크]
* cafe.naver.com/godofjava
<자바의 신> 사이트에서 연습문제도 직접 풀어보고 정답을 확인하세요.
https://sites.google.com/view/godofjava3rd/
<자바의 신> 네이버 카페에서 공부하다 막히면 문의하면서 학습하세요.
https://cafe.naver.com/godofjava
예제 소스는 깃허브에서 별도로 제공됩니다.
https://github.com/godofjava/GodOfJava3rd
_편집자 코멘트
편집자인 저도 원고의 초고를 보면서 연습문제를 직접 풀어보았습니다. 사실 삽질을 되게 많이 했습니다. “어디서 에러가 나는 거지?” “앞에서 이런 부분을 설명했나?” “아~ 내가 이런 부분을 이해하지 못하고 넘어갔구나” 하면서, 교정 시간은 더디게 갔지만, 훨씬 자바라는 언어에 더 가까워질 수 있었습니다.
이 책의 베타리뷰어로 참여했던 분들도 비슷한 경험을 하였습니다. 이 책은 21명의 베타리뷰어가 리뷰를 하였습니다. 디지털 파일이 아니라 모든 분들께 일일이 제본된 책자가 제공되었습니다. 실제 독자가 학습하는 방식 그대로를 재현하면서 어디에서 막히는지, 문제점은 없는지를 발견하고 이를 책에 반영하였습니다. 상당히 까다롭고 귀찮은 작업이었지만, 기본서의 중요성에 비추어 볼 때 이 정도의 투자는 해야 한다고 생각했습니다.
이 책에 참여해주신 21명의 베타 리뷰어와 좋은 기본서를 만들어준 저자에게 진심으로 감사를 드립니다.
_저자 소개
삼성 SDS에서 개발을 시작하여 NAVER, NHN, SK Planet에서 개발자 및 엔지니어로 일해왔다. 『자바 성능 튜닝 이야기』, 『자바 트러블슈팅』, 『누가 IT 시장 취업에 성공하는가』 등 다수의 IT 서적을 집필하였다. 현재는 서비스 개선 및 개발자 역량 향상에 힘쓰며 CTO 역할을 수행하고 있다.
_상세 이미지
_끝
'신간소개' 카테고리의 다른 글
[신간안내] 백견불여일타(이젠 프로젝트다!)리액트 쇼핑몰 프로젝트 (0) | 2024.04.16 |
---|---|
[신간안내] 시작하는 개발자들을 위한 기술 여행 가이드: 개발 지식을 높은 곳에서 한눈에 조망할 수 있는 책 (0) | 2023.11.06 |
[신간 안내] 자바의 신 VOL.1 기초 문법편, 3rd Edition (0) | 2023.10.13 |
[신간안내] 개발자로 첫 출근했어요: 사내 개발 도구, 기술, 문화 적응 가이드 (0) | 2023.09.27 |
[신간 안내] 리더의 세상 읽기: 지속적 성장을 위한 사람, 일, 사회에 관한 110가지 질문 (2) | 2023.06.27 |