제로베이스 현직자 특강

[합격하는 프로젝트에 대한 모든것]

[Danny 멘토] 외국계 스타트업, 국내 IT 대기업, 제로베이스 프로젝트 멘토

개발자의 장점

급여 상한선이 높다.
직장인으로 노력하는 만큼 연봉 상승률이 높은 직업들중 하나이다.
상대적으로 학벌에 대한 차별이 덜하다.
아닌 회사들도 있지만, 보통 경력직 기준으로는 크게 신경을 쓰지 않는편.
(실제 같이 일하는 사람들의 나이, 학력에 대해 모릅니다.)

상대적으로 열려있는 이직의 기회

본인능력만 된다면, 회사와 운명 공동체가 될 필요는 없다.
(일반적으로 2~5년 정도의 이직 주기)
지금은 많이 줄어 일부 회사지만 재택을 적극적으로 활용 가능하다.
물론 본인 업무에 대한 책임은 있다.

개발자의 단점

학습량이 상대적으로 많다.
업무 뿐 아니라 따로 시간을 내어 공부해야 할 것들이 은근히 있다.
이걸 포함한다면 워라벨이 좋다라고는 말할수 없을것 같다.
장점을 이루려면 결국 자기주도적으로 학습해야 하는 양이 적지 않다.
위가 뒷받침되지 않으면 상대적 박탈감이 있을수 있다.
누군가는 10년후에 1억을 벌수도 , 4000만원을 받을수 있다.
(실제로 위 아래의 차이는 더 벌어진다.)
적성에 맞지 않으면 힘들 수 있다.
적성에 맞지 않으면 학습에 대한 스트레스를 받고 공부는 하지않는 악순환이 반복 될 수 있다.
계단식 성장을 이루기 때문에, 당장 눈앞에 결과가 잘 보이지 않는다.

그럼에도 개발자를 추천하는 이유

주변에 취업 ~ 주니어 시절 열심히 노력했던 사람들의 대다수는 주니어 년차를 벗어났을때 좋은 Output을 달성하는 경우가 대부분이었다.
(전략적으로 Fast track을 잘 갈 수 있다면 더욱 좋다.)
노력에 대한 보상의 상방이 비교적 많이 열려 있다.
개인적인 직업의 만족도는 굉장히 높은 편이다.
어디가서 이정도 대우 받으며 사나.

이론적으로 좋은 프로젝트

번뜩이는 아이디어
우리 서비스는 이렇게 세상을 바꿀수 있어요.
기가막힌 기술적 역량
현업에 당장 투입되어도 좋은 만큼 좋은 기술적 역량을 드러내는 기능
대규모 트래픽을 받아보는 경험
실제 서비스 런청/운영 경험

발표자도 학창시절 일종의 부트캠프를 다녔고,
수백명을 멘토링 해보니 팀프로젝트가 어려웠던 이유들은
아이디어 찾다 시간만 간다. 아이디어를 찾더라도 포트폴리오의 질이 연관되지 않는다.
대부분 좋은 아이디어는 이미 누군가 시도 했다. 실제로 여러분이 좋은 아이디어를 찾아낼 확률이 너무나도 낮다.
가능하더라도 시간이 너무 오래 걸린다.
(사업상 좋은 아이디어라 할지라도, 여러분 포토폴리오의 기술적 역량과는 무관 할 수 있다.)

기가막힌 기술적 역량

ES, 카프카 등등 유행하는 기술들을 써서 프로젝트를 진행을 했지만,
정작 그 기술에 대해서는 기본적인 개념과 설명을 하지 못하는 부분이 90% 이상이었다.
예를들어 A는 B보다 안정성이 뛰어나다, 라고 하는데, 왜 A가 안정성이 뛰어난지 설명하지 못한다.
대규모 트래픽 ,실제 서비스 런칭 경험
가능하면 좋다, 근데 어떻게? 이건 만들어 줄 수 있는 것이 아니다.
이게 가능한 대부분의 사람들은 부트캠프 대신 스스로 이미 시도 했다.

이해하기 쉬운 프로젝트

[맛집 서비스]

맛집 서비스는 맛집 검색에 Elastic Search를 사용하고 , 알림에 FCM을 사용합니다.
OAuth를 통한 간편 로그인 지원과 리뷰기능, 별점과 추천 리뷰기능을 제공합니다.
맛집에 대한 리뷰 추가, 제거등이 가능합니다.

————————————————————

저희 서비스는 식당에 대한 리뷰 서비스를 제공합니다.
이를 기반으로 식당 방문 통게를 통해 이주의 추천 가게를 제공하고,
사용자가 원하는 지역, 음식 종류, 이름 등의 필터를 기반으로
사용자에게 알람을 통해 가게를 추천합니다.

같은 서비스를 만들었어도 내가 이해하기 쉽게 문서를 작성한 사람과 차이가 있음.

PR을 통해 읽기 쉽게 설명

잘쓰여진 PR은 여러분이 작성한 기능을 남에게 설명할 수있는 것을 의미합니다.
즉, 여러분의 커뮤니케이션 역량이 뛰어 남을 직/간접적으로 어필 할 수 있는 강력한 수단.
여러분 스스로도 남에게 설명하고 피드백을 수시로 받을수 있는 기회이기도 합니다.

사용한 기술에 대한 이해

[Description] 기술에 대한 이해가 잘되어 있는지는 여러분의 문서에 흔적이 남게 됩니다.
흔적이 보이지 않더라도, 면접에서 질문 했을때 여러분이 이해를 하고 썼는가 중요한 요소로 작용합니다.
(ex. 꼬리질문, 기능에 대한 의도와 질문 등을 통해)

예제) RabbitMQ 선정 이유(바람직한 설명)
채팅 서비스를 이용할때 장애 상황이 다른 서비스에 전파되는 것을 막기 위해 서버를 분리하였습니다.
이때 서버 사이를 물리적으로 분리하는데 Message Broker를 선정하게 되었는데요.
Kafka로도 구현이 가능하나, 좀 팀 프로젝트에 필요한 기본 기능에 충실한 RabbitMQ를 선정하게 되었습니다.

팀프로젝트 과정 소개

기획, 구현, 데모데이로 이어지는 전체 개발 사이클의 경험
과정은 기획 1주, 구현 4주, 마무리 1주의 큰 가이드 라인
기획을 1주를 잡는 이유는 여러분이 왜 이 서비스를 기획하고 기능을 만드는지에 대한 설명을 할 수 있어야 한다고 생각하기 때문.
(본인의 서비스가 어떻게 구성되어 있고, 각 기능들은 어떻게 동작 하는지, 유저의 라이프 사이클은 어떻게 돌아가는지)
대부분 이해하지 못하고, 개발한 서비스에 대한 답변하지 못함.
데모데이의 목적은 스스로 일정에 대한 계획을 세우고, 지켜나가거나, 불가능한 일정을 다시 수정후 지켜나가는 과정의 마침표가 필요하기 때문.

자기주도적 학습

라이브 멘토링은 프론트엔트 백엔드 각3회, 통합 멘토링 2회는 첫주와 5주차에 (슬랙을 통한 상시 Q&A)
멘토들은 자신의 의견을 멘티들에게 그대로 따라가게 하지 않음.
멘티들이 가고자 하는 방향, 구현 이유, 고민하는 포인트에 맞추어 스스로 좋은 방향으로 갈수 있도록 힌트를 주어 나아갈수 있도록 도움을 줌.
단점은 여러분이 아무것도 궁금해하지 않으면, 멘토들이 원하는 목표를 이루기 어려움.
사람은 질문과 스스로의 생각 정리를 통해 성장한다.
목표는 단순 암기 기반의 사고에서 벗어나, 스스로 문제를 해결해 나가며 학습 할 수 있는 기틀을 다지는것.

커뮤니케이션 역량 강화

남에게 설명을 할때에는 무엇을 포함해야 하는지.
작성하는 문서에 빠진 부분이 있다면 무엇이 빠져있고, 왜 그렇게 생각하는지.
읽거나/듣는 사람이 하나의 의문점도 없이 문서를 읽어 내리려면 어떤 것들을 신경써야 하는지.

3가지의(Problem, Reason, Try to solve) 질문 필수요소를 포함하도록해 스스로 질문을 하기 전 다시 정리해 보도록 합니다.
질문에 대해 무작정 솔루션을 주는것이 아니라, 작성한 질문에서 어떤것을 놓치고 있는지,
혹은 어떤 부분을 왜 잘못 생각했는지를 설명하여, 자기발전의 기회를 유도

사용한 기술에 대한 이해

기술에 대한 이해가 잘되어있는지는 여러분의 문서에 흔적이 남게 됩니다.
흔적이 보이지 않더라도, 면접에서 질문 했을 때 여러분이 이해를 하고 쓰셨는가는 중요한 요소로 작용합니다.

@Transactional

트랜잭션 어노테이션에 대해 간단히 설명해 주시고
왜 여기서 이 어노테이션을 사용해야 하나요?

Redis

Redis에 채팅 데이터를 저장한다고 하셨는데, DB에 저장하지 않으신 이유를 이야기 해 주실 수 있을까요.

Rabbit MQ vs Kafka

Rabbit MQ가 카프카보다 더 안전성이 뛰어나다고 해 주셨는데, 어떤 이유로 Rabbit MQ가 좀더 안정성이 뛰어난 것일까요?

DB

회원과 회원의 역할(Role)에 대한 테이블을 분리하셨는데, 분리하시는 것이 어떤 이점을 가지고 있다고 생각해서 이렇게 설계를 하신 것일까요.

협업 경험

같이 실무를 하고 있는 인턴, 주니어라 가정하고 그에 맞는 역할과 책임을 수행하도록 유도하도록 노력.
프론트엔드, 백엔드를 지향하는 사람들이 만나 6주간 결과물을 만들어내는 귀중한 경험.
여러분들이 감정적/기술적으로 겪을수 있는 부분들을 최대한 유연하게 넘어갈수 있도록 서포트.
(해결책을 주는것이 아닌 스스로 해결할수 있도록 힌트를 제공)
동료들과 대화할때 어떤것을 신경써야 하는지, 협업을 할때 주의해야 할 것들은 무엇인지 등등.
(비즈니스 매너)

취업, 그리고 그 이후를 고려해 멀리 내다보는

결과적으로 이 모든 것들은 여러분들의 팀프로젝트 이후를 고려하는것.
주제, 기능 다 정해주고, 정해진 템플릿대로 찍어내 팀 프로젝트를 수행하면 그 다음 스텝도 누군가가 정해주어야 하는 어려움이 있었다.
또한 비슷비슷한 주제와 내용, 설명들을 가진 프로젝트들이 매기수 양산된다.
뿐만 아니라 본인들이 완성한 프로젝트에 대해 본인들이 설명을 하지 못한다.
좀 더 본질적으로 본인의 현재 최대 역량에 +1을 6주간 끌어올리고, 그후에 스스로 +2를 스스로 끌어올릴수 있는 것이 더 좋은 방향이라 믿음.
운이 좋다면 바로, 때때로 몇개월 이상의 시간이 취업까지 소요될수 있지만
그 다음 여러분의 스텝이 원활하게 진행될 수 있도록 기반을 닦게 하려는 것이 가장 큰 목적을 가지고 있다.

Tags:

Categories:

Updated:

Leave a comment