vidigummy was Advenced

Pro 취득에 대한 후기

vidi 2023. 9. 9. 14:21

개요 && 스토리

  1. 2022하반기 신입 공채로 삼성 SDS에 입사를 했다.
  2. 사실 코딩 테스트는 문제가 아니었다. 삼성 코테는 구현 시뮬레이션 문제가 대부분이었고, 심지어 기출도 백준에 차고 넘칠 만큼 많았기 때문이다. 이제 내가 풀었던 검투사 문제까지 백준에 있을 것이다.(아마도?)
  3. 하지만 입사를 하고 나서 삼성 SW Certificate. Pro. 자격이라는 것이 있음을 알게 됐다.(나만 몰랐나보다)
  4. 회사 개발자 인원 중 대부분이 가지고 있었고, 따게 된다면 월 고정 인센티브가 x0만원이 붙어서 연봉이 백단위로 오르는... 그런 자격증이었다. 실제로 그걸 따기 전에는 진짜 사원 취급을 안 해주는 느낌도 조금 들긴 했고.
  5. 그래서 (반 강제로) 치기 시작했지만, 통과할 수가 없었다. Segment Tree, LCA 등의 평소에 잘 쓰이지 않는 알고리즘이 주를 이루는 시험 문제 출제 경향과 나의 구린 알고리즘 실력은 완전히 상충되었기 때문이다. 그래서 약 4개월에 달하는 교육 기간 동안 잊고 살았다.
  6. 하지만, 어느 순간 부터 SDS 인원들을 위해서 만들어지던 SDS 출제 알고리즘 문제가 없어지고, 전자 주관으로 바뀐다는 것을 들었다. 솔직히 알고리즘보단 자료구조 및 구현에 자신이 있던 나는 속으로 쾌재를 불렀다. (어림도 없는 자신감이 있었기 때문이다.)
  7. 전자로 바뀌었고... 한달동안 또 치지 않았다.(대체 무슨 정신일까)
  8. 하지만 부서 배치가 완료되고 주변 동기들이 하나 둘 씩 치는 것을 보고 조바심이 생기기 시작했고, 할거면 제대로 하자는 생각으로 교육을 신청하여 다녀왔다.
  9. 교육에서는 다양한 자료구조와 빈출 알고리즘에 대한 설명을 듣고 좀 빡센 수료 기준도 통과해서 이제 문제를 풀어야지! 하고 시험을 쳤더랬다.
  10. 테케는 풀었지만, 탈락이었다. 탈락이었다. 탈락이었다고.
  11. 그렇게 테케는 대충 맞지만 세번의 불합격을 하게 된다. 스트레스 그 자체였다. 그 와중에 여자친구랑도 헤어지고... 주짓수 하다가 손가락 하나는 없어졌지... 제정신이 아닌 날들을 보낸 것 같다. 취준 할 때도 이렇게 힘들진 않았던 것 같은데 최악이었다.
  12. 하지만 결국 합격을 했고(손가락도 다 나았다.), 끌려간 예비군 훈련장에서 많은 사람들의 축하를 사내 메신저로 받으며 안정을 찾을 수 있었다.(개 같은거) 
  13. 어? 손가락 나아서 코드가 잘 쳐진걸까???

 

개 같은거

시험 설명

  1. 삼성전자 SW Certi. Pro.는 API 작성 문제다. 객체 안에 작성해야 하는 메서드가 init을 포함하여 3~5개가 주어지고, 입력은 Main에서 받게 되므로 Parameter로 들어오게 된다.
  2. 각 API는 최소 100번에서 10000번까지 불릴 수 있으며, N 또한 정말 다양한 크기로 들어오게 된다.
  3. 각 API에서 허용할 수 있는 시간 복잡도는 다양하지만 웬만하면 O(logN) 정도로 처리하는 것이 좋다. 테케 한번에 10000번의 요청이 오는 API도 있다.
  4. 그게 안되는 API는 100번... 정도로 엄청 적은 숫자가 들어오기도 하니 그런건 각자 계산하여 최악의 경우에 연산 수가 1억번을 넘기지 않는 것이 핵심이다.(물론 제한 시간 3초라고 되어 있긴 한데, 50개 테케에서 3초다. 악랄해.)
  5.  C/Cpp와 JAVA의 경우 STL을 포함한 모든 라이브러리를 사용할 수 있다. 아이 좋아... 이것도 없던 시절에 Pro를 딴 선배님들 아주 존경한다. Python의 경우 한달에 한번 정도 사용할 수 있으며, 시험을 칠 시간이 많이 없는 사람의 경우 Python 또한 나쁜 선택이 아니라는 생각을 했다.(1초를 더 준다)
  6. 요즘 시험의 난이도는 백준 골드 2~3 정도의 문제를 2개 정도 붙여 놓고 그 두개를 조율해서 시간 최적화를 이루어내라! 라는 느낌이라 아마 골1~플레4 정도라고 생각한다. 실제로 합격률이 5%에서 10% 사이라고 들었다.
  7. 설계를 삐끗하면 시험 시간 내내 구현만 하고, 시간 복잡도는 제대로 나오지 않는 설계 시험이라고 생각하면 될 것 같다. 확실히 알고리즘 문제들과는 괴리가 있다.  
  8. 최적화를 신경 많이 써야한다. 정말 많이 써야한다. 똑같은 알고리즘을 사용하더라도 시간 복잡도를 줄이는 연습을 많이 하는 편이 좋다. 백준에서는 합격할 수 있는 알고리즘 구현이 Pro에서는 불합격 할 수 있다.(O(1)이 같은 O(1)이 아니라는 생각을 하자.)

리트리버 우유 귀엽다.

Tip.

  1. 부서에서 팁 공유를 요청하셔서 작성했던 글의 일부이다.
  2. 소개
    1. 변화된 pro. 시험은 알고리즘 시험이라기 보다는 자료구조 설계 시험에 가깝습니다.
    2. 많은 양의 테스트케이스와 자료 량을 처리하는데 있어 대부분의 알고리즘은 초기 세팅에 많은 시간을 소요하고, 이는 아무리 좋은 알고리즘이라도 이를 끌어오는 자료구조가 빈약하다면 시간 초과가 날 수 밖에 없는 출제 방식을 보이기 때문입니다. 
  3. 알고리즘
    1.  DAT, DFS/BFS, Flood fill, Back tracking, Dijkstra, Parametric search, Binary search, Segment Tree 는 빈출 문제 해결 방식으로 숙달이 필요합니다.
    2. 상황에 맞는 알고리즘을 선택하시고, 이에 최적화 된 입력 및 사용 자료구조를 택하시면 됩니다.
  4. 자료 구조
    1. 가장 좋은(많은 기능이 들어있는) 자료구조를 먼저 택하지 않는걸 추천드립니다. 예를 들어 DAT를 진행할 때, 키값이 음이 아닌 정수라면, Hash보다는 Array가 효율적인 선택이 될 수 있습니다. 상황에 맞는 가장 단순한 자료구조를 택하시는 것이 좋습니다.
    2. 메모리에 대한 걱정은 프로 시험에서 큰 의미가 없었습니다. 제가 느낀 프로 시험은 메모리가 정말 넉넉한 시험이라는 것입니다. 메모리에 대한 걱정은 일단 제쳐두고 설계하셔도 큰 문제는 없습니다.
  5. 최적화
    1. 객체 생성은 정말 필요한 순간에 하시는걸 추천드립니다. 자잘한 요소로 느껴지는 것이 사실이지만 객체 생성에 필요한 시간은 0.1초가 합불을 가르는 프로 시험에서 큰 영향을 미칩니다.
    2. Comparator를 포함한 함수를 범용으로 사용하는 것은 좋지 않습니다. 같은 객체를 비교하더라도 사용되는 구간마다 다른 비교 기준을 가질 수 있습니다. 이를 범용적으로 만들기 보다는 특정 변수 (예를 들어 depth) 만 비교하고, 나머지는 return 0하셔도 됩니다. 똑같은 O(1) 이나 똑같은 O(1) 아닌 것을 기억해 주시면 좋을듯 합니다.

회사에서 귀엽고 뽀짝한 키링을 줬다.

근황

  1. 잘 지내고 있다.
    1. 잘 지내고 있다.
    2. 밥도 잘 먹고, 운동도 꾸준히 하고 있다. 살은 안 빠지지만.
    3. 최근에는 홍콩행 비행기도 예약해서 11월 쯤 혼자 다녀올 생각이다. 비행기값이 싸서(30만원 대) 예약했는데, 기간도 길고(6박 7일) 홍콩 집값이 너무 비싸서 벌써 80만원을 써 버렸다. 하지만 괜찮을거다. 하하.
  2. 공채는 안 올라온다.
    1. 친구에게 우리 회사 추천을 했는데, 공채가 안 올라온다. 낄낄
    2. 하반기 내에는 올라오겠지?
  3. 회사 좋아.
    1. 솔루션 사업부의 개발실에 있는 팀 중 하나에서 SRE 직무로 일하고 있는데, 정말 좋다.
    2. 밥도 잘 나오고 사람들도 좋고 무엇보다 성장시켜주기 위한 분위기 자체가 정말 좋다.(외부에서 보여지는 이미지와는 정말 다르다. 물론, 그 이미지를 담당하는 곳들이 있긴 하지만... 난 아니니까...)
    3. 파트너 사만 초대하는 큰 컨퍼런스도 열릴 때 마다 다녀오고, 동기들이랑 같이 밥먹고 술먹고 놀러다니는 것도 좋다.
    4.  무엇보다 재택이 너무 좋다. 얼마전까지 우리팀은 풀재택이었지만 이젠 한달 근무 일수의 절반만 할 수 있는 것으로 바뀌긴 했다.(삼성 전체의 입김이 있으니 어쩔 수 없음을 이해하고 있다.) 그래도 필요할 때 마다 재택할 수 있는 이런 제도는 너무 좋은 것 같다. 특히 야간 작업 있는 날에는 재택으로 출퇴근 시간이라도 줄여야지...!

다음 목표

  1. 영어
    1. 따긴 해야한다. AL을 목표로 하고 있지만, 회사에서 시켜주는 전화영어를 한달만 하고 예비군 때문에 신청을 못해버렸다. 하하. 다음달 신청에는 꼭 해내야지. 공짜? 못 참는다.
  2. AWS
    1. 우리 회사는 클라우드 사업을 진행하고 있지만, AWS를 많이 사용하는 회사이기도 하다. 또한 Cloud의 대명사는 아무래도 AWS일테니...클라우드를 잘 이해하고 있다는 뜻으로 AWS 자격증 2~3개를 계획하고 있다. 반기마다 딸 수 있으면 참 좋을 것 같다.
    2. 그래서 이번에 회사에서 지원해주는 AWS Skill Builder 과정을 신청했다. 공부해야지!
  3. Elasticsearch
    1. ES가 내게 좀 많이 중요한 업무가 되어버렸다.(??!!!)
    2. 이유는 회사 일이라 말 못해주지만, 중요한 일이 된 바람에 이걸 꽤 깊게 팔 이유가 생겼다.
    3. Elastic Certificate를 딸 생각도 하고 있으나 일단 미뤄야징.

그룹장님께 밥 사달라 할거다.

'vidigummy was Advenced' 카테고리의 다른 글

SegmentTree(IndexedTree)의 구현  (2) 2023.03.24