[SW 마에스트로 15기 합격후기] 면접 및 후기

GomHyeok·2024년 3월 26일

SW마에스트로

목록 보기
1/2

SW 마에스트로 15기에 합격했다!

1월부터 코딩테스트 부터 시작하여 약 두달 정도의 준비를 정말 열심히 했다.
사실 2차 코딩테스트가 끝나고 붙을거라고 생각을 하지 못해서 합격 문자가 오기까지 아무런 준비도 못했다..
하지만 이후 면접 준비에 올인한 결과 붙을 수 있었다!

이번 포스팅을 통해 나와 같이 면접에 어려움을 겪는 사람과 소프트웨어 마에스트로를 준비하는 사람들에게 도움을 주고자 내가 했던 코딩테스트 문제와 면접 준비 과정에 대해 공유하려고 한다.

이글을 보시는 여러분들도 모두 할 수 있습니다!


📖 코딩테스트

✍ 1차 코딩테스트

사실 1차 코딩테스트의 구체적인 문제에 대해서는 말할수 없지만 대략적으로 말하자면 일단 쉬웠다!
백준 골드5정도를 풀수 있는 수준이라면 모두 풀수 있다고 생각되는 문제였다.

하지만 문제가 쉬운만큼 개인적인 생각으로는 모든 문제를 풀어야 통과할 수 있다고 생각되는 코딩테스트였다. 그만큼 문제를 풀며 하나라도 틀리면 안된다는 압박감속에 테스트를 봤던 것 같다.

  1. 단순 구현 문제
    난이도 : 브론즈 3

정말 단순한 구현문제였다. 수학적 연산식을 코드로만 구현할 수 있으면 풀 수 있는문제

  1. 범위내의 생성되는 삼각형
    난이도 : 실버 4 (단 히든케이스가 테스트케이스에 없다면 실버 2)

주어진 직사각형에서 문제 조건에 따랐을 때 생기는 삼각형의 넓이 합을 구하는 문제다. 사실 나도 히든케이스가 테스트케이스에 없었다면 틀렸을 수 있다. (처음 테케 돌렸을 때 틀렸음)
하지만 그걸 감안하더라도 골드정도의 수준은 아닌것 같다.

  1. String과 주어진 String 구분
    난이도 : 실버 2

주어진 String의 id(중복 불가능)와 class(중복가능)를 구분하고 각 명령문의 결과를 저장하는 문제이다.
정말 주어진 String에서 id와 class를 구분하고, 해당 id와 class를 어디에 어떻게 저장할지(자료구조)
저장된 값을 활용하여 명령어에 어떻게 사용할지를 고민했던 문제다.
주어진 값 자체가 아주 큰 값은 아니었던거 같아서 어렵지 않게 풀었던 것 같다.
단, 주어진 조건을 명확하게 이해하는 것이 중요한 문제다. 조건을 이해하지 못하면 무조건 틀리는 문제!

  1. 배열 정리 문제
    난이도 : 골드 5

주어진 배열에 대하여 문제 조건에 따라 정렬하는 문제다. 이렇게만 말하면 정말 쉬워보이지만 조건이 생각보다 복잡해서 시간을 가장 많이(약 1시간) 사용한 문제다.
해당 문제 때문에 sql을 포기할 뻔 했다. 단순 그리디한 방법으로 풀게되면 무조건 시간복잡도에 서 문제가 발생하는 문제라서 어떻게든 시간복잡도를 줄일 수 있는 방법을 찾아햐 했다.
그래서 나는 종이에 가능한 모든 경우의 정렬 결과를 쓰고, 원하는 정답과의 차이점을 분석하며 문제를 풀이했다. 물론 이후 다른 사람들의 풀이를 보니 아주 좋은 방법은 아니라는 것을 알 수 있었다.

  1. SQL 문제
    난이도 : LEVEL 2

그저 단순히 min을 쓸줄 안다면 누구나 풀 수 있는 정도의 문제였다.
역시나 sql은 쉽게 나왔군 이라는 생각을 했다.

✍ 2차 코딩테스트

2차부터는 별다른 기대를 하지 않아서 큰 긴장감은 없었다. 나름 개인적인 일도 있어서 정상적인 컨디션으로 볼수 없기도 하였다 ㅎㅎ
그래서 그냥 맘편히 2문제만 풀자 라는 생각으로 접근했던 것 같다.

  1. 문자열 정리
    난이도 : 실버 4

단순히 주어진 문자열을 조건에 맞게 정렬하면되는 정말정말 단순한 문제다.

  1. dp문제
    난이도 : 골드 5
    유사 문제 : https://www.acmicpc.net/problem/2240

과일이 시간별로 어디로 떨어지는지 주어진 배열에 대하여 주어진 이동 방향에 대하여 시간별로 구하는 문제다. 정말 백준의 자두나무 문제와 유사한 문제다. 물론 나도 풀어보지는 않아서 나름 고생좀 했던 문제다.. 2번부터 시간을 이렇게 쓰면 안되는데 라는 생각 때문에 정말 진땀흘렸다.
3차원 배열 dp를 사용해야하서 나름 그 연산 과정을 많이 고민했던 문제다. 그 연산에 대하여 식만 확실하게 구할 수 있다면 나름 빨리 풀수 있었을 것 같은 생각이 들었다.

  1. 분할정복
    난이도 : 골드 5

정말 분할정복의 기초와 같은 문제다. 진짜진짜 분할정복이 무엇인지, 어떤식으로 동작하는지만 안다면 평소에 분할정복에 대한 코드를 몰라도 풀 수 있는 문제다.

<여기서 부터 풀이하지 못했다.>

  1. 비트연산 dp용
    난이도 : 골드 3
    유사 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/131702

0과 1로 이루어진 정사각형에서 어떤 2가지의 버튼을 눌러 모두 0으로 바꿀 수 있는 방법을 찾는것이 중요했다. 당연히 최소 횟수 방법을 찾아야 했지만, 문제 이해를 정상적으로 하지 못하여 풀이하지 못했다. 나중에 들어보니 주어진 정사각형을 열 또는 행 단위로 쪼개서 생각하면 풀 수 있는 문제라고 한다.

  1. sql Partition
    난이도 : 극악

진짜 당연히 sql은 풀 수 있다는 내 생각을 완벽하게 부순 문제...
rank와 join을 사용하고, set도 사용하고.. 무튼 준비를 못한 나의 문제다. 정말 sql은 단순하게 과거 개념만 다시 읽어보고 시험을 봐서 어떻게 하는건지 이해하지 못한 문제다. 변수를 생성하여 열을 추가하고 해당 열어 필요한 데이터를 추가하고 등등 정말 이해 못할 방법이 많았던 문제다.


📖 면접준비

정말 코딩테스트에서 3문제 뿐이 못풀어서 붙을 것이라고 생각하지 못했다. 14기때 2차에서 떨어졌기 때문에 또 떨어질 것이라고 생각했다. 그래서 2차 합격 문자가 오기 전까지 기억에서 소마를 잊고 있었다. 하지만 2차 합격 문자가 온 순간 머리가 멍해지고 어떻게 준비하지 라는 생각을 하였다. 급하게 카카오톡 오픈채팅 소마 채팅방을 찾고 스터디를 구했다. 그러면서 다양한 면접 준비 질문을 찾아보고, 스터디를 하는 사람들과 공유했다. 특히 이번부터는 3분 스피치.. 그게 진짜 힘들었다. 3분이라는 시간이 길다면 길고 짧다면 짧은 시간이기 때문에 그 시간을 맞춰서 발표를 준비하는 것이 쉽지 않은 과정이었다.
(나름 3분 스피치를 잘해서 붙은것 같다고 생각한다.)
우선 꿀팁을 주자면 무조건 스터디를 참여해라!
거기서 공유되는 면접 질문과, 남들 앞에서 말을 해보는 연습은 정말 도움이 많이된다.
또한 면접관님들이 계속해서 포트폴리오를 앞에서 직접 확인하시는 모습을 보며 식은땀을 많이 흘렸던 것 같다.

우선 내가 받은 질문에 대하여 공유하자면 정말 우리 분과는 인성질문 0개 100% 포트폴리오 기반 질문이었다.

  1. Front-End 개발자로써 꼭 필요한 능력은?
  • 아무래도 최근 스마트폰이라는 기기는 연령을 가리지 않고 사용되기 때문에 사용자 친화 UI/UX 제작이 가장 중요하다고 생각됩니다.
    1-1 그럼 어떤 UI/UX가 좋다고 어떻게 알 수 있는가?
  • 다양한 방식으로 사용자 피드백을 통해 알 수 있을 것 같다.
    1-2 사용자 피드백은 어떤 식으로 받을 생각인지?
  • 최근 가장 쉽게 사용자 피드백을 받을 수 있는 방법은 SNS라고 생각한다. 그 외에도 구글 폼 조사, 사용하 후기를 댓글로 받는 등 다양한 방법을 사용할 수 있다고 생각된다.
  1. 진행한 프로젝트에서 주어진 토큰을 유지하는 방법으로 무엇을 택했는가?
  • 해당 구조체를 생성하고 주어진 구조체를 각 UI마다 넘겨주는 방식을 택했다.(이것보다 길게 주저리 주저리 말했던것 같다.)
  1. 디스패치큐를 사용했다고 하는데 그럼 전체가 lock 걸릴수 있는 문제가 있는데 어떻게 해결하였는가?
  • 진행 과정을 서버로 부터 받아와서 해당 과정을 화면으로 출력해줬다. 그러며 화면이 lock 되더라도 사용자가 어느정도 진행되고 있는지 알 수 있도록 하였다.
    3-1 그렇다면 해당 방법말고 다른 방법은 없는가?
  • 아직 그부분에서는 잘 알지 못하겠다.
  1. 지금 취직을 하고 싶은 것인지 창업을 하고 싶은것인지 잘 모르겠다. 어떤게 목적인가?
  • 과거 프로젝트 또한 창업을 위해 진행한 프로젝트다. 저는 결국 창업이 목표라고 말할 수 있을 것 같다.
  1. 지금까지 Front로 진행해서 고생한 것 같다. 그 부분에 대해 해명할 기회를 주겠다.
  • 사실 지금까지 주로 진행한 프로젝트가 Front 프로젝트라 그렇게 지원했지만, 아직 진로를 명확히 정하지 못했다. 그래서 나에게 소마가 너무 중요한 기회고, 계기가 될 수 있을 것 같다. 그래서 더 간절하게 하고 싶은 생각이 든다.
  1. 백엔드도 학습 하였는데 하게 되었던 계기가 정확이 무엇인가?
  • 과거 진행하던 프로젝트에서 Front 엔지니어도 Back단에 대한 지식이 필요하다 생각되어 공부하게 되었다. 이를 통해 이번 기술 스택에 Spring을 추가할 수 있었다.

지금까지의 면접 과정이다. 다행이 붙었다!! 나 또한 포트폴리오를 준비하며 다양한 사람의 포트폴리오를 확인할 수 있었던 것 같다. 그래서 나의 이번 포트폴리오도 공유하고자 한다!

소마 포트폴리오
https://prairie-gallium-72c.notion.site/3e86efe6d89b44a9b60d843efa66c6f9?pvs=4

profile
github : https://github.com/GomHyeok/

0개의 댓글