들어가며

소프트웨어 마에스트로 11기 활동이 끝난지 대략 3개월 정도 지난것 같다.

매 기수별로 전형에 차이가 있기도 하고, 특히 작년같은 경우는 코로나19 때문에 일정 자체도 예전보다 많이 밀렷었다.

소마 11기 활동을 준비하면서 자료를 얻기 좀 힘들었었는데 후배 기수들을 위해서 공부했던것들을 정리해보려 한다.

 

2021년 12기를 모집하고 있다.

코딩 테스트

코딩 테스트는 10기 때와 11기 때 많이 달랐다고 들었다.

10기 때는 알고리즘 문제로만 시험을 본것으로 알고 있으며, 여러 문제들이 주어진 것으로 알고있다. (제한시간 내에 다풀기 어려운)

11기때는 이와 반대로 알고리즘 3문제, SQL 문제, web 문제 이렇게 총 5문제를 풀었다.

 

알고리즘 시험 대비하기

소마 합격생들의 후기 및 블로그들을 살펴보면 대충 어떤 문제들을 공부했는 지 알 수 있다.

출제 문제들의 공통 특징들을 요약한다면, 문제들이 대부분 O(N logN) 이내에 풀어야 시간초과가 나지 않는 문제들로 이루어졌었다는 점이다.

즉 브루트 포스 방법으로 모든 경우를 시도해 보기 보다는 시간복잡도를 줄여야 하는 문제들이 존재했다.

N log N 이내로 문제를 풀기 위한 기법들은 다음과 같았다.

  • 자료구조
  • 정렬
  • 동적 계획법

이 외에도 그래프 관련 기법들은 알아놓는 편을 추천한다.

기본적인 다익스트라, 플로이드 와샬, 플로이드에서 유니온 파인드(서로소 집합) 정도는 알아놓는것을 추천한다.

특히 문제에서 요구하는 기법 자체를 모를 경우 절대로 시간 복잡도를 줄이기 불가능한 경우가 있었다.

 

개인적으로 추천하는 커리큘럼은 삼성 SDS에서 2주동안 진행하는 알고리즘 특강의 커리큘럼이다.

알고리즘 문제풀이를 진행하며 공부한 알고리즘들을 따로 정리했었는데 도움이 되었으면 좋겠다.

 

changicho/algorithm-training

The repository of problem solving (especially algorithm problems of computer science) - changicho/algorithm-training

github.com

 

여기까지는 정석대로 알고리즘 시험을 준비하는 방법이고,

이 방법대로 준비할 경우 대충 백준 플래티넘 이상 등급정도의 실력을 가지고 있을 것이다.

 

그러나 실제로 코딩테스트 합격자들의 문제 풀이수를 보면, 알고리즘 문제에서 제대로 푼 문제가 1~2 문제 정도였다.

즉 다들 알고리즘 문제의 정답률이 생각보다 낮았으며, 꼭 다 맞출 필요는 없다는 말이 된다.

 

따라서 알고리즘 문제풀이에 자신이 없는 경우는 출제 경향만 훑고 가는것도 크게 도움이 될 것이다.

추천하는 백준 문제들은 다음과 같다.

 

1939번: 중량제한

첫째 줄에 N, M(1≤M≤100,000)이 주어진다. 다음 M개의 줄에는 다리에 대한 정보를 나타내는 세 정수 A, B(1≤A, B≤N), C(1≤C≤1,000,000,000)가 주어진다. 이는 A번 섬과 B번 섬 사이에 중량제한이 C인 다리

www.acmicpc.net

 

1092번: 배

첫째 줄에 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 각 크레인의 무게 제한이 주어진다. 이 값은 1,000,000보다 작거나 같다. 셋째 줄에는 박스의 수 M이 주어진다. M은 10,000보

www.acmicpc.net

 

2493번: 탑

첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1

www.acmicpc.net

 

SQL 문제

사실 매번 전형이 다르다 보니 SQL 문제는 이번에 나올지 확실할 수 없다.

프로그래머스와 Leetcode에서 SQL 문제를 풀었었고 대부분 SQL 테스트의 경우에는 쉽게 통과할 수 있었다.

LEFT_JOIN, RIGHT_JOIN 정도까지 알고 가면 좋을것 같고, ORDER_BY 정도는 알아야 한다.

 

Web 문제

다양한 분야의 연수생들을 뽑는것을 원칙으로 알고있는데, Javascript + HTML 을 주로 하는 front-end 포지션에 유리한 문제이다.

11기는 시험을 구름 IDE에서 진행했었고, 클라우드 서버에 html, js를 띄워 javascript로 API fetching 을 하는 문제를 냈었다.

보통 이런 경우에 문제는 API서버에 요청을 보낼 수 있는지와 응답받은 데이터를 이용해 DOM을 갱신하는것을 물어보는것이 대부분이고,

CORS 문제를 해결하는 것 정도만 알면 될것이다.

 

면접

11기 면접

2번 정도의 코딩 테스트를 통과하면 이제 면접이다.

최근에는 150명 정도를 선발하기 때문에 (11기 기준) 여기서 부터 경쟁률은 3:1 이하 정도로 떨어진다고 보면 된다.

이는 매 기수마다 경쟁률을 보면 알 수 있는데, 서류 전형부터 경쟁률이 약 10:1 정도였으므로 코딩 테스트에서 절반 이상 떨어뜨린다고 가정했다.

 

면접은 조별로 느낌이 많이 다른것으로 알고있다. 어떤 조는 프로젝트 중심으로, 어떤 조는 CS 지식 중심으로 진행되는 것으로 알고 있다.

종합적으로는 CS지식은 많이 물어보지 않는것 같다. 대신에 프로젝트 경험이 가장 중요하게 작용한다고 생각한다.

특히 대기업 인턴 경험의 경우가 유리했던것 같은데, 이는 어느정도 이미 증명되었다고 볼 수 있는 계기를 마련했기 때문이라고 생각한다.

 

그리고 소마 면접에서 유리한 가장 좋은 경험으로는 다음과 같다.

프로젝트 도중 팀원이 탈주한 경험

 

11기도 약 10% 정도가 도중에 그만둔 것으로 알고있다. 따라서 이런 위기를 극복한 경험이 있다면 다른 지원자들과 차별화 할 수 있을것이다.

 

이 외에도 소프트웨어 마에스트로의 특성에 맞춰서 유리한 경험이 있다면 면접은 크게 준비하지 않아도 될것같다.

2020 changicho's GitHub

Intro

참 다사다난했던 2020년이 끝났다. covoid-19 때문에 지금까지 살아왔던 1년과는 정말 너무나도 다른 1년이었다.

 

코로나 외에도 2020년은 내 인생에서 매우 중요했던 시기라고 생각한다.

 

2019년부터 개발자라는 직업을 갖기 위해 시간을 쏟았던 경험이 열매를 맺기 시작했기 때문이다.

 

물론 그 열매 모두가 열리진 않았고, 정말 아깝게 아니면 실력이 부족해서 맺지 못했던 열매도 넘쳐났다.

 

도전을 두려워하지는 않지만, 실패는 두려워했었기 때문에 정말 뼈아픈 경험들이었지만,

그냥 2020년의 특수한 상황에 맞물려 너무 운이 없었다고 생각한다.

 

될놈될, 안될 안 (될 놈은 되고 안될 놈은 안된다)라는 말이 제일 와 닿은, 씁쓸한 1년인 것 같다.

 

As is

그래서 올해는 무엇을 했는가?

올해 중순 즈음에 Notion에 올해 목표를 간단히 적었었고 운이 좋게도 큰 목표들은 다 이루었다.

이중에 가장 어려운게 뭐였을까?

정말 많은 일들이 있었기 때문에 시간순으로 한번 정리해보려고 한다.

삼성 SDS 알고리즘 특강

올해 1월 삼성 SDS에서 대학생 동계 알고리즘 특강을 수강했었다.

 

2주 동안의 짧은 시간이었지만, 개인적으로 가장 유익했던 시간인 것 같다.

 

물론 자기소개서, 포트폴리오에 spec으로 적을 만한 것은 아닐지라도, 특강을 수강한 이후 기업 코딩 테스트 합격률이 정말 말도 안 되게 올라갔다.

 

이때 고급 알고리즘들을 배웠던 것들이 올해 카카오 코딩 테스트를 치를 때 너무 큰 도움이 되었다.

 

이 특강 이후로 백준에 재미를 붙였고 올해 골드를 넘어 플래티넘 5를 달성했다.

 

골드 2에서 플레티넘 5까지의 여정

 

 

changicho/algorithm_training

알고리즘 문제풀이. Contribute to changicho/algorithm_training development by creating an account on GitHub.

github.com

알고리즘 repository wiki에 문제를 풀 때마다 내용을 조금씩 정리했었는데 꽤 깔끔해져서 보기 좋다.

 

사실 1일 1 알고리즘 문제풀이를 꾸준히 진행했었는데, 블로그에는 올리지 않았었고 2021년부터는 올릴까 고민 중...

 

NAVER 인턴십

알고리즘 특강이 끝나기 무섭게 2달 동안 NAVER에서 전환형 인턴십을 수행했었다.

 

1월 초 면접보러 그린팩토리를 방문했을 때

전환에 성공하진 못했지만, 올해 취업준비를 할 때 가장 덕을 많이 본 경험이기도 했다.

 

확실히 취준생에게 가장 추천해주고 싶은 경험은 대기업 인턴 경험이다.

 

다만 인턴십 과정 자체는 그다지 순탄하지는 않았었다.

 

backend 부서에 frontend 포지션으로 들어간 것이 좀 많이 아쉬웠지만, 얻은 것도 잃은 것도 있으니...

 

마지막 회식 때 부서에 직원분이 나한테 해준 말이 가장 기억에 남는다.

"결과가 어떻게 될지 모르지만, 제가 지금 찬기님이었으면 지금 지원할 수 있는 곳은 전부 지원했을 거예요."
"제가 전에있던 회사에서 면접때 사람들을 떨어뜨려야 하니까 정말 말도안되는것들로 떨어뜨렸었거든요..."
"인생 똥 망게임"

지금와서 생각해보면 가장 도움되는 말이었다.

 

올해 취업시장에서 항상 Plan B를 준비했었기 때문에 올해 공백기 없이 무사히 넘길 수 있었기 때문이다.

 

... 주변에 수많은 NAVER 인턴 탈락자 친구들이 힘들어하는 모습을 보면 마음이 아프다.

 

소프트웨어 마에스트로

 

 

real-compacted-developer/connect-class

WebRTC, Socket 기반 온라인 스터디 서비스 ‘커넥트클래스’. Contribute to real-compacted-developer/connect-class development by creating an account on GitHub.

github.com

올해 코로나 환경에서 소프트웨어 마에스트로 과정에 참가했다.

 

언택트 상황에서 이루어진 활동이라 이전 기수들 만큼 퍼포먼스가 안 나온 기수인 것 같다.

 

그래도 국내 최고의 개발자 육성 프로그램이며, 선배 기수들이 이쪽 업계를 꽉 잡고 있다는 것을 뼈저리게 느끼고 있다.

현재 다니고 있는 직장에서도 소프트웨어 마에스트로 선배기수분들이 꽤 있기 때문이다...

 

프로젝트 주제를 내가 하고 싶었던 것으로 정하다 보니, 시장성에서 타당한 경쟁력을 확보하지는 못했지만

동료들과 6개월 동안의 장기 프로젝트를 탈주자 없이 성공적으로 마무리했던 경험은 값졌다.

 

트러블 없이 끝까지 함께 해준 동료들에게 감사하다.

 

특히 애자일 방법론을 꽤 길게 운영해 볼 수 있었는데, JIRA 등을 사용하며 거의 현업처럼 운영했었던 것 같다.

 

우아한 테크 캠프

 

 

나는 비로소 성장했습니다. (우아한테크캠프 3기)

안녕하세요? 기업 면접에서 자기 소개시간이 있을 때마다, 저는 "함께 성장하는 개발자" 라는 멘트를 사용합니다. 저는 비전공자 출신으로, 혼자서 학습을 진행하면서 스스로 한계를 많이 느꼇

changicho.tistory.com

2019 부스트 캠프 이후 crong과 honux를 다시 만났다.

 

올해 운 좋게도 front-end 포지션으로 열린 교육 프로그램에 참가할 수 있었다.

 

많은 경험을 한 것은 아니지만, 우아한 테크 캠프가 가장 수준이 높았다고 생각한다.

 

특히 이때 나의 potential이 폭발하며 엄청나게 성장했다.

 

성장에 관점에서는 매우 큰 도움이 되었지만, 이번에도 전환에 실패했었고 정말 큰 트라우마로 남았다.

 

올해 "네카라배쿠토"에 전부 도전했었고 고배를 마시며 큰 벽을 느꼈기 때문이다.

 

개발 실력이 부족해서인 걸까, 함께 일하고 싶다는 인상을 주지 못한 것일까.

 

이유를 알 수 없기에 도전하면서 떨어진 이유를 찾고 있다. 아니면 애초에 운명이 아닐지도

 

졸업

1년 동안 휴학했었던 학교의 마지막 과목들을 수강하고, 이제 졸업만을 앞두고 있다.

 

컴퓨터공학 전공이 아니기 때문에, 이 직군으로 일을 시작하면서 어떻게 이를 극복해야 할지 고민이다.

 

지금 와서 생각해보면 4년의 시간 동안의 경험들이 나에게 큰 도움이 되었는가? 에 대해선 너무나도 회의적이다.

 

취업

올해는 이전까지의 취업시장과 꽤 많이 달랐다.

특히 전혀 예상 못한 서류 탈락을 경험하며 안 그래도 높은 난이도가 더 높아졌다는 느낌을 강하게 받았다.

 

NAVER나 우아한 형제들의 경우 너무 아까운 기회를 놓쳤었고, 삼성전자, SKT에도 최종 면접까지 갔다가 떨어지면서

내가 걸어온 길이 과연 맞는 건지 의문이 들었다.

 

정말 다행히도 부스트 캠프 2019에서 만난 친구가 속해있는 회사에 지원을 했고 그중 한 곳에 지금 다니고 있다.

 

비트코인 거래소 사업팀에서 신입 front-end 개발자로 업무를 수행하고 있다.

 

친구들 덕분에 큰 목표 중 하나를 이룰 수 있었고, 업종 자체도 계속 발전하고 있기 때문에 만족하고 있다.

 

To be

지금까지 다양한 사람들과 다양한 환경에서 성장해왔었기 때문에, 이번에는 개발 동아리 활동을 하며 한번 더 성장하고자 넥스터즈, 매시업 등의 동아리에 지원해보려 한다.

 

그리고 1일 1 커밋 활동을 계속 이어나가려고 하는데, 

몇몇 toy project 저장소를 만들어 블로그에 글을 연재할까 한다.

 

특히 front-end 성능 개선, 이벤트 최적화 등의 작업에 관련된 글을 올리고 싶다.

 

그동안 블로그 활동을 너무 미뤄온 것 같다.

 

알고리즘 문제는 꾸준히 풀려고 한다. 아마 플래티넘 4까지는 찍을 수 있을 것 같다.

현재는 solved.ac의 class로 분류된 단계별 문제들을 풀고 있는 중이다.

 

 

2021년은 얼마나 하드코어 한 인생이 펼쳐질지 기대된다.

'인생 > 회고' 카테고리의 다른 글

소프트웨어 마에스트로 팁  (0) 2021.02.14

+ Recent posts