2020년 서울시에서 주최한 강소기업탐방 프로그램에서 발표한 자료 입니다.
학교를 졸업하고 software engineer로 취직을 하기까지의 여정을 다뤘습니다
1. 개발자가 나에게 맞을지 고민하기 위한 방법
2. 개발자로 취직하기 (이력서/면접 준비 팁)
3. 개발자로 취직한 후 우리가 하는 일
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...Amazon Web Services Korea
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study
이 세션에서는 데브시스터즈의 Case Study를 통하여 Data Lake를 만들고 사용하는데 있어 요구 되는 사항들에 대해 공유합니다. 여러 목적에 맞는 데이터를 전달하기 위해 AWS 를 활용하여 Data Lake 를 구축하게된 계기와 실제 구축 작업을 하면서 경험하게 된 것들에 대해 말씀드리고자 합니다. 기존 인프라 구조 대비 효율성 및 비용적 측면을 소개해드리고, 빅데이터를 이용한 부서별 데이터 세분화를 진행할 때 어떠한 Architecture가 사용되었는지 소개드리고자 합니다.
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...Amazon Web Services Korea
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study
이 세션에서는 데브시스터즈의 Case Study를 통하여 Data Lake를 만들고 사용하는데 있어 요구 되는 사항들에 대해 공유합니다. 여러 목적에 맞는 데이터를 전달하기 위해 AWS 를 활용하여 Data Lake 를 구축하게된 계기와 실제 구축 작업을 하면서 경험하게 된 것들에 대해 말씀드리고자 합니다. 기존 인프라 구조 대비 효율성 및 비용적 측면을 소개해드리고, 빅데이터를 이용한 부서별 데이터 세분화를 진행할 때 어떠한 Architecture가 사용되었는지 소개드리고자 합니다.
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유Hyojun Jeon
NDC18에서 발표하였습니다. 현재 보고 계신 슬라이드는 1부 입니다.(총 2부)
- 1부 링크: https://goo.gl/3v4DAa
- 2부 링크: https://goo.gl/wpoZpY
(SlideShare에 슬라이드 300장 제한으로 2부로 나누어 올렸습니다. 불편하시더라도 양해 부탁드립니다.)
넥슨코리아 사내 발표자료로 왓 스튜디오에서 파이썬으로 《야생의 땅: 듀랑고》 서버를 비롯한 여러가지 도구를 만든 경험을 공유합니다.
- 게임서버와 각종 툴, 테스트/빌드/배포 시스템을 만들 때 사용한 재료
- 파이썬 코드 품질 개선, 디버깅, 프로파일링, 최적화
- 파이썬 오픈소스 생태계와 왓 스튜디오가 하는 오픈소스 활동
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...Amazon Web Services Korea
서비스 런칭을 위해 라이온하트와 카카오게임즈가 어떻게 최적 성능의 인스턴스를 선택하고, Windows 운영 체제를 최적화하며, 왜 Amazon Aurora를 기본 데이터베이스로 채택하였는지를 설명합니다. 또한, 출시부터 운영까지의 과정에서 MMORPG가 어떻게 AWS 상에서 설계되고, 게임 서버 성능을 극대할 수 있었는지에 대해 전달해드립니다.
어느 해커쏜에 참여한 백엔드 개발자들을 위한 교육자료
쉽게 만든다고 했는데도, 많이 어려웠나봅니다.
제 욕심이 과했던 것 같아요. 담번엔 좀 더 쉽게 !
- 독자 : 백엔드 개발자를 희망하는 사람 (취준생, 이직 희망자), 5년차 이하
- 주요 내용 : 백엔드 개발을 할 때 일어나는 일들(개발팀의 일)
- 비상업적 목적으로 인용은 가능합니다. (출처 명기 필수)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유Hyojun Jeon
NDC18에서 발표하였습니다. 현재 보고 계신 슬라이드는 1부 입니다.(총 2부)
- 1부 링크: https://goo.gl/3v4DAa
- 2부 링크: https://goo.gl/wpoZpY
(SlideShare에 슬라이드 300장 제한으로 2부로 나누어 올렸습니다. 불편하시더라도 양해 부탁드립니다.)
넥슨코리아 사내 발표자료로 왓 스튜디오에서 파이썬으로 《야생의 땅: 듀랑고》 서버를 비롯한 여러가지 도구를 만든 경험을 공유합니다.
- 게임서버와 각종 툴, 테스트/빌드/배포 시스템을 만들 때 사용한 재료
- 파이썬 코드 품질 개선, 디버깅, 프로파일링, 최적화
- 파이썬 오픈소스 생태계와 왓 스튜디오가 하는 오픈소스 활동
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...Amazon Web Services Korea
서비스 런칭을 위해 라이온하트와 카카오게임즈가 어떻게 최적 성능의 인스턴스를 선택하고, Windows 운영 체제를 최적화하며, 왜 Amazon Aurora를 기본 데이터베이스로 채택하였는지를 설명합니다. 또한, 출시부터 운영까지의 과정에서 MMORPG가 어떻게 AWS 상에서 설계되고, 게임 서버 성능을 극대할 수 있었는지에 대해 전달해드립니다.
어느 해커쏜에 참여한 백엔드 개발자들을 위한 교육자료
쉽게 만든다고 했는데도, 많이 어려웠나봅니다.
제 욕심이 과했던 것 같아요. 담번엔 좀 더 쉽게 !
- 독자 : 백엔드 개발자를 희망하는 사람 (취준생, 이직 희망자), 5년차 이하
- 주요 내용 : 백엔드 개발을 할 때 일어나는 일들(개발팀의 일)
- 비상업적 목적으로 인용은 가능합니다. (출처 명기 필수)
2016년 11월 모 대학에서 IT 계열 전공 재학생들을 대상으로 진행했던 진로 특강 자료입니다.
앞쪽의 제반 내용들은 다양한 자료들을 정리하면서 제 생각을 담았습니다.
이 자료의 가장 핵심적인 내용은 5가지 유형의 현직 선배들을 대상으로 설문을 실시하여 후배들에게 들려주고 싶은 현실적이고 진솔한 이야기를 정리한 부분입니다.
IT 분야 그리고 소프트웨어 개발자의 삶의 모색하는 분들에게 조금이나마 도움이 되길 바라는 마음에 자료를 공개합니다.
<3탄>스프링 부트를 사용한 마이크로 서비스 개발 (로컬 환경) | 페어 프로그래밍 데모 (테스트 작성)
이번 세션에서는 Spring Boot를 사용한 웹 애플리케이션 개발에 대해 소개합니다. 이때 제작되는 애플리케이션은 Pivotal에서 풀타임으로 사용하고 있는 페어프로그래밍을 통해 테스트부터 작성하는 핑퐁 페어등을 소개합니다. 두명이 함께 코드를 작성하는 환경을 통해 빠른 사업환경의 변화를 수용할 수 있는 개발 업무가 Pivotal에서는 어떻게 다른지 살펴봅니다.
12. 필요한 역량 - 논리로 무장
‣ 우리가 하는 일은 problem solving
‣ 문제를 어떻게 해결할지 작은 조각들로 나눌 수 있어야 한다
‣ Critical 하게 사고해서 문제에 대한 해결 방법을 코드로 작성해야 한다
‣ 서비스를 개발하다 보면 커버 되지 않은 edge case가 있기 마련, 차분
하게 한 번 더 생각해봐야 한다
‣ 손이 머리보다 빠르지 말 것
13. 필요한 역량 - 도전 정신
‣ 끊임 없이 새로운 일의 연속
“웹 사이트 만들어 주세요” -> “이번엔 API 서버 만들어 주세요”
‣ 점점 복잡해지는 문제의 난이도
“택시만 잡히면 좋겠다” -> “택시가 빨리 잡히고 결제 까지 되면 좋겠다”
‣ 끊임없이 나오는 새로운 기술
‣ 도전을 즐기지 않는다면 금방 도태됨
14. 필요한 역량 - 빠른 습득력
‣ 하루가 멀다하고 쏟아지는 새로운 기술
‣ 변화에 빠른 습득력이 필요
15. 어떻게 공부해야 할까?
‣ 시작은 한가지 기술에 대해 깊이 팔 것
‣ 공식 document를 먼저 읽어보고 찾는 습관
‣ 새로운 기술은 그 기술의 철학과 신념, 아키텍쳐를 먼저 이해하
려고 해야 한다
‣ Googling!
검색 키워드에 따라 나오는 결과페이지가 다르다
키워드를 어떻게 검색해야할 지 모르겠다면 공식 document를
참고하거나 주변 개발자에게 키워드를 물어보자
16. 개발자의 커뮤니케이션 스킬
‣ 정말 중요합니다
‣ 혼자 개발하지 않아요. 결국은 팀워크
‣ 대부분의 요구사항은 일반 사용자나 기획자 등 비 개발자로 부터 온다
‣ 서비스 기획, 사업 기획, 디자이너 등 비 개발자 직군 에게 ‘얼마나 걸릴
지’, ‘왜 안 되는지’, ’시스템 구성을 어렵지 않게 설명’ 할 수 있어야 한다
‣ 모든 문제는 명확하게 정의하고 지금 우리에게 필요한게 뭔지, 장기적으
로 생각했을 때 어떤게 필요할 지 잘 논의하고 정리할 수 있어야 한다
18. 이력서
‣ 분량은 A4 기준 1장~2장
‣ 묻기 전까진 넣지 않아도 될 것
‣ 사진
‣ 취미, 주소, 생년월일 등 과도한 개인 정보
‣ 아주 오래된 일들 (e.g. 10년 전..)
‣ 희망 연봉
‣ 봉사활동 내역
https://brunch.co.kr/@aria-grande/17
20. 이력서
‣ 지양해야 할 포맷팅
https://brunch.co.kr/@aria-grande/18
21. 이력서
‣ 지양해야 할 포맷팅
https://brunch.co.kr/@aria-grande/18
22. 이력서
‣ 지양해야 할 포맷팅
https://brunch.co.kr/@aria-grande/18
23. 이력서
‣ 지양해야 할 포맷팅
https://brunch.co.kr/@aria-grande/18
24. 이력서
‣ 지양해야 할 포맷팅
https://brunch.co.kr/@aria-grande/18
25. 이력서
‣ 지양해야 할 포맷팅
https://brunch.co.kr/@aria-grande/18
26. 이력서
‣ LinkedIn 에 주기적으로 업데이트하자
‣ 물론.. 학생 때에는 연락 안온다. 경력이 쌓이면 오기 시작한다
27. 면접
https://brunch.co.kr/@aria-grande/20
‣ 서류에 적었던 경험/프로젝트에 대한 구체적인 설명이 가능해
야 한다
e.g. 지금의 ‘나'라면 다시 이 프로젝트를 진행할 때, 어떻게 설계할 것인가요?
‣ 프로젝트 진행 시 겪었던 어려움과 이를 해결하기 위해 시도했
던 것들을 미리 정리해서 가면 좋다
이력서 포트폴리오 관련 질문
28. 면접
https://brunch.co.kr/@aria-grande/20
‣ 한국에서는 신입에게 주로 많이 물어본다
‣ 북미권 major IT 회사에서는 신입~경력 관계 없이 물어본다
‣ 자료구조, 알고리즘 (Problem solving) 질문이 일반적
e.g. HashTable이 어떻게 동작하나요?
e.g. BST 에서 특정 노드는 어떻게 찾나요?
‣ 노트에 미리 정리해두고 필요할 때마다 쉽게 찾아볼 수 있도록 하자
- 정의
- 특징/특이사항
- 접근시간
- 사용 상황 구분
기본적인 CS 지식
29. 면접
https://brunch.co.kr/@aria-grande/20
‣ 지원한 팀에서 사용하고 있는 기술, JD의 요구사항에 있는 기술
에 대한 질문을 하곤 한다
e.g. React.js는 어떤 특징이 있나요?
e.g. 웹사이트를 만들어야 하는데 어떤 기술을 사용하면 좋을까요?
‣ 다이어그램을 그려가면서 설명하면 훨씬 있어보이고 면접관 입장에서
도 내가 무슨말을 하는지 더 쉽게 이해함
도메인 지식
30. 면접 태도
https://brunch.co.kr/@aria-grande/20
‣ 모르는 질문이 들어왔다면?
•‘모르겠어요’ 하고 끝 (X)
•기죽고 쭈뼛하게 있는 것보다 왜 이걸 몰랐는지 설명하자
•‘그건 모르지만 비슷하게 이런건 알아요’ 하고 그 쪽으로 화제를 돌리면서 설명하자
‣ 내가 갖고 있는 개발 철학/가치관 공유하자
•개발은 비지니스를 도와주는 도구라서 디자인 패턴도 중요하지만, 비지니스 일정도 고려를 하면서 진행해야 한다
•내가 작성한 코드에 대한 책임감을 가지고 있다
‣ 내가 잘할 수 있는 것에 대해 어필
•협업을 잘할 수 있는 사람임을 어필
•열정적인 사람임을 어필 -> 신입일 때는 다들 이해 할거에요
31. 추천하는 면접 준비 과정
‣ 평소라면?
‣ PS 문제 풀기; 백준OJ, Leetcode, HackerRank, AlgoExport.io
‣ 그룹 스터디 진행 (https://github.com/monkeys-code/save-the-monkey)
‣ 면접이 잡히면?
‣ 채용 담당자에게 어떤 것을 준비해 가야할지 물어보세요
‣ 이력서에 기입한 경험/프로젝트의 try/fail/learn 포인트 정리
‣ PS 문제 복습
‣ 꼭 모의 면접을 하자!
https://brunch.co.kr/@aria-grande/20
32. 면접
‣ 추천하는 면접 준비 과정
•평소 - Leetcode, HackerRank, AlgoExport.io
•면접이 잡히면 - 이력서에 있던 내용은 꼭 다시 숙지하고 가
기, 꼭 모의 면접을 하자!
33. 신입을 뽑긴 하나요?
‣ 공채 뿐만 아니라 수시 채용도 많다
‣ 채용 페이지를 자주 체크하고 주변 네트워킹을 통해서 정보를 빨리 수
집할 수 있도록 합니다
‣ N년 이상의 경험을 요구하고 있지 않다면, 그 말은 신입도 뽑겠다는
의미
‣ 공고를 봤고 관심이 간다면 일단 들이대 봅니다. 적극적인 사람이 더
많은 기회를 얻습니다
‣ LinkedIn jobs, Wanted, Programmers, 학교 온라인 게시판, …
36. Junior와 Senior
Junior
‣ 프로젝트 내 작은 기능 구현, 버그 픽스
‣ 주어진 문제를 해결
‣ Development lifecycle에서 한 부분
을 맡아 개발할 수 있는 사람
‣ 코드 작성 >> 리뷰
‣ 열정도 120%! 더 빨리 배우고 성장
할 수 있는 사람
‣ 팀 내 영향을 미치는 사람
Senior
‣ 시스템 디자인, 아키텍팅
‣ 문제를 찾아내고 장기적인 솔루션 제
공
‣ 전반적인 development lifecycle을
리딩 할 수 있는 사람
‣ 주니어 멘토링
‣ 리뷰 >> 코드 작성
‣ 팀, 조직 내 영향을 미치는 사람
38. 개발자의 daily life
‣ 커피 마시기
‣ Stand-up
‣ 미팅
‣ 기획자와 스펙 논의
‣ 디자이너의 시안 공유
‣ 개발 팀 내 기술셋 결정, 시스템 디자인 리뷰 등
‣ 코딩
‣ 문서 읽고 작성
39. 소프트웨어 디자인 패턴과 아키텍쳐
‣ 소프트웨어 개발 생산성, 유지보수성을 높이기 위한 패러다임
‣ 사용하는 언어, 프레임워크 별로 추천하는 개발 패턴들이 있다
‣ 개발 패턴을 공부해서 실제 프로덕에 도입해 볼 수 있음
#FactoryDesignPattern
#PubSub (Publish-Subscribe pattern)
#DDD (Domain Driven Design)
#DI (Dependency Injection) #MSA (Micro Service Architecture)
#CleanArchitecture #BLoC (Business Logic Component)
…
https://en.wikipedia.org/wiki/Software_design_pattern
40. 마지막으로 하고 싶은 말
‣ 내가 하고 싶은 일이 뭘지 생각해보세요.
다양한 상황 속에서 나를 놓아야, 내가 어떤 사람인지 알아야겠죠?
✓ 사이드 프로젝트, 인턴십
✓ 리더로서의 경험, 팀원으로서의 경험
‣ 커리어에 대한 고민은 계속 하는 것 같아요. 자연스러운 일이에요!
‣ 공부는 정말 끝이 없더라구요. 즐겨야 할 것 같아요!
‣ 주변 사람으로 인해 좋은 기회가 많이 오더라구요
‣ 적극적으로 재밌게 살아보아요 :)