이미 소장하고 있다면 판매해 보세요.
|
옮긴이 머리말 ix
베타리더 후기 xi 특집① 신입 엔지니어 시절에 파악해 두어야 할 웹 기술 총정리 1장 웹의 세계에 오신 것을 환영합니다 세 가지 약속, 세 가지 언어 2장 개발 언어 총정리 CGI로부터 Ajax로의 변천 3장 서버 총정리 정적 콘텐츠, 동적 콘텐츠, 캐시를 잘 취급하는 구성 4장 데이터베이스 총정리 RDBMS와 NoSQL의 혈도 5장 클라우드 총정리 SaaS·Paas·laaS의 차이 특집② 10년 후에도 유용한 습관을 습득하기 위한 코딩 기초 지식 1장 깔끔한 코드의 중요성 개발 효율을 높이기 위한 기본 중의 기본 2장 적절한 이름을 붙이고 불필요한 주석은 붙이지 않는다 이름, 주석의 와 × 3장 TDD(테스트 주도 개발)의 실전 개발 중에 깨달은 것을 계속해서 코드에 살리기 4장 항상 리팩토링을 한다 개발 코드의 퇴보를 막기 위한 포인트 5장 하나의 메소드가 할 수 있는 것은 하나로 한다 중복을 피하고, 추상화하고, 인수를 줄인다 6장 클래스의 책임은 하나로 한다 판단 기준과 상속, 위임, mix-in의 적절한 사용 7장 예외 처리도 하나의 처리라고 생각하기 예상 외의 것을 예상하여 프로그램의 폭주를 미연에 방지하기 8장 메타 프로그래밍을 이해하기 동적으로 메소드를 정의하는 강력한 ‘흑마술’과 사귀는 방법 특집③ 설계의 첫걸음-익숙해지고 싶은 좋은 설계에 대한 기초 지식 1장 설계란 무엇인가 목적, 과정, 성과물 2장 설계의 원칙 의존성, 명명, 추상화 3장 실전 설계의 첫걸음 처리의 공통화, 안정적인 의존 4장 클래스 설계의 실전 방법론, 중간층, 테스트와 설계 5장 웹 애플리케이션의 설계 레이어화, URL 설계, MVC 아키텍처 6장 애플리케이션 로직의 설계 도메인층, 엔티티, 데이터베이스의 설계 특집 데이터베이스 두뇌가 되는 첫걸음 데이터베이스&SQL 입문-집적된 데이터를 자유자재로 조종하기 위한 기본 중의 기본 1장 데이터베이스란 무엇인가 정보를 모으는 것만으로는 의미가 없다 2장 관계형 데이터베이스와 SQL 직관적인 2차원 표를 잘 다루기 위한 데이터 조작 언어의 등장 3장 데이터 조작의 기초 검색하고 선택하기 ~SELECT문 4장 뷰와 서브쿼리 이 멋진 세상 5장 중고급의 SQL 조건 분기, 집합 연산, 결합 연산 6장 트랜잭션과 갱신 트러블에 의한 데이터 불일치를 방지하는 DBMS 의 구조 특집 클라우드 시대의 인프라 지식-웹 엔지니어가 알아야 할 네트워크 및 서버의 구조 1장 왜 인프라 지식이 필요한가 이번 특집의 목표 2장 ‘인프라’의 등장인물이란 레이어와 하드웨어, 미들웨어의 정리 3장 네트워크의 기초, 파악해 두었는가 TCP/IP 입문 4장 서버가 ‘느려진다’라는 것은 무엇인가 부하의 정체를 파악하는 지표와 툴 5장 모니터링으로부터 무엇을 알아낼 것인가 서비스 모니터링과 리소스 모니터링링 APPENDIX 트위터 시대, 엔지니어의 커뮤니케이션 기술 찾아보기 |
|
신입 엔지니어들의 경우, 새로운 환경 및 낯선 전문 용어에 대한 기대와 불안으로 머릿속이 가득할 거라 생각한다. 그 와중에 하루라도 빨리 ‘전문가’가 되기 위해서는 어떻게 하면 좋을까? 이 특집에서는 개발 언어, 서버, 데이터베이스, 클라우드의 각 분야를 철저하게 정리하여 소개한다. 중/상급자들에게도 전문 분야 이외의 기술을 되돌아보는 것은 좋은 참고가 될 것이다. 각 장의 마지막에는 선배들이 추천하는 필독서를 기재하였다. 프로그래머로서 첫걸음을 딛기 위한 지식들로 가득 차 있다.
_1(특집① 신입 엔지니어 시절에 파악해 두어야 할 웹 기술 총정리) 아무리 지저분한 코드라도 그것이 동작하는 것이라면 컴퓨터는 그 프로그램을 올바로 실행할 수 있을 것이다. 그 점에 있어서는 코드가 지저분하더라도 문제는 없다. 그러나 동작하는 것을 한 번 만들어서 그걸로 끝인 소프트웨어는 그다지 많지 않다. 대체로 사양 변경 및 버그 수정 등으로 새로운 변경을 더하게 된다. 그때, 변경을 하는 프로그래머는 기존 코드에 대해서 이해할 필요가 있다. _87 이야기를 단순화하자면 소프트웨어 개발에는 무엇을 만들까 생각하는 공정과, 어떻게 만들까 생각하는 공정이라는 두 가지 공정이 있다. 그림 1의 설계는 어떻게 만들까를 생각하는 행위다. 설계의 성과물은 소스 코드(이하 코드)다. 왜냐하면, 어떻게 만들까를 정확하게 기술한 설계서가 바로 코드이기 때문이다. _177 관계형 데이터베이스는 지금까지 약 40년 동안 데이터베이스 모델로서 주류였었고, 앞으로도 당분간은 그럴 것이라 생각한다. 이렇듯 장수하는 것은 기술의 변화가 심한 IT 세계에서는 예외적인 현상이다. 관계형 데이터베이스가 장기간 생존할 수 있었던 이유는 이 모델이 범용적이고 다양한 용도에 대응 가능하기 때문이다. 동시에 다수의 트랜잭션을 처리해야 하는 OLTP(On-LineTransaction Processing)에서 복잡한 검색에 특화된 DWH(DataWareHouse)와 업데이트 부하가 높은 일괄 처리에 이르기까지, RDB는 어떠한 상황에서도 평균보다 높은 성능을 발휘하는 사용하기 편리한 모델이다. 다시 말해, 환경 변화에 강한 ‘유니버설 타입’의 데이터베이스라고 말할 수 있다 _259 IP 통신에서는 패킷이라는 작은 덩어리(통신 단위)를 상대에게 보낸다. IP 패킷은 발신자와 수신자를 의미하는 IP 주소를 비롯한 다양한 관리 정보를 포함하는 IP 헤더와, 보내려는 데이터를 포함한 페이로드로 구성된다. IP만으로는 통신 상대에게 패킷이 도착한 것을 보장할 수 없다는 점에 유의하기 바란다. 재전송 처리 및 수신 확인에는 상위 레이어인 TCP의 힘을 빌릴 필요가 있다 _336 저자는 프로그래밍 기술을 ‘독학’으로 배운 부분이 많은데, 그것은 결코 ‘혼자’서 얻어낸 것이 아니다. 여러 동료 기술자와의 커뮤니케이션을 통해 지식과 노하우를 내 것으로 만든 게 가장 좋은 양식이 되었다. 또한, 기술적 향상만이 아닌 다양한 사람들과의 교류를 통해 시야를 넓힐 수 있었다. 혹시 아는가? 프로그래밍이라는 공통의 화제를 통해 좋은 만남의 기회가 또 있을지. 커뮤니티에 뛰어드는 것은 처음에는 용기가 필요하지만, 여러분이 정말로 노력할 생각이 있다면 모두가 따뜻하게 맞이해 줄 것이다 _387 ---p.387 |