이번 시리즈는 면접을 준비할 때 필요한 어떤 질문들을 정리하는 시리즈로 결정했다 ❗️
짧게라도 하루하루 질문 1가지씩만 대비해도 분명 큰 효과를 가져올 것이다.
최대한 자주, 또 꾸준히 해 나가보자 ❗️
필자는 최근 면접에서 위와 같은 질문을 받아보았다. 그때 필자의 답변은
먼저 프로젝트의 규모와 해당 사용자들의 규모 그리고 기획의도등을 파악한 후 해당 프로젝트에 맞는 라이브러리를 사용하는 것이 좋다고 생각합니다. 저는 소규모 프로젝트이고 모바일과 같은 UX/UI를 위해 CSR방식의 React를 선택한 경험이 있습니다. 또한 Login 방식에서 보안의 우수성과 서버 안정성을 위해 Session 방식의 로그인을 구현한 경험이 있습니다.
흠. 다시 한번 복기해보자
먼저 면접관은 라이브러리를 선택하는 기준에 대해 질문을 했다. 그럼 이 질문의 의도는 ?
너 아무거나 쓰는게 아니라 라이브러리 잘 골라쓰니?
이 말일 것이다. 그럼 내 답변은?? 당연한 말 + 라이브러리 뭐선택하냐니까 갑자기 로그인 방법?
=> 얘 잘 모르네 ㅋㅋ
필자도 이렇게 답변할 수 밖에 없었던 이유는 라이브러리를 두고 고민해본적이 없기 때문이다. 뭐 쓸지에 대해 고민을 한 적이 있나??
그리고 질문의 의도와 벗어난 로그인 방식 설명
당연 탈락이다.
또 이런 질문이 들어올 수 있으니까 미리 대비해보자
일단 라이브러리를 고르는 상황을 대입해보자. 그럼 일단 내가 잘 쓸수 있는지가 우선이 될 거 같다. 이를 더 잘 포장하면?
예제, 사용방법 등이 잘 정리되어 있는 문서인가?
이게 나의 첫번 째 라이브러리를 선택하는 기준이된다.
또 두 번째 브라우저는 계속해서 업데이트되고 발전해나가는데 라이브러리는 그렇지 않다면? 라이브러리는 어떻게 될까? 오류를 발생시킬 수 있다.
그렇다면 꾸준한 유지보수가 일어나는 라이브러리인가?
그리고 세 번째 만약 내가 라이브러리를 사용하다가 모르는 부분이 있다면? 어디에 물어볼 수 있어야 한다.
활발한 커뮤니티를 가지고 있는 라이브러리인가?
현재는 위 3개의 기준만 생각이 난다.
하지만 다른 블로그 게시글을 보면 이 외의 기준을 알아볼 수 있다.
- 미래지향성: HTML5의 "shim"을 찾고 있다면 API를 모방하는 shim인 "polyfill"을 추천합니다. 그러면 적어도 이론적으로 모든 사용자가 구현할 기술을 지원하는 브라우저를 사용하게 될 때 코드의 수정 없이도 라이브러리를 아예 사용하지 않을 수 있습니다. 예를 들어 HTML5의 video 태그를 사용 가능한 polyfill을 사용하면 오래된 브라우저의 플래시처럼 도태되어가는 기술을 이 태그로 대체해 줍니다.
- 테스트: 좋은 라이브러리라면 라이브러리가 잘 작동하는지 확인할 수 있는 테스트 포함해야 합니다. 라이브러리가 테스트 되어 있어야 라이브러리 새 버전의 하위 호환성을 신뢰할 수 있습니다.
- 깨끗한 코딩: 오픈 소스 라이브러리를 블랙박스처럼 다뤄 안을 들여다보지 않는 것도 가능합니다. 하지만 때때로 새로운 기능을 추가하거나 디버깅할 때 라이브러리 코드 안을 살펴보아야 하는 경우가 있습니다. 코드를 한 번 훑어 보고, 큰 주석 처리 된 코드 블록같은 이상 징후가 있는지 확인해 보세요.
일단은 위 3개의 기준이 아래의 3개 기준보다는 더 와닿는다 왜냐하면 지금 내 개발 수준에서는 위 3가지만 고려할 수 있을 거 같다. 앞으로 더 개발하면서 또 추가적으로 라이브러리를 선택하는 기준을 넓혀 더욱 깐깐한 개발자가 되어야겠다.
그때가 된다면 다시 포스팅을 수정하러 오겠다.
라이브러리를 선택하는 기준은 ?
- 사용방법이 잘 정리되어있는 문서가 있는지
- 꾸준히 유지보수를 하는 라이브러리인지
- 활발한 커뮤니티를 가지고 있는 라이브러리인지