저의 경우 웹 프론트엔드 개발자라는 직업을 가지고 너무 얕게 공부하고 있다는 생각을 많이 했어요.
이런 공부 방식이라면, 제가 더 성장할 수 없을 것 같았어요. 사실 이런 생각은 자주했지만, 이를 극복할만한 방법은 찾지 못했어요. 그래서 제가 어떤 부분에서 강점을 가지고 있는 개발자인지? 어떤 방향으로 앞으로 나아갈지? 이러한 질문에 대한 답을 얻기 위해 지원했어요.
실제로 이러한 부분에서 답을 얻었어요. 제 개발 인생에 있어서 큰 반환점이 되어준 부트캠프였고, 제가 생각한 것보다 훨씬 크게 성장할 수 있었어요. 그래서 최대한 많은 분이 이 소프티어
라는 부트캠프에 합격하셨으면 좋겠어서 이렇게 후기를 남기게 되었어요.
그리고 아마... 이 부트캠프 자체가 취업을 바로 하셔야 되는 분들이 들어가시다보니 후기 자체가 매우 적었어요. 후기를 남길 시간도 없게 매우 바쁘신 분들이 들어오는 부트캠프라서... 그래서 저라도 남겨야겠다!! 생각하게 되었어요.
제가 공부한 방식이 답은 아니겠지만, 이렇게 하니 도움은 되더라~ 정도로 생각해주시면 좋을 것 같아요.
일단 저 같은 경우, 컴퓨터공학과를 복전하고 있지만 수강을 완료한 컴퓨터공학과 6대 과목은 자료구조, 컴퓨터 네트워크 2개가 끝인 비전공자라고 봐도 괜찮아요. 그래서 비전공자 분이 참고하기에 매우 좋을 것이라고 생각이 들어요.
알고리즘의 경우, 소프티어 준비를 하기 전에는 골드 V
정도였어요. 이것도 대부분 알고리즘이 아니라 구현
위주의 문제 풀이였어요.
그래서 소프티어 준비하기 이전에 저의 수준은 한마디로 말하면, 알고리즘은 구현 위주로 짬짬히 풀었지만 알고리즘 거의 모르고, CS는 거의 모르는 비전공자(허접)
로 생각하시면 편할거에요.
이제부터 설명드릴 때에는 지원하였을 때 보게 될 시험을 순서대로 말하고 각각을 어떻게 준비했는지 말씀드릴게요!!
우선 지원을 하게 될때 자소서
는 없었어요!! 그냥 단순한 성적증명서
, 졸업 확정이나 졸업 예정을 증명할 수 있는 증명서? 그 정도를 제출하고 학점
정도 제출하였습니다.
그리고 나선 1차, 2차 평가를 보고 최종적으로 합격하게 됩니다. 다른 부트캠프에 비해 자소서가 없는 것이 다른 점이 될 것 같네요.
그리고 지원 분야에는 FE, BE, Android, 서비스기획, 디자인 이렇게 총 5가지였어요.
이것도 현대 자동차, 현대 오토버에버 중에 결정해야 돼요!! 근데 이번엔 FE의 경우 현대 오토에버에서만 뽑았어요. 저번 기수에는 현대 자동차까지 뽑았었는데, 아마 기수마다 조금 다른 것 같아요.
이때 지원할 때는 1,2,3 순위를 정해서 지원하게 돼요. 이건 제 추측이긴한데, 각 분야 별로 뽑는 것이 아닌 것 같아요. 그냥 전체 성적순으로 매긴 다음에 위에부터 넣어주는 것 같아요.
그래서 상대적으로 웹 백엔드가 2,3 순위로라도 입과하게 되는 경우가 많아요.
상대적으로 알고리즘, CS는 백엔드가 잘하니깐....(물론 고정관념일 수도 있긴 합니다.)
그래서 백엔드 분들은 2,3순위에 입과하게 된다면 입과할지? 를 고민하시는게 좋을 것 같구, 다른 분들은 내 경쟁자가 내 분야만이 아니라 모두구나!! 를 염두해두시고, 준비하시는 것이 좋아요.
근데 아마 현대오토에버랑 현대 자동차는 별개로 뽑을거에요. 같은 회사 안에서는 FE, BE, Android 상관없이 모두 경쟁자이다~ 이 정도로 이해하시면 좋을 것 같아요.
그리고 인원 수로는 기획 15명, 디자이너 15명, FE 10명, BE 30명, Android 10명으로 총 80명 정도 되었어요. 진짜 소수 정예....
저의 경우 프로그래머스 1,2단계까지 모두 완료했어요.
프로그래머스의 경우 1,2단계가 구현 위주의 문제여서 이 문제를 풀면서 구현 준비를 했어요. 구현 문제 같은 경우, 이 정도의 문제만 답 안보고 풀정도면 충분하실 것 같아요~
제 블로그에 1,2단계에 대한 모든 풀이가 있으니 이를 참고하셔도 좋을 것 같아요. 그런데 꼭 푸실때 답을 보는게 아니라 먼저 자신이 풀어보고 진짜 모르겠다 싶을때 보셔야 돼요... 아니면 진짜 의미가 없는게 구현이라....
알고리즘의 경우에는 인프런에 있는 큰돌님의 강의를 수강했어요.
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
이라는 강의를 통해 여기 있는 문제는 모두 풀어갔어요. 알고리즘의 경우에는 공부 방식이 많겠지만 저는 강의에서 제공해주는 문제를 순서대로 풀어나갔던 것 같아요.
만약에 알고리즘을 아예 모르고 처음이시다 하면 저처럼 강의를 통해 어떤 알고리즘이 있고, 어떻게 공부해야 되는지 알아가시면 매우 도움이 될 것 같아요. 저도 처음엔 알고리즘이라고 해봤자 DFS 정도 밖에 몰라서 감이 없었고, 이러한 강의가 공부 방식의 길이 되어주었어요.
저는 큰돌님의 강의를 선택했지만 본인에게 맞는 강의를 선택하셔서 하시면 좋을 것 같아요. 저는 참고로 코딩언어는 C++이에요!! 이 강의도 C++전용이에요. 물론 문제 자체의 힌트는 얻을 수 있지만 직접적인 해결법이나 이런 면에서는 다른 강의가 도움이 될 수 있을 것 같아요.
1차는 여러분들이 모두 아는 그 코딩테스트를 시험봐요. 지원 언어는 대부분 되었었는데, 2기때는 JS가 지원이 안되었어요. 그런데 이번부터는 JS가 지원되었어요!! 아마 3기 이후로는 JS가 쭉 지원된다고 들었어요. ( 이럴꺼면 C++로 안돌렸지... )
참고로 저는 C++
로 봤어요.
문제는 상당히 어려웠어요....
총 7문제
나왔고, 2문제 정도가 구현이었고 나머지는 알고리즘이었어요.
제가 소프티어 가서 백준 다이아
분을 만났는데 이 분은 2솔을 하셨다고 하더라구요. 그만큼 문제가 상.당.히 어려워요.
한 문제는 실버1~2정도의 구현 문제
였고, 한 문제는 DFS관련 문제로 골드 4~5문제
였어요. 이 문제는 상당히 쉬웠고 나머지는 제가 느끼기엔 플레 이상 문제였어요.
그래서 대부분이 2~3솔로 합격하셨어요. 문제 난이도가 상당히 있는 만큼 컷도 낮았습니다. 단 여기서 주의해야 되는게 쉬운 문제는 완.벽. 하게 푸셔야 돼요. 쉬운 문제가 두개 정도 나왔는데, 이걸 틀리면 답이 없어요. 예외처리 같은 것도 좀 있는 편이라.. 꼼꼼히 보셔야 합니다...
저 같은 경우 문제 난이도를 보자마자 아 내가 아는걸 완벽하게 풀어야겠구나 생각했어요. 그래서 먼저 문제를 쭉 읽어보고, 내가 아는 문제만 알아두고 나머지 문제는 보지도 않았어요.
만약 시험을 보시게 되면 어려운 문제는 일단 빨리빨리 넘어가는 것을 추천드려요. 제가 알기로 쉬운 문제가 3번이랑 5번이었던 것 같아요. 물론 사람마다 다르겠지만 앞에 있는 문제가 제일 쉬운게 아니니깐 모르겠다 싶으면 넘어가세요....
참고로 저는 3솔하긴 했는데, 아마 1문제는 급히 내느라 히든에서 걸렸을거에요!! 그래서 아마 2솔로 합격했을거에요. 합격 컷트 라인도 2솔이었어요!!
아는 것만 완벽하게 풀자.
솔직히 떨어질 줄 알았는데, 붙었다..... 기적
나중에 이야기 들어보니 쉬운 두 문제 빼고, 나머지 5문제는 넘사로 어려웠다고 합니다.. 저도 그랬구요....
일단 소프트웨어 지식 테스트
라고 하긴 하는데, 쉽게 말해 CS 문제에요. 문제는 정확히 기억 안나는데 30문제 정도 나온 것 같아요. 양이 상당히 많아요. 시험 방식에 대한 부분은 뒤에 더 설명할게요.
우선 저는 컴퓨터 6대 과목 (자료구조, 컴퓨터네트워크, 알고리즘, 운영체제, 컴퓨터 구조, 데이터베이스) 을 따로따로 공부했어요. 제가 약했던 부분은 알고리즘, OS, 데이터베이스, 컴퓨터 구조여서 이 부분을 공부를 진짜 많이했어요. 그래서 각각을 어떤 식으로 공부했는지 알려드릴게요.
공통적으로 진행한 건 아래 3개였어요. 특히 gyoogle블로그가 도움이 많이 된 것 같아요. 아래의 자료들은 전체적인 과목들의 흐름을 알기에 매우 적격이에요. 저처럼 비전공자라면 아래를 먼저 공부하시고 뒤에 있는 내용들을 공부하면 도움이 많이 될거에요.
gyoogle 블로그
WeareSoft tech-interview
면접을 위한 CS 전공지식 노트
자료 구조랑 컴네는 많이 공부 안했어요... 기존에 수업 시간에 많이 열심히 들었던 과목이라, 기초가 있었고, 강의노트 정도만 다시 훑은 정도로만 진행했어요.
알고리즘은 위에서 언급드렸던 큰돌이라는 사이트에서 문제를 풀면서 같이 공부를 진행했어요. 그래서 이 알고리즘 같은 경우는 시간 아끼실 겸, 코테 푸실 때 같이 겸사겸사 하시는 편이 좋아요.
제가 공부했던 알고리즘은 아래 정도인 것 같아요.
- 그래프 이론 (DFS, BFS)
- 백트리킹
- 완전 탐색
- 조합, 순열
- 비트마스킹
- prefixSum
- 그리디
- 라인스위핑
- 투포인터
- 이분탐색
- LIS
- 펜윅트리
- 최단거리 (다익스트라, 플로이드, 밸만포드)
이 정도가 어떤 방식으로 구현되는지, 시간복잡도, 공간복잡도 정도 공부했어요. 더 있었던 것 같긴한데 제가 기억에 남는 중요한 건 저 정도였던 것 같아요. 여기에 추가적으로 시간복잡도의 경우, 최악, 최선, 평균까지 총 3개를 암기했던 것 같아요.
사실 이 부분이 저한테 있어서는 가장 약점이었어요. 그래서 위에서 공통으로 진행했던 것이 큰 도움이 되지 않았어요. 다 처음보는거라 이해도 안가고.....
그래서 제가 진행했던 공부 방식은 책을 이용하였어요. 제가 사용한 책은 다음과 같아요.
이 책은 좀 많이 추천해요. 책 내용 자체가 초보자들한테 설명하는 느낌이라 제가 처음하는 부분임에도 되게 빠르게 빠르게 습득했어요. 그리고 또한 강의도 있어서 책으로 공부하다가 모르는 부분이 있으면 강의를 들으면서 이해해볼 수 있어요.
첫번째 혼공컴운
으로는 개념을 잡았었어요. 근데 저의 경우 문제가 어떤 식으로 나올지 아예 감이 안잡혔어요. 근데 정처기 필기 책을 보시면 컴퓨터구조와 운영체제에 대한 문제가 나와있어요.
이게 문제만으로 보면 페이지 수로 10페이지 이내여서 금방 풀 수 있어요. 저는 이걸 시험 보기 하루 전에 풀었는데, 여기서 비슷한 문제가 엄~청 나왔어요. 문제에 대한 감이 없을 때, 이 책을 기반으로 문제를 풀면 도움이 될꺼에요. 다른 건 풀지말고, 컴퓨터구조, 운영체제 파트만 푸세요. (10페이지 정도라 금방 풀 수 있어요.)
제 생각엔 제가 붙을 수 있었던 이유가 이 책 덕분이라고 해도.... 이 책 덕분에 다른 분들에 비해 몇 문제 더 맞출 수 있었다고 생각해요. 강추!!
양도 많이 없고, 이걸 풀면 몇 문제는 확실히 문제를 맞출 수 있다!! 이 느낌이에요.
데이터베이스의 경우에도 운영체제, 컴퓨터 구조처럼 아예 기반이 없었어요. 그래서 아예 베이스가 없는 상태였고 이것도 책을 통해 공부했어요.
처음엔 이 책으로 기반을 다졌어요. 여기엔 개념 + 문제라 단기간에 데이터베이스를 잡을 수 있을꺼라 판단했어요.
이 책을 통해 기초 개념을 잡고, 암기했어요. 그리고 나서 문제를 풀면서 어떤 식으로 문제가 나오는지 확인했어요. 이때 당시에는 문제가 어떻게 나올지도 잘 모르고 그냥 했는데, 이거랑 비슷하게 나왔던 것 같아요. (근데 더 어려웠습니다...)
제가 데베가 처음이라, 책 하나로는 부족하다는 생각이 들었어요. 그래서 문제를 더 풀고 싶어서 위 책을 통해서 개념을 복습하고 다시 문제를 풀었어요. 위에 첫번째 책보다는 문제 수가 많아서 위에꺼로 개념을 잡고 저처럼 부족하다는 생각이 들면 이 책을 푸시면 좋을 것 같아요.
시험의 경우에는 16:30 ~ 19:00
로 2시간 30분동안 시험이 이루어졌어요. 시간이 부족했다는 생각은 전혀 안들고, 그냥 문제 자체를 몰라서 고민하다가 못푸는 경우가 많아요. 그래서 시간에 대한 압박은 안하셔도 될 것 같아요.
문제 수 같은 경우는 기수마다 달랐다고 해요. 저희 때는 참고로 30문제였어요.
문제 유형은 있는 거 다 나와요. 객관식, 단답형, 주관식 등등 유형별로 다 나옵니다.
조금 특이했던 유형들은 하나의 상황을 주고 그 상황에 꼬리 문제가 5개씩 있는 경우가 있어요. 그래서 그 상황에 대해 아예 모른다면 5문제 정도를 줄줄이 틀리는 경우가 생길 수 있어요...(아주 끔찍)
문제 난이도는 정말 어려웠어요. 제가 문제를 전부 말하는건 안되지만... 문제 자체가 개념만 안다고 풀 수 있다? 이런 문제는 적었던 것 같아요.
물론 쉬운 문제도 있었지만 어려웠던 문제도 그만큼 많았어요.
합격 기준에 대한 정확한 명시는 없지만, 제 생각에 30문제에서 17문제 이상 정도인 것 같아요. 저의 경우 19문제 정도 맞춘것 같아요. 반은 무조건 넘어야 되었던 것 같고, 반에서 조금 더 맞추는 정도?? 였던 것 같아요.
정말 다행히 합격 통보를 받을 수 있었어요.
준비단계에서 비전공자로써 많이 부족하다는 걸 알고 있었고, 그만큼 남들보다 착실히 준비했던 것 같아요. 하지만 시험을 보고나서는 제가 아직 부족하다는 걸 깨닫고, 떨어질 줄 알았어요.
하지만 1차 때도 그렇고, 2차 때도 그렇고 문제 난이도가 자체가 매우 높다보니, 못본게 저만이 아니였던 것 같아요. 그래서 다음에 지원하시는 분들도 시험을 못봤더라도 너무 낙담하지 마시구, 차근히 한번 결과를 기다려보시면 좋을 것 같아요!!
그리고 1차 보다는 2차에서 많이 가리는듯한 느낌을 많이 받았어요.
제가 마지막으로 해드리고 싶은 말은 딱 두가지 정도가 있는 것 같아요.
문제 어려워요. 본인이 생각할 떄 쉬운건 무조건 맞추고 어려운건 과감히 버리셔야 됩니다.
문제 어려운만큼 시험 도중에 너무 낙담하시고, 최선을 다해 보신다면 긍정적인 결과가 있을거에요!!
이 블로그 다음에 제가 소프티어 3기 회고록을 적으면서 소프티어에 대한 느낌점과 장단점에 대해 더 자세히 말씀드리겠지만 제 개발 인생에 있어서 반환점을 준 부트캠프
였어요.
다른 누군가도 저처럼 이 부트캠프가 인생에 있어서 반환점을 줄꺼라 확신할 수 있어요. 지원자분들 모두 긍정적인 결과 있기를 바랄게요. 파이팅!!
주시쿨님 덕분에 좋은 정보 얻어갑니다 ~~ 양질의 정보 감사드려요!