출처 : https://github.com/EBvi/dev-matrix/blob/master/%E1%84%89%E1%85%B5%E1%86%AB%E1%84%8B%E1%85%B5%E1%86%B8%20%E1%84%80%E1%85%A2%E1%84%87%E1%85%A1%E1%86%AF%E1%84%8C%E1%85%A1%20%E1%84%8B%E1%85%A7%E1%86%A8%E1%84%85%E1%85%A3%E1%86%BC%20%E1%84%91%E1%85%A7%E1%86%BC%E1%84%80%E1%85%A1.md
신입 개발자 역량 평가
- 각 단계의 마지막 mastery는 우리가 기대하는 신입의 수준을 넘어갑니다만, 가끔은 이런 단계에 오른 신입들도 존재하기 때문에 넣어뒀습니다
- 평가 그 자체에 너무 부담을 갖지는 말아주세요. 저희는 신입 개발자가 가져야될 가장 중요한 자질로 잠재력에 초점을 두고 있습니다
- 맨 마지막 항목에 여러분의 잠재력을 어필해주세요
퍼블리싱
1. 웹페이지 코딩
- 간단한 HTML 문법과 CSS 문법을 알고 사용할 수 있다
- div로 레이아웃을 잡고 코딩을 할 수 있다 (Box model을 이해한다)
- 웹 표준을 어느 정도 이해하고 있다 (DTD를 알고 있다)
- 웹 접근성과 시맨틱한 마크업에 대해 숙지하고 있으며 관심이 깊다
2. 크로스 브라우징
- 인터넷 익스플로러밖에 사용해 보지 않았다
- 특정 모바일 디바이스에 최적화된 페이지를 만들어 본 경험이 있다
- 각 브라우저의 렌더링 이슈를 알고 있으며 해결해 본 경험이 있다
- 브라우저핵의 존재를 알고 있으며, 우아한 퇴보 기법의 일부를 숙지하여 코딩할 수 있다
3. jQuery
- 간단한 셀렉터와 실행 문법을 알고 있다
- 다양한 플러그인을 사용해본 경험이 있다
- 제법 복잡한 셀렉터를 다룰 수 있고, 메소드 체이닝을 알고 있으며, 거의 모든 문법을 자유 자재로 다룰 수 있다
- 플러그인 제작이 가능하고 jQuery가 어떻게 구현되었는지 상당 수준을 이해한다
4. JavaScript
- 아주 기초적인 JavaScript 문법을 알고 있다
- Context의 역할과 this의 용법을 안다
- closure를 이해하고 익명함수를 다룰 수 있다
- 각 브라우저별 JavaScript 엔진의 차이를 이해하고 크로스 브라우징이 가능한 코드를 작성할 수 있다
운영체제
1. 리눅스 경험
- 윈도우밖에 사용해 보지 않았다
- 몇 종류의 리눅스를 사용해 보았으며 쉘 명령어를 좀 알고 있다
- 리눅스에 특정 벤더사의 서버를 설치, 세팅해본 경험이 있다
- 리눅스로 서비스를 운영해 보았으며 각종 트러블 슈팅에 대한 경험이 있다
2. 윈도우 경험
- 특별한 경험이 없다
- 백업과 복원을 할 줄 알고, 시스템을 새로 설치하는 데에도 문제가 없다
- 각종 고급 테크닉을 숙지하고 있으며 최적화나 튜닝에 대해서도 관심이 많다
- 오류가 발생하면 덤프를 뜨고 로그를 읽어 어떤 문제가 발생했는지 알고 해결할 수 있다
전산학 이해
1. 자료구조
- 배열(array)과 List의 차이를 모른다
- 배열과 Linked List, dictionary의 차이를 설명할 수 있다
- 트리와 그래프를 알고 사용할 수 있다
- 각종 상황에서 효율적인 자료구조를 결정할 수 있다
2. 알고리즘
- 배열에 들어있는 값의 평균을 낼 줄 모른다
- 정렬, 검색, 순환 알고리즘을 안다
- 퀵 정렬에 대해 설명할 있고, 직접 코드를 작성할 수 있다
- 다익스트라나 A*, 또는 그 밖의 알고리즘을 알고 있다
3. 시스템 프로그래밍
- 컴파일러, 링커, 인터프리터를 구분하지 못한다
- 컴파일러, 링커, 인터프리터를 설명할 수 있다
- 커널모드/유저모드 차이를 설명할 수 있다
- 스레딩/멀티스레딩, 동기화와 락을 이해하고 어떻게 구현되었는지 설명할 수 있다
설계
1. 객체 지향
- 인터페이스를 왜 써야하는 지 모른다
- 캡슐화와 추상화를 이해하고 어떤 상황에서 써야하는지 알고 있다
- 디자인 패턴과 안티 디자인 패턴을 상당수 알고 있다
- 이를 통해 프레임워크를 구축해본 경험이 있다
2. DI
- DI나 IoC가 무엇인지 모른다
- 왜 빈을 주입해야 하고 왜 이것이 낮은 결합도를 만드는지 안다
- 스프링에서 DI가 어떻게 구현되어 있는지 알고 있다
- DI와 IoC에 대해 하루종일 설교할 수 있다
3. 모델링
- 논리적 모델과 물리적 모델이 무엇을 말하는지 모른다
- 논리적 모델과 물리적 모델을 구분하여 모델링할 수 있다
- L자형 테이블이 왜 위험한지 알고 있다 (필드가 많이 늘어나는 것이 어떤 영향을 미치는지 이해한다)
- 정규화를 알고 이를 적용하여 모델링을 할 수 있다
Java
1. 문법
- 간단한 문법을 이해하고 프로그램을 작성할 수 있다
- 리플렉션을 이해하고 사용할 수 있다
- 어노테이션을 어떻게 쓰고 어떻게 구현할 수 있는지 알고 있다
- 인터페이스와 클래스의 각종 고급 문법을 알고 적용할 수 있다. 디자인 패턴의 존재를 알고 있다.
2. 빌드
- IDE(이클립스)가 아니면 빌드를 할 수 없다
- 커맨드라인으로 빌드를 만들 수 있다
- 빌드 스크립트를 직접 작성할 수 있다
- 문서, 설치 스크립트, 릴리스 노트를 포함한 빌드 스크립트를 작성한다
3. 테스트
- 테스트를 하지 않는다
- System.out.print를 사용하여 문자열을 찍어본다
- 유닛 테스트를 작성한다
- TDD를 이해한다 (반드시 TDD를 하고 있어야 한다는 의미가 아님)
데이터베이스
1. 쿼리 작성
- 기본적인 CRUD를 작성할 수 있다
- inline view를 사용하여 복잡한 질의문을 작성할 수 있다
- 각종 join을 다룰 수 있으며, 집계 쿼리, group by 등을 사용할 수 있다
- 100만 건 이상의 데이터가 누적되어 있는 상황에서 쿼리를 작성해본 경험이 있다
2. 대용량 데이터베이스
- 실행 계획이 뭔지 모른다
- Clustered Index와 Non-clustered Index의 차이를 안다
- 실행 계획을 변경하기 위해 hint를 사용할 수 있다
- 파티셔닝과 병렬 처리를 제어할 수 있고, 각종 튜닝 방법에 대해 알고 있다
3. 데이터베이스 개념
- 제대로 데이터베이스에 대한 개념을 학습하지 못했다
- ACID, 정규화, 트랜잭션을 이해한다
- 스키마를 정규화해서 정의할 수 있고, 뷰, 스토어드 프로시저, 트리거, 사용자 정의 타입을 다룰 수 있다
- 쿼리 트랜스포머를 어느 정도 이해하고 있으며, 내부적으로 인덱스가 어떻게 저장되어 있고 작동하는지 이해하고 있다
기타
1. 책
- 간단한 문법을 다룬 책을 위주로 몇 권 읽어 봤다
- 코드 컴플리트를 비롯한 스티브 맥코넬의 저서 또는 켄트벡이나 마틴 파울러의 저서를 읽어 봤다 (방법론에 대한 책)
- 이펙티브 C++, 이펙티브 Java, 그 외 각종 실용적이면서 중급 사용자에게 적절히 도움이 되는 책을 읽어 봤다
- 아트 오브 컴퓨터 프로그래밍, 자바스크립트 닌자의 비밀, 대용량데이터베이스 솔루션 등의 고급 서적을 읽어 봤다
(어떤 책을 읽어봤는지 추가로 서술해주셔도 좋습니다)
2. 인터넷 커뮤니티 활동
- 개발과 관련된 어떠한 커뮤니티 활동도 하지 않는다
- 자주 가는 블로그, 또는 개발자 위주로 된 트위터 리스트를 갖고 있다
- 프로그래밍에 관한 개인적인 통찰이나 생각을 표현하는 블로그를 갖고 있으며 이것을 다른 개발자와 공유한다
3. 외국어 수준
- 한국어가 아닌 자료로는 기술 습득이 불가능하다
- 영어로 된 기술 교재를 읽고 기술을 파악한다
- 미국인/영어권 사용자로부터 개발 업무를 지시받고 업무 수행 후에 결과를 보고할 수 있다
- 영어권 사용자로부터 SW를 발주 받아, 인도/중국인에게 개발 업무를 아웃소싱하고 국내 팀과 연계하여 국제적인 프로젝트를 진행할 수 있다
그리고
무엇이라도 좋습니다. 사진, 그림그리기, 만화, 인터넷 활동, 음악, 글쓰기, 잉여력 발산, 게임 등 지금까지 했던 활동 중에서 어떤 걸 어디까지 알고 있는지 자랑할 만한 것이 있으면 기술해주세요. 다만 너무 길게 쓰지는 말아주세요. 저희는 이 항목에 대한 평가를 가장 중요하게 생각합니다.
'develop > 공통' 카테고리의 다른 글
vuforia cylinder target 이미지 dimention 설정 (0) | 2017.06.20 |
---|---|
GCM, FCM 서버에서 데이터 전송 형태 (0) | 2017.03.15 |
sqlite (0) | 2014.12.18 |
NAT의 종류 (0) | 2014.02.17 |
comparison between android activity and ios controller (Life cycle) (0) | 2014.01.29 |