프로가 되기 위한 웹 기술 입문
해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
패키지
북카드
키워드 Pick
키워드 Pick 안내
관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.
작가정보
저자(글) 고모리 유스케
저자 고모리 유스케 (小森裕介)는 UL 시스템즈 주식회사 선임 컨설턴트. 2000년 도쿄 공업대학 공학부 정보공학과를 졸업했다. 독립계 시스템 개발 회사의 SE, 기술 컨설턴트를 거쳐 현직에서 기술 지원과 PM 지원, 비즈니스 기획 지원 등 폭넓은 활약을 펼치고 있지만 ‘전 세계 사람들이 사용하는 제품을 개발한다’라는 꿈을 실현하려면 아직 갈 길이 멀다. 2005년부터 오픈소스 소프트웨어 개발 활동에 흥미를 느끼고 Seasar 프로젝트(http://www.seasar.org/)에서 커미터와 콘퍼런스 강연자로 활동 중이다. 동 프로젝트 아래서 리치 클라이언트 프레임워크인 Uruma(http://uruma.sandbox.seasar.org/ja/)의 개발을 진행하고 있지만, 시간을 내지 못해 생각만큼 개발을 진행하지 못하는 것이 최근의 고민거리다. 저서로는 『왜 당신은 자바로 객체지향 개발을 하지 못하는가?(なぜ、あなたはJavaでオブジェクト指向開?ができないのか)』(기주쓰효론사(技術評論社))가 있다.
번역 김정환
역자 김정환은 건국대학교 졸업. 일본외국어전문학교 일한통역과 수료. 현재 번역 에이전시 (주)엔터스코리아 출판기획 및 일본어 전문 번역가로 활동 중이다. 역서로는 『비즈니스 EVERNOTE』, 『스마트 워커』, 『클라우드』, 『애플 구글 마이크로소프트 삼국지』,『아이폰과 트위터로 최강회사 만들기』, 『트위터 혁명』, 『닌텐도, “놀라움”을 낳는 방정식』, 『이과계 사람들1』, 『이과계 사람들2』 외 다수가 있다.
목차
- ▣ LESSON 0 | 프롤로그
- 웹 애플리케이션 개발 기술은 어디서 배우는가?
- 왜 여러분은 웹 애플리케이션 개발 기술을 배우지 못하는 것일까?
- 대상 독자
- 이 책을 읽을 때 필요한 사전 지식
- 가장 효율적으로 기술을 배우는 방법
▣ LESSON 1 | 웹 애플리케이션이란 무엇인가?
1.1 데스크톱 애플리케이션
1.2 웹 애플리케이션
1.3 정리
▣ LESSON 2 | 웹은 어떻게 발전했는가?
2.1 WWW의 탄생과 보급
- 전 세계의 컴퓨터를 연결하는 인터넷
- 인터넷 보급의 견인차 월드 와이드 웹과 모자이크
- WWW의 탄생
- 현대 웹 브라우저의 시조인 NCSA 모자이크
2.2 웹을 뒷받침하는 기술의 발명
- 웹 서버와 웹 클라이언트
- 왜 클라이언트와 서버로 나누는가?
- ‘그 리소스는 어디에 있지?’ - URL
- HTTP
2.3 CGI의 탄생
- 동적인 콘텐츠에 대한 요구
- CGI의 탄생
- 웹의 폭발적인 보급
2.4 서블릿의 등장
- CGI를 둘러싼 문제점
- 자바/서블릿의 탄생
- 자바로 애플리케이션을 개발할 때의 이점
2.5 JSP의 탄생
- 서블릿의 문제점
- 발상의 전환! JSP의 탄생
2.6 웹 애플리케이션 프레임워크의 시대
- 서블릿과 JSP의 문제점
- 웹 애플리케이션 프레임워크의 탄생
2.7 정리
▣ LESSON 3 | HTTP를 이해하자
3.1 왜 HTTP를 알아야 하는가?
3.2 웹 브라우저와 웹 서버의 통신을 엿보자
- 피들러 설치
- HTTP 통신을 엿보자
- HTTP 요청을 엿보자
- HTTP 응답을 엿보자
- HTTP에서는 한 번에 리소스 하나를 취득한다
- 파일명을 생략했을 경우의 요청
3.3 정보는 어떻게 인터넷의 대해를 건너는가?
- 인터넷상의 주소-IP 주소
- IP 주소에 의지해 정보를 보내는 TCP/IP
- IP 주소는 누가 결정하는가?
- 글로벌 IP 주소와 사설 IP 주소
- 호스트명을 IP 주소로 변환하는 DNS
- DNS는 어떻게 구현되는가?
- 호스트 내의 수신처를 결정하는 포트 번호
3.4 웹 서버에 요청을 어떻게 전달하는가?
- GET 메서드를 이용한 매개변수 전달
- 애플리케이션 측의 매개변수 받기
- POST 메서드를 이용한 매개변수 전달
- GET과 POST 중 어느 쪽을 사용해야 할까?
- 한글은 어떻게 전달해야 하는가?
3.5 정리
▣ LESSON 4 | CGI에서 웹 애플리케이션으로
4.1 배달 피자 주문 사이트를 만들자
4.2 화면 구성
4.3 화면 모형
4.4 로그인 인증 기능
- PHP로 인증 기능을 만들자
- 인증 기능의 동작을 확인하자
- 리다이렉트 동작의 HTTP 통신을 확인하자
4.5 로그인 상태를 어떻게 기억할 것인가?
- 상태 유지 프로토콜과 무상태 프로토콜
- 무상태인 HTTP상에서 상태를 어떻게 표현할 것인가?
- 쿠키를 이용해 상태를 보존한다
- 실제 쿠키 이용을 확인한다
4.6 안전하게 상태를 보존하기 위한 기술 -세션
- 쿠키를 둘러싼 문제점
- 은행의 창구 업무를 통해 세션을 이해하자
- 계좌 개설 업무의 진행 상황을 어떻게 관리하는가?
- 세션으로 처리 진행 상황을 관리한다
- 세션의 상태를 어디에 보존할 것인가?
- HTTP에서의 세션 ID 전달 방법
- 실제 웹 애플리케이션에서의 세션 ID 활용
- 세션 ID를 이용한 사용자 식별
4.7 피자 펜토미노의 완성
4.8 정리
▣ LESSON 5 | 웹 애플리케이션의 구성 요소
- 왜 웹 애플리케이션의 구성을 이해해야 하는가?
5.1 웹 서버와 웹 클라이언트의 시대
- WWW의 여명기
- CGI의 시대
5.2 데이터베이스 서버의 등장
- 대량의 정보를 어떻게 관리할 것인가?
- 데이터베이스 관리 시스템의 등장
- 데이터베이스에 대한 조작
- 데이터베이스를 이용한 정보의 관리
- 데이터베이스에서 정보를 추출한다
- 필요한 정보를 SQL로 데이터베이스에 전달한다
- 데이터베이스와 클라이언트의 관계
- 데이터베이스 서버의 분리
- 웹 애플리케이션과 데이터베이스의 통신
5.3 애플리케이션 서버의 등장
- 서블릿이나 JSP는 어디에서 작동하는가?
- 서블릿/JSP를 작동시키기 위한 애플리케이션 서버
- 웹 서버와 애플리케이션 서버의 연동
- 웹 서버와 애플리케이션 서버의 분담
- 웹 서버와 애플리케이션 서버 연동의 이점
- 여러 톰캣에 전송하기
- 웹 서버의 기능을 가진 애플리케이션 서버
5.4 웹 시스템의 삼층 구성
- 최소 구성의 웹 시스템
- 일반적인 구성
- 웹 시스템의 삼층 구성
5.5 정리
▣ LESSON 6 | 웹 애플리케이션을 효율적으로 개발하는 방법
6.1 서블릿/JSP만으로는 부족한가?
- 웹 애플리케이션 개발의 표준 ? 자바
- 서블릿과 JSP의 연동
6.2 서블릿/JSP를 이용한 피자 펜토미노의 로그인 처리 구현
- JSP를 통한 로그인 화면 표시
- 서블릿의 호출
- 로그인 서블릿의 처리
- 포워드와 리다이렉트의 차이
- 요청 스코프에서의 정보 전달
- JSP의 요청 스코프에서 정보를 꺼내기
- 왜 요청 스코프가 필요한가?
- 세션 스코프와 요청 스코프의 차이
6.3 웹 애플리케이션의 아키텍처
- 로직과 디자인의 분리
- 소프트웨어의 건축 양식
- 피자 펜토미노의 구조를 살펴보자
- MVC 모델에 따른 웹 애플리케이션의 아키텍처
- MVC 모델에서의 처리 흐름
6.4 프레임워크를 통한 아키텍처의 구현
- 프레임워크란 무엇인가?
- 스트러츠를 이용한 MVC 모델의 구현
- 스트러츠를 이용한 피자 펜토미노의 로그인 처리
- JSP에서의 로그인 처리 액션 호출
- 로그인 처리 액션에서의 로그인 확인 처리
- 상품 목록 화면으로 이동
6.5 레이어 패턴에 따른 데이터 액세스 계층의 분리
- 모델을 어떻게 구현할 것인가?
- JDBC를 이용해 데이터베이스에서 정보를 가져온다
- 레이어 패턴에 따른 데이터 액세스 계층의 분리
- DAO 패턴을 이용한 데이터 액세스 레이어의 구현
6.6 O/R 매핑 프레임워크를 이용한 데이터 액세스 레이어 구현
- O/R 매핑 프레임워크의 필요성
- RDB와 객체의 임피던스 불일치
- 아이바티스를 이용한 O/R 매핑의 실제
- 데이터 매퍼와 SQL 맵 파일을 이용한 O/R 매핑 처리
- Dao 프레임워크를 이용한 DAO의 작성
6.7 프레임워크 이용의 장점과 단점
- 프레임워크 이용의 장점
- 프레임워크 이용의 단점
6.8 정리
▣ LESSON 7 | 보안을 확보하기 위한 방법
7.1 왜 보안을 확보해야 하는가?
- 웹 애플리케이션이 지켜야 할 보안
7.2 웹 애플리케이션에 대한 대표적인 공격 수법과 그 대책
- SQL 인젝션
- 크로스 사이트 스크립팅(XSS)
- 세션 하이재킹
- 크로스 사이트 요청 위조
- 강제 브라우징
- 디렉터리 접근 공격
7.3 설계ㆍ실행의 실수에 기인한 오작동이나 보안 문제를 막기 위한 대책
- 뒤로 가기 버튼 대책
- 이중 폼 제출 대책
- hidden 매개변수를 이용할 때의 주의점
- 디버그 정보를 출력하지 않는다
- 전역 변수에 정보를 담지 않는다
7.4 정리
▣ LESSON 8 | 맺음말
- 감사의 말
- 제5쇄 증쇄에 즈음해
▣ LESSON 9 | 부록
9.1 참고 서적ㆍ사이트
책 속으로
1990년대만 해도 인터넷은 일반인들에게 아직 생소한 존재였다. 온라인이라고 하면 먼저 PC통신을 떠올렸으며, 주로 전화선을 이용해 모뎀으로 통신을 했기에 속도는 턱없이 느렸다. 지금은 ‘겨우’ 몇 메가바이트이지만, 그때는 ‘무려’ 몇 메가바이트였다. 게다가 전화 요금 체계에 시분제가 적용됨에 따라 유선 통신 요금의 부담은 지금과는 비교도 되지 않았다. 밤새 PC 통신을 하다가 전화 요금이 십여 만 원씩 나와 고지서를 받고 깜짝 놀란 어머니(혹은 아버지)에게 빗자루로 맞았다는 이야기를 심심치 않게 들을 수 있었던 시절이었다(옮긴이도 빗자루로 맞지는 않았지만 비슷한 경험을 했다). 이렇듯 온라인을 통한 정보 교환에 제약이 많았던 시절이기에 소프트웨어는 패키지 형태로 판매되는 데스크톱 애플리케이션이 주류를 이뤘다. 그러나 ADSL과 VDSL 등 점차 초고속 통신망이 구축되고 인터넷이 일반화되면서 소프트웨어의 흐름은 데스크톱 애플리케이션에서 웹 애플리케이션으로 넘어오고 있다.
이제 웹 애플리케이션은 우리 생활에 없어서는 안 될 필수품이다. 우리는 Gmail이나 각종 포털 사이트의 이메일 서비스를 통해 이메일을 주고받으며, 사고 싶은 물건이 있으면 인터넷에서 최저가를 검색한 다음 인터넷 쇼핑몰에서 구입한다. 내가 타려는 버스가 어디쯤 와 있는지도 인터넷에서 확인할 수 있게 됐다. 모두 웹 애플리케이션의 발달로 가능해진 일들이다.
이 책은 그런 웹 애플리케이션의 개발에 뜻을 두고 있는 분들을 위한 입문서다. 입문서이기에 구체적인 기술을 자세히 다루지는 않지만, 그 대신 웹 애플리케이션을 개발하기 위한 기본적인 지식과 역사, 배경을 친절하게 설명해 준다. 글쓴이가 이 책에서 많은 중점을 둔 부분은 바로 웹 애플리케이션 개발 기술이 오늘에 이르기까지의 역사와 배경에 관한 설명이다. 어떤 기술이 개발된 이유는 그 기술이 필요했기 때문이다. 또한 처음부터 완벽한 기술은 있을 수 없으므로 문제점이 발생하기 마련이고, 그 문제점을 해결하기 위해 또 다른 기술이 탄생한다. 이러한 역사 속에서 현재의 웹 애플리케이션 개발 기술로 발전된 것이며, 앞으로도 새로운 필요성에 따라 신기술이 속속 탄생할 것이다. 그런 역사를 이해한다면 어떤 기술을 어떻게 이용해야 할지 아는 데 많은 도움이 될 것이며, 새로운 기술이 탄생해도 그 기술을 좀 더 빨리 이해할 수 있으리라는 것이 글쓴이의 생각이다. 그리고 옮긴이 역시 글쓴이의 생각에 동의한다.
뭔가를 배울 때 단순히 내용만을 암기하는 것은 큰 도움이 되지 못한다. 그 바탕에 깔려있는 배경을 알아야 응용력이 생기기 마련이다. 독자 여러분도 학교에서 수학 공식을 암기한 경험이 있을 것이다. 참고서에 나와 있는 공식을 무작정 외우기만 하면 똑같은 패턴의 문제가 나왔을 때는 간단하게 숫자만 바꿔서 빠르게 풀 수 있지만, 조금만 문제를 비틀어도 벽에 부딪치고 만다. 그러나 그 공식이 어떤 과정을 거쳐 나왔는지를 이해한다면 패턴에서 벗어난 문제를 만나더라도 당황하지 않고 이 문제를 어떻게 풀어야 할지 곰곰이 생각하며 풀 수 있게 된다. 어학에서 관용 표현이나 속담 등을 외울 때도 마찬가지다. 그 표현 또는 속담이 어떤 배경에서 나왔으며, 때로는 그 안에 어떤 역사가 담겨 있는지 알면 단순 암기할 때보다 훨씬 이해도 잘 되고 잘 잊어버리지도 않는다. 이와 같이 역사와 배경을 알면 이해도가 훨씬 높아지며, 무엇보다도 배우는 것이 즐거워진다.
다만 이 책은 아무런 지식도 없는 상태에서 웹 애플리케이션 개발 기술을 처음부터 배우려 하는 사람을 위한 책은 아니다. 전문적인 내용을 최대한 배제했다고는 하지만, HTML에 관한 기초 지식과 간단한 프로그래밍 지식 정도는 알고 있다는 가정에서 이야기가 진행된다. 그러나 지금부터 공부를 시작하는 사람도 가벼운 마음으로 읽어 본다면 앞으로 웹 애플리케이션 개발 기술을 공부하기 위해 필요한 개념을 잡는 데 많은 도움이 되리라고 생각한다.
- 옮긴이 서문 중에서
출판사 서평
각종 웹 기술의 핵심을 관통하는 명쾌한 안내서!
오늘날 우리의 삶을 지탱하는 웹 기술은 날로 발전을 거듭하고 있지만, 정작 웹이 어떻게 탄생했고 어떤 궤적을 그려왔으며, 실제로 내부적으로 어떻게 동작하는지 잘 알지 못한다. 이러한 웹 기술의 면면을 이해하지 못한 채 웹 애플리케이션을 개발한다면 문제가 발생했을 때 대처하기도 쉽지 않을뿐더러 웹 기술을 응용할 여지도 줄어들 것이다.
이 책에서는 웹 애플리케이션을 개발하곤 있지만, 정작 웹의 동작 원리나 메커니즘을 명확하게 이해하지 못한 채 당장 필요한 프레임워크 사용법과 같은 표면적인 부분만을 익힌 독자에게 웹 기술의 역사와 배경부터 각종 웹 기술, 웹 개발 프레임워크, 보안에 이르기까지 전체적인 그림을 그릴 수 있게 도와준다. 이 책에서는 웹 개발에 갓 입문한 독자나 기존의 웹 개발자가 웹과 인터넷을 둘러싼 수많은 기술들의 핵심과 각 기술 간의 관계를 명쾌하게 이해하고, 이를 바탕으로 웹 애플리케이션 개발 과정에서 발생한 문제를 해결하는 데 크게 도움될 것이다.
<출판사 리뷰>
오늘날 월드 와이드 웹(World Wide Web)은 우리의 삶을 지탱하는 필수불가결한 기술이다. 이 책에서는 이러한 월드 와이드 웹에서 동작하는 웹 애플리케이션을 개발하는 데 필요한 기초 중의 기초를 익히는 데 목표를 두고, 이를 확실히 습득할 수 있게 구성돼 있다. 통신 기술과 소프트웨어 개발 기술의 양면을 다루는 것부터 시작해 웹 시스템의 구조를 하나씩 완벽하게 설명하고, 난해한 기술도 한층 이해하기 쉽게 설명한다. 이를 바탕으로 지금까지 이해할 수 없었던 기술이나 지식이 머릿속에서 결합되어 종합적인 웹 애플리케이션의 구조를 파악할 수 있을 것이다. 이 책을 통해 10년이 지나도 변함없이 유효한 기술들을 익혀 여러분의 아이디어를 직접 웹 애플리케이션으로 만들어 보길 바란다!
★ 이 책에서 다루는 내용 ★
ㆍ Lesson 0 프롤로그
ㆍ Lesson 1 웹 애플리케이션이란 무엇인가?
ㆍ Lesson 2 웹은 어떻게 발전했는가?
ㆍ Lesson 3 HTTP를 이해하자
ㆍ Lesson 4 CGI에서 웹 애플리케이션으로
ㆍ Lesson 5 웹 애플리케이션의 구성 요소
ㆍ Lesson 6 웹 애플리케이션을 효율적으로 개발하는 방법
ㆍ Lesson 7 보안을 확보하기 위한 방법
ㆍ Lesson 8 맺음말
ㆍ Lesson 9 부록
기본정보
ISBN | 9788992939997 | ||
---|---|---|---|
발행(출시)일자 | 2012년 04월 18일 | ||
쪽수 | 308쪽 | ||
크기 |
188 * 240
* 30
mm
/ 726 g
|
||
총권수 | 1권 | ||
시리즈명 |
위키북스 오픈소스 웹 시리즈
|
||
원서명/저자명 | プロになるためのWeb技術入門/小森裕介 |
Klover
e교환권은 적립 일로부터 180일 동안 사용 가능합니다.
리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 리뷰 종류별로 구매한 아이디당 한 상품에 최초 1회 작성 건들에 대해서만 제공됩니다.
판매가 1,000원 미만 도서의 경우 리워드 지급 대상에서 제외됩니다.
일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
리뷰는 1인이 중복으로 작성하실 수는 있지만, 평점계산은 가장 최근에 남긴 1건의 리뷰만 반영됩니다.
구매 후 리뷰 작성 시, e교환권 200원 적립
문장수집
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
구매 후 리뷰 작성 시, e교환권 100원 적립