ki hyun Lee

ki hyun Lee님의 아티클

ki hyun Lee

ki hyun Lee

소프트웨어 개발 방법론 (1)

“소프트웨어 개발 커뮤니티에서 소프트웨어 개발 방법론과 이를 구현할 방법이라는 주제보다 더 많은 논쟁을 불러일으키는 주제는 없을 것이다" - 존 소메즈

소프트웨어 개발 방법론은 소프트웨어 제작 절차를 정의한다. 몇 가지 원칙 외에 크게 요구하는 게 없는 가벼운 방법론도 있고, 익스트림 프로그래밍처럼 지켜야 할 규칙이 무척 많은 방법론도 있다. 이번 글에서는 여전히 많은 조직에서 사용하고 있는 폭포수 프로세스와 오늘날 소프트웨어 개발계에서 가장 유행하고 있는, 누구나 하지만 아무도 제대로 하지 않는 애자일 개발 모델에 대해 살펴볼 예정이다. 마지막으로는 소메즈가 가장 중요하다고 생각하는 애자일 개발 방법론 세 가지를 소개하겠다.

전통적인 폭포수 개발

소메즈가 처음 개발을 배울 무렵에는 모두가 전통적인 폭포수 프로세스를 썻다고 한다. 폭포수라는 이름조차 없었고 이 방법을 비웃는 사람도 없을 정도로 당연하게 사용되는 방법론이었다.

폭포수 개발은 이름 그대로 바닥에 닿을 때까지 한 단계가 끝나면 다음 단계로 내려가며 소프트웨어를 한 번에 한 단계씩 만들어가는 방식이다. 폭포수 개발 방법론에는 소프트웨어 개발 생명주기(SDLC)가 포함되어 있다. 사실 폭포수 개발은 SDLC를 점진적으로 따라갈 뿐이라고 보아도 무방하다.

SDLC를 반대하는가?

소메즈는 SDLC를 반대한다고 한다. SDLC는 소프트웨어를 개발하기 위해 요구사항 분석부터 시작해 설계, 구현, 테스트, 배포, 유지 보수로 끝나는 일련의 과정을 가리킨다. 한 번에 한 단계씩 앞으로 전진하고 절대로 뒤로 가지는 않는다고 한다.

요구사항 분석

개발할 소프트웨어에 필요한 요구사항을 전부 알아내는 단계다. 고객이나 이해 당사자와 대화를 하면서 알아내기도 하고 그냥 직접 생각해내기도 한다. 어떤 방법을 쓰든 제작에 들어가기 전에 알아야 한다. (하지만 이게 늘 가능하지는 않다는 걸 금세 알게 된다.)

소프트웨어 디자인

전통적인 폭포수 방식에는 보통 방대한 사전 설계라고 알려진 방법을 쓴다. 세부 사항 대부분에 대한 계획을 아주 낮은 수준까지 설계 단계에서 정해두는 걸 가리키는데 현실에서는 요구사항이 바뀌고 예측하지 못한 일들이 일어나므로 이런 방식을 고수하기는 어렵다.

구현

간단하다 개발자들을 갈아넣어 멋진 코드를 만들면 그만이다.

테스트

테스터들이 개발자들이 열심히 짜놓은 코드에 일일이 태글을 걸며 버그를 잡는 시간이다. 소메즈의 말에 따르면 몇 번의 논쟁과 속임수를 거친 후에 모두가 다음 단계로 넘어가도 좋다고 동의할 때까지 최대한 많은 버그를 고친다고 한다.

배포

배포란 서버에 코드를 배포하는 작업일 수도 있고, 모든 고객에게 배송할 배포용 표준 CD를 만든다는 뜻일 수도 있다. 오늘날에는 앱 스토어에 앱을 업로드한다는 의미일 수도 있다. 어떤 방식으로든지 자신의 소프트웨어를 고객의 손에 전달하기만 하면 된다.

유지 보수

어떤 책에서 개발자들은 새로운 기능을 개발하는것보다 유지보수하고 문서를 작성하는데 시간을 더 쓴다는 말을 봤던 것 같다. 그만큼 유지보수는 중요하고도 지루한 일이다.

이게 바로 SDLC의 전 단계이다. 요구사항을 알아내고, 소프트웨어를 설계하고 제작하고 테스트한 후 배포해서 회사가 망하기 전까지 유지 보수하는 것이다.

다음 글에서는 폭포수 개발론에는 어떤 문제가 있는지와 애자일 방법론에 대해 살펴보자

7
1
ki hyun Lee

ki hyun Lee

자기소개

안녕하세요! 인공지능과 블록체인에 관심이 많은 풀스택 개발자 이기현입니다!

8
3
ki hyun Lee

ki hyun Lee

입문자가 처음 AI를 공부하려면 어떻게 시작하는게 좋을까요?

이때까지 여러번 AI를 공부하려고 시도하고 있는데 높은 진입 장벽때문에 번번이 실패하고 마네요...

입문자가 쉽고 재밌게 AI 공부를 시작하려면 어떻게 시작하는게 좋을까요?

아래 2개를 추천받았는데 여러분의 의견이 궁금합니다.

url thumbnail

Practical Deep Learning for Coders - Practical Deep Learning

A free course designed for people with some coding experience, who want to learn how to apply deep learning and machine learning to practical problems.

https://course.fast.ai/


url thumbnail

Neural Networks: Zero To Hero

https://karpathy.ai/zero-to-hero.html


4
2
ki hyun Lee

ki hyun Lee

연봉과 협상

소메즈의 주장에 따르면 이 글에 나온 조언을 잘 활용하면 개발자로 일하는 동안 수십만 달러나 백만 달러가 넘는 금액도 벌 수 있을 것이다. 그 이유는 2 가지가 있다

1. 협상을 제대로 하면 연봉 인상에서는 기대할 수 없을 만큼 높은 수준으로 초봉을 올릴 수 있다.

2. 연봉 인상은 대부분 기존 연봉을 기준으로 하여 일정한 비율로 올라간다.

그래서 직장에 처음 들어갈 때 최대한 협상을 잘해두는 게 절대적으로 중요하다고 한다. 


연봉의 범위를 알자

먼저 해당 회사에서 자신이 원하는 직군이 받는 연봉의 범위를 알아야 한다. 예상 연봉을 알려주는 사이트를 참고하거나 주변에 물어보면 된다. 그렇다고 그 회사에서 일하는 사람에게 가서 연봉을 얼마나 받느냐고 묻지 말고 “제가 X~Y 달러 정도의 연봉을 기대하면 합리적인 수준일까요? 혹시 아는 내용과 다르다면 어느 정도가 합리적인 수준인지 알려주실 수 있나요?” 정도가 적당하다고 한다. 그리고 상대가 얼마를 이야기하든 그 금액보다 10% 높다고 생각하는게 좋다고 한다. 자신보다 더 높은 연봉을 받을 수 있게 도와주려는 사람은 거의 없기 때문이다.

정확한 연봉을 알아내는 것은 어렵지만 연봉 협상에 들어가거나 제안서를 검토해보기 전에 그 회사에서 같은 직책이나 직급이 받는 연봉의 범위가 보통 어느 정도 되는지는 알아보는 게 좋다.


제안서 받기

대부분의 회사는 일자리를 제안할 거라는 사실을 사전에 알려준다. 제안도 받기 전에 협상을 하려고 하다가는 제안이 아예 철회돌 위험이 있고, 제안을 받은 후에 협상을 시작하면 유리한 고지를 미리 선점하지 못할 위험, 너무 낮은 금액을 제안 받아서 협상이 난관에 처할 위험이 있다.

소메즈는 제안을 받은 후에 협상하는 쪽을 선호한다고 한다. 제안을 받았다는 것은 인사 담당자가 자신을 고용하겠다고 결정한 것이기 때문에 이 점을 협상에서 유리하게 사용할 수 있다고 한다. (물론, 제안은 하나의 제안일 뿐 그 자리를 완전히 차지한 것이 아니기에 무산될 수 있다는 점을 염두에 두어야한다.)

제안서를 받았다면 업무 시작일, 연봉, 직책, 휴가나 건강보험 같은 복지 혜택 등 중요한 세부 사항을 찾아보라고 한다. 이 모든 것이 협상의 대상이 될 수 있으므로 모든 항목을 꼼꼼히 살펴봐야 한다. 제안을 바로 승낙하고 싶을 수도 있지만 적정선을 잘 지키는 협상은 늘 해볼 가치가 있다고 한다.


협상하기

먼저 협상이 중요한 이유는 무엇일까? 협상이 중요한 가장 큰 이유는 입사 후보다 입사 전에서의 연봉 조정이 더 쉽기 때문이다. 전체 보상이 10% 정도 인상된다면, 연봉 인상은 많아야 해마다 2~3% 정도이고 아예 동결인 경우도 흔하므로 연봉 인상 측면에서 2~3년 앞서가는 셈이다. 여기에 복리의 힘까지 더한다면 그 차이가 확연하게 벌어진다.

다음 표는 협상 없이 그냥 80,000달러를 받는 경우와 협상을 통해 90,000달러를 받는 경우를 비교한 수치다. 매해 3% 인상을 받는다고 가정했다.

차액이 114,639달러(약 151,267,891원)다. 이 정도 돈을 더 번다고 해서 부자가 되는 것은 아니지만 꽤 큰 돈이라고 생각한다. (참고로 기간을 30년으로 늘리면 차액은 475,754.16 달러 (약 6억 2천만원) 가 된다고 한다.


유리한 고지 점령하기

개인 브랜드를 만들고 자신을 마케팅하라고 강조하는 이유가 바로 유리한 고지를 점령하기 위함이라고 한다. 유리한 위치를 점해야 원하는 협상 결과를 얻을 확률이 높아진다. 협상에서는 여유 있는 사람이 늘 유리하다는 것을 기억하라

더 나은 위치를 차지하기 위해서는 필사적인 입장에서 벗어나는게 중요하다.

- 다른 일자리를 구하기 전에 다니던 직장을 그만두지 마라

- 몇 달 정도 버틸 수 있는 생활비를 늘 준비해두라.

- 일자리에 지원할 때는 가능한 한 추천을 받아라

- 면접을 아주 철저하게 준비해서 최선의 성과를 내라

- 동시에 여러 제안을 받을 수 있는 상황을 만들 수 있으면 더욱 좋다.

- 자신이 지원할 구직 시장, 협상할 회사, 연봉 정보를 잘 알아두라

- 좋은 평판을 구축하라. 평판이 좋을수록 더 유리해진다.


숫자를 먼저 말하는 사람이 진다

연봉 정보를 지원자와 회사 양측 모두에게 아주 중요한 정보다. 어떤 협상에서든 숫자를 먼저 말하는 사람이 진다. 어떤 상황에서도 자신의 현재 연봉을 노출하지 마라. 그리고 제안을 받기 전에 자신이 원하는 연봉이 얼마인지도 절대 알려주지 마라.

우선 현재 연봉이 얼마인지 물어보면 연봉 정보는 현재 회사의 기밀이라서 발설하면 찝찝할 것 같다고 얼버부리라고 한다. 그래도 계속해서 말하라고 압력을 가한다면 복지 제도나 무형의 혜택 등을 포함해 회사에서 받은 전체 보상이 얼마인지를 고려하는 게 옳기 때문에 연봉만 따로 떼어서 이야기하고 싶지 않다고 하라고 한다.

예를 들어 만약 자신이 어떤 일자리에 지원해서 합격한 후 연봉 협상을 하고 있는 단계라고 가정해보자 이 경우 회사에서 처음 하는 질문은 희망 연봉이다. 그래서 5000만원 정도라고 말한다. 인사 담당자는 즉시 제안을 받아들이고 협상을 마친다. 하지만 여기에는 함정이 숨어있다. 사실 인사 담당자가 그 자리에 생각한 예산은 7000 ~ 9000만원 이였던 것이다.


결론

협상을 잘 해낸다면 남들에 비해 더 많은 연봉을 받으면서 회사에 다닐 수 있다. 물론 위의 내용들은 실천하기 어렵다. 실전에 가면 기억이 나지 않을 수 있고, 적용하기 어려울 수 있다. 하지만, 적어도 나는 위의 의견이 틀렸다고는 생각하지 않는다.

0
0
ki hyun Lee

ki hyun Lee

이력서 만들기

“이력서는 가장 중요한 동시에 가장 쓸모없다” - 존 소메즈

이력서를 제대로 읽어보는 사람은 거의 없는 것 같지만, 오히려 대충 흟어만 보고도 즉각 그 주인공에 대해 확실한 인상을 만들어낸다. 원하는 면접 기회를 잡기 위해서는 내용이나 형식 면에서 휼륭한 이력서를 만들어야 한다. 하지만 개발자들의 이력서는 보통 형편없다. 소메즈는 자신의 책을 읽고 있는 독자들의 이력서조차 형편없을 확률이 높다고 한다.

이력서는 광고다. 휼륭한 이력서를 원한다면 어디에 지원하든 담당자가 이력서를 흟어보는 시간은 15초 정도에 불과하단 것을 알아야 한다. 15초 내에 좋은 인상을 남겨야 한다는 말이다.


1단계: 이력서를 만들지 마라

이게 무슨 말인가 싶을 수도 있다. 하지만 소메즈는 이력서 작성 전문가나 카피라이터가 아닌 이상 이력서를 직접 쓰지 말라고 주장한다. 물론 자신의 이력서 작성을 아예 남에게 떠넘기라는 것이 아니다. 남이 처음부터 끝까지 만들어준 이력서는 척 보면 티가 난다고 한다. 그리고 소메즈는 그런 사람을 채용한 적이 한번도 없다고 한다.

소메즈의 주장에 따르면 실력 있는 이력서 작성 전문가의 도움을 받아서 만든 이력서를 낸 소프트웨어 개발자는 더 많은 일자리, 더 높은 연봉을 받는다고 한다. 이력서 작성에는 기술이 필요하다. 특히 설득력 있는 글을 쓰기 위해서는 기술이 필요하다. 앞서 말했듯이 이력서는 1 페이지짜리 광고이기에 이러한 기술이 매우 중요하다.

휼륭한 개발자가 이력서까지 휼륭하게 작성할 거라고 보기는 어렵다. 소메즈는 집을 수리할 때를 예로 든다. 보통 집을 수리할 일이 생긴다면 사람을 불러서 고친다. 마루 까는 법, 타일 붙이는 법(고강 타일이 생각나네요… ㅋㅋ)을 몰라서가 아니다. 누구든 할 수는 있는 일이지만 그런 일을 천 번도 넘게 해본 사람이 하는게 훨씬 낫기 때문이다. 따라서 소메즈는 이력서 작성 전문가를 고용하되 제대로 된 사람을 고르라고 조언한다.


이력서 작성 전문가 고르기

전문가를 제대로 고르지 못해서 직접 작성하는 것보다 더 엉망인 이력서를 만들면 앞서 말한 모든 것이 아무 소용이 없다. 이력서 작성 전문가를 고를때는 소프트웨어 개발자 이력서나 기술 관련 이력서를 전문으로 하는 사람을 찾는게 좋다. 기술에 대해 전혀 모르는 사람을 만난다면 최악의 경우 이력서에 “SQL을 다형성 프로그래밍 코드에 적용하면서 프로젝트의 C++ 파트를 혼자 이끌어본 경험이 있습니다” 같은 문구가 들어간다고 한다.

이러한 상황을 방지하기 위해선 계약하기 전에 작업 샘플을 보여달라고 해라. 또한 너무 저렴한 가격을 찾는 것보단 300~500 달러(40~60만원) 정도가 적당한 가격이라고 한다.


이력서 작성 전문가와 작업하는 법

좋은 정보를 주어야지만 좋은 결과물이 완성된다. 아래는 이력서 작성 전문가에게 주어야 할 정보들이다.

1. 모든 관련 업무 경력의 정확한 날짜

2. 각 일자리의 직함과 직무 내용

3. 각 업무에서 성취한 주요 업적

4. 모든 학력

5. 각종 증명서와 수상 경력

6. 가장 중요하다고 생각하거나 가장 큰 관련이 있다고 생각하는 기술 목록

7. 자신이 하고 싶은 직무에 관한 몇 가지 직무 설명 샘플

8. 그 외 관련이 있다고 생각하는 모든 것

이러한 정보를 정리하는 데는 생각보다 시간이 오래 걸린다. 이력서 작성 전문가에게 더 좋은 정보, 더 자세한 정보를 제공 할수록 더 훌륭한 이력서가 만들어진다.

다른 자리에 각기 다른 방식으로 지원할 수 있도록 몇 가지 다른 버전의 이력서를 만들어달라고 부탁하라. 자기소개서도 버전별로 완전히 다른 모습을 보여 줄 수 있게 작성해달라고 요구하라. 지원하는 일자리마다 제대로 잘 작성된 완벽한 맞춤형 자기소개서를 내는 게 핵심이다.

마지막 팁은 완성된 이력서가 마음에 들지 않을 때는 점잖게 참지 말고 하고 싶은 말을 하라는 것이다. 자신의 경력과 미래가 달린 일이기에 좋은 결과가 나올 수 있게 요구할 줄 알아야 한다. 작업이 마음에 들지 않을 때는 가차 없이 해고하고 다른 사람을 찾아라.


좋은 이력서의 조건

좋은 이력서가 갖춰야 할 중요한 조건이라면 무엇보다 보기 좋아야 한다. 사람들은 겉모습을 보고 내용을 판단하기에 이력서 작성 전문가라면 내용만 잘 다듬는 게 아니라 겉모습도 잘 갖추어준다.

또한 이력서는 지원자가 어떤 사람인지 지원한 회사에 어떤 도움이 될지 빠르고 효과적으로 전달해야 한다. 사람들은 다른 사람이 무엇을 원하는지 관심이 없다. 사람들은 상대가 본인에게 얼마나 유용한 사람일지를 궁금해한다.

이력서는 자신을 홍보하는 1페이지짜리 광고다. 나라는 사람이 얼마나 수요가 높고 전설적인 개발자인지 보여주어야 한다. 또한 간단명료하고 전문적이어야 한다. 지금껏 그 사람이 쌓아온 위대한 주요 업적을 강조해서 보여주어야 한다.

궁극적으로 자신이 어떤 기술을 갖추었고 어떤 분야가 전문인지, 그 기술로 과거에 어떤 훌륭한 결과를 냈는지, 그리고 지원하는 자리에서 그 기술을 어떻게 활욜할지 명확하게 보여주어야 한다.

0
1
ki hyun Lee

ki hyun Lee

[커리어 스킬] 경력 없이 일자리 구하기

경력 없이 취업하기란 무척 어려운 일이다. 이전 글에서 인턴십 과정에 대해 이야기했지만 인턴십 기회가 누구에게나 주어지지는 않는다. 

“경력이나 인턴 경험이 없어도 취업할 수 있다”. - 존 소메즈


 소프트웨어 개발자 고용 시 최대 위험 요소

존 소메즈의 경험에 따르면 회사가 가장 큰 위험 요소로 느끼는 것은 코딩할 줄 모르는 사람을 고용하는 것 이라고 한다. 코딩할 줄 모르거나, 실력이 아주 형편없는 사람은 회사에 손해를 끼친다. 그런 사람은 월급 이상의 비용이 지출되기 때문에 아예 고용하지 않는게 낫다.

따라서 회사에서는 이러한 개발자들이 회사에 들어오는 것을 막기 위하여 화이트보드 코딩 면접 등의 방법을 사용하여 개발자들의 실력을 확인하고 있다.


 온라인에 존재감 드러내기

"면접관은 입사 후보의 이름을 구글에서 검색해본다” - 존 소메즈

솔직히 이 말이 한국에도 적용되는지는 잘 모르겠다. 하지만, 온라인에서의 존재감은 확실히 중요하다. 평소 디스콰이엇과 같은 플랫폼에서 꾸준히 오랜 기간 활동한 사람이라면 면접관이 한 눈에 알아볼 가능성이 올라간다. 나라면 생판 모르는 사람보다는 평소 디스콰이엇과 같은 플랫폼에서 오랜 기간 활동하며 실력이 있다고 판단된 사람을 뽑을 것 같다. 

특히 소메즈는 전문 블로그가 있는 것이 정말 큰 도움이 된다고 말한다. 개발자로서의 경력이 많든 적든 자신이 배운 내용을 공유하고 자신이 주력하기로 결정한 소프트웨어 개발 분야에 대한 글을 쓰라고 한다. 물론 블로그를 작성하는건 꽤 어렵다. 나도 블로그를 꾸준히 쓰기 위해서 많이 노력했고 많이 실패했다. 나는 실패한 원인을 찾던 중 흥미로운 사실을 발견했다. 내가 글을 너무 잘 쓰려고 하고 있다는 것이다. 솔직히 나는 글을 못 쓰는 편이다. 글도 못 쓰는것이 괜히 본 것만 많아서 휼륭한 분들의 블로그만큼 글을 쓰려고 하니 오래 꾸준히 쓰기가 힘들었다. 그래서 이런 고민을 디스콰이엇에 올렸더니 글에 힘을 빼보라는 조언을 해주셔서 최근에는 있는 그대로 쓰기 위해 노력중이다.


 포트폴리오 만들기

“작성한 코드와 참여한 프로젝트를 제출하면 소프트웨어 개발에 대한 지식과 코딩 능력을 갖추었다는 사실이 확실히 증명된다" - 존 소메즈

깃허브는 자신의 코딩 능력을 드러내기 가장 좋은 플랫폼이다. 소메즈도 경력 없이 시작해야 하는 상황에 놓인다면 깃허브에 최대한 강한 인상을 남길 수 있는 프로필을 만들것이라고 한다. 또한 모바일 앱을 제작해서 앱스토어에 올리는 것도 좋은 방법이 될 수 있다. 앱을 만들게 되면 포트폴리어 뿐만 아니라 돈을 벌 수도 있고 부업을 시작할 수도 있다.

“솔직히 요즘 같은 세상에 포트폴리오도 없이 개발자가 되겠다고 하는건 말도 안된다” - 존 소메즈

포트폴리오는 자신의 실력이 얼마나 뛰어난지 보여줄 최고의 도구이자 개발자로 일할 자격을 갖추었다는 것을 증명할 아주 좋은 도구이기 때문에 개발자라면 꼭 포트폴리오를 만들어야 한다고 조언한다. 특히 포트폴리오에 최소 서너 가지 이상의 애플리케이션이나 프로젝트를 넣는게 중요하다고 한다. 엄청나게 거창한 프로젝트일 필요는 없지만 너무 사소한 것은 곤란하다.


 창업하기

일자리 구하는 법에 대해 이야기하다 갑자기 창업을 이야기하니 뭔가 이상하다는 생각이 들 수 있다. 하지만, 잘 생각해본다면 창업은 경력을 만들기에 가장 좋은 방법이라고 할 수 있다. 생각보다 많은 회사가 1인 기업으로 운영되거나 파트타임 계약직으로 소수의 핵심 직원만 고용한다고 한다. 창업을 하기 위해서 거창한 것이 필요하지도 않다. 앱 한두 개를 만들어서 앱 스토어에 공개한 후 조금 더 그럴듯하게 보이기 위해서 회사용 웹 사이트를 개설하면 그만이다. 

이 방법은 조금도 거짓이 없고 완전히 합법적이다. 면접에서 자신이 만든 회사에 대해 물으면 자신이 창업했다고 솔직하게 이야기하고, 묻지 않는다면 자발적으로 이야기할 필요는 없다.


 면접 준비하기

경력이 없는 사람에게는 더욱 엄격한 잣대를 들이대고 훨씬 까다로운 질문을 던지기 때문에 오랜 시간을 들여서 면접을 준비해야만 한다. 소메즈가 추천하는 방법은 면접 예상 질문을 공부하고 가족, 친구, 동원할 수 있는 모든 이를 동원해서 모의 면접을 보는 것이다. 자신의 능력을 제대로 보여주기 위해서는 충분한 시간을 들여서 철저히 준비해야 한다.


 인맥 만들기

“믿을 만한 사람이라는 추천이나 보증을 받아서 기회를 얻는 게 경력 없이 기회를 얻을 수 있는 최고의 방법이다” - 존 소메즈

소메즈는 개발자 모임이나 커뮤니티 행사에 꼭 참가하라고 조언한다. 이런 종류의 모임에서 만난 사람들이 추후에 큰 도움이 될 수 있다고 한다. 디스콰이엇도 이런 종류의 모임과 비슷한 정도의 효과를 낼 수 있으리라 기대한다.


 결론

회사에서는 실력이 입증되지 않는 사람을 채용하는 것을 굉장히 두려워하기에 경력이 없는 사람을 채용하고 싶어하지 않는다. 따라서 이러한 벽을 넘기 위해서는 많은 노력이 필요할 것이다.

0
1
ki hyun Lee

ki hyun Lee

[커리어 스킬] 인턴십

인턴십은 이제 막 개발자로 입문하는 사람이 일자리를 구할 수 있는 가장 쉽고 좋은 방법이다. 특히 (미국 기준) 마이크로소프트, 구글, 페이스북, 애플과 같은 대기업에 입사하고 싶다면 인턴십이 아주 중요하다. 거대 IT 회사는 보통 인턴이나 경력직 개발자만 고용하는 경향이 강하다고 한다. 회사 입장에서는 인턴십을 통해 고용 전 직원을 평가할 기회를 얻고, 개발자에게는 실제 그 회사에서 일하면 어떨지 경험해볼 기회가 될 수 있다.

인턴십은 누구에게나 주어지는 기회가 아니다. 인턴십을 해볼 기회가 생겼다면, 보수가 별로 좋지 않거나 거의 무보수에 가깝더라도 그 기회를 꼭 잡기를 권한다.


인턴십이란?

인턴십은 조직에서 학생이나 신입으로 입사하는 사람에게 임시로 제공하는 일자리를 가리킨다. 무급일 수도, 유급일 수도 있다. 다른 일자리와 달리 인턴십 지원자에게는 경력을 요구하지 않는다. 따라서 입문자에게는 굉장히 좋은 기회가 될 수 있다. 회사에서 인턴을 고용하는데도 다양한 이유가 있다. 선행 실천이나 사회 환원 차원에서 인턴을 채용하는 회사도 있고, 새로운 인재를 대학에서 바로 낚아채는 게 목적인 회사도 있다. 


보수에 대하여

"인턴십에 대해 고민할 때 보수 여부를 논하는 건 적절치 않다고 본다" - 존 소메즈

소메즈는 인턴십을 결정할때 보수를 보기보다는 이 경험이 경력에 어떤 도움이 될지, 그 덕에 어떤 기회의 문이 열릴지를 보라고 한다. 멍청한 상사에게 시간을 허비하며 많은 돈을 받기보다는 억만장자를 위해 무료로 일하는 편이 낫다고 주장한다.


인턴이 되는 방법

인턴이 되는 전통적인 방법은 대학에서 운영하는 인턴십 프로그램을 알아보거나, 구글에 검색해서 알아낸 정보를 토대로 마음에 드는 회사에 지원해보는 방법이 있다. 하지만, 소메즈가 추천하는 방법은 다르다. 소메즈는 스스로 인턴십을 만드는 방법을 추천한다.

소메즈가 추천하는 방식은 아래와 같다.

1. 살고 있는 지역에서 인턴십이나 고용과 관련된 법규에 대해 조사해본다. 그리고 인턴을 고용하려면 법적으로 어떤 서류를 준비해야 하는지 정확히 확인한다.

2. 다음으로 내게 가장 가치 있는 경험을 제공하고 내가 가장 공헌할 수 있을 것 같은 회사 목록을 만든다. 그리고 가장 가능서이 높은 회사들을 골라서 그 회사에 대해 깊게 연구한다.

3. 마지막으로 회사에 연락하여 그들이 진행하는 프로젝트에 자신이 바로 도움이 될 수 있다는 점을 강조하며 자신이 이 기회를 얼마나 간구하는지, 회사를 위해 내가 무엇을 할 수 있는지 최대한 구체적으로 이야기한다.

4. 인턴십 프로그램이 없다고 이야기한다면 이렇게 말한다. “걱정 마십시오. 어떻게 하면 인턴십을 만드는지 제가 정확히 압니다."


좋은 인턴이 되는 법

"인턴은 아주 골칫거리다. 끊임없이 관리하고 질문에 답해주고 무엇을 해야 할지 말해줘야 하기 때문이다” - 존 소메즈

무급 인턴을 데리고 있는데 위와 같이 행동한다면 유급으로 일하는 직원보다 더 많은 비용이 든다고 한다. 인턴이 있으면 무슨 일을 할지 말해주고 실수를 고쳐주는데 시간이 들어가기 때문이다. 따라서 좋은 인턴이 되고 싶다면 상사의 시간을 최대한 아껴주어야 한다. 자신이 무슨 일을 해야 할지 스스로 알아내고 최소의 관리와 피드백만 받고도 일을 제대로 해낼 수 있어야 한다는 것이다. 누가 무엇을 필요로 하는지 관찰하고 예측하고 다른 이들의 업무 수행을 도울 때, 단순히 본인의 업무를 수행하면서 다른 이의 도움을 받을 때마다 훨씬 많은 것을 배운다.

0
0
ki hyun Lee

ki hyun Lee

[커리어 스킬] 과연 대학에 가야할까?

오늘은 대학에 관해 이야기를 나눠보려고 한다. 한국에서는 많은 사람들이 뚜렷한 목적도 가지지 않은채 그저 대학에 진학하려고 한다. 이들의 주된 이유는 보통 '남들이 다 가기 때문에’, '취업을 위해서' 등이 있다. 하지만 정말 대학만이 최선의 방법일까? 한 번 살펴보도록 하자.

먼저 '커리어 스킬’의 저자인 존 소메즈는 대학에 관해 상당히 부정적인 입장을 보이지만, 나는 대학 진학도 그다지 나쁘지 않은 선택이라고 생각한다. 물론 조기졸업이 가능하고 장학금을 상당 부분 받았을 경우에만 말이다. 한국 대학들은 그렇지 않지만 존 소메즈의 고향이자 내가 유학을 가야할 미국은 대학 등록금이 살번한 편이다. 

위 표는 등록금이 비싸기로 유명한 UC 계열의 가장 유명(?)하다고 할 수 있는 UCLA의 등록금 현황이다. 본인이 캘리포니아에서 태어났다고 하더라도 거의 5천만원이나 되는 학비를 감당해야 하는데 유학생은 그 2배를 내야한다.. (부모님 등골 휘는 소리가 여기까지..) 여기에 4년이나 되는 시간까지 투자를 해야하니 잃는 것이 많다고 생각한다. 물론 얻는 것도 많지만 그에 비해 너무 비싸다는 얘기다. 따라서 조기졸업으로 시간을 아끼고 장학금으로 돈을 아낄 수 있다면 대학은 좋은 선택이라고 생각한다.

그렇다면 대학에는 어떤 장점들이 있을까?

여전히 학위를 요구하는 회사가 많다

이건 미국보다 한국, 특히 그 중에서도 대기업들이 가지고 있는 특징인 것 같다. 존 소메즈의 예를 들자면, 소메즈는 HP 사에 경력직으로 고용되었다. 당시 HP가 학위 없는 사람을 고용하는 일은 드물었지만 추천을 받기도 하였고 경력까지 갖추고 있었기에 예외적으로 고용되었다고 한다. 소메즈는 일자리를 제안 받기까지 시키는 대로 많은 걸 했지만, 결과적으로 제안 받은 일자리는 굉장히 실망스러웠다고 한다. HP에서는 경력이나 능력은 논외로 하고 소메즈를 그저 학위 미소지자로 분류한 것이다. 이처럼 학위가 있다면 학위가 없는 사람보다 직장 선택 특히 연봉이 높아진다.

컴공 기본 지식의 기본을 튼튼히 다질 수 있다.

물론 독학으로도 코딩을 배울 수 있다. 하지만, 이렇게 공부한 나 같은 사람들은 대학에서 배울 수 있는 컴퓨터 공학 관련 개념에 대한 지식이 부족한 경우가 많다. 나도 온라인으로 코딩을 독학하다 보니 CS와 관련된 지식들이 많이 부족한 편이다. 소메즈는 이러한 지식들의 중요도가 낮아졌다고 생각하지만 여전히 운영 체제, 데이터 구조, 알고리즘 등에 대해서는 알아둘 필요가 있다고 생각한다고 한다. 특히 애플, 구글, 마이크로소프트와 같은 대기업에서는 코딩 면접을 진행하는데 이러한 면접이 보통 원론적인 컴퓨터 공학 관련 위주로 진행한다고 한다.

“프로그래머라면 자신이 작성하는 코드 뒤에 있는 기본과 이론을 이해하고 이에 대한 지식을 갖춰야 한다” - 존 소메즈

인텁십 등의 기회가 많다

대학에서는 개인적으로는 얻기 힘든 인턴십 기회나 인맥, 자원을 제공한다. 아 물론 인맥은 디스콰이엇에서도 만들 수 있으니 빼도록 하겠다 ㅋㅋ. 이런 종류의 기회는 구글이나 마이크로소프트 같은 대기업에서 사회생활을 시작하고 싶어 하는 학생들에게 엄청나게 큰 도움이 된다고 한다. 휼륭한 경력을 지닌 개발자는 실력과 경력을 앞세워 이러한 회사에 입사할 수 있지만, 신입 개발자는 인텁십 프로그램을 통해서 이러한 회사들에 입사할 수 있는 기회를 얻기 때문이다.

그럼 단점은?

존 소메즈는 여기서 시간, 비용, 현실을 반영하지 못하는 구식 교육, 주의 분산을 단점으로 들지만 나는 시간과 비용 외외에는 크게 동의하지 않기에 시간과 비용에 대해서만 설명하겠다. (궁금하신 분들은 직접 책을 읽어보시는걸 추천드립니다!)

시간

대학에 진학하는데는 최소 4년이라는 시간이 소요된다. 이 시간동안 일을 한다면 꽤 많은 경력을 쌓을 수 있는 시간이므로 상당히 많은 비용을 지불한다고 할 수 있다. 따라서 학위가 4년이라는 시간을 포기할 만큼의 가치가 있는지 생각해볼 필요가 있다.

그리고 존 소메즈는 대학 생활 중 큰 의미 없이 낭비하는 시간이 많다고 생각한다고 한다. 예를 들어, 개발자가 되는 데 아무 상관 없는 필수과목을 듣는다거나 시험을 치는 등의 행동이 많은 시간 낭비가 된다고 주장한다. 특히, 전통적인 교육은 누구나 이해할 수 있는 수준으로 가르쳐야 하기에 시간을 효율적으로 사용하지 않는다고 말한다.

하지만, 나는 이 의견에는 전적으로 동의하지 않는다. 그런식으로 따지자면 하버드에서 수업을 따라가기 힘들어서 자살하는 사람들은 뭐가 되는가? 대학 생활에서 수강하는 교양 과목, 시험, 강의 등은 모두 학생들에게 큰 도움을 줄 것이다. 하지만, 그럼에도 불구하고 4년이라는 시간은 프로그래밍만을 배우기에는 너무 긴 시간이다. 나는 차라리 이 시간동안 대학에서 배울 수 있는 것들을 최대한 많이 배우고 나오는 것이 이득이라고 생각한다.

비용

다음은 가장 중요한 돈이다. 물론 한국에서는 학비가 크게 문제가 되지 않을 수 있다. 하지만, 위에서 말했듯이 미국 대학의 학비는 상상을 초월한다. 심지어 학위를 받은 후 수십 년에 걸쳐 학비를 갚는 경우도 있다고 한다. 따라서 존 소메즈는 아래 전략을 통해 비용을 최소화하기를 추천한다.

전략

  • 전문대학으로 시작하라

"전문대학 과정을 통해 비용을 많이 절약한 후에 일류 대학의 학위를 받아 졸업하는 것도 괜찮은 생각이다.” - 존 소메즈

솔직히 전 한국 대학에 대해 전혀 모르는 사람이라 한국에서도 이러한 편입이 쉽게 가능한지는 모르겠습니다만 미국 대학은 이런 종류의 편입이 흔한 편입니다. 따라서, 이런 전략을 사용하는 것이 비용과 시간 측면에서 상당히 효율적일 수 있습니다만 전문대학에서 이수하는 학점이나 프로그램이 추후 편입할 학교에서 인정받을 수 있을지 확인하는게 상당히 중요합니다. (인정 못 받으면…)

  • 빚을 피하라

"빚은 끔찍하다. 빛 때문에 인생이 망가질 수도 있다.” - 존 소메즈

물론 이 내용은 미국 대학에 진학하는 사람들만이 포함되는 내용일 수 있다. 하지만, 아래 추천을 따른다면 학비 때문에 고민할 일은 없을 것이다. (한국의 정서와는 크게 다른 부분이 많을 수 있습니다.)

  • 1년 정도 직장에서 일하면서 돈을 모아라.
  • 장학금을 받아라.
  • 학교에 다니는 동안 파트타임으로 일하라.
  • 부모님 집에서 지내라.
  • 알래스카처럼 무상교육을 받을 수 있는 지역으로 이사하라.
  • 사이드 프로젝트를 진행하라

"대학 시절은 포트폴리오를 만들거나 사이드 프로젝트를 시작할 완벽한 시기다” - 존 소메즈

나는 사이트 프로젝트는 자신이 사용하는 기술을 익히기에 아주 좋은 기회라고 생각한다. 공부한 내용을 머리로만 아는 것이 아닌 실제로 사용할 수 있게 되려면 꼭 기술을 사용한 사이드 프로젝트를 하나 이상 진행해야 한다고 생각한다.

이뿐 아니라 대학 재학 중에 시작한 사이트 프로젝트로 크게 성공한 사람들이 많다. 구글, 마이크로소프트, 페이스북 모두 대학 재학 중 시작한 사이드 프로젝트로부터 시작되었다.

  • 인텁십에 참여하라

"인턴십은 경력 없는 신입 소프트웨어 개발자가 구글이나 마이크로소프트 같은 큰 기업에 취직할 좋은 기회가 된다” - 존 소메즈

나는 소메즈의 이 의견에는 강력하게 동의한다. 학창 시절에는 돈을 많이 벌지 못하더라도 일반 직장에 들어가 일해볼 수 있는 기회가 있다면 무조건 하는 것이 맞다고 생각한다.

  • 일하는 동안 학위를 취득하라

일하는 동안 학위를 취득하는 것도 상당히 괜찮은 방법이라고 생각한다. 미국은 coursera, edx 등과 같이 온라인 학위 프로그램이 잘 갖추어져 있는 편인데 최근에는 한국에도 이과 같은 프로그램이 많이 생긴걸로 알고 있다. 하지만, 온라인 학위 프로그램은 위에서 말한 장점 중 하나인 인텁십 기회, 인맥 등의 자원에 접근하기 힘들 수 있다는 단점이 있다.

결론

결론적으로 나는 대학에 가기로 하였다. 물론 시간과 비용을 아끼기 위해 최대한 많은 장학금을 받고 조기 졸업을 하는 것을 목표로 하고 있다. 여기서 대학의 장점을 하나 더 말해보자면 미국으로 유학을 가게 된다면 미국 취업의 길이 보다 쉬워진다. 나는 현재 미국 취업 혹은 창업을 최종 목표로 하고 있기에 미국으로 유학을 가기로 결정하였다.

0
13
ki hyun Lee

ki hyun Lee

[커리어 스킬] 개발자라는 직업

"소프트웨어 개발은 단순한 프로그래밍이 아니다." - 존 소메즈

대부분의 소프트웨어 개발 프로젝트는 수동 프로세스를 자동화하거나 수동으로 처리하기 어려운 작업을 새로운 방법으로 자동화하는 것을 목표로 합니다. 예를 들어, 구글 문서를 생각해보면, 구글 문서나 워드 프로세싱 프로그램이 없었다면 글을 작성하기 위해서는 손으로 직접 써야 했으며, 책을 인쇄하려면 수작업으로 활자를 조판하고 편집해야 했을 것입니다. 그러나 지금은 구글 문서와 같은 다양한 하드웨어와 소프트웨어가 이러한 수고를 대신해주므로 수작업을 할 필요가 없어졌습니다.

"무언가를 자동화하기 전에 그 작업을 수동으로 하는 방법을 알아야 한다." - 존 소메즈

많은 개발자 지망생들은 자신이 무엇을 만드는지 제대로 이해하지 않은 채 소프트웨어 코드를 작성하는 경우가 많습니다. 소프트웨어 개발을 시작하기 전에는 항상 어떤 방식으로든 문제를 해결하기 위해 수동으로 작업을 진행하고, 요구사항을 파악하는 것이 매우 중요합니다.

사실, 저도 처음 코딩을 배울때, 제가 무엇을 만드는지 이해하지 못한 채로 무작정 코딩을 시작한 경우가 있었습니다. 이러한 경우에는 프로젝트가 진행되는 도중에 문제가 발생하거나 완전히 망가져서 회복할 수 없는 상황에 이를 때도 있었습니다. 이후 포스팅에서도 계속 이야기하겠지만, 프로젝트를 진행하기 전에는 항상 세부적이고 상세한 계획이 있어야지만 규모있는 프로젝트가 나온다고 생각합니다.

0
3
ki hyun Lee

ki hyun Lee

[질문] 어떻게 하면 블로그를 꾸준히 작성할 수 있을까?

많은 개발자분들이 자신만의 블로그를 운영하고 있거나, 여러번 운영하려고 시도해보셨으리라 생각됩니다. 저도 제 블로그를 운영중에 있는데 사실 정말 가끔 제가 올리고 싶은 글을 올리는 정도입니다.

하지만, 다른 개발자분들을 보면 꾸준히 좋은 주제를 가지고 블로그를 운영하시는 분들이 계십니다. 어떻게 하면 블로그를 꾸준히 작성할 수 있으며 어떻게 하면 좋은 주제로 멋진 블로그를 작성할 수 있을까요?

8
9
ki hyun Lee

ki hyun Lee

[커리어 스킬] 입문하기

"소프트웨어 개발자가 되기 위해서는 평균 이상의 지능이 필요하지 않다." - 존 소메즈

저자는 처음에 독학으로 코딩을 배우기 위해 당시 인기 있던 MUD에서 소스 코드를 다운로드하여 코드를 수정해보기 시작했다고 합니다. 때로는 컴파일조차 되지 않았고 무엇을 하는지 제대로 이해하지 못했지만, 약 한 주 정도 지나면 자신이 원하는 기능이 들어간 MUD 버전을 만들었다고 합니다. 저자는 참고 서적을 보거나, 대학이나 부트 캠프에 가는것보다 코드를 깨작거리면서 어떻게 했을 때 되고 어떻게 했을 때 안 되는지를 보는 것이 훨씬 좋은 학습법이라고 말합니다. 물론 코딩하는 법을 배우는 것도 중요하지만 소프트웨어 개발에는 단순히 코딩 그 이상의 무언가가 있다고 주장합니다.

저도 이 의견에 완전히 동의합니다. 3시간 동안 강의를 보는 것보다는 내가 흥미로운 프로젝트에 3시간 동안 매달려 만들면서 사용하는 기술에 대해 더 깊이 이해할 수 있다는 것을 알게 되었습니다.

6
0
ki hyun Lee

ki hyun Lee

  • 현재 만들고 있는 프로덕트가 있으신가요?

현재 만들고 있는 제품은 Roles라는 제품으로 내가 좋아하는 웹툰, 웹소설이 영화나 드라마로 제작되면 어떻게 될까? 라는 컨셉으로 시작되는 가상캐스팅 커뮤니티입니다.

  • 관심있는 비지니스 분야 (예) 교육, 금융, 커머스

관심있는 비즈니스 분야는 딱히 없지만, web3와 관련된 금융쪽에 관심이 많은 편입니다!

  • 관심있는 생성 AI분야

생성 AI에는 ChatGPT와 같은 LLM 모델에 관심이 많습니다.

  • 어떤 생성 AI를 얼마나 자주 사용하고 계신가요? (예) chatgpt로 인생2회차 살고 있는 헤비유저

거의 매일 글을 쓸때마다 ChatGPT를 통해 제 글을 교정하고 있습니다.

  • 클럽에 가입하면서 기대하시는 것이 있나요? (예) 세미나, 스터디, 비지니스 아이디어, 사이드 프로젝트

음.. 우선 AI에 입문하기가 생각보다 힘들다는 것을 깨달아서 함께 스터디에 참여하고 싶고, 사이드 프로젝트도 할 수 있다면 함께하고 싶습니다.

5
0
ki hyun Lee

ki hyun Lee

[책 추천] 커리어 스킬

디스콰이엇에서 처음으로 책을 하나 추천해보려고 합니다. (기회가 된다면 자주 추천해보도록 할게요!)

이번에 추천할 책은 존 소메스의 커리어 스킬이라는 책으로 개발자의 커리어 관리 방법에 대해 굉장히 자세하게 적혀있는 책입니다.

굳이 개발자가 아니더라도 경력이 없이 일자리를 구하는 법이라던가, 상사와 잘 지내는 법 등 재미있게 읽을 수 있는 부분이 많이 있다는 것이 특징이에요.

앞으로 제가 인상깊었던 내용들 위주로 조금씩 올려보도록 하겠습니다!

6
1
ki hyun Lee

ki hyun Lee

클럽에 가입해주셔서 감사해요! 인사이트를 공유하고 소통하는 클럽을 만들기 위해 간단한 소개를 부탁드려요 :)

안녕하세요 저는 현재 경산에서 비인가 대안학교에 재학중인 풀스택 웹 개발자 이기현이라고 합니다.

  • 어떤 제품을 만들고 계신가요 ?

현재 만들고 있는 제품은 Roles라는 제품으로 내가 좋아하는 웹툰, 웹소설이 영화나 드라마로 제작되면 어떻게 될까? 라는 컨셉으로 시작되는 가상캐스팅 커뮤니티입니다.

  • 클럽에 참여하는 이유/목적을 알려주세요!

내년이면 미국으로 유학을 가게 되는데 실리콘 밸리와 관련된 정보들을 듣고 싶어서 참여하게 되었습니다!

  • 현재 고민인 점이 있나요 ?

앞으로의 진로, 진학 등에 관련해서 어떻게 해야할지 고민이 있습니다. 미국 개발자로 취업할 수 있다면 좋겠네요.. ㅋㅋ

7
0
ki hyun Lee

ki hyun Lee

고등학생 개발자의 군대

개발자는 병역특례등 다양한 특혜를 받을 수 있다고 들었는데 IT 특성화고인 경우에만 그런건가요 아니면 다른 조건들이 필요한건가요? 상세한 정보를 얻을 수 있는 곳이 없어서 여기서 물어봅니다..

0
6
ki hyun Lee

ki hyun Lee

취직과 대학의 사이에서

요즘따라 미래에 대한 고민이 많이지는 것 같다. 내가 현재 진학중인 학교는 제자국제크리스천스쿨로 (굉장히 긴 이름이다) 비인가 대안학교이다. 한국에서는 비인가 대안학교이지만 미국에서는 인가를 받았기 때문에 대부분의 선배들이 미국 대학으로 진학을 하고 있다.

하지만, 나는 지난 3년간 웹 개발을 공부하고, 1년 4개월 동안 프로젝트를 진행하며 취업도 충분히 가능하지 않을까? 라는 생각을 하고 있다.

주변 친구들과 어른들에게 조언을 구해본 결과 모두 대학에 진학해서 얻는것이 많다고 대학에 진학하라고 하였지만, 몇달 전에 읽었던 책인 '커리어 스킬' 이라는 책에서는 대학을 비싸고 시간이 많이 든다고 간다고 하더라도 2년짜리 전문대학을 가는것을 추천하였다.

과연 대학에 진학하는 것이 이득일까? 아니면 남들보다 4년 혹은 2년 일찍 커리어를 시작하는 것이 이득일까?

0
10
ki hyun Lee

ki hyun Lee

반갑습니다 :)

저는 풀스택 개발자 겸 고등학생으로 일하고 있는 이기현이라고 합니다

어느정도 개발을 공부하다 포트폴리오 및 이력서의 필요성을 느끼게 되어 계정을 생성하게 되었습니다.

아직까지 링크드인을 활발하게 사용하고 있지는 않고 온라인으로 알게 된 분들과 1촌을 많이 맺어두고 있습니다.


클럽에서 링크드인에 대한 정보들을 많이 얻어가고 싶습니다

하단 링크는 제 링크드인 입니다

https://www.linkedin.com/in/daveg7lee/

14
2