brunch

You can make anything
by writing

C.S.Lewis

by 고서울 Apr 16. 2024

테이블은 어떻게 구현하셨어요?

이력서에 'XX 관리 시스템'을 적은 FE 개발자들에게

"테이블은 어떻게 구현하셨어요?"

"어떤 라이브러리를 사용하셨어요?"


회사에서 경력 면접을 진행하면서 꽤나 자주 물어보는 질문이다. 이런 류의 질문은 컴퓨터 공학이나 개발 전반적인 역량보단 철저히 Front-end(FE)에 초점이 맞춰진 질문이다. FE 개발을 하다 보면 사실 모든 기능을 직접 구현하는 것보다 적절한 라이브러리를 가져다가 사용하는 것이 일반적이기 때문이다. 


특히 FE 개발을 하다 보면 아무래도 대시보드 같은 화면들을 많이 개발하게 되는데, 이런 화면들에서는 아무래도 사용자에게도 보기 편한 테이블(또는 스키마)을 핵심 기능으로 여기는 경우가 많다. 특히 이력서에  'xx 관리 시스템', 'xx 통계 시스템' 등 키워드가 있다면 더욱이 안 물어볼 수 없는 질문이기도 하다.


충분히 대비할 수 있었을 법한 질문임에도 불구하고 면접자들이 이런 질문을 받으면 꽤나 당황스러워하는 경우가 많다. 왜일까? 아무래도 '일반적인' 일이라 이런 질문을 할 것이라고 생각을 못 했던 것 같다. 어쨌거나 면접관에게 질문을 받았으니 대답을 해야 할 터. 돌아온 답변은. '글쎄'.


이 질문에 대답할 만한 배경으로는 두 가지가 있다. 1) 기획 요구사항이 됐던 VoC가 됐던 복잡한 기능들이 필요해 2) 이미 프로젝트에 Set-up 된 컴포넌트를 가져다 쓴 경우. 대부분의 경우 2번이 많을 것이라고 생각되지만 그렇다면 각각 어떤 대답을 해야 좋은 인상을 줄 수 있을지 같이 적어보도록 하겠다.


1번 케이스는 오히려 말할 요소들이 너무나 많아서 확실히 답변하기가 수월하다고 볼 수 있다. 그럼에도 '어떤 기능이 필요해서 외부 라이브러리를 사용할 것을 결정했는지'를 가장 처음으로 설명해야 할 것이다. 테이블이라고 해도 정렬, 페이징, 드롭다운 등 사실 기능으로 따지자면 테이블엔 없는 게 없다고 해도 과언이 아니다.  


하지만 면접에서 본인에게 유리하게 이끌어가려면 되물어보았을 때 곤란한 대답은 피하는 게 좋다. 예를 들어 정렬 기능이 필요해서 라이브러리를 가져다 썼다고 대답을 한 경우, '정렬 같은 간단한 기능은 직접 구현해도 되지 않았을까요?'라는 질문이 온다는 것을 염두에 두어야 한다.


따라서 '어떤 기능에 초점을 두었는지'를 설명하고 그 기능에 초점을 둔 결과가 A라는 라이브러리라면, '왜 A라이브러리가 그 기능에 적합한지'를 뒤이어 대답해야 한다. NPM 다운로드 수나 github star 같은 표면적인 지표를 말할 수 있지만 크게 매력적인 대답이라고 볼 수는 없을 것 같다. 되도록이면 프로젝트에 적절한 핵심적인 기능이 있다거나 패키지의 사이즈(용량) 등을 벤치마킹했던 사례를 구체적으로 말해주는 것이 좋을 것이다. 


저희 대시보드는 사용자가 직접 Custom 하게 Column과 Row를 제어할 수 있게 하고 그것을 로컬 스토리지에 저장해 두는 것이 특징인데 그러다 보니 해당 Column들을 제어했을 때 얼마나 부드럽게 움직이는지가 큰 포인트였던 것 같습니다. 이 기능을 제공하는 라이브러리가 대표적으로는 A 라이브러리를 많이 사용하는데 저희에겐 정렬이나 페이징 등의 기능은 필요가 없어서 더 고민을 하던 찰나에 B 라이브러리가 조금 더 콤팩트하게 해당 기능을 제공하고 있었고 패키지 용량도 적어서 선택했습니다.

 

2번 케이스의 경우, 질문을 "해당 라이브러리를 사용하면서 좋은 점과 나쁜 점은 어떤 것이 있었을까요?" 해석을 해야 한다. 관성적으로 사용을 한다는 것은 어쩌면 개발자에게 굉장히 익숙하지만 조금은 불편한 느낌이 있다. 불편함을 감수하고 사용하는 것 또한 이상하고 그렇다고 뒤집어엎기엔 공수가 너무 많이 들기 때문이다. 그래도 현업자들에게는 리소스가 많이 드는 것이 더 치명적이라고 볼 수 있으니 어떤 불편함이 있었는지 그래서 그 불편함을 어떻게 해소하려고 했는지로 대답한다면 좋은 대답이라고 볼 수 있다.


저희 프로젝트에서는 A 라이브러리 기반으로 Custom 한 Table Component가 있습니다. 저희 기능 중에 Table header를 고정하는 것이 있는데, A 라이브러리가 제공하는 기능은 ie를 지원하지 않아서 저희가 ie에서도 대응할 수 있도록 개발하여 사용하고 있습니다. A 라이브러리를 써보니까 다양한 기능을 제공하는 것은 좋지만 호환성 문제가 있어서 여러모로 손이 많이 갔던 것 같습니다.


물론, 면접관들이 가장 좋아하는 대답이라고 하면 '모두가 다 쓰길래 써봤는데요, 아무리 생각해도 불편해서 다른 걸로 바꿨어요' 같은 패기 있는 대답이 아닐까. 이 대답을 듣는 순간 뭐가 그렇게 불편했는지, 무엇으로 바꿨는지, 그 과정에서 어려움은 없었는지 궁금해서 면접관들 눈이 커질게 뻔하다. 


어떻게 마무리를 지어야 좋을지 모르겠지만,

이제는 '어떤 라이브러리를 쓰셨어요?'라는 질문에 당황하지 않고 대답해 볼 수 있지 않을까?

작가의 이전글 별 거 있겠어, 그래봐야 사랑이겠지
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari