본문 바로가기
개발/개인적인 생각

자료) 개발자 역량측정 메트릭( 전산학 이해, 소프트웨어 엔지니어링)

by 테샤르 2019. 8. 11.

 

개발자 역량 측정 메트릭

 

예전에 웹 서핑 도중에서 발견한 내용으로 개발자의 역량을 측정할 수 있는 메트릭이라는 것을 봤었다가

한번 정리했던 기억이 있었다. 그걸 다시한번더 정리한 내용이다.

서브 항목은 Level의 개념으로 생각하면 된다.

 

★전산학의 이해

  1. 자료 구조 
    1. Array 와 Linked List의 차이를 모른다.
    2. 실제 프로그래밍 환경에서 Array와 Linked List와 Dictionary의 차이를 설명할 수 있다.
    3. Array와 Linked List의 시간과 Hash의 Collision 처리를 할 수 있다.
    4. B-Tree, 이진트리, 피보나치힙, 고급 스트럭처에 대해 이해하고 있다.
  2. 알고리즘
    1. Array의 값의 평균을 구하는 방법을 모른다.
    2. Sorting, Searching, Traversing 알고리즘을 이해한다.
    3. Tree, Graph , 단순한 Grid Algorithm을 이해하고 구현하는 것을 설명할 수 있다.
    4. 다이내믹 프로그래밍  설루션을 이해한다. 그래프 알고리듬, 수치 연산 알고리듬을 이해하고 NP 문제를 식별할 수 있다.
  3. 시스템 프로그래밍
    1. Complier, Linker, Interpreter를 구분하지 못한다.
    2. 1을 이해하고 하드웨어 레벨의 어셈블리 언어 동작을 이해한다. 가상 메모리와 페이징에 대한 이해가 있다.
    3. 커널 모드/ 유저 모드 차이를 알고 그것이 어떻게 구현되어있는지 이해할 수 있고, 네트워크와 소켓 프로토콜을 이해할 수 있다.
    4. 전체 프로그래밍 스택을 이해한다. 하드웨어, 바이너리, 어셈블리, 링킹, 컴파일, 가비지 콜렉션, 등을 구분해서 이해할 수 있다.

★ 소프트웨어 엔지니어링

 

  1. 소스 코드 버전 컨트롤
    1. 날짜 단위 폴더 백업
    2. CVS/SVN 등의 사용을 시작했다.
    3. 2의 능숙한 사용 브랜치/머지에 능숙하다.
    4. 분산 VCS 시스템을 이해한다.  Bzr/Mercurial/Darcs/Git을 쓰려고 한다.
  2.  빌드 자동화
    1. IDE에서만 빌드가능
    2. Command Line으로 빌드 가능
    3. 빌드 스크립트를 직접 구현
    4. 설치 및 릴리즈 버전 구분 보안 패치 등을 할 수 있는 빌드 스크립트를 구현하거나 그에 맞는 플러그인을 사용한다.
  3. 테스트 자동화
    1. 테스터에게 맡긴다
    2. 유닛 테스트에 대해서 개념을 이해한다.
    3. TDD 방식으로 코드를 구현한다
    4. 기능적 로드/ 성능적 / GUI 측면의 테스트를 자동화를 이해하려고 실현한다.

 

위에 나열한 항목이 절대적인 수치는 아니지만 자신이 어느정도 수준이고 어떤 부분을 공부해야하고 알아햐나는지에 대한 대략적인 가이드라인이 되었으면 좋겠다. 위에 내용도 본인이 직접기술한건 아니고 어디 사이트에서 참고해서 생각 및 정리한 내용임을 말씀드린다.

개발이라는 것은 어떤 가이드란게 없고 테크트리라는게 없다보니 기본을 제외한 나머지는 본인 몫과 의지가 큰 분야인것 같다.

프로그래밍에 대해서는 항목이 많은 관계로 다음 게시글으로 넘겨야겠다.

 

 

★☆☆☆

반응형

댓글