2018. 12. 26. 20:16ㆍProgramming/JavaScript
- 별 생각없이 이력서를 넣었는데, 다음날 9시에 전화가 왔다. 코딩테스트는 언제 진행하면 편하겠냐고 연락이 왔다.
입사동기를 물어보는 문항에 말문이 막혀서 결국 입사지원을 하지 않았던 걸로 기억하는데, 왜 T사에서 연락이 온거지. 그런 생각이 들어서 구직사이트를 보니, 구직사이트에서 지원한 이력이 남아있었다. 요일을 지정했더니, 그 날 18시에 메일을 발송하겠다는 연락을 들었다. 당일이 되서 머리를 좀 비우려고, 산책을 나갔다가 시간에 맞춰 도착했다. 간단한 스케쥴관리 내용을 웹으로 구현하는 문제가 들어있었다.
- 결론은 탈락, 원인은 잘못된 학습습관 때문으로 추측한다.
VueJs, angularJS, React같은 프레임워크를 사용할 수 없다는 건 딱히 패널티가 아니었다. 오히려 바닐라 자바스크립트와 jQuery가 익숙했던 나한텐, 이득이었다고 생각한다. 문제는 레이아웃을 작성하는데서 발생했다. 굉장히 간단한 레이아웃인데도, 생각보다 작성하기 까다로웠다. 문제는 이전에 업무를 진행하면서, 업무에 적용하지 못하는 사항들은 학습하지 않고 건너뛰었기 때문이다. 대표적으로 CSS에 flex를 적용하면 간단히 끝날 수 있었을 UI를, 한참을 고민하다가 table-cell을 이용해서 구현했다. 이유인즉슨 간단하다. 10여년 전부터 임베디드 장비에서 서비스되던 기존의 업무코드는 구버전의 IE를 지원해야했고, flex는 IE10부터 지원한다. 즉, 나에게 있어서는 '업무에 적용할 수 없는 개념'이었던 것이다.
- 단순히 레이아웃때문에 탈락한 것은 아닐것이다.
굉장히 간단하다고 생각했던게 진행이 안될 때는, 고구마를 1000개쯤 목구녕에 때려박은듯한 갑갑함이 느껴지기 마련이다. 별거 없다고 생각한 CSS 구성에서부터 틀어지기 시작했으니, Javascript로 작성한 코드라고 멀쩡할리가 있을까. 24시간 안에만 제출해야한다고 적혀있긴 하지만, '보통 2~3시간이면 해결할 수 있지만, 편의상 24시간 이내 제출해주세요'라고 적혀있는 내용에 더더욱 초조해졌다. 결국 6시간이 지나서야 기본 요구사항만 만족한 채, 에라 모르겠다 하는 심정으로 답신을 보냈다. 심지어 아침에 확인해보니 Gmail 정책으로 인해 전송이 취소되서, 부랴부랴 네이버 클라우드 링크를 첨부해서 메일을 재전송했다.
- 실패는 크게 중요하지 않다. 중요한 것은 다음번에 다시 실패하지 않는 것이다.
어차피 크게 기대하지 않기는 했지만(아마 기대를 했다면 6시간이 아니라, 밤을 세워서라도 최대한 열심히 쥐어짜낸 코드를 전송했을 것이다), 그래도 아쉬운 마음은 어쩔 수 없었다. 하지만 같은 서울권임에도 불구하고 편도 1시간 반이 넘어가는 애매한 거리와, 회사의 뉴스를 보고있자면 다음을 기약하는게 더 나을수도 있을 듯 했다. 그동안 나는 프론트엔드를 열심히 한 줄 알았는데, 프론트엔드도 백엔드도 아닌 업무를 해온게 아닌가 싶어서 몹시 싱숭생숭했다. 하지만 기초가 부족하다는 사실은 확실했기에, 아침에 일어나서 생활코딩의 강좌를 죽 훑었다.
- 복기해보니 그 결과는?
Javascript 파일에도 문제가 꽤 있었다. 모든 코드가 한 파일에 작성되어있었다. 토글버튼이 추가될 때를 위해 비트마스크를 채용한 것도, DOM의 요소에 리스트를 구현해놓고 append로 항목을 추가한것도 그러려니 할 수는 있었겠지만, 모든 내용이 파일 하나에 있어서 뭐가 어떤 코드인지 알 수가 없었다. 중복된 코드도 있었고, 흔히 얘기하는 '냄새나는 코드'가 내 코드였다. 내가 코딩테스트를 담당하는 분이었다고 하더라도, 코드를 보다가 닫았을 듯 하다. 비트마스크 관리하는 코드는 예전에 작성해서 깃허브(https://github.com/zerodice0/bitsToArray.js)에 올려둔 적이 있었는데, 차라리 이걸 받아서 쓸 걸 그랬다는 생각이 든다. 코드를 하나하나 살펴보고 블로그에 기재할 생각이었지만, 다시 훑어보니 부끄러워서 그럴 엄두가 나질 않는다. flex를 몰라서 정말 당황했던가, 너무 오랫동안 놀았는지도 모르겠다.
어찌됐건 지금 부족한게 뭔지 깨닳게 해준 코딩테스트여서, T사에 감사하게 생각한다. 기초가 부족하단 걸 깨닳았으니, 그동안 업무에 적용 못한다고 팽개쳤던 부분까지 찬찬히 봐야겠다.
'Programming > JavaScript' 카테고리의 다른 글
프로그래머스/다리를 지나는 트럭 (0) | 2019.01.02 |
---|---|
Meteor.js의 QuickStart를 따라해봤다 (0) | 2018.12.27 |
오늘의 삽질(Nintendo Switch 북미 할인중인 타이틀 확인) (0) | 2018.12.19 |
많이 늦은감이 있는 Steemit dApp 개발과 관련된 조사 (0) | 2018.12.17 |
javascript에서 sha256 암호화하기 (0) | 2017.04.06 |