본문 바로가기

컴퓨터공학 기초 이론 (old)

신입 개발자 역량 평가

반응형

**신입 개발자 역량 평가로 자신에게 질문해 보자!!**


퍼블리싱 

1. 웹페이지 코딩

    - 간단한 HTML 문법과 CSS문법을 알고 사용할 수 있다. 

    - div로 레이아웃을 잡고 코딩 할 수 있다.(Box model을 이해한다)

 - 웹 표준을 어느 정도 이해하고 있다.(DTD[각주:1]를 알고 있다.) 

 - 웹 접그성과 시맨틱한 마크업에 대해 숙지하고 있으며 관심이 깊다.

2. 크로스 브라우징

 - 인터넷 익스플로러밖에 사용해 보지 않았다??

 - 특정 모바일 디바이스에 최적화된 페이지를 만들어 본 경험이 있다.

 - 각 브라우저의 렌더링 이슈를 알고 있으며 해결해 본 경험이 있다.

 - 브라우저핵의 존재를 알고 있으며, 우아한 퇴보 기법의 일부를 숙지하여 코딩할 수 있다.

3. jQuery

 - 간단한 셀렉터와 실행 문법을 알고 있다.

 - 다양한 플러그인을 사용해본 경험이 있다.

 - 제법 복잡한 셀렉터를 다룰 수 있고, 메소드 체이닝을 알고 있으며, 거의 모든 문법을 자유 자재로 다룰 수 있다. 

 - 플러그인 제작이 가능하고 jQuery가 어떻게 구현되었는지 상당 수준을 이해한다.

4. JavaScript

 - 아주 기초적인 JavaScript 문법을 알고 있다. 

 - Context의 역할과 this의 용법을 안다.

 - closure를 이해하고 익명함수를 다룰 수 있다.

 - 각 브라우저별 JavaScript 엔진의 차이를 이해하고 크로스 브라우징이 가능한 코드를 작성하라 수 있다.


운영체제

1. 리눅스 경험

 - 윈도우밖에 사용해 보지 않았다.

 - 몇 종류의 리눅스를 사용해 보았으며 쉘 명령어를 좀 알고 있다. (Ubuntu, CentOs 등.. 2개는 써봄, 주로 Ubuntu)

 - 리눅스에 특정 벤더사의 서버를 설치, 세팅해본 경험이 있다.(AWS, DigitalOcean 사용해봄! 서버설치)

 - 리눅스로 서비스를 운영해 보았으며 각종 트러블 슈팅에 대한 경험이 있다.(웹 사이트 운영경험 있음.)

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[각주:2]를 이해한다 (반드시 TDD를 하고 있어야 한다는 의미가 아님)


데이터베이스

1. 쿼리 작성

 - 기본적인 CRUD를 작성할 수 있다.

 - inline view를 사용하여 복잡한 질의문을 작성할 수 있다.

 - 각종 join을 다룰 수 있으며, 집계 쿼리, group by등을 사용할 수 있다.

 - 100만 건 이상의 데이터가 누적되어 있는 상황에서 쿼리를 작성해 본 경험이 있다.

2. 대용량 데이터베이스

 - 실행 계획이 뭔지 모른다.

 - Clustered Index 와 Non-clustered Index의 차이를 안다.

 - 실행 계획을 변경하기 위해 hint를 사용할 수 있다.

 - 파티셔닝과 병렬 처리를 제어할 수 있고, 각종 튜닝 방법에 대해 알고 있다.

3. 데이터베이스 개념

 - 제대로 데이터베이스에 대한 개념을 학습하지 못했다.

 - ACID, 정규화, 트랜잭션을 이해한다. 

 - 스키마를 정규화해서 정의할 수 있고, 뷰, 스토어드 프로시저, 트리거, 사용자 정의 타입을 다룰 수 있다.

 - 쿼리 트랜스포머를 어느 정도 이해하고 있으며, 내부적으로 인덱스가 어떻게 저장되어 있고 작동하는지 이해하고 있다.


기타

1. 책

 - 간단한 문법을 다룬 책을 위주로 몇 권 읽어봤다.

 - 코드 컴플리트를 비롯한 스티브 맥코넬의 저서 또는 켄트벡이나 마틴 파울러의 저서를 읽어봤다.(방법론에 대한 책)

 - 이펙티브 C++, 이펙티브 Java, 그 외 각종 실용적이면서 중급 사용자에게 적절히 도움이 되는 책을 읽어봤다.

 - 아트 오브 컴퓨터 프로그래밍, 자바스크립트 닌자의 비밀, 대용량 데이터베이스 솔루션 등의 고급 서적을 읽어 봤다.

(어떤 책을 읽어봤는지 추가로 서술해주셔도 좋습니다.)

2. 인터넷 커뮤니티 활동

 - 개발과 관련된 어떠한 커뮤니티 활동도 하지 않는다. 

 - 자주 가는 블로그, 또는 개발자 위주로 된 트위터 리스트를 갖고 있다.

 - 프로그래밍에 관한 개인적인 통찰이나 생각을 표현하는 블로그를 갖고 있으며 이것을 다른 개발자와 공유한다.

3. 외국어 수준

 - 한국어가 아닌 자료로는 기술 습득이 불가능하다.

 - 영어로 된 기술 교재를 읽고 기술을 파악한다.

 - 미국인/영어권 사용자로부터 개발 업무를 지시받고 업무 수행 후에 결과를 보고 할 수 있다.   

 - 영어권 사용자로부터 SW를 발주 받아, 인도/중국인에게 개발 업무를 아웃소싱하고 국내 팀과 연계하여 국제적인 프로젝트를 진행할 수 있다.


그리고 

무엇이라도 좋습니다. 자신이 가장 집중하고 몰두 했던 일을 써주세요!!! 




reference : 신입 개발자 역량 평가



  1. 문서 형식 정의(Document Type Definition, DTD)는 컴퓨터 용어로, SGML 계열의 마크업 언어에서 문서 형식을 정의하는 것이다. SGML을 비롯해 HTML, XHTML, XML 등에서 쓰인다. [본문으로]
  2. TDD는 실패하는 테스트를 작성하고(red), 작성된 테스트를 통과하는 코드를 작성한 후(green), 작성한 코드를 리팩토링하는(refactor) 세 단계를 거칩니다. 처음에는 실패하는 테스트를 작성합니다. [본문으로]
반응형

'컴퓨터공학 기초 이론 (old)' 카테고리의 다른 글

ip 정의 관련 (업무하면서,,)  (0) 2022.06.22
Hadoop 이론 정리 + github code  (0) 2017.11.19
네트워크와 TCP/IP  (0) 2017.10.04