독일 블루카드 발급을 받으려면 대학교 학력이 필요하다.
독일에서 대학교를 졸업했으면 졸업장 그대로 보여주면 되겠지만, 그 외에는 경우에 따라 별도의 학력 인정 절차가 필요할 수 있다.
자신이 학력 인정 절차가 필요한지 알고 싶다면 아래 과정을 따르면 된다.

<간단 설명>
- 1) Anabin에 대학교 등급이 H+ 이다
- 2) Anabin에 학위('이학사', '공학사', '법학사' 등)가 대학교와 함께 등록되어 있다

위 2가지 조건을 모두 충족하면 별도로 학력 인정을 받지 않아도 된다(고 Make it in Germany라는 웹사이트에 명시되어 있음).
(대신 학력 관련 서류 제출 시 Anabin에 등록되어 있는 내역을 함께 첨부해야 할 것임)

조건 충족이 되지 않으면 (혹은 어떤 식으로든 리스크를 줄이고 싶다면) 안전하게 학력 인정을 받는 것이 좋다.

학력 인정 필요 여부 알아보기

  1. 독일 대학 데이터베이스 Anabin 들어가기
  2. 학교 등급 확인하기
    • 2-1. 대학교 찾기
      • 좌측 사이드바 Institutionen 클릭 -> Suchen 클릭 -> Länderauswahl öffnen 클릭 -> K 클릭 -> Korea (Republik) 선택 -> LänderauswahlLänderauswahl bestätigen 클릭
      • Alle Orte 클릭 -> 본인 대학교 위치(ex. 서울) 찾아서 선택하기
      • Alle Institutionstypen 클릭 -> 본인 대학교 유형(ex. 국립 = National University) 선택하기
      • Bitte geben Sie einen Suchbegriff ein 입력란에 본인 대학교 영문명 등 키워드 입력으로 바로 찾을 수도 있음
    • 2-2. 대학교 등급 확인하기
      • 목록에 나온 본인 대학교가 H+ 인지 확인하기
      • H+가 아니라면 학력 인정이 어려울 수 있음
  3. 학위 존재 여부 확인하기
    • 여기서 말하는 학위는 단순 '학사', '석사'가 아닌 '이학사', '공학사', '법학사' 등 세분류를 말함
    • 대학교 등급이 H+ 라고 해도 Anabin에 학위까지 같이 올라와 있지 않으면 학력 인정 신청을 받아야 할 것임
    • 3-1. 학위명 찾기
      • 좌측 사이드바 Hochschulabschlüsse 클릭 -> Suchen nach Abschlüssen 클릭 -> 국가 선택
      • Alle Abschlusstypen 클릭 -> 본인 학위 과정(ex. 학사, 석사) 선택
      • Alle Studienrichtungen 클릭 -> 본인 전공(ex. 컴퓨터과학) 선택
        • 선택지를 보면 알겠지만, 한국어 발음 그대로 영어로 써있거나 한국어로 써있거나 하는 등 여러 경우가 있음
        • 어찌 되었든 본인에게 해당하는 것들 하나씩 선택해가며 확인해봐야 함
    • 3-2. 학위명과 대학교가 연결되어 있는지 확인하기
      • 목록에 찾고자 한 학위명이 나왔다면 좌측 + 버튼을 누른다
        • 같은 학위명이 여러 개가 있을 수 있으니 하나씩 들어가서 확인해봐야 함
      • 스크롤을 내려 Verleihende Institutionen 에 자신의 대학교가 있는지 확인한다
        • 학위명은 자신의 것과 일치하더라도 여기에 자신의 대학교가 연결되어 있지 않다면 학력 인정이 필요할 것임

학력 인정 필요 여부를 알았고, 인정을 받아야겠다면 아래 절차를 따르면 된다.

학력 인정 신청하기

<신청 전 알아둘 것>
1. 블루카드 신청 목적이라면 2주 내, 그 외의 일반적인 경우는 3개월 내로 처리됨
2. 서류 미비 등으로 추가적인 커뮤니케이션이 필요할 경우 위 기간은 더욱 길어질 수 있음

그러니 각자의 경우에 맞게 준비물을 잘 챙겨서 신청하는 것을 추천한다.

준비물

<주의사항>
- 모든 서류는 photocopy이어야 함 (사진 촬영이나 스캔본, 인터넷에서 바로 다운로드 받은 pdf)
- 번역되지 않은 것이어야 함 (원본, 원어 그대로 제출. 공증받지 않아도 됨 - 2024년 3월 20일 기준)

보다 구체적이고 정확한 내용은 아래 링크 참고
- Pre-Check for Statement of Comparability
- Statement of Comparability for university degrees from the Republic of Korea: Checklist
  • 졸업증명서(Degree certificate) or 학위기(Graduation certificate)
  • 학업성적증명서(Transcript of records for the entire degree program)
  • 학위 프로그램 종류 증명서(Certificate from your university stating your mode of study)
    • 졸업증명서 등에 표시되어 있지 않은 경우에만 필요
  • 졸업 논문 증명서(Certificate from your university confirming the completion of a final thesis)
    • 졸업 논문 작성했으나 졸업증명서 등에 표시되어 있지 않은 경우에만 필요
  • 이전 학교 학점 증명 관련 서류(Documents regarding transferred credit)
    • 편입 등 한 경우에 필요
  • 고등학교 졸업장(Secondary school qualification)
    • 또는 이와 동등한 자격을 나타내는 서류
  • 여권
  • 고용계약서 (블루 카드 비자 신청 시에만 필요)

 

신청 절차

  1. ZAB 사이트 접속하기 (영어가 아니면 우상단의 버튼 눌러 언어 변경하기)
  2. 계정 생성하기
    1. 우상단 My Account 버튼 클릭
    2. 이동한 사이트에서 KONTO ERSTELLEN 클릭
    3. 맨 우측 Benutzername & Passwort 클릭 후 KONTO ERSTELLEN 클릭
    4. 체크박스 클릭 후 WEITER 클릭
    5. 정보 입력 후 WEITER 클릭 -> 폰 번호, 이메일 입력 후 WEITER 클릭 -> 이메일로 인증번호 전송
    6. 이후 과정 거쳐서 계정 생성 완료하기
  3. 로그인하기
    1. ZAB 사이트 접속 후 우상단 My Account 버튼 클릭
    2. 이동한 사이트에서 ANMELDEN 클릭
    3. Benutzername & Passwort 클릭 후 WEITER MIT BENUTZERNAME UND PASSWORT 버튼 클릭
    4. 계정 정보 입력 후 엔터
    5. WEITER ZUM ANTRAG 클릭하여 ZAB 사이트로 되돌아오기
  4. 학력 인정 신청 양식 채우기
    1. 우상단 My Account 드롭다운 -> My Profile 클릭 -> 정보 채우기 (여기 미리 채워놓으면 Application page에 자동 입력됨)
    2. 상단의 STATEMENT OF COMPARABILITY 드롭다운 -> Application login page 클릭
    3. 기본 정보 확인하기 (또는 채우기)
    4. Previous Statements of Comparability 단계에서 No 클릭 (이전에 해봤다면 이 글이 필요가 없으실테니...)
    5. University degree to be evaluated 단계에서
      1. 국가(Korea (Republic))와 학위 과정(Bachelor 등) 선택하기
      2. 대학교 정보 입력하기 (중요한 것은 Anabin에서 사용되는 정보를 그대로 쓴다는 것)
        1. Name of the university degree: I Haksa (=이학사)
        2. Degree program: Haksa (=학사)
        3. Specialization: Keompyuteo Gwahak (이러면 알아서 서류 발급 시 옆에 괄호로 독일어로 된 전공명 남겨줌)
        4. Name of the university: Anabin에 올라와 있는 대학교명
        5. City of university: 대학교 위치한 도시명
        6. Period of study
          1. Start of university enrollment: 첫 학기 시작일 (ex. 2024년 1학기 = 04 03 2024)
          2. End of university enrollment: 마지막 학기 등록일(ex. 2024년 2학기 = 01 09 2024)
          3. Date the university degree was conferred: 졸업일
          4. Date the university diploma was issued: 졸업증명서 또는 학위기 발급일 (문서에 적힌 그대로)
          5. Certificate number of the university diploma: 학위등록번호
        7. Mode of study: 풀타임/파트타임 그리고 원격 교육 여부
        8. Duration of study: 4년제인 경우 4
        9. Final thesis: 졸업논문 작성 여부
        10. EU Blue Card: 학력 인정이 블루카드 신청에 필요한 경우 yes
    6. Additional university degree 단계에서 No 클릭 (한번에 여러 개가 필요한게 아니라면)
    7. Information about your secondary school qualification 단계에서
      1. Secondary school qualification required for university admission: High School Diploma 입력
        1. 그 외 경우는 각자에게 알맞은 것을 찾아 입력하기
      2. Country: Korea (Republic) 선택
      3. Date of secondary school graduation: 고등학교 졸업장에 표기된 날짜 입력하기
    8. Documents 단계에서
      1. Identity document (passport or identity card): 여권 인적사항면 나오게 찍어 올리기 (본인은 서명란까지 포함해서 찍음)
        1. 간혹 업로드가 안 되는 경우가 있는데, 사진을 제대로 안 찍었다거나 하면 그러는 것으로 추정함 (정확한 이유는 불분명)
        2. 만약 업로드가 되지 않으면 여권을 제대로 수평에 맞춰서 찍었는지, 그림자가 생기진 않았는지 등 점검해보기
      2. Proof of name change (e.g. marriage certificate): 개명 등의 이유로 성명이 변경된 적이 있을 경우 이에 대한 증빙자료 첨부하기
        1. 본인의 경우 개명을 했기에 주민등록초본(한국어)을 첨부함
        2. 또한 고등학교 졸업장과 대학교 졸업장의 이름이 다른데, 이는 신청서 마지막 즈음 메시지 남기는 곳에 설명을 하였음
      3. Employment contract or written confirmation of employment from your future employer in Germany: 고용계약서 첨부하기
    9. Documents regarding 단계에서 대학교 관련 서류 첨부하기
      1. 졸업증명서와 학업성적증명서 두 가지만 필수임
      2. Certificate from your university stating your mode of study: 별도로 제출하지 않았으나, 각자의 서류 확인하여 필요에 따라 알맞은 서류 첨부하기
      3. Certificate from your university confirming the completion of a final thesis: 나의 경우 졸업논문 대신 교내 대회 수상으로 졸업논문대체를 했기에 수상 내역(상장)을 첨부함. 이에 대한 내용은 마지막 메시지란에 설명을 남겼음
      4. Documents regarding transferred credit: 편입 등으로 학교를 옮긴 경우, 이전 학교 '학업성적증명서' 첨부하기
    10. Overview of your university degrees 단계에서
      1. 블루카드 신청을 위한 것이라면 Statement of Comparability for an EU Blue Card에 체크되어 있는지 확인하기
      2. 수수료 200유로 확인하기
    11. Consents and declarations 단계에서 체크할 것은 체크하고 yes할 것은 yes하기
    12. Please check your information 단계에서
      1. Documents regarding "Secondary school qualification" 항목을 열면 비어 있을 것임. Edit을 누른 후 이동하여 고등학교 졸업장 첨부하기
      2. 이후 Save and Next 버튼을 쭉쭉 누르면 다시 Please check your information 단계로 돌아올 것임. 이제 입력사항 전체 검토하기
      3. Message to the ZAB 입력란에는 별도로 설명이 필요한 사항에 대하여 설명 남기기
    13. 이후 Submit application (subject to a fee) 버튼을 누르면 결제 단계로 넘어감
      1. Paypal 계정이 있다면 이를 사용하는 것을 추천. 다른 옵션으로 하다가 여러 번 오류가 발생하였음.
      2. Paypal로 결제 시 주의할 점: 결제 통화가 USD로 되어 있을 수 있는데, 이를 EUR(유로)로 변경한 후 결제하기. 안 그러면 오류남.
      3. 정상적으로 결제 처리가 되었다면 이메일로 Paypal에서 보낸 결제내역이 들어올 것임
    14. 결제 완료 후 Application 상태 확인하기
나의 경우 결제 완료 후 상태를 확인해보니 여전히 Waiting for Payment라고 되어 있었음
게다가 ZAB 사이트 내 My Message 페이지를 보니 200유로를 내야 한다는 안내 메시지가 와 있었음
예상하기로는 결제 이후 ZAB 측에 실제로 입금된 후에 완전한 결제 완료 처리가 되는 것으로 보임
허나 마냥 기다리진 말고, 확실한 처리를 위해 나처럼 결제 증빙자료를 미리 전송해두는 것을 추천함
      1. My Applications 페이지로 이동하기
      2. 신청 진행 중인 항목의 우측 점 3개 버튼 클릭 -> Send message 라고 하는 버튼 클릭
      3. Category에서 Payment 선택하기
      4. Subject와 Your message는 결제 증빙자료를 전송한다는 주제로 입력하면 됨
      5. 잊지말 것: Paypal에서 보낸 결제내역 이메일을 pdf로 만들어서 메시지에 첨부하기

여기까지 하고서 기다리면 (별 문제가 없는 한) 상태가 In process라고 변경될 것이다.
진행 상황이 변경되었거나 혹은 어떠한 문제가 있는 경우 ZAB 사이트의 My Messages에 메시지가 들어올 것이니, 메일 등을 잘 확인하는 것을 추천한다.

나의 경우

3월 15일(금) 결제완료
3월 18일(월) 결제 확인 & 상태 변경(In process)
3월 20일(수) 학력 인정 서류 발급 완료

이렇게 영업일 기준 4일만에 발급이 완료되었다.

 

마무리

독일에서 대학교 학력 인정을 받는 것에 대하여 구체적인 정보가 없어서 여러 시행착오가 있었다.
몇몇 블로그를 남겨주신 분들이 있었으나, 이마저도 다소 시간이 지나간 것들이라 지금의 정책과 다른 부분들이 있었다.
이미지도 없어 다소 불친절할 수도 있을 것 같긴 한데... 그래도 본 글이 독일에서 학력 인정을 받으려고 하시는 분들에게 도움이 되길 바란다.


<참고 자료>

프롬프트 엔지니어링 / 리버스 프롬프트 엔지니어링

  • 프롬프트 엔지니어링:
    • 타겟에 대하여 순방향
    • 목표로 하는 답을 얻기 위해 질문을 던짐
    • 원하는 결과가 나올 수도 있고 안 나올 수도 있음
  • 리버스 프롬프트 엔지니어링:
    • 타겟으로부터 시작하여 역방향
    • 이미 이루어진 목표로부터 출발하여 질의응답을 가져옴
      • ex. 이미 부자인 사람이 어떻게 부자가 되었는지 그 삶을 추적하기

생성 AI의 결과물 특징

  • 생성 AI는 동일한 결과를 재생산할 수 없음
    • 난수를 통해 결과를 만들어내기 때문
    • 이 결과에 대한 분산을 줄이기 위해 필요한 것이 프롬프트 엔지니어링
    • 비유: 오은영 박사와 강형욱 조련사의 공통점 = 문제 있는 아이 혹은 개를 온순하게 만듦
      • 프롬프트 엔지니어링도 마찬가지, (결과가) 마구 날뛰는 생성 AI를 온순하게, 의도대로 작동하게 만드는 것임

Few Shot Learning

  • 기존의 딥러닝 모델: GB 단위의 데이터가 있고, 이를 학습해야 함
  • chatGPT: 상황에 맞는 예시 몇 개만 던져줘도 결과를 낼 수 있음(=few shot learning)
    • 몇 천억 또는 몇 조 개의 점(=파라미터)을 미리 찍어놓음(=pre-trained)
    • 입력받은 값이 이 점들의 사이 어딘가에 찍히면 기존에 있던 주변 점들을 이용하여 답을 유추해내는 것임

chatGPT cross check용 서비스

파이썬을 배워라

  • 파이썬 학습을 추천. 텍스트 마이닝, 정규식 등 결국 chatGPT에게 지시를 잘 내리기 위해 필요
  • 질문을 일일이 손으로 입력하는게 아니라 자동화를 해야 함. 그래서 파이썬이 필요함

chatGPT 특징

  • 360여 개의 act as mode 존재
  • IQ 조절 가능(평균 147. 최대 190~210 정도 세팅 가능)
  • 답변 퀄리티 10점 만점 세팅 가능 but 보통 4점 수준
  • 토큰 한계: 4000개
    • openAI tokenizer를 통해 질문의 토큰 갯수 카운트 가능
  • 프롬프트 사이즈 TL;DR(Too Long; Didn't Read)
  • 인공지능 윤리를 유지함

chatGPT 사용 tip

  • 답변 iteration(더 좋은 답변을 요구하며 다시 질문)을 하면 할수록 답변은 좋아질 수밖에 없음
  • 답변이 나오면 그 결과에 대한 뒷배경에 대해서 질문하여 알아낼 필요가 있음
  • 온도(temperature - 하이퍼 파라미터 중 하나)별 다른 결과값
    • 0 ~ 1 범위(=결과값의 분산 크기)
    • 0: 보수적, 안정
    • 1: 진취적, 불안정
    • default: 0.5 / optimized: 0.8 (강연하신 교수님 기준)
  • 하이퍼 파라미터 세팅
    • 질문 입력 시 하이퍼 파라미터 세팅 가능
    • 변경 가능 하이퍼 파라미터 목록: mode, tone, maximum_length, frequency_penalty, presence_penalty, temperature
  • 사용 사례
    • 유튜브 쇼츠용 캡션 생성
    • 슬로건 생성
    • 단어 뉘앙스 확인
      • 모르겠으면 예시 들어달라고 하기(구체적인 예시 3~5개)
    • 은유적 표현
    • 알고리즘 소스코드 생성
      • act as a python intepreter 이런 식으로 명령 가능
    • 코드 해설 및 다른 언어로 변환
    • 코드 최적화

정리

  • 인공지능은 결국 함수
    • 프롬프트 = 함수 <-> 리버스 프롬프트 = 역함수
    • 인간 = 지휘자 <-> 인공지능 = 오케스트라
      • 오케스트라가 다루는 악기(인공지능)를 어느 정도 알아야 제대로 지휘를 할 수 있음
  • 프롬프트 구성
    • 주제: 생선 뼈대(명사)
    • 맥락: 생선 살점(형용사)
      • 맥락 = 배경 설명(방향과 범위)
    • 분량
    • 표현(글의 형식. ex. 에세이)
  • 지시형 프롬프트: chatGPT가 모르는 정보를 요구하면 무용지물
  • 예시형 프롬프트: 관련 정보, 예시 등을 포함하여 프롬프트 작성
    • 잘못된 정보를 줄 경우 편향이 걸릴 수 있음

<추가 자료>

'etc.' 카테고리의 다른 글

[etc.] 독일에서 한국 대학교 학력 인정 받기 (feat. ZAB)  (0) 2024.03.21
[Sum.] 좋은 개발자란?  (1) 2023.03.14

"좋은 개발자란 무엇인가?"
근 몇 개월 간 계속해서 마음속에 품고 있던 화두이다.
마침 이에 대하여 집중해서 살펴볼 시간이 있어, 같은 주제에 대하여 다른 분들의 생각이 담긴 글들을 읽어보았다.
여러 생각 및 의견 그리고 조언이 있었고, 어렴풋이나마 좋은 개발자가 어떤 개발자인지 알 수 있었다.

다만 여전히 내 스스로가 정의하는 "좋은 개발자"는 아직 분명해지지 않았다.
글을 쓰신 분들에 비하여 지식과 경험이 부족해서일까?
하여, 본 글은 나의 생각을 남기기보다는 내가 참고한 여러 글을 간단히 요약하기 위한 공간으로 사용하고자 한다.


1. 좋은 개발자란 무엇일까? by 유리

1) 컴퓨터 활용 능력
2) 프로그래밍 언어 활용 능력
3) 개발자 자신에게 주어진 비즈니스 및 그 상황에 대한 이해도와 유연성
4) 개발자로서의 방향성, 목표를 갖고 있는지의 여부


2. "내가 생각하는 좋은 개발자란?" by TADA 리드 엔지니어 MK

- "같이 일하고 싶다는 생각이 드는 사람"
- 개발 실력은 기본. 커뮤니케이션 능력과 책임감 있는 태도를 갖는 것이 중요.
- 커뮤니케이션 능력이 좋은 사람?
  - 자신의 의견만을 주장하지 않고 남의 의견도 경청할 줄 아는 사람
  - 어떤 문제가 생겼을 때 즉각적이고 투명하게 현재 상황을 알리고 같이 해결책을 찾으려는 태도를 가진 사람


3. 좋은 개발자란 무엇일까? by Evan Moon

- 기술뿐만 아니라 비즈니스나 유저에 대한 생각도 많이 하는 개발자
- 같이 일하고 싶은 사람(=좋은 개발자를 넘어 좋은 동료가 될 수 있는 사람)
  - 나와 다른 의견이든, 나보다 경력이 낮든 상관없이 상대방의 의견을 존중해 주는 태도를 가진 사람
  - 다른 사람이 감정적으로 힘들 때 프로답지 못하다고 비난하기 보다, 그 고민을 들어주고 얼른 제자리로 돌아올 수 있게 돕는 사람
  - 상대방의 감정이 이해는 안 되더라도 그 사람이 그런 감정을 느꼈다는 것을 최소한 인지할 수 있는 사람


4. Good Developer 1 | 좋은 개발자의 5가지 기준 by Code States

1) 코드의 reading과 writing
  - reading: 자신의 업무 파악 및 타인과의 커뮤니케이션에 중요
  - writing: Naming을 잘하고 이해하기 쉽게 코드를 작성하는 것
2) 빠른 생산성: 같은 시간 동안 더 많은 코드를 짜는 것
3) 원활한 커뮤니케이션:
  - "단지 사람이 좋고 나쁨을 떠나서, 대화를 하는데 숨이 턱 막히는 사람이 있고 대화를 하면 할수록 막혔던 부분이 풀리거나 새로운 아이디어를 떠오르게 하는 사람이 있다."
4) 업무 관리, 사람 관리 능력
  - 개발을 한다는 것 = task를 나눠 할당하고 기간에 맞춰 완성시키는 일
  - 업무 관리 = 자신에게 주어진 task를 스스로 관리하는 능력
  - 한국에서 개발자의 종착지는 관리자 -> 사람 관리 능력이 중요
5) 지속적인 학습


5. Good Developer 2 | 커뮤니케이션 잘하는 개발자가 되는 방법 by Code States

- 프로그래머와 개발자는 다르다.
  - 프로그래머: 컴퓨터를 이용해서 프로그램을 제작 또는 수정하는 사람(ex. 외주 프로젝트 프리랜서, 학교 과제 수행하는 컴공 학생)
  - 개발자: 회사나 조직에 소속되어 다른 사람들과 함께 일하며 개발하는 사람
- 좋은 개발자가 되기 위한 첫 번째 방법, '소통'
  - 건설적인 대화 하기
    - 문제점 (1) 대화가 끝났어도 명확한 합의점이나 결과, action item, 해결책이 나오지 않았다.
      - 해결책 (1) 대화의 목적과 목표를 분명히 하기
      - 해결책 (2) 대화가 끝난 후에는 반드시 대화에서 얻어낸 결과물들을 태스크로 전환하고 각자에게 배분하기
    - 문제점 (2) 논쟁을 하다 삼천포로 빠지고, 논쟁이 논쟁을 위한 논쟁으로 변질된다.
      - 해결책 (1) 논쟁의 지점을 분명히 하기
      - 해결책 (2) 용어를 분명히 하기(용어 통일)
  - 커뮤니케이션의 핵심은 '나 자신'
    - 커뮤니케이션을 잘 하기 위한 조건 3가지
      - 조건 (1) 자신과 상대방의 커뮤니케이션 스타일 파악하기
      - 조건 (2) 상대방이 당신에게 망설임 없이 커뮤니케이션할 수 있게 하
        - 주변에 커뮤니케이션하기 망설여지는 상대를 찾아보기 -> 이후 나 자신을 되돌아보기
        - 다른 사람에게 솔직하게 물어보기
      - 조건 (3) 동료와 친밀한 관계를 형성하고 공감하기
- 대화뿐만 아니라 협업 툴 등을 사용하여 커뮤니케이션하기
  - 자신이 하고 있는 일을 공유 & 상대방의 업무 파악하기
  - 도구를 잘 쓰는 것도 커뮤니케이션 능력 향상의 일환


6. 개발자의 생명은 커뮤니케이션 능력 by 임백준

- 프로그래머와 개발자의 차이
  - 프로그래머: 강호를 혼자 떠돌며 칼을 쓰는 무사 -> 칼솜씨가 중요
  - 개발자: 거대한 군사 조직에 속한 정규군 -> 규칙과 규율이 중요(칼솜씨도 중요)
  - 결국 개발자는 커뮤니케이션 능력이 중요
- 개발자의 커뮤니케이션 능력이란?
  - 아닌 것
    - 다른 사람들 앞에서 준비한 슬라이드를 이용해서 발표하는 능력
    - 논쟁이 벌어졌을 때 자기주장을 관철시키는 능력
    - 고객을 설득해서 특정한 제품이나 서비스를 판매하는 능력
    - 말을 아나운서처럼 또박또박 발음하는 능력
  - 맞는 것
    - 명확하지 많은 이야기 속에서 지엽적인 것을 걸러내고 본질을 파악하는 능력
    - 복잡한 논리나 추상적인 개념을 상대방이 이해할 수 있게 설명하는 능력
    - 타인의 감정을 이해하는 공감능력
- 커뮤니케이션 능력을 키울 수 있는 방법
  - 독서: 컴퓨터를 끄고, 전화를 내려놓고, 호흡이 긴 독서하기
  - 좋은 사람 만나기:
    - 만나서 감정 소모되거나 자기를 자기답게 만들어주지 않는 사람은 만날 필요가 없다.
    - 인맥관리나 사회생활 핑계대지 말기


7. 좋은 개발자가 되고 싶다면 다음 5가지 소양을 갖추세요. by F-Lab

1) 항상 의문을 제기하기
2) 긍정적으로 생각하기
3) 의사소통은 말로 하기
4) 중요한 것은 아이디어
5) 항상 겸손하기


8. 채용 전쟁에서 '슈퍼루키' 개발자를 찾는 기준 by claudia(채널톡)

- 좋은 개발자란, 빠르게 배우고 깊게 고민한 사람
  - 좋은 제품을 만들기 위해서는 변화에 빠르게 적응해야 함
- 빠르게 배우는 개발자의 특징: 몰입(Deep dive)의 경험
  - 몰입: 자신이 좋아하는 분야의 본질을 이해하기 위해 시간을 쏟고 실제로 구현한 사람
  - 좋은 개발자는 무엇이 됐든 본질적인 프로토콜을 한번 깊게 파보고 구현한 사람
    - 이런 사람은 큰 문제를 맞닥뜨렸을 때 구조적으로 핵심을 파악해서 문제를 해결함
- 좋은 개발자의 회사 선택 기준
  - 좋은 개발자 동료가 있는 곳
  - 제품 개발이 회사 성장에 핵심 영향력을 주는 곳


8. 10배 이상 뛰어난 개발자가 되는 법(요즘IT 번역글) by Michael Lin

- 초급 개발자가 저지르는 3가지 실수
  1) 사용하는 도구에 대한 연구가 없음
    - 초급 개발자가 저지르는 흔한 실수: 무작정 코딩부터 시작함
    - 자신이 알고 있는 도구만 고집하고, 이를 모든 곳에 적용하려고 함
    - 다른 대안을 찾는 데 시간을 투자하지 않음
  2) 도움을 요청하지 않음
    - 초급 개발자는 스스로 상황을 판단하고 정보를 해석할 능력이 부족함 -> 자기 혼자 고민에 빠짐
  3) 비즈니스 가치를 제공하지 않음
    - 코드: 비즈니스 목표를 달성하기 위한 수단
    - 초급 개발자들이 비즈니스 목표를 간과하는 경우
      - 신기술 적용 -> 제품 전략과 일치하지 않을 수 있음
      - 코드 리팩토링 -> 기회비용. 수익 창출을 위한 다른 기능 개발에 시간을 보낼 수 있음
      - 새 플랫폼으로 마이그레이션 -> 확실히 좋아지는 것이 있나?


각각의 글을 간단하게 요약해보았는데, 전체적으로 봤을 때 좋은 개발자를 구성하는 요소로 3가지를 들 수 있어 보인다.

1. 기술 사용 능력(코드 작성 능력, 자료구조/알고리즘 및 하드웨어에 대한 이해 등 포함)
2. 커뮤니케이션 능력
3. 비즈니스에 대한 이해

1번은 개발자로서의 기본기라고 할 수 있겠고, 어찌 보면 위 3가지 중 가장 쉽게 접근할 수 있겠다.
(난이도가 쉽다기보다는 이를 구성하는 요소들이 명확하게 드러나있음과 동시에 수준 파악이 비교적 용이하다는 생각)

3번의 비즈니스에 대한 이해는 어찌 보면 자신이 몸 담고 있는 분야에 대한 지식과 시장 상황 등을 알면 될 것처럼 보인다.
그러나 해당 분야에 대해서 어디까지 알아야 하는가(어느 정도 이해하는 수준? or 완전 전문가 수준까지?)에 대해서는 끝이 없어 보인다.
그리고 단순히 지식을 앎에 그치지 않고, 개발자로서 비즈니스 가치를 확보할 수 있는 결과물을 만들어내는 능력은 별개일 것이다.

2번의 커뮤니케이션 능력은, 당연한 말이지만, 개발자에게만 국한된 것은 아니다.
세상의 어떤 일을 하든 이 커뮤니케이션은 중요하다(심지어 혼자 일을 하더라도 스스로와의 커뮤니케이션이 필요하지 않겠는가?).
이러한 맥락에서, 나에게 있어 '커뮤니케이션 능력'에 대한 고민은 마치 "어떻게 하면 더 좋은 사람이 될 수 있을까"에 대한 길을 찾아가는 것과 같다.

아직 내 스스로 정의내린 "좋은 개발자"가 무엇인지 모르겠지만, 다른 분들의 글을 통해 얻어낸 기준으로 봤을 때 나는 과연 좋은 개발자인가 하는 의문이 든다.
- 나의 기술력은 충분히 뛰어난가?
- 나는 나의 분야에 대하여 충분히 알고, 이해하고, 이를 토대로 개발로서 가치를 전달하고 있는가?
- 나는 다른 사람들과 좋은 커뮤니케이션을 하고 있는가?
위 질문들에 대한 나의 대답은 "모르겠다"이다.
선뜻 "예"라고 하기는 좀 그렇고, 그렇다고 "아니요"라고 할 정도는 아닌 것 같고, 그 사이 어느 지점에 있는 "모르겠다"이다.
아마도, 적어도 몇 년간은 계속 "모르겠다"이지 않을까 싶다.
(그전에 나 스스로 "좋은 개발자"가 무엇인지 정의하는 게 우선이겠지만)


비록 이 글이 다른 훌륭한 개발자분들의 생각을 모아 조잡하게 요약한 글이긴 하나,
그럼에도 나와 같은 화두("좋은 개발자란?")를 가진 다른 분들이 각자의 생각을 펼침에 조금이나마 도움이 되길 빈다.


<참고 자료>
- 좋은 개발자란 무엇일까? by 유리
- "내가 생각하는 좋은 개발자란?" by TADA 리드 엔지니어 MK
- 좋은 개발자란 무엇일까? by Evan Moon
- Good Developer 1 | 좋은 개발자의 5가지 기준 by Code States
- Good Developer 2 | 커뮤니케이션 잘하는 개발자가 되는 방법 by Code States
- 개발자의 생명은 커뮤니케이션 능력 by 임백준
- 좋은 개발자가 되고 싶다면 다음 5가지 소양을 갖추세요. by F-Lab
- 채용 전쟁에서 '슈퍼루키' 개발자를 찾는 기준 by claudia(채널톡)
- 10배 이상 뛰어난 개발자가 되는 법(요즘IT 번역글) by Michael Lin

+ Recent posts