Skip to content

Commit 1fa0be5

Browse files
committed
docs: 2025 토스뱅크 프론트엔드 면접 고해성사
1 parent 6e09968 commit 1fa0be5

21 files changed

+542
-2
lines changed
Lines changed: 297 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,297 @@
1+
---
2+
title: 2025 토스뱅크 프론트엔드 면접 고해성사
3+
createdAt: 2025-11-27
4+
category: Etc
5+
description: 첫 면접이라 아쉬움이 많았지만, 한번 더 보고 싶다는 생각이 들 정도로 좋은 경험이었던 토스뱅크 프론트엔드 면접... (회고라고 하고 고해성사라고 읽는다)
6+
comment: true
7+
head:
8+
- - meta
9+
- name: keywords
10+
content: 토스뱅크, 토스, toss, toss bank, toss bank frontend, toss bank front-end, toss bank interview, toss bank 면접, toss bank 프론트엔드 면접, toss bank front-end interview, react, react interview, react 면접, react interview questions, frontend interview questions, 프론트엔드 면접 질문
11+
---
12+
13+
요즘들어 회고 글을 너무 자주쓰는 느낌이다.. <br/>
14+
마치 죄많은 개발자처럼 면접이나 프로젝트가 끝날 때 마다 고해성사를 하러 오는 기분
15+
16+
하지만 이게반성문은 아니다 <br/>
17+
실패를 통해서 더 단단해지고 성장하는 과정, 그게 바로 개발자의 종교라고 믿는다
18+
19+
그리고 요번 고해성사(?) 의 대상은 내가 정말 가고 싶었던 토스뱅크였다.
20+
21+
## 🎯 왜 토스뱅크였는가?
22+
23+
토스뱅크는 단순히 가기 어려운 회사가 아니라, 내가 되고 싶은 개발자의 모습이 담긴 회사였다
24+
25+
[대학 시절 창업을 도전했다가 실패한 경험](./roomfit-failure.md) 이 있었는데, 그 과정에서 토스 이승건 대표님의 영상을 보고 많은 깨달음을 얻었다
26+
27+
그 과정에서 토스가 추구하는 가치관과 개발 문화가 나와 잘 맞는다는 생각이 들었고, 언젠가 꼭 토스에서 일하고 싶다는 목표를 가지게 되었다 <br/>
28+
특히 "사용자를 위해 불편을 부수는 집요함" 이라는 철학을 접했고, 내가 생각했던 개발자의 모습과도 일치했다.
29+
30+
> 겉은 부드러운 경험으로, 속은 견고한 구조로 다지는 프론트엔드 개발자
31+
32+
토스는 이걸 진짜 현실로 만들어낸 팀이라고 생각했다.
33+
34+
<div style="display: flex; width:100%; align-items:center;">
35+
<img src="./img/2025-toss-interview/toss-auth.png" alt="토스뱅크가 혁신적으로 인증절차를 바꾼 이야기" style="width:50%; object-fit:cover;"/>
36+
<img src="./img/2025-toss-interview/toss-cta.png" alt="토스뱅크가 IOS 에서 BottomCTA 버튼이 사라지는 현상을 해결한 이야기" style="width:50%; object-fit:cover;" />
37+
</div>
38+
39+
:::details [개발자를 성장시키는 토스의 개발 문화 3가지 | 박서진 토스 Head of Frontend | Square of Toss](https://www.youtube.com/watch?v=RzVABPt9f-g)
40+
41+
Go The Extra mile, 한 눈금 더 좋은
42+
43+
- 기존의 스탠다드 넘기
44+
- 안전하게 해봤던 일에서 벗어나기
45+
46+
뇌에 힘을 빼고도 안전하게 할 수 있는일에서 벗어나, 기존의 스탠다드에서 벗어나, 실질적인 문제 해결을 위해 아무도 안해봤던 일에 도전하는것
47+
48+
:::
49+
50+
:::details [토스팀의 진짜 일하는 이야기ㅣTHE TEaM: 토스팀 워크스토리ㅣ토스](https://www.youtube.com/watch?v=B26O0mjIsUE)
51+
52+
래디컬 캔도어 : 직원 상호간에 솔직하고 건설적인 피드백을 주고받는 문화
53+
54+
:::
55+
56+
예를들어 금융권에서 당연했던 복잡하고 불편한 본인진증을 완전히 뒤바꿔놓은 원터치 인증이라던지, IOS 웹뷰에서 키보드가 뜨면 CTA 가 가려지는 문제를 그냥 두지 않고, 사용자를 위해 끝까지 해결하는 태도와 이 작은 배려가 큰 경험을 만든다는것을 아는 팀
57+
58+
또, 나는 지식공유를 중요하게 생각한다 <br/>
59+
동아리 발표, 스터디 경험을 통해 서로 배우고 성장하는 기쁨을 느꼈다. <br/>
60+
토스의 [Frontend Fundamentals](https://frontend-fundamentals.com/) 와 같은 공유 문화 역시 내가 꿈꾸는 모습이었다.
61+
62+
## ✍️ 토스뱅크에 지원하다
63+
64+
이번에 내가 지원한 토스뱅크 전형은 서류 패스 전형이었기때문에, 서류를 내고나서 바로 과제 전형의 기회를 받을 수 있었다.
65+
66+
이력서 포트폴리오는 내가 무엇을 했는지 보다 왜 했고, 어떤 문제가 있어서 단계별로 해결한 과정을 중심으로 작성했다.
67+
68+
## 📝 토스뱅크 과제 전형
69+
70+
보안상 과제 내용에 대해 자세히 말할 수는 없지만, 과제에서도 똑같은 원칙을 적용했다. <br/>
71+
72+
> 코드 한줄을 짜더라도 이유를 설명할 수 있어야 한다
73+
74+
UX, 유지보수성, 아키텍쳐 각각에서 개발자경험과 사용자 경험을 함께 고려하며, 라이브러리 도입이유와 어떤 훅, 컴포넌트를 왜분리했는지 고민하면서 과제를 진행했다.
75+
76+
근데,,, 여기서 사건이 하나 있었다.
77+
78+
### 🧨 Gemini와 함께한 최후의 5분
79+
80+
모든 레포에 Gemini Code Assist를 붙여놓은 상태였는데, PR을 제출하고 나니 얘가 갑자기 크리티컬한 문제가 있다고 소리를 지르는것이었다
81+
82+
![](./img/2025-toss-interview/gemini.png)
83+
84+
하... 떨어졌구나
85+
86+
버그가 즉시 고쳐진 것도 아니고, 그저 아쉬움을 남긴 채 제출을 마무리했다.
87+
88+
## ✉️ 합격 그리고 면접 준비
89+
90+
근데 며칠 뒤, 과제합격 메일이 도착했다 <br/>
91+
현실을 잠깐 의심했다. 진짜?? 아니 이게 진짜라고?
92+
93+
<img src="./img/2025-toss-interview/toss-passed.png" alt="토스뱅크 프론트엔드 과제 합격 메일"/>
94+
95+
진짜 하루종일 이렇게 기쁠 수가 없었다.
96+
97+
순간의 기쁨도 잠시, 면접준비를 위해서 내가 부족한 부분에 대해서 다시 점검했다
98+
99+
토스의 면접은 무시무시하고 악랄하다는 소문이 자자했고, 8~10depth 까지의 질문공세가 이어진다는 이야기도 들었다
100+
101+
너무가고싶은 마음에 면접보기 전까지 쥐죽은듯이 공부했다. <br/>
102+
근 몇달간 가장 집중을 많이하고 공부를 많이 했지 않나.. 싶다
103+
104+
<img src="./img/2025-toss-interview/study-1.webp" height="300" style="object-fit:clip;"/>
105+
106+
## 😵 대망의 면접날 고해성사를 시작합니다
107+
108+
컨디션은 최고였다.. 아침에 일어났는데 상쾌하고 개운했다 <br/>
109+
면접관님들도 너무 친절하셨고, 편안한 분위기에서 면접이 진행되었다
110+
111+
분위기는 편안했지만, 질문은 그 어디에도 편안함이 없었다. <br/>
112+
정말 소문대로 깊고, 날카롭고, 집요했다
113+
114+
## 1️⃣ 너무 기술적으로만 파고들었던 죄
115+
116+
면접 준비를 하면서 React 내부 동작, Fiber 구조, Lane 모델, Concurrency ... 이런 걸 정말 열심히 파고들었다.
117+
118+
문제는, **기술 자체에 너무 취해 있었다**는 점이다.
119+
120+
질문이 들어왔을 때, 사실은 간단히 개념과 결론만 말해도 되는 상황에서도
121+
122+
> "저 이거 깊게 공부했습니다!"
123+
124+
를 증명하고 싶어서, 내부 구현 이야기까지 장황하게 꺼낸 순간들이 있었다.
125+
126+
돌이켜보면, 면접관님들이 듣고 싶었던 건 "이걸 얼마나 알고있냐" 가 아니라,
127+
128+
> 실제로 어떤 상황에서 그 지식을 쓸 수 있는지 <br/>
129+
> 사용자의 문제를 어떻게 해결할 수 있는지
130+
131+
였을 것이다.
132+
133+
:::info ✍️ NOTE
134+
깊이보다 먼저, 맥락과 결론, 깊이는 그 다음에 꺼내도 늦지 않다
135+
:::
136+
137+
## 2️⃣ 대화가 아닌, 질문 - 답변 구조로만 답했던 죄
138+
139+
면접관님들이 입장하시는 순간 들었던 생각:
140+
141+
> "와… 진짜 토스뱅크 프론트 개발자다... 미쳤다..."
142+
143+
이 압도감 때문에 그런지, 머리가 자동으로 **Q&A 모드**로 잠겨버렸다.
144+
145+
> "여기서는 이런 구조는 어떨까요?" <br/>
146+
> "이 방향성은 어떻게 생각하시나요?"
147+
148+
처럼 내 의견을 제안하면서 대화로 풀어갔으면 좋았는데,
149+
150+
실제로는
151+
152+
> 질문 → 답변 → 다음 질문
153+
154+
에 갇혀 있었던 느낌이 강했다.
155+
156+
특히,
157+
158+
> "비전공자에게 서버사이드 렌더링을 설명해보라"
159+
160+
는 질문에서, 웹의 역사, 정적 페이지, CSR, SSR, Hydration까지 내가 아는 걸 전부 꺼내버렸다. <br/>
161+
(그 분들은 아마 "아... 이렇게까지 자세히 말해달란 건 아니었는데..." 했을 듯)
162+
163+
사실 협업하는 동료라면, 내가 "이런 선택을 했고, 이런 대안도 고민했다"라고 함께 얘기하는 모습을 보여줬어야 했다.
164+
165+
:::info ✍️ NOTE
166+
면접도 결국 같이 일할 사람과의 대화다. <br/>
167+
단답형 Q&A가 아니라, 함께 문제를 두고 얘기하는 자리가 되어야 한다
168+
:::
169+
170+
## 3️⃣ 두괄식이 아닌, 장황한 설명으로 요점을 흐렸던 죄
171+
172+
면접 초반에는 나름 두괄식으로 잘 말하고 있었다.
173+
174+
> "결론부터 말씀드리면요, ~~ 입니다.
175+
> 그 이유는 첫째, 둘째..."
176+
177+
근데 긴장이 풀리기 시작하자
178+
내 평소 말버릇이 슬슬 올라왔다.
179+
180+
> "~해서 ~했고, 그래서 ~라고 생각했고... 결국에는 ~~입니다."
181+
182+
결론이 항상 뒤에 나오는 구조가 되어버렸다.
183+
184+
면접관님들도 이미 업무로 지친 상태에서
185+
장황한 서사를 다 듣고 나서야
186+
결론을 알게 되는 구조는 분명 피곤했을 것이다.
187+
188+
:::info ✍️ NOTE
189+
면접에서의 배려는 말의 밀도가 아니라, 말의 명료함이다
190+
:::
191+
192+
## 4️⃣ 후회 포인트를 제대로 꺼내지 못했던 죄
193+
194+
과제를 하면서
195+
196+
> "이 부분은 이렇게 했지만, 사실 구조적으로 더 개선 여지가 있다" <br/>
197+
> "시간이 더 있었다면 이런 방향으로 리팩터링했을 것 같다"
198+
199+
라는 '셀프 피드백 리스트'를 따로 정리해두었다.
200+
201+
나는 그게 "면접관님이 물어보시면 그때 말해야지" 카테고리라고 생각했다.
202+
203+
하지만 실제 면접에서는 그 질문이 나오지 않았고, 나도 굳이 끌어올리지 않았다.
204+
205+
지금 와서 보면, 이건 기회를 내가 스스로 내다버린 것 같다
206+
207+
:::info ✍️ NOTE
208+
준비한 인사이트는 질문을 기다리지 말고, 내가 먼저 꺼내서 보여줘야 한다
209+
:::
210+
211+
## 5️⃣ 내가 왜 토스뱅크에 가고싶은지 제대로 설명하지 못했던 죄
212+
213+
우습게도, 나는 기술 질문 대비는 정말 열심히 했는데
214+
215+
> "왜 토스뱅크인가요?"
216+
> "왜 우리 팀에 오고 싶나요?"
217+
218+
같은 가장 기본적인 질문에는 오히려 답이 어눌했다.
219+
220+
물론 말하고 싶은 건 많았다.
221+
222+
> 토스의 집요한 사용자 경험 집착 <br/>
223+
> 공유와 성장 문화를 좋아하는 이유 <br/>
224+
> 내 가치관과 맞닿은 지점들
225+
226+
하지만 그걸 짧고 명확한 문장으로 정리해두지 못했다.
227+
228+
그래서 실제 면접에서는 머릿속에 있는 여러 생각들이 조금씩 섞여 나오는 느낌이었고,
229+
230+
> "아, 이 친구가 정말 우리 팀을 원하고 있구나"
231+
232+
라는 확신을 선명하게 남기진 못했을 것 같다.
233+
234+
:::info ✍️ NOTE
235+
내가 왜 이 회사를 선택했는지, 이 팀에서 무엇을 이루고 싶은지를 문장으로 꼭 정리해보자
236+
:::
237+
238+
## 6️⃣ 불필요한 메모이제이션을 남발한 죄
239+
240+
이번 면접에서 가장 크게 반성한 포인트다.
241+
242+
과제 코드에서 생각보다 많은 부분에 `useMemo`/`memo`를 걸어두었고, 그게 자연스럽게 질문으로 돌아왔다.
243+
244+
> "이 부분에 메모이제이션을 하신 이유가 있나요?"
245+
> "평소에도 이렇게 사용하시나"
246+
247+
처음에는 "성능 최적화"라는 말로 시작했다가"
248+
점점 대답이 이상한 방향으로 흘러갔다.
249+
250+
> 60fps 기준 16.67ms 프레임 타임이니까.. 연산 시간이 그걸 넘으면... 타임라인 찍어서 보고... <br/>
251+
> 아, 프로파일러도 있죠...
252+
253+
정작 실제 프로젝트에서 그렇게까지 측정하고 쓰진 않으면서, 너무 기술적인 말들로 포장하려다보니, 내 말과 실제 습관 사이에 괴리가 생겼다.
254+
255+
사실 내가 평소에 지키고 싶은 원칙은 이거였다.
256+
257+
> 1. 먼저 측정한다. <br/>
258+
> 2. 병목이 되는 부분을 찾는다.<br/>
259+
> 3. 정말 필요한 곳에만 메모이제이션을 쓴다.
260+
261+
하지만 그 자리에서는 "원칙"보다 "포장된 말"이 먼저 나갔다
262+
263+
이건 제일 크게 반성하는 부분이다.
264+
265+
:::info ✍️ NOTE
266+
문제가 발생시에 원인을 찾은 뒤, 측정하고, 정말 필요한 곳에만 메모이제이션을 적용하자
267+
:::
268+
269+
## 7️⃣ 평소 UX 나 화면 흐름에 대한 고민을 하지 않았던 죄
270+
271+
면접 중간에 특정 상황이 주어지고, 그에 대해 UX 적으로 어떻게 설계할지 물어보는 질문이 나왔다.
272+
273+
나는 순간적으로 살짝 멍해졌다.
274+
275+
물론 머리로는 "사용자 입장에서 어떻게 느낄까" 를 항상 고민한다고 생각했는데, 막상 구체적인 사례와 다른 서비스 레퍼런스를 곁들여 말하라 하니까 말문이 막힌 것이다.
276+
277+
예를 들어,
278+
279+
> "비슷한 상황에서 ~~ 앱은 이렇게 처리하더라"
280+
281+
처럼 내가 실제로 보고, 써보고, 느낀 UX 레퍼런스를 더 자신 있게 꺼냈으면 좋았을 것이다.
282+
283+
이건 앞으로의 아주 큰 과제로 남았다
284+
285+
:::info ✍️ NOTE
286+
코드만 잘 짜는 프론트엔드가 아니라, 사용자 흐름을 설계할 수 있는 프론트엔드가 되기 위해서 더 많이 써보고, 더 많이 관찰하고, 더 많이 기록하자
287+
:::
288+
289+
## 🥲 다음 기회를 기약하며..
290+
291+
<img src="./img/2025-toss-interview/toss-failed.png" alt="토스뱅크 프론트엔드 면접 불합격 메일"/>
292+
293+
뭐... 결국은 불합격했다.
294+
295+
하지만 이번 경험은 너무 소중한 경험이었고, 다음에는 이런 실수를 반복하지 않겠다는 다짐과, 조금 더 성장할 수 있는 계기가 되었던것 같다
296+
297+
두고보자 토스뱅크... 다음에는 꼭 붙을거다
178 KB
Loading
1.05 MB
Loading
68.8 KB
Loading
1.42 MB
Loading
154 KB
Loading
352 KB
Loading
83.5 KB
Loading
235 KB
Loading
1.2 MB
Loading

0 commit comments

Comments
 (0)