바쁜 팀장님 대신 알려주는 신입 PHP 개발자 안내서
회사에서 PHP 웹 애플리케이션 실무를 진행하기 위해서는 PHP 사용법 외에도 알아야 할 것이 많습니다. 팀장급 개발자분들과의 인터뷰를 통해 신입 개발자가 될 수 있는 한 빨리 알았으면 하는 것들의 목록을 도출하고, 저자가 개인적으로 중요하다고 여기는 주제를 추가하여 한 권의 책으로 엮었습니다.
단순히 사용법만을 전달하는 것이 아니라 위의 주제들을 ’왜 알아야 하는지’를 효과적으로 전달하기 위해 스토리를 도입했습니다. 이 책은 처음부터 끝까지 하나의 스토리로 연결되어 있습니다. 신입 개발자 이신입은 직무교육을 겸한 미션을 부여받습니다. 언뜻 보기에 굉장히 간단하게 보였던 미션이지만 이신입은 계속해서 문제에 부딪히게 됩니다. 각 문제를 해결하기 위해 다음의 지식들을 습득하여 미션을 완수합니다.
- 버전 관리 시스템
- 컴포저
- 가상머신을 이용한 개발 환경 구축
- 프론트 컨트롤러 패턴과 MVC 패턴
- HTTP와 REST
- 시큐어 코딩
- PHP 표준 권고
- PDO와 ORM
- 통합 개발 환경
대상 독자
이 책의 대상 독자는 초급 PHP 개발자입니다. 여기서 초급이라 함은 혼자서도 간단한 수준의 PHP 웹 애플리케이션은 만들고 배포할 수 있는 능력이 있는 개발자를 의미합니다. 이 책은 PHP 입문 서적이 아니므로, PHP 웹 애플리케이션 개발에 대한 기초 지식이 없는 분들께는 적합하지 않습니다.
들어가며
제1 장. 저장소가 뭔가요? - 버전 관리 시스템
1. 이신입 이야기
2. 왜 버전 관리 시스템을 사용할 줄 알아야 하는가
3. 업무에 필요한 최소한의 Git 사용방법 익히기
3.1. Git 설치
3.2. 사용자 설정하기
3.3. 원격 저장소 복제하기 - git clone
3.4. 브랜치(branch)
3.5. 커밋(commit)
3.6. 임시저장 - git stash
3.7. 병합하기 - git merge
3.8. 원격 저장소에 보내기 - git push
3.9. 원격 저장소 가져와서 병합하기 - git pull
3.10. 충돌 해결하기
3.11. 이전 코드로 되돌리기
4. 마치며
제2 장. 저장소의 소스코드를 받았는데 왜 안되죠? - 컴포저
1. 이신입 이야기
2. 이신입이 되어 봅시다
3. 컴포저를 사용하는 이유
3.1. 외부 라이브러리를 쉽게 설치할 수 있다
3.2. 설치한 라이브러리를 쉽게 사용할 수 있다
3.3. 여러 컴퓨터에서 똑같은 라이브러리 사용할 수 있다
4. 컴포저와 관련하여 알면 좋은 것들
4.1. 컴포저와 버전 관리 시스템
4.2. composer install과 composer update
4.3. 좋은 라이브러리 찾는 방법
4.4. 버전 지정 시 유의사항
5. 마치며
제3 장. 제 컴퓨터에서는 잘 되는데요? - 가상 머신을 이용한 개발 환경 구축
1. 이신입 이야기
2. 로컬 개발 환경 구축 시 가상 환경을 활용하는 것이 유용한 이유
2.1. 개발 환경은 실제 서비스 운영 환경과 같을수록 좋다
2.2. 여러 개발 환경이 동시에 필요한 경우가 있다
2.3. 가상화 해결책
3. 업무에 필요한 최소한의 도커 익히기
3.1. 도커로 공유받은 개발 환경 구축하기
3.2. 도커 기능을 최소한으로 사용해서 가상 환경 만들기
4. 마치며
제4 장.왜 이렇게 복잡한 구조를 쓰는거죠? - 프런트 컨트롤러 패턴과 MVC 패턴
1. 이신입 이야기
2. PHP 입문서와 튜토리얼의 함정
3. 관심사의 분리 (Separation of Concerns, SoC)
4. 모델-뷰-컨트롤러 (MVC, Model-View-Contruller) 패턴
4.1. MVC 패턴이란
4.2. MVC 패턴을 사용하면 좋은 점
5. 프런트 컨트롤러(Front Contruller) 패턴
5.1. 프런트 컨트롤러 패턴이란
5.2. 프런트 컨트롤러를 사용하면 좋은 점
6. 이신입이 되어 봅시다
7. 마치며
8. 참고자료
제5 장. GET, POST는 알겠는데 PUT, DELETE는 뭔가요? - HTTP와 REST
1. 이신입 이야기
2. REST
2.1. 자원 식별
2.2. 표현을 통한 자원 조작
2.3. 자기-서술적 메시지
2.4. 애플리케이션 상태 엔진으로서의 하이퍼미디어 (Hypermedia As the Engine of Application State, HATEOAS)
3. 이신입이 되어봅시다
4. 마치며
제6 장. 그렇게까지 해야 하나요? - 시큐어 코딩
1. 이신입 이야기
2. 믿어서 생기는 일
2.1. SQL 인젝션 (SQL Injection)
2.2. 크로스 사이트 스크립팅 (Cross-Site Scripting, XSS)
2.3. 크로스 사이트 요청 변조 (Cross-Site Request Forgery, CSRF, XSRF)
3. 최소한의 시큐어 코딩: 유효성 검사(Validating)-입력값의 위험 제거(Sanitizing)-출력 예외 처리(Escaping)
3.1. 유효성 검사
3.2. 입력값의 위험 제거
3.3. 출력 예외 처리
4. 이신입의 코드에 최소한의 시큐어 코딩 적용해보기
4.1. 유효성 검사
4.2. 출력 예외 처리를 통한 크로스 사이트 스크립트 공격 방어
4.3. 입력값 위험 제거를 통한 SQL 인젝션 방어
4.4. CSRF 공격 방어
5. 마치며
제7 장. 그냥 제 스타일대로 하면 안되나요? - 코딩 컨벤션과 PHP 표준 권고
1. 이신입 이야기
2. PHP 표준 권고
3. 코딩 스타일 표준
3.1. 코딩 컨벤션
3.2. PSR-1 기본 코딩 표준
3.3. PSR-2 코딩 스타일 가이드
3.4. 코딩 스타일 검사 도구
4. 오토로딩 표준
5. 표준 인터페이스
6. 마치며
제8 장. MySQLi는 나쁜건가요? - PDO와 ORM
1. 이신입 이야기
2. PDO를 사용하면 좋은 점
3. PDO 사용 방법
3.1. 데이터베이스 연결
3.2. 쿼리 준비
3.3. 쿼리 파라미터에 값 배정(데이터 바인딩)
3.4. 쿼리 실행
3.5. 결과 값 조회
4. ORM(Object-Relational Mapping) 이란?
5. 마치며
제9 장. 메모장에 코딩하면 안되나요? - 통합 개발 환경
1. 이신입 이야기
2. 통합 개발 환경 없이도 개발을 잘해야 진짜 실력자?
3. IDE를 사용하면 좋은 점
3.1. 구문 강조
3.2. 코드 자동 완성
3.3. 코드 자동 생성
3.4. 리팩토링
3.5. 네비게이션
3.6. 실시간 코드 검사
3.7. 디버거 통합
3.8. 테스터 통합
4. 마치며
마치는 글
업투데이트북스에서 출간된 등록된 컨텐츠가 없습니다.