본문 바로가기
자료수집

개발자 역량 측정 메트릭

by 3604 2022. 8. 22.
728x90

개발자 역량 측정 메트릭

출처: https://drehzr.tistory.com/20

 

저번에 이어서 가장 많은 항목이 있는 프로그래밍에 대해서 정리한 내용이다.

 

★프로그래밍

  1. 프로그램 분해

    1. 긴 코드로 Copy & Paste 한다.
    2. 함수로 나눠서 코딩한다.
    3. 재사용 가능한 객체 코드로 작성한다.
    4. 디자인 패턴을 적용가능하고 모듈화에 대해 고민하며 작성한다.
    5. 적절한 알고리듬 제네릭/OOP 방법으로 써서 변경이 있을 부분을 고려하며 캡슐화 하면서 코딩한다.
  2. 시스템 분해
    1. 파일 클래스, 클래스 1개 이상 범위밖에 생각하지 못한다.
    2. 같은 플랫폼, 같은 범위내에서는 문제를 분리해서 설계한다.
    3. 복수개의 기술과 시스템에 걸쳐 있는 문제에 대한 솔루션을 만들어낸다.
    4. 복잡한 다수개의 제품을 가시화하여 재 설계하고 , 외부 시스템 및 예외 운영에 대해서 설계할수 잇다.
  3. 의사 소통
    1. 아이디어와 생각을 표현하지 못한다.
    2. 동료가 무슨 말을 하는지 알아 듣는 수준이다.
    3. 효과적으로 의사 소통할 수 있다.
    4. 모호한 상황에서 생각 / 설계 / 스펙을 이해하고 소통할수 있고 해결책을 타인에게 설명할수 있다.
  4. 파일 내의 코드 구성
    1. 코드 파일 내에서 구조화가 되어 있지 않다.
    2. 메소드들이 논리적으로 되어있고 나름 구조화가 되어있다.
    3. 코드가 영역별로 Grouping이 되어있고 주석(Comment)으로 설명이 잘되어있다.
    4. 파일의 요약및 정렬이 일정하고 헤더 및 라이브러리 처럼 구성되어 있다.
  5. 파일 내의 코드 구성
    1. 파일간에 어떤 구조도 없다.
    2. 파일들이 폴더로 단순 구분되어 있다.
    3. 파일별로 고유한 목적에 의해 구분되어 있다.
    4. 코드 구성이 설계와 잘 매치되어있어서 이름(Naming)만 보더라도 설계에 대한 이해가 가능하다.
  6. 코드 가독성
    1. 단음절 변수명
    2. 파일, 변수, 클래스에 대한 이름이 알맞다.
    3. 긴 함수는 없고 통상적이지 않는 코드나 예외상황, 버그에 대해서 코멘트를 달아 둔다.
    4. 전체 조건 등은 assert로 검증한다. 네스팅 단계가 깊지 않고 자연스럽게 코드가 흐른다.
  7. 방어적 코딩
    1. 방어적 코딩에 대해서 무지 하다.
    2. 인수를 체크하고, 크리티컬한 조건에 대해서 assert 를 사용한다.
    3. 리턴값, 예외처리에 대해서 항상 체크하고 미리 사전 방지한다.
    4. 방어적 코딩을 하기위한 자신만의 라이브러리가 있다. 실패 케이스를 시험하는 유닛 테스트 코드를 작성한다.
  8. IDE(Integrated Developement Environment)
    1. 대부분 텍스트 에디팅에서만 사용한다.
    2. 인터페이스의 숨겨져있는 단축키를 사용한다.
    3. 거의 모든 IDE를 단축키로 사용가능하다.
    4. IDE에 매크로를 정의해서 사용한다.
  9. API
    1. 문서를 항상 봐야한다.
    2. 기억속에 자주 쓰는 API는 알고 있다.
    3. API에 대해서 폭넓고 깊이 있는 이해를 하고 있다.
    4. 자주 사용하는 것에 대해서 API위에 라이브러리를 추가 개발하고, 부족한 점은 직접 구현해서 채운다.
  10. 프레임 워크
    1. 코어 플랫폼 밖의 어떤 프레임워크도 사용하지 않는다.
    2. 유명한 것은 알기만 하는 수준이다.
    3. 여러가지 프레임웤을 능숙하게 쓰고 전형적인 방법을 알고 있다.
    4. 직접 개발한다.
  11. 스크립팅
    1. 스크립팅 툴을 모른다.
    2. 배치 파일 , 쉘 스크립을 한다.
    3. Perl/Python/Ruby/VBScript/Powershell 류의 스크립팅을 한다.
    4. 재사용 가능한 코드를 짜고 공개한다.
  12. 데이터 베이스
    1. 엑셀을 데이터베이스라고 생각한다.
    2. 데이터베이스의 기본 개념과 정규화, 트랜잭션을 이해하고 단순 REST에 대해서 알고있다.
    3. 실행된 질의문에 대한 관계 및 스키마에 대해 이해하고 트리거, 클러스터드 인덱스를 이해하고 ORM 툴을 사용한다.
    4. 기본 관리 색인, 고급 Select Query 등 데이터 베이스 미러링 및 관리, 페이스 커밋을 이해한다.

 

마찬가지로 위에 나열된 항목은 절대적인 수치나 평가 기준은 아니지만 자신의 수준을 알수 있는 대략적인 가이드가 되었으면 좋겠습니다.

 

728x90