SlideShare a Scribd company logo
와 함께한 성장기
박종훈
(종박이)
2016. 10
개발
이 발표에서는…
PHP를 통해 개발을 배운
초보 개발자의 성장기입니다
기술적 이야기 1%
주절주절 경험담 99%
개발과의 첫 만남
• 2005년
• 13살 (초등학교 6학년)
• 한글 비주얼 툴 `창조`를 통해 첫 프로그래밍 입문
PHP와의 첫 만남
• 2006년 (14살/중학교 1학년)
• 내 홈페이지를 갖고 싶었다.
• 창조유저그룹 홈페이지가 제로보드4 였다.
(이때부터 PHP를 접함)
PHP 입문 초기 (1)
• 리사파파님께서 올려주신 winapm으로 서버 구축 후
제로보드4를 가지고 놀며 입문
항상 설렜던 화면!
• 이 설치 화면을 보면서
`나도 관리자야` 하며 속으로 뿌듯했음
(저만 그런 것이 아닌 듯…?)
PHP 입문 초기 (2)
• NZEO.com 강좌를 통해 PHP를 배움
• 헤더/푸터 include
• 제로보드를 커스터마이징 하면서 배움
• MySQL과 DB연동 (**)
• SQL 쿼리 사용 (**)
• 테이블 관계/기본키 개념없이 SQL따라하며 입문…
PHP 입문 초기 (3)
• 제로보드 스킨을 만들면서
자연스레 HTML/CSS를 익히게 됨.
• 제로보드 코드를 분석하며
스파게티 코드를 익힘(…)
다양한 게시판 사용…
• 제로보드4 외에 그누보드, GR보드 등을 사용함.
• 개발보다 여러 게시판들을 경험하는 것이 즐거웠음.
제로보드4 스킨이 많고, 사용하기 쉬웠고, 커스터마이징 무궁무진
그누보드4 강좌가 적어서 슬펐음
GR보드 스킨이 이뻐서 좋았음
SunBoard 기본 화면이 심플해서 좋았음.
여기까지가 중학교 였습니다
(2005 ~ 2009)
직접 만들고 싶었다!
다양한 게시판들을 사용하다 보니
직접 만들어보고 싶었다!
DIY 정신
(사실 include하다 꼬이는게 빡쳐서)
그래서 책을 샀습니다!
책을 샀으니 공부를 해볼까…?
• 방학 내내 게시판 만들기에 집중
• 제로보드4 소스를 뜯어보며 JpBoard를 제작
그러던 중 닥친 시련…
제로보드4랑 너무 다르잖아
기존방식 → 새로운 방식
zb5 소스코드를 분석하려고 했으나…
“이거 당췌 머 로 만들었어??”
패러다임의 변화
• 그러던 중 MetaBBS 라는 녀석!
• 심플하고, 딱 내 취향인데?
MetaBBS
• 심지어 소스코드도 몇 백 KB에 불과하고 심플함.
• 그러나 zb5처럼 기존방식과는 달랐음.
처음 접한 mod_rewrite
• 기존 방식과 가장 다른 점은 URL주소!
• 기존에는 URL이 곧 파일명이었지만,
rewrite방식은 그렇지 않아 초기 분석이 힘들었음
도대체 이거 무슨 파일에 있는거야??
MVC 그리고 객체지향
• MetaBBS는 객체지향설계에 MVC구조
• 이때부터 (뭔가 있어보이는) class 키워드를 사용하기 시작
• 물론 class를 사용하는 절차지향적 코드ㅠㅠ
• 그렇지만 상속의 초보적인 개념을 익힘
플러그인 시스템
• MetaBBS의 플러그인 시스템이 맘에 들었음
• 기존 제로보드4 에서는 상상도 못하는 기능
`어떻게 만들었을까` 일주일 동안 고민하며 분석함
인터페이스와 event-driven 깨달음
• MetaBBS의 플러그인 시스템 설계를 깨달음
• 사실 보면 별거 없었음
• 이벤트 핸들러와 트리거 방식
• JpBoard에도 플러그인 시스템 추가
• MetaBBS는 다양한 DBMS를 지원하는데,
이를 분석하며 인터페이스와 추상화도 자연스럽게 깨달음
웹 보안에 대한 공부
• 개발뿐만 아니라 해킹에도 관심이 많았음
• [PHP 보안]는 PHP 보안 서적이지만,
이만큼 간단하고 간결한 책 없는 듯함
자바스크립트 패러다임
• MetaBBS의 댓글 작성 기능이 Ajax였음
• 너무 멋있는 기술인 것 같아 책도 사며 읽음
• 역시 JpBoard에 적용함..
• Prototype.js 등도 익히면서 자바스크립트와 친해짐
우리 XE가 달라보여요!
• 여러 지식을 쌓은 뒤 XE코드를 다시 보기 시작함.
• rewrite, MVC, 객체지향, 이벤트 시스템
• 그랬더니 XE코드가 읽히기 시작함
• (물론 그 이후 XE를 사용해본적이 없는 것이 함정)
고등학교 생활을 함께한 PHP
• 얻은 것은
• 프로그래밍적 사고
• 웹 개발의 전반적인 지식 (PHP개발에 국한된 것이 아닌)
• 웹 해킹과 보안
• 테이블 설계
• 리팩토링
• 객체지향에 대한 이해
• 소스코드를 분석하는 방법
그리고 또 개발
• 홈페이지는 JpBoard 기반
(아직 해킹 당하지 않은 게 신기)
군대 전역 후 또 한번의 변화
• 다시는 안 살 줄 알았던 PHP 서적
Modern PHP
모던 PHP 와의 만남
• 신선한 충격과 함께 JpBoard를 모던한 방식으로 개발
• 결론
• composer와 packigist는 최고다 (DIY정신따위…)
• 깔끔한 문법이 많이 도입되었다
• 거참 PHP 개발하기 참 좋은 날씨네
PHP를 통한 성장기 - 마무리
• PHP와 함께 (직간접적으로) 지식의 80%이상을 습득
• 객체지향 설계
• 데이터베이스 설계
• 프레임워크 설계
• HTML/CSS/JS
• 웹 해킹/보안
• 정규표현식
• 기타 등등…
조금 다른 사고방식
PHP가 x같으니 떠나자!
x같은 PHP로도 가능할까?
지금은…
• 인턴생활을 하고 있습니다
• Java / Spring 개발
언어는 다르지만 PHP를 통해
얻은 지식을 모두 사용하고 있습니다!
프로젝트 홍보
• 모던PHP를 익히기 위한 개인 프로젝트
• 리팩토링 공부
• 테스트 코드 공부
• 프레임워크 설계 공부
• Twig
• Doctrine
• PSR-7
contributor 늘리는게 소원인 프로젝트
https://github.com/jongpak/prob-framework
감사합니다
끝

More Related Content

PPTX
MFC 발견 (1)
PDF
EMOCON 2015 - Jspm & systemjs
PDF
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
PDF
[부스트캠프 Tech Talk] 김동현_리팩터링을 통한 내실 다지기
PPTX
[9xD] 개발자, 스터디로 성장하기
PPTX
인내심없는 개발자를 위한 자바스크립트 - 한줄씩 영어공부하기.
PPTX
[15.09.17] 인터넷과 웹의 역사 그리고 현재의 트렌드
PDF
[D2 campus]착 하면 척! chak 서비스 개발기
MFC 발견 (1)
EMOCON 2015 - Jspm & systemjs
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
[부스트캠프 Tech Talk] 김동현_리팩터링을 통한 내실 다지기
[9xD] 개발자, 스터디로 성장하기
인내심없는 개발자를 위한 자바스크립트 - 한줄씩 영어공부하기.
[15.09.17] 인터넷과 웹의 역사 그리고 현재의 트렌드
[D2 campus]착 하면 척! chak 서비스 개발기

What's hot (20)

PDF
버그 트래킹 시스템 Mantis의 사용 그리고 예제
PDF
패스트캠퍼스 프론트엔드 강의 오리엔테이션
PDF
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
PDF
Ruby_01_Ruby Basic
PDF
[강의소개] 파이썬으로 시작하는 웹 프로그래밍 CAMP 1기
PDF
[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대
PDF
깃헙을 이용하여 호스팅하기
PDF
깃헙 페이지로 호스팅 하기 사전 자료
PDF
React principle
PPTX
Spring4 + my batis3 + mariadb (maven) 게시판 예제 1
PPTX
Javascript 박재은
PDF
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
PPTX
TBB 소개
PPTX
멸종하는 공룡이 되지 않으려면
PPTX
2010 연말행사 온라인스터디
PDF
Docker registry swift_junojunho
PPTX
병렬 프로그래밍 패러다임
PDF
PDF
Framer js a/s talk
PDF
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
버그 트래킹 시스템 Mantis의 사용 그리고 예제
패스트캠퍼스 프론트엔드 강의 오리엔테이션
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
Ruby_01_Ruby Basic
[강의소개] 파이썬으로 시작하는 웹 프로그래밍 CAMP 1기
[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대
깃헙을 이용하여 호스팅하기
깃헙 페이지로 호스팅 하기 사전 자료
React principle
Spring4 + my batis3 + mariadb (maven) 게시판 예제 1
Javascript 박재은
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
TBB 소개
멸종하는 공룡이 되지 않으려면
2010 연말행사 온라인스터디
Docker registry swift_junojunho
병렬 프로그래밍 패러다임
Framer js a/s talk
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
Ad

Viewers also liked (20)

PPTX
MFC 유틸리티 클래스
PPTX
MFC 발견 (2)
PPTX
MFC 개발설정
PPT
2 Professional MFC
DOCX
Phase 1 Documentation (Added System Req)
PPTX
Researching genre
PPTX
Font Research/Planning
PDF
Baritone TC Techniques 2016
DOCX
Updated Victor C V 1
PDF
Tuba Techniques 2016
PDF
Mellophone Techniques 2016
PDF
Presentation 2
PDF
Baritone BC Techniques 2016
DOC
Shani waninger
PPTX
Mise en scene
PPTX
MFC 핵심개념
PPTX
테스트 코드 삽질기 + 리팩토링
PDF
스마트폰 혁명(김태우)
PDF
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
PDF
KAP 업종별기술세미나 12년 04월 #02
MFC 유틸리티 클래스
MFC 발견 (2)
MFC 개발설정
2 Professional MFC
Phase 1 Documentation (Added System Req)
Researching genre
Font Research/Planning
Baritone TC Techniques 2016
Updated Victor C V 1
Tuba Techniques 2016
Mellophone Techniques 2016
Presentation 2
Baritone BC Techniques 2016
Shani waninger
Mise en scene
MFC 핵심개념
테스트 코드 삽질기 + 리팩토링
스마트폰 혁명(김태우)
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
KAP 업종별기술세미나 12년 04월 #02
Ad

Similar to PHP와 함께 한 개발 성장기 (20)

PDF
PHP로 웹개발을 해보자
PDF
이제 막 웹개발자 되고싶은 분들께
PDF
현대고등학교 PHP 강의 - 1차시 (설리번 프로젝트)
PDF
티켓몬스터를 위한 PHP 개발 방법
PDF
『Modern PHP』 - 미리보기
PDF
Portfolio
PDF
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
PPTX
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
PPTX
처음 시작하는 라라벨
PPTX
my activities before getting a job
PDF
Php report
PDF
Modern PHP
PDF
[APM] Homepage bbs
PDF
2014 02-17 smart-happiness
PDF
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT
PDF
웹개발자가 알아야할 기술
PPTX
회사에서 새로운 기술_적용하기
PDF
CoreDot TechSeminar 2018 - Session1 Park Jihun
PDF
Final report201101
PDF
현대고등학교 PHP 강의 - 4차시 (설리번 프로젝트)
PHP로 웹개발을 해보자
이제 막 웹개발자 되고싶은 분들께
현대고등학교 PHP 강의 - 1차시 (설리번 프로젝트)
티켓몬스터를 위한 PHP 개발 방법
『Modern PHP』 - 미리보기
Portfolio
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
처음 시작하는 라라벨
my activities before getting a job
Php report
Modern PHP
[APM] Homepage bbs
2014 02-17 smart-happiness
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT
웹개발자가 알아야할 기술
회사에서 새로운 기술_적용하기
CoreDot TechSeminar 2018 - Session1 Park Jihun
Final report201101
현대고등학교 PHP 강의 - 4차시 (설리번 프로젝트)

PHP와 함께 한 개발 성장기

  • 2. 이 발표에서는… PHP를 통해 개발을 배운 초보 개발자의 성장기입니다 기술적 이야기 1% 주절주절 경험담 99%
  • 3. 개발과의 첫 만남 • 2005년 • 13살 (초등학교 6학년) • 한글 비주얼 툴 `창조`를 통해 첫 프로그래밍 입문
  • 4. PHP와의 첫 만남 • 2006년 (14살/중학교 1학년) • 내 홈페이지를 갖고 싶었다. • 창조유저그룹 홈페이지가 제로보드4 였다. (이때부터 PHP를 접함)
  • 5. PHP 입문 초기 (1) • 리사파파님께서 올려주신 winapm으로 서버 구축 후 제로보드4를 가지고 놀며 입문
  • 6. 항상 설렜던 화면! • 이 설치 화면을 보면서 `나도 관리자야` 하며 속으로 뿌듯했음 (저만 그런 것이 아닌 듯…?)
  • 7. PHP 입문 초기 (2) • NZEO.com 강좌를 통해 PHP를 배움 • 헤더/푸터 include • 제로보드를 커스터마이징 하면서 배움 • MySQL과 DB연동 (**) • SQL 쿼리 사용 (**) • 테이블 관계/기본키 개념없이 SQL따라하며 입문…
  • 8. PHP 입문 초기 (3) • 제로보드 스킨을 만들면서 자연스레 HTML/CSS를 익히게 됨. • 제로보드 코드를 분석하며 스파게티 코드를 익힘(…)
  • 9. 다양한 게시판 사용… • 제로보드4 외에 그누보드, GR보드 등을 사용함. • 개발보다 여러 게시판들을 경험하는 것이 즐거웠음. 제로보드4 스킨이 많고, 사용하기 쉬웠고, 커스터마이징 무궁무진 그누보드4 강좌가 적어서 슬펐음 GR보드 스킨이 이뻐서 좋았음 SunBoard 기본 화면이 심플해서 좋았음.
  • 11. 직접 만들고 싶었다! 다양한 게시판들을 사용하다 보니 직접 만들어보고 싶었다! DIY 정신 (사실 include하다 꼬이는게 빡쳐서)
  • 13. 책을 샀으니 공부를 해볼까…? • 방학 내내 게시판 만들기에 집중 • 제로보드4 소스를 뜯어보며 JpBoard를 제작
  • 14. 그러던 중 닥친 시련…
  • 16. 기존방식 → 새로운 방식 zb5 소스코드를 분석하려고 했으나… “이거 당췌 머 로 만들었어??”
  • 17. 패러다임의 변화 • 그러던 중 MetaBBS 라는 녀석! • 심플하고, 딱 내 취향인데?
  • 18. MetaBBS • 심지어 소스코드도 몇 백 KB에 불과하고 심플함. • 그러나 zb5처럼 기존방식과는 달랐음.
  • 19. 처음 접한 mod_rewrite • 기존 방식과 가장 다른 점은 URL주소! • 기존에는 URL이 곧 파일명이었지만, rewrite방식은 그렇지 않아 초기 분석이 힘들었음 도대체 이거 무슨 파일에 있는거야??
  • 20. MVC 그리고 객체지향 • MetaBBS는 객체지향설계에 MVC구조 • 이때부터 (뭔가 있어보이는) class 키워드를 사용하기 시작 • 물론 class를 사용하는 절차지향적 코드ㅠㅠ • 그렇지만 상속의 초보적인 개념을 익힘
  • 21. 플러그인 시스템 • MetaBBS의 플러그인 시스템이 맘에 들었음 • 기존 제로보드4 에서는 상상도 못하는 기능 `어떻게 만들었을까` 일주일 동안 고민하며 분석함
  • 22. 인터페이스와 event-driven 깨달음 • MetaBBS의 플러그인 시스템 설계를 깨달음 • 사실 보면 별거 없었음 • 이벤트 핸들러와 트리거 방식 • JpBoard에도 플러그인 시스템 추가 • MetaBBS는 다양한 DBMS를 지원하는데, 이를 분석하며 인터페이스와 추상화도 자연스럽게 깨달음
  • 23. 웹 보안에 대한 공부 • 개발뿐만 아니라 해킹에도 관심이 많았음 • [PHP 보안]는 PHP 보안 서적이지만, 이만큼 간단하고 간결한 책 없는 듯함
  • 24. 자바스크립트 패러다임 • MetaBBS의 댓글 작성 기능이 Ajax였음 • 너무 멋있는 기술인 것 같아 책도 사며 읽음 • 역시 JpBoard에 적용함.. • Prototype.js 등도 익히면서 자바스크립트와 친해짐
  • 25. 우리 XE가 달라보여요! • 여러 지식을 쌓은 뒤 XE코드를 다시 보기 시작함. • rewrite, MVC, 객체지향, 이벤트 시스템 • 그랬더니 XE코드가 읽히기 시작함 • (물론 그 이후 XE를 사용해본적이 없는 것이 함정)
  • 26. 고등학교 생활을 함께한 PHP • 얻은 것은 • 프로그래밍적 사고 • 웹 개발의 전반적인 지식 (PHP개발에 국한된 것이 아닌) • 웹 해킹과 보안 • 테이블 설계 • 리팩토링 • 객체지향에 대한 이해 • 소스코드를 분석하는 방법
  • 27. 그리고 또 개발 • 홈페이지는 JpBoard 기반 (아직 해킹 당하지 않은 게 신기)
  • 28. 군대 전역 후 또 한번의 변화 • 다시는 안 살 줄 알았던 PHP 서적 Modern PHP
  • 29. 모던 PHP 와의 만남 • 신선한 충격과 함께 JpBoard를 모던한 방식으로 개발 • 결론 • composer와 packigist는 최고다 (DIY정신따위…) • 깔끔한 문법이 많이 도입되었다 • 거참 PHP 개발하기 참 좋은 날씨네
  • 30. PHP를 통한 성장기 - 마무리 • PHP와 함께 (직간접적으로) 지식의 80%이상을 습득 • 객체지향 설계 • 데이터베이스 설계 • 프레임워크 설계 • HTML/CSS/JS • 웹 해킹/보안 • 정규표현식 • 기타 등등…
  • 31. 조금 다른 사고방식 PHP가 x같으니 떠나자! x같은 PHP로도 가능할까?
  • 32. 지금은… • 인턴생활을 하고 있습니다 • Java / Spring 개발 언어는 다르지만 PHP를 통해 얻은 지식을 모두 사용하고 있습니다!
  • 33. 프로젝트 홍보 • 모던PHP를 익히기 위한 개인 프로젝트 • 리팩토링 공부 • 테스트 코드 공부 • 프레임워크 설계 공부 • Twig • Doctrine • PSR-7 contributor 늘리는게 소원인 프로젝트 https://github.com/jongpak/prob-framework