그럴듯해 보이는 목차
• SW 개발자의 종류
• 개발자가 되기 위한 기본적 지식
• 성장하기
SW 개발자의 종류
• 이런 얘기를 하는게 아닙니다.
• 좋은 개발자, 나쁜 개발자
• 서버개발자, 웹개발자, 모바일 개발자, PM..
SW 개발자의 종류
• 이런 얘기를 할꺼에요
• 대기업 개발자, 중소기업 개발자, 해외 개발자
• 어차피 개발자가 하는 일은 비슷해요
개발자가 되기 위한 기본지식
• 이런 얘기는 안해요
• 자료구조, OS, 데이터베이스, C, Java
개발자가 되기 위한 기본지식
• 이런 얘기 할꺼에요
• Mobile, Web, Back-end, Front-End
성장하기
!
• 훌륭한 개발자가 되기 위한 가이드를 제시합니다.
• 잘 먹고 잘 살기를 기원합니다.
하필이면 개발자를..?
우리는 누구?
• 학생?
• 개발자?
• 기획자?
• 아들? 딸?
• 잠재적 군인?
아직은 잘 모르지만
누구든 될 수 있다.
정말 개발을 좋아하는 삶
어쩔수 없이 돈때문에..
이유야 어쨌든 개발자는
돈을 법니다.
왜?
• 먹고 살아야 하고
• 결혼도 하고
• 차도 사고
• 부모님 용돈도 드리고
• 여행도 가고
• 학자금도 값고..ㅠㅠ
대기업 느님
나머지는?
중소기업 시작
너 자신을 믿어라(Be Yourself)
-샘 올렌스(조지아주 법무장관)
갈 곳이 없다…
너 자신을 알라
- 그리스 격언
한국 IT 80%를 차지하는
SI
SI에 가면 뭐해요?
제 경우를 예를 들자면
- 아무생각없이 놀았습니다
• 밴드도 하고
• 스쿠버도 하고
• 인라인도 타고
• 검도도 하고
• 바이크도 타고
그러다 보니…
• 2009 년 30살의 나이로 졸업
동시에
서브프라임
서브 프라임?
100 여군데 이력서를 넣고..
!
하청업체라 불리는곳에 합격.
하청업체?
그건 아청이고…
그럼 하청은?
아 그렇군!!!
농협카드와 함께 봄날을 맞이함
구조
• 농협 - 농협정보시스템 - LGCNS - 회사 - 나
내가 생각했던 직장인
!
특히 금융권
프로젝트 투입
입사1년만에
5일의 휴가를 받음…
다시 프로젝트 투입
가능할까?
• 집 -> 회사 1시간 30분
• 1시~2시 퇴근
• 9시 정시 출근
• 토요일은 기본, 일요일은 옵션
애가 생겼어요!!
병원에 다녀야 해요..
충격적인 비밀을 들음
• 차세대를 하면 산부인과에 같이 못감
• 애 얼굴을 자주 못봄
• 돈이 많이 필요함
• 이게 평생 될꺼임.
목표가 생김(나름 대기업 간판)
입사할 수는 있으나.
• 오지 말라고 함
• 거기서 거기
이 바닥을 뜨자!!!
꺼져 이노무 회사!!!
살암인, 잡콜이야
대세는 웹, 모바일
갈곳이 없음..
Java 못함
C 못함
웹은 뭔지.
모바일???
엔지니어?
다 필요없고..
• 연봉/복지 안따짐
• 정시 퇴근만 하면 됨.
• 경력 세탁은 내가 할꺼임
처음으로..
!
집에 6시 30분에 도착..
회사를 옮겼더니
대학원, 스터디, 개발자 모임
Now..
• 제 직책은.
• 두 아들의 아빠
• 10시에 어린이집
• 장보기
• 4시에 어린이집
• 백수
Now..
• 오픈 프론티어 멤버
• URQA- 오픈소스 커미터
• Fullstack 개발자
• 할줄 아는거: javascript, angularJS, ruby, python, go,
redis, MongoDB, Scala, android, etc..
만족하며 살고 있음.
애초에 대기업을
가지?
대기업을 갑시다!!!
엄청 많음!!!
!
!
하지만 들어가고 못들어가고 문제가 아니라
실제 수행업무가 중요!!
1000 ft View
• 군대 문화
• 술, 회식
• 정치
외국 회사로!!
훨신 더 많아!!!
채용 프로세스
• 서류 면접
• 전화 면접
• 온사이트 (On-site) 면접
• 최소 3회 - 7 회
• 최소 5시간 - 12시간
프리랜서
Free + Lancer
프리랜서 = 용병
SI 산업
금융, 통신, 공공, 의료
사회 현상의 흐름을 파악
항상 새로운 것
• 새로운 업무 환경
• 새로운 사람들
• 새로운 업무
돈?
• 초급: 20대 후반
• 중급: 30대 초반
• 고급: 30대 후반
돈?
• 대한민국 평균 연봉보다 많다.
• IT 산업군과 비교해도 많다.
돈?
• 단, 퇴직금 제외
• 복지도 제외
경력?
경력?
• 원하는 경력대로 커리어 패스를 찍을 수 있다.
• 한 업무에 정통하면 인정받으면서 일할 수 있다.
• 찾지 않아도 찾아온다.
경력?
• 단, 스킬을 잘못 찍으면 망한다.
경력?
• 인생은 디아블로가 아님..
안정된 고용환경
업무 환경
업무 환경
• 이직이 쉬움
안좋은점
일자리
계약직
전문성
다 잘해야함..
!
노래, 춤은 기본
!
SSD도 혼자 교체, 손글씨, 양궁
Requirement
• 프로그래밍 실력은 기본
• 업무에 대해서도 빠삭해야 하고
• 전화응대도 잘해야 하고
• 분위기도 잘 맞춰줘야 하고(사무실, 회식)
• 치킨도 잘 튀겨야….
방법론
원래는 이렇게..
실제는…
그런게 어딨어.. 그냥 하는거지
일정
상황이 이러다 보니..
집에 못감..
일정이 이러다 보니..
!
개발자가 가고 싶은 회사들..
필요한 기술들..
• 면접: 기본 3차 ~ 7차
• 스킬: Java, JS, C, C++, php, python, ruby, object-C
HTML5, CSS, etc..
못감..
좋은 회사의 기준은
먹고 살만한 월급
!
최신 장비
!
기술 습득
!
이라고 보통 생각함
!
방법?
!
회사를 차리던가..
회사를 차리든.
!
회사에 입사를 하든.
!
알면 도움이 되는 기본 지식들..
Python.
-Language
Framework?
소프트웨어 프레임워크(software framework)
는 복잡한 문제를 해결하거나 서술하는 데 사용
되는 기본 개념 구조이다. 간단히 뼈대, 골조(骨
組), 프레임워크(framework)라고도 한다.
Full Stack
Server, Network, and Hosting Environment.
Data Modeling
Business Logic
API layer / Action Layer / MVC
User Interface
User Experience
Understanding what the customer and the business need.
납땜에서 영업까지
1인 기업
프로그래밍 언어
• 언어는 내 생각을 구현하기 위한 도구
• 모바일 - Java, Objective C, C#
• 웹서버 - CGI, ASP, PHP, JAVA
• 게임 - C#, C++
• 디자인? - 포토샵, 일러스트레이터, 페인트?
• 관리 - 엑셀, 파워포인트
프레임워크
• Ruby - Rails, Sinatra
• Python - Django, Flask
• Java - Spring, Spark
• C# - .Net, Micro
왜?
영역이 다르다
• DB - Backend - Frontend - UX - 고객
• 영역 별로 사용하는 언어가 다름
과장님은 엑셀로 이야기해요
고객
• Design
• Speed
• UI/UX
• Pay
UI/UX(기획자)
• UI/UX
• Cost
• Cash Cow
Front-end
• Fast Script
• Layout
• Dynamic
Back-end
• High Availability
• High Tech
• Simple/Complex
• High Performance
Database
• Shard
• Replication
• Data
1000 ft View
개략적으로 살펴봅시다
뭐 먹고 살지 고민중…
!
아이디어가 하나 떠오름!!!
웹 페이지도 만들고
!
앱도 하나 만들어야징!!
대박 날것 같음!!
당연한 얘기지만.
• 컴퓨터 부터 구입…
• 혹은 집에 있는 컴퓨터.
• 또는 학교
당연한 얘기지만.
• 언어를 배워야함
code school
code academy
code.org
lynda.com
일단 게시판부터…
• HTML로 만들고
• 로그인 기능 추가해서 게시판 만들어야지
게시판 글을 어딘가 저장
을… 해야 하네?
데이터 베이스
• 데이터베이스(database)는 여러 응용 시스템들의 통합된
정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음이
다.
• 무료로 제공되는 Mysql 로 시작..
게시판 만들고 DB 연결
했더니..
뭔가 이쁘게 만들어 봐야
겠다..
bootstrap
foundation
skeleton
gumbyframework
CSS frameworks are pre-prepared software frameworks that
are meant to allow for easier, more standards-compliant web
design using the Cascading Style Sheets language
그럴듯하게 페이지를 만듬
문제는..
• 개인 컴퓨터(집, 학교)는 항상 켜놓아야 함…
• 호스팅을 알아봄
페이스북 만큼은 아니지만..
그래도.. 사람들이 꾸준히 들어옴
요청도 들어옴
• 페이스북으로 로그인 하게 해주세요
• 채팅 할수 있게 해주세요
• 바로가기 메뉴 추가 해주세요.
• 모바일도 추가해 주세요
로그인 연동시키자
openID, auth
• OpenID (OID) is an open standard and
decentralized protocol by the non-profit OpenID
Foundation that allows users to be authenticated
by certain co-operating sites (known as Relying
Parties or RP) using a third party service
!
• OAuth is an open standard for authorization.
사이트가 자꾸 죽어요
이유?
튜닝
Load Balance
Load Balance
어느 정도까지는 커버됨.
- 모바일이 추가 되기 전까지
모바일을 대응하기 위해
• REST-API!
• 2000년 로이 필딩(Roy Fielding)이 박사학위 청구 논문에서
REST(Representational State Transfer)를 소프트웨어 아키텍처 스타
일로 제안한 후 OPEN API를 개발하는 기본으로 급속도로 확산되고 있다.!
!
• REST는 SOAP이 서비스 지향 구조인 것과 달리 자원지향구조(ROA:
Resource Oriented Architecture)로 웹 사이트의 컨텐츠(Text, 이미지,
동영상), DB의 내용 등을 전부 하나의 자원으로 파악하여 각 자원의 고유한
URI(Uniform Resource Identifier)를 부여하고, 해당 자원에 대한
CRUD(Create, Read, Update, Delete) 작업을 HTTP의 기본 명령어인
POST, GET, PUT, DELETE를 통해서 처리한다.
REST!!!
Sinatra
Flask
Django + python
MySQL
현재상황..
갑자기
 증가하는
 사용자
Ideal
또한번의 튜닝
Load Balancer
REST REST REST
MariaMysql Mongo …
Scalability
변하는
 요구조건
앞으로
 가야할
 상황..
아… 혼자는 못하겠다.
-팀웍
필요한 툴들
이슈 트래커
trello.com
unfuddle.com
pivotal tracker
사람도 확보했고..
Worker
Queue
URQA - 실습편
• URQA - Android Crash report
• 350개 개인/업체 사용중
URQA Committers
무료 어플리케이션
개인
69%
회사
31%
유료 어플리케이션
개인
75%
회사
25%
안드로이드
 마켓
 개발자
 현황
개인
 개발자:
 73%
출처 : http://offers2.compuware.com/rs/compuware/images/Mobile_App_Survey_Report.pdf
50% 이상이 앱이 죽거나 멈추거나!
느려지는 문제를 겪는다.
출처 : http://offers2.compuware.com/rs/compuware/images/Mobile_App_Survey_Report.pdf
사후
 크래쉬
 리포트
 서비스로
 
 
그나마
 다양한
 문제를
 대처할수
 있음
BugSense
 
77%
Airbrake
 
0%
zubhium
 
0%
HockeyApp
 
2%
Crittercism
 
5%
ACRA
 
15%
not
 use
 
81%
Airbrake
 
0%
zubhium
 
0%
HockeyApp
 
0%
Crittercism
 
1%
ACRA
 
3%
BugSense
 
14%
not
 use
 
90%
Airbrake
 
0%
Zubhium
 
0%
Critticism
 
0%
HockeyApp
 
0%
ACRA
 
3%Bugsense
 
7%
새로운
 앱
 중
 Bug
 report를
 사용하는
 앱
전체
 앱
 중
 Bug
 report를
 사용하는
 앱2013년
 Play
 마켓
 앱
 개수
 
버그리포트
 시장
 점유율
왜
 안쓰지?
 불편한가?
3~7세
 어린이
 신발
 살때
 기준은?
귀여운
  기능성
Pain
 Point
비즈니스
 모델
 캔버스는
 창업자들이
 생각한
 가설이고,

고객
 개발은
 창업자들이
 생각해낸
 해결책을
 검증하기
 보다는
 

창업자들이
 가정한
 문제가
 진짜
 고객의
 문제인지
 검증하는
 것
이다!



Steve
 Blank
 
!
Lean
 Startup의
 아버지
 
Customer
 Development
 Method
 저자
고객의
 
 문제를
 해결하자!

=

 우리
 소프트웨어의
 핵심가치
 찾기
Sleep
 If
 U
 Can
 Sleep
 If

OSS개발자 포럼 캠프