6. 직무 유형별 필수 기술 – Server Engineer

Download Report

Transcript 6. 직무 유형별 필수 기술 – Server Engineer

Software Developer
Loadmap
2014. 04
Version 0.1
Agenda
 소프트웨어 기술 요소
 학사 커리큘럼에서 익힐 수 있는 것들
 전공 필수와 선택, 우선 순위는?
 소프트웨어 개발자 직무의 다양성과 변화
 소프트웨어 개발자 직무별 필수 기술 요소
 직무 유형별 필수 기술 정리
 학생으로서 공부해야 할 것들
소프트웨어 개발자 로드맵
1
1. 소프트웨어 기술 요소 ( 2014년 기준)
Java
객체모델링
마크업 언어
HTML5
패턴
iOS
TDD
SW 테스트
기능 테스트
프로젝트 관리
Java
UML/ 객체모델링
HQML/XHTML
HQML JS API
분석 패턴
Objective C
TDD
SW 테스트
Fit / Selenium
PMBOK
Java 네트워크
EA / Together
CSS
WebSocket
디자인 패턴
Mac OS / iOS
단위 테스트
테스팅 프로세스
JMeter
QA / Audit
Java 동시성
RSA
XML, XSLT
Socket.io
아키텍쳐 패턴
Cocoa touch
jUnit / dbUnit
테스트 관리
객체지향 Java
DDD
JSON
WebGL, Canvas
리팩토링
디버깅
C / C++
자료구조
플랫폼 - POJO
웹 아키텍쳐
서버 설계
안드로이드
데이터모델링
RDBMS
빌드 자동화
개발 프로세스
C / C++
Stack, Queue
Spring
웹아키텍쳐
채널 설계
Android OS
데이터 모델
오라클
Maven
UP / RUP
C / C++ 네트워크
문자셋
Apache/ Jetty
컴포넌트 설계
DB 최적화
MySQL
Nexus
Agile
C / C++ 동시성
표현식
HTTP 이해
플랫폼 설계
SQL
MS-SQL
Jenkins (CI)
SCRUM / XP
CMMI
객체지향 C++
Kanba
C# / .Net
요구사항
플랫폼 - OSGi
모바일 웹
보안
SW 아키텍쳐
빅데이터
NoSQL DB
코드 진단
조직
C#
요구사항명세서
OSGi
Responsive
Oauth / SSO
빅데이터 개요
Neo4J
코드 규약
리더쉽
C# 네트워크
UseCase
Equinox, Felix
Design
Spring Security
아키텍팅
프로세스
취약점 분석
조직관리
User story
Virgo, Aries
PhoneGap
Identity / Access
빅데이터
사례연구
Mongo DB
C# 동시성
HBase
의존성 분석
조직 심리학
객체지향 C#
요구사항워크샾
Karaf
Titanium
데이터 보안
스타일 체크
창의력과 혁신
Javascript
형상관리
플랫폼 / J2EE
웹프레임워크
DataFramework
아키텍쳐 설계
RCP
빅데이터 분석
비즈니스
논리
Javascript
SVN
Servlet /EJB
Struts
JPA/ myBatis
웹 프레임워크
Rich Client
Hadoop
제안서 작성
논리적인 사고
jQuery
Git
Tomcat
Spring MVC
아키텍쳐 문서화
IEEE 1471
Hibernate
연계 프레임워크
GWT
MapReduce
제안 프로세스
추론과 토론
Sencha
Jboss / Glassfish
iBatis
통신 프레임워크
SWT 플러그인
R
영엽 프로세스
논리적인 글쓰기
JS 패턴
J(2)EE Blueprint
Spring Data
변환 유틸리티
RAP
서버스크립트
플랫폼 / 리눅스
플랫폼 / 클라우드
웹 기획
REST
웹 서비스
EAI
비즈니스 기술
비즈니스 모델링
표현
JSP/Servlet
Linux OS
클라우드
IA 기획
Jersey / Restlet
SOAP
SOA
워크플로우
BPMN
프리젠테이션
Node.js
시스템
프로그래밍
IaaS / AWS
WireFrame
REST API 설계
WSDL
EAI/ESB/SCA
BPM
BABOK
기술문서 작성
PaasS / GAE
Storyboard
Open API
UDDI
MOM
비즈니스 룰
REA
아이디어 시각화
ActiveMQ
CEP
PHP, Ruby
Python/ASP.Net
시나리오 구성
참조 : http://www.nextree.co.kr/wp-content/uploads/2014/01/tsong_20140207_roadmap_intro_01.png
소프트웨어 개발자 로드맵
2
2. 학사 커리큘럼에서 익힐 수 있는 것들
Java
객체모델링
Java
UML/ 객체모델링
Java 네트워크
EA / Together
Java 동시성
RSA
객체지향 Java
DDD
C / C++
자료구조
데이터모델링
RDBMS
C / C++
Stack, Queue
데이터 모델
오라클
C / C++ 네트워크
문자셋
DB 최적화
MySQL
C / C++ 동시성
표현식
SQL
MS-SQL
프로젝트 관리
대학에서 배울 수 있는 것은 의외로 적다.
PMBOK
IT 분야 기술 변화와 흐름이 빠르기 때문에 도저히 따라 잡을 수 없다.
QA / Audit
CMMI
객체지향 C++
요구사항
요구사항명세서
UseCase
User story
요구사항워크샾
하지만, 대학에서 배우는 것들이야 말로 기본이고 공통 요소에 해당한다.
더불어 10년 후, 기술 흐름(trend)이 바뀌더라도 유효한 지식이 된다.
논리
논리적인 사고
추론과 토론
논리적인 글쓰기
플랫폼 / 리눅스
Linux OS
시스템
프로그래밍
기초 지식이 탄탄한 사람은 응용 분야를 쉽게 터득할 수 있다.
표현
기초가 없는 사람은 아무리 노력해도 원리(principle)를 이해하지 못한다.
기술 사용자(tech user)가 될 것인가? 아니면, 개발자(developer)가 될 것인가?
프리젠테이션
기술문서 작성
아이디어 시각화
시나리오 구성
소프트웨어 개발자 로드맵
3
3. 전공 필수와 선택, 우선순위는?
[ 필수 과목 ]
[ 선택 과목 ]
[ 개인 과제 ]
프로그래밍 언어
컴퓨터 그래픽스
오픈 소스
객체지향 이론
인공지능
프레임워크
UML
소프트웨어 공학
디자인 패턴
모바일 디바이스 프로그래밍
TDD, Agile
단위 테스트
Refactoring
형상 및 빌드 관리
Build tools
서버 관리 기술
C, C++
Java, C#
데이터 처리
자료구조론
데이터베이스
정보 보안
알고리즘과 컴파일러
알고리즘
컴파일러
멀티미디어
운영체제
수치해석
네트워크
[ 필수 과목은? ]
[ 개인 과제는? ]
장래 희망과 상관없이 매우 열심히 학습할 것.
공부해두면 면접 볼 때 아주 유리해질 수 있다.
‘희망과 미래는 별개일 수 있다.’ 그렇다면, 만약을 대비해라.
모르면 입사한 후에 ‘군대처럼 혼나면서...’ 배우게 된다.
소프트웨어 개발자 로드맵
4
4. 소프트웨어 개발자 직무의 다양성과 변화
SW 국가직무능력표준(한국산업인력공단)에서 분류한 것 이외에도 다양한 직종이 매년 나타나고 사라지고 있다.
5년 후 (졸업할 때?) 어떤 직무가 나타나고 사라질 지 모르기 때문에
틈틈히 다양한 스터디 정보, 컨퍼런스, 세미나, IT 뉴스, 뉴스레터를 통해 간접 경험을 획득해야 한다.
소프트웨어 개발자 로드맵
5
5. 소프트웨어 개발자 직무 유형
SI (System Integration)
Software Architect
Game developer
Build engineer
RCP developer
UI / UX specialist
Server Engineer
Analysis specialist
QA / Tester
Web front engineer
Mobile developer
Data scientist
Web publisher
Online service
developer
Data Administrator
그외에 다양한 직무들
Domain modeler
Data modeler
BigData specialist
4 ~ 5년 마다 새로운 직무가 생기고 또 사라진다. 없어지는 직무보다 새롭게 나타나는 직무가 더욱 많다.
소프트웨어 기술 직종에서 살아남기 위해서는 은퇴하기 직전까지 ‘늘 새롭게 공부해야’만 한다.
소프트웨어 개발자 로드맵
Embedded Software
developer
6
6. 직무 유형별 필수 기술 – Software Architect
Java
객체모델링
패턴
TDD
SW 테스트
기능 테스트
프로젝트 관리
Java
UML/ 객체모델링
분석 패턴
TDD
SW 테스트
Fit / Selenium
PMBOK
Java 네트워크
EA / Together
디자인 패턴
단위 테스트
테스팅 프로세스
JMeter
QA / Audit
Java 동시성
RSA
아키텍쳐 패턴
jUnit / dbUnit
테스트 관리
객체지향 Java
DDD
리팩토링
C / C++
자료구조
플랫폼 - POJO
웹 아키텍쳐
서버 설계
데이터모델링
개발 프로세스
C / C++
Stack, Queue
Spring
웹아키텍쳐
채널 설계
데이터 모델
UP / RUP
C / C++ 네트워크
문자셋
Apache/ Jetty
컴포넌트 설계
DB 최적화
Agile
C / C++ 동시성
표현식
HTTP 이해
플랫폼 설계
SQL
SCRUM / XP
CMMI
객체지향 C++
Kanba
C# / .Net
요구사항
보안
SW 아키텍쳐
빅데이터
NoSQL DB
코드 진단
조직
C#
요구사항명세서
Oauth / SSO
빅데이터 개요
Neo4J
코드 규약
리더쉽
C# 네트워크
UseCase
Spring Security
아키텍팅
프로세스
취약점 분석
조직관리
User story
Identity / Access
빅데이터
사례연구
Mongo DB
C# 동시성
HBase
의존성 분석
조직 심리학
객체지향 C#
요구사항워크샾
데이터 보안
스타일 체크
창의력과 혁신
아키텍쳐 문서화
IEEE 1471
형상관리
플랫폼 / J2EE
웹프레임워크
DataFramework
아키텍쳐 설계
RCP
비즈니스
논리
SVN
Servlet /EJB
Struts
JPA/ myBatis
웹 프레임워크
Rich Client
제안서 작성
논리적인 사고
Git
Tomcat
Spring MVC
Hibernate
연계 프레임워크
GWT
제안 프로세스
추론과 토론
Jboss / Glassfish
iBatis
통신 프레임워크
SWT 플러그인
영엽 프로세스
논리적인 글쓰기
J(2)EE Blueprint
Spring Data
변환 유틸리티
RAP
플랫폼 / 리눅스
플랫폼 / 클라우드
웹 기획
REST
웹 서비스
EAI
비즈니스 기술
비즈니스 모델링
표현
Linux OS
클라우드
IA 기획
Jersey / Restlet
SOAP
SOA
워크플로우
BPMN
프리젠테이션
시스템
프로그래밍
IaaS / AWS
WireFrame
REST API 설계
WSDL
EAI/ESB/SCA
BPM
BABOK
기술문서 작성
PaasS / GAE
Storyboard
Open API
UDDI
MOM
비즈니스 룰
REA
아이디어 시각화
ActiveMQ
CEP
소프트웨어 개발자 로드맵
7
시나리오 구성
6. 직무 유형별 필수 기술 – Web front engineer
Java
마크업 언어
HTML5
패턴
TDD
SW 테스트
Java
HQML/XHTML
HQML JS API
분석 패턴
TDD
SW 테스트
Java 네트워크
CSS
WebSocket
디자인 패턴
단위 테스트
테스팅 프로세스
Java 동시성
XML, XSLT
Socket.io
아키텍쳐 패턴
jUnit / dbUnit
테스트 관리
객체지향 Java
JSON
WebGL, Canvas
리팩토링
자료구조
웹 아키텍쳐
빌드 자동화
개발 프로세스
Stack, Queue
웹아키텍쳐
Maven
UP / RUP
문자셋
Apache/ Jetty
Nexus
Agile
표현식
HTTP 이해
Jenkins (CI)
SCRUM / XP
Kanba
C# / .Net
모바일 웹
C#
Responsive
C# 네트워크
Design
C# 동시성
PhoneGap
객체지향 C#
Titanium
Javascript
Javascript
jQuery
Sencha
JS 패턴
서버스크립트
플랫폼 / 리눅스
REST
JSP/Servlet
Linux OS
Jersey / Restlet
Node.js
시스템
프로그래밍
REST API 설계
PHP, Ruby
Open API
Python/ASP.Net
소프트웨어 개발자 로드맵
8
6. 직무 유형별 필수 기술 – Server Engineer
Java
패턴
TDD
SW 테스트
기능 테스트
Java
분석 패턴
TDD
SW 테스트
Fit / Selenium
Java 네트워크
디자인 패턴
단위 테스트
테스팅 프로세스
JMeter
Java 동시성
아키텍쳐 패턴
jUnit / dbUnit
테스트 관리
객체지향 Java
리팩토링
C / C++
자료구조
플랫폼 - POJO
웹 아키텍쳐
서버 설계
데이터모델링
RDBMS
빌드 자동화
개발 프로세스
C / C++
Stack, Queue
Spring
웹아키텍쳐
채널 설계
데이터 모델
오라클
Maven
UP / RUP
C / C++ 네트워크
문자셋
Apache/ Jetty
컴포넌트 설계
DB 최적화
MySQL
Nexus
Agile
C / C++ 동시성
표현식
HTTP 이해
플랫폼 설계
SQL
MS-SQL
Jenkins (CI)
SCRUM / XP
객체지향 C++
Kanba
C# / .Net
보안
NoSQL DB
코드 진단
C#
Oauth / SSO
Neo4J
코드 규약
C# 네트워크
Spring Security
Mongo DB
취약점 분석
C# 동시성
Identity / Access
HBase
의존성 분석
객체지향 C#
데이터 보안
스타일 체크
형상관리
플랫폼 / J2EE
웹프레임워크
DataFramework
아키텍쳐 설계
SVN
Servlet /EJB
Struts
JPA/ myBatis
웹 프레임워크
Git
Tomcat
Spring MVC
Hibernate
연계 프레임워크
Jboss / Glassfish
iBatis
통신 프레임워크
J(2)EE Blueprint
Spring Data
변환 유틸리티
서버스크립트
플랫폼 / 리눅스
플랫폼 / 클라우드
REST
웹 서비스
EAI
비즈니스 기술
JSP/Servlet
Linux OS
클라우드
Jersey / Restlet
SOAP
SOA
워크플로우
Node.js
시스템
프로그래밍
IaaS / AWS
REST API 설계
WSDL
EAI/ESB/SCA
BPM
PaasS / GAE
Open API
UDDI
MOM
비즈니스 룰
ActiveMQ
CEP
PHP, Ruby
Python/ASP.Net
소프트웨어 개발자 로드맵
9
6. 직무 유형별 필수 기술 – Data modeler / Data Administrator
데이터모델링
RDBMS
데이터 모델
오라클
DB 최적화
MySQL
SQL
MS-SQL
요소 기술이 적어 보이지만, 매우 전문적인 분야이기 때문에 전문가가 되기 어렵다.
배울 수 있는 기회 자체도 적다.
소프트웨어 개발자 로드맵
10
6. 직무 유형별 필수 기술 – Analysis specialist / Domain modeler
객체모델링
패턴
SW 테스트
기능 테스트
프로젝트 관리
UML/ 객체모델링
분석 패턴
SW 테스트
Fit / Selenium
PMBOK
EA / Together
디자인 패턴
테스팅 프로세스
JMeter
QA / Audit
RSA
아키텍쳐 패턴
테스트 관리
CMMI
DDD
리팩토링
데이터모델링
RDBMS
개발 프로세스
데이터 모델
오라클
UP / RUP
DB 최적화
MySQL
Agile
SQL
MS-SQL
SCRUM / XP
Kanba
요구사항
보안
SW 아키텍쳐
조직
요구사항명세서
Oauth / SSO
리더쉽
UseCase
Spring Security
아키텍팅
프로세스
User story
Identity / Access
요구사항워크샾
데이터 보안
조직관리
아키텍쳐 문서화
조직 심리학
IEEE 1471
창의력과 혁신
아키텍쳐 설계
비즈니스
논리
웹 프레임워크
제안서 작성
논리적인 사고
연계 프레임워크
제안 프로세스
추론과 토론
통신 프레임워크
영엽 프로세스
논리적인 글쓰기
웹 기획
비즈니스 모델링
표현
IA 기획
BPMN
프리젠테이션
WireFrame
BABOK
기술문서 작성
Storyboard
REA
아이디어 시각화
변환 유틸리티
시나리오 구성
소프트웨어 개발자 로드맵
11
7. 직무 유형별 필수 기술 정리
한정된 분야의 특수한 고급 기술 만으로, 현장에서 활동하는 직무는 많지 않다. (데이터베이스 분야 등)
그외의 직무들은 다양한 요소 기술들을 변화와 필요에 따라 습득해야 한다.
특정 직무를 위한 ‘정확한 로드맵’은 없다. 해당 직무에서 필요한 기술이 미래에는 바뀔 수 있다.
최대한 다양한 경험을 쌓아보고, 흥미를 가질 수 있고 잘할 수 있는 기술들을 익혀야 한다.
변화무쌍한 것이 IT 분야의 본질이자, 장점이다.
BigData / Mobile 분야는 10년 전에는 아예 없던 직무군에 해당한다.
목표를 설정하기 힘들 때는 기초 이론을 공부하라.
유행을 따르다가 목표를 잃고 방황하게 될 때는 기본 기술 중에 모르는 것을 좀 더 공부하라.
기본을 잘하는 사람, 원리를 잘아는 사람이 응용도 잘할 수 있다.
기본 기술은 거의 변하지 않는다. (변하는 것이 없다는 진리만이 변하지 않는다.)
소프트웨어 개발자 로드맵
12
8. 학생으로서 공부해야 할 것들
Tool – 어떤 도구를 활용할 줄 아는가? 닭 잡는 칼로는 소 못 잡는다.
Language : Java, C++, C#, Javascript
OS : Windows, Linux, iOS, Android
IDE : Eclipse, Visual C++,
DB : Oracle, MySQL, MS-SQL
Skill inventory – 어떤 기술을 쓸 줄 아는가? ‘댄스’를 못하면 idol 어렵다.
각종 API, Open source 활용 능력, 이미지 처리 기술, 알고리즘 작성 능력, 자료구조, 데이터베이스 적용
XML 처리, 웹 사이트 구축, 모바일 앱 개발 경험, 암호화, 네트워크 통신 등
Experience – 과거에 어떤 경험을 했는가? 그대의 과거가 현재를 말한다.
Mission (과제 수행 경험), Open source 분석 및 활용, Quiz, Example study, Mini goal,
Blog, Facebook, Study group, Conference, Competition, Seminar
소프트웨어 개발자 로드맵
13
9. 귀담아 두어야 하는 격언
不狂不及 – 미쳐야 미친다. 미치도록 빠지지 않으면 이룰 수 없다
Stay hungry, Stay foolish. – 만족하는 순간, 이미 뒤쳐진다.
Think more, just do it. – 깊이 생각하되 행동은 빠르게 해야 한다.
다독(多讀), 다작(多作), 다상량(多商量) – 많이 읽고, 많이 짜고, 많이 생각하고…
마지막으로….
스스로를 믿어라.
웃어라 온 세상이 너와 함께 웃게 될 것이다. 울어라 너 혼자만 될 것이다.
(영화 올드보이 나레이션 중에서)
소프트웨어 개발자 로드맵
14