- 현재 회사를 선택하게 된 계기
답변
합격한 회사 중 처우가 가장 좋았음. 연봉, 네임밸류, 미래를 도합하여 생각할 때 가장 좋은 회사였음.
- 변수명/함수명을 잘 짓는 방법
답변
잘 지어야 하는 이유를 먼저 말하면, 다른 사람 혹은 이후 코드를 볼 때 보기 좋아야 하기 때문. 모두 함께 보는 코드이기 때문에 컨벤션과 팀원간 의견 조율이 기본.
prefix, 자연어 위주 사용. 개인적으로는 변수/함수의 이름이 길어져도 짧고 애매한 이름보다 길고 명확한 이름이 더 좋다 생각합니다. (코드가 안예뻐져서 안좋아하는 사람도 존재)
추천 도서: 프로그래머의 뇌 → 변수, 함수의 이름 짓기가 중요성을 알려줌
- 팀은 팀의 컨벤션을 따르게 되는데 개인이 프로젝트할 때 참고하면 좋을 컨벤션이 있다면?
답변
먼저 컨벤션의 범위가 넓어 코드 레벨, 아키텍쳐, PR 각각의 컨벤션이 다 존재할 수 있습니다. 코드베이스의 컨벤션은 빡빡한 컨벤션을 사용해보는 것이 좋을것 같습니다. 하나하나 신경쓰면 피곤해질 수 있기 때문에
ESLint
를 통해 귀찮을 수 있는 영역을 검증받는 것을 추천합니다. airbnb등의 config를 사용해보는 것도 추천합니다.사용하다보면 주관이 생기기 때문에 하나씩 자신만의 룰을 만들어갈 수 있습니다.
- CS는 어디까지 알아야 하는지
답변
많이 알수록 좋습니다. CS는 생각지 못한 곳에서 CS의 도움을 받을때가 존재할 수 있어요. 개발의 근간이 되는 지식이기 때문에 새 개념을 접할때 쉽게 이해할 수 있도록 도와주기도 합니다.
ex) React 리렌더링 우선순위 → 운영체제의 스케줄링 기법.
현재는 마스터하기 보다는 공부 할때 코드 작성, 어플리케이션 영역을 넘어서도 CS가 필요할 수 있어 필요할때마다 개념을 흘려보내지 말고 찾아보는 방법도 추천합니다.
ex) CORS 에러를 만날 때 해결법을 알고 끝내지 않고, 발생원인과 관련 개념을 한단계만 들여다보기. ‘같은 origin만 보장하는 이유 등’
알수록 좋지만 지금 단계에서는 깊이 공부하지 않아도 됩니다. 면접 단계에서는 개발시 만나는 상황, 네트워크 관련 질문은 많았지만 더 깊은 단계의 개념은 잘 묻지 않았던것 같습니다. (회사 목표, 스타일, 면접관마다 다를 수 있음)
- 추천하는 CSS 학습법이 있다면?
답변
CSS는 해도 해도 어렵기 때문에 많이 할수록 좋습니다. JS는 논리적 영역이기 때문에 if, for문을 알면 대부분 해결 가능하지만, CSS는 지식의 영역으로 어떻게 처리할 수 있는지 다양한 케이스를 겪으며 알맞은 CSS 작성을 추천할 수 있을 것 같습니다. CSS 잘하면 좋아요!
- 오늘 강의에서 각각의 컴포넌트가 독립된 기능을 하도록 로직을 작성하셨는데 이러한 설계를 구상하는데 도움이 될 만한 책이나, 연습 방법이 있을까요??
- 하나의 객체는 하나의 일을 수행해야 한다.
- 외부 데이터에 의존해 외부→내부 데이터 변환이 일어나면 안된다.
- 리미터블한 내용(limitable?)
답변
일단 강의를 안보고 바닥에서부터 만들어보세요. 만들 때 개념을 갖고 만들면 흐름을 통한 의문을 가지며 구현을 일단 진행하고 강의를 나중에 보며 비교해보세요
ex) list를 보여줄 때, form에서 받으면 list를 만들기 위해 form의 텍스트를 알아야한다. 그렇다면 메세지를 전달하는 것까지가 form의 역할인가? 같은 의문.
한 단계 더 나아가면, 객체 지향적 사고를 함께 갖는 것도 좋습니다. 객체 지향 설계는 프론트엔드에서 많이 사용하지 않지만, 객체지향/함수형 모두 잘하기 위한 방법론일 수 있겠습니다. 두가지 베이스적 부분은 일치합니다. 결국 프로그래밍 방법론에서 시작하기 때문이며, 관련 서적을 읽거나 (‘쏙쏙 들어오는 함수형 코딩”) 프론트엔드 베이스 공부를 하는 것도 좋습니다. 연습은 많이 작성하는 것이 가장 좋고, 내가 할 수 있는 범위가 아니어도 구현하기 위해 고민하고 작성하는 시간을 가져보세요.
일치하는 개념?
- 멘토님이 생각하시는 클린코드란??
답변
쉬운코드, 읽기 좋은 코드. 추상적이긴 합니다.
프로그래밍은 결국 혼자 개발하지 않다보니 현업을 하면서 나만 아는 코드는 좋지 않았습니다. 동료들도 이해하기 쉬워야합니다. 시간과 노력이 요구되지 않는 코드! 한번 더 생각하게 만드는 것도 좋은 코드가 아니라 할 수 있어요. (this 역시 현업에서는 쓰지 않음)
- 빠르게 변하는 기술, 트렌드를 알기 위해 노력하고 계신 것이 있다면 나누어주세요!
답변
최근 트렌드라면 일단 vite와 next.js의 SSR비용.
노력이라면 뉴스레터를 구독하는 것. 영어이기 때문에 쉽게 읽히지 않아도 꾸준히 관심을 갖는 것을 추천. 접할 환경에 있는 것도 좋습니다.
- 직무 변경에서 무엇을 어필할 수 있을까요? (FE만 고집할지 돈에 따라 변화할지. 변경한다면 FE만 공부한 상황에서 무엇을 어필할 수 있을지)
- 기업 규모별로 면접 스타일이 어떻게 다른가
답변
둘 다 할 수 있음을 어필. 서버가 필요할 때 전문적으로 구현하지 못해도 사이드프로젝트 수준은 가능하다는 것을 어필하면 좋음. 경험이 있으면 하기 편해지기도 합니다. 커뮤니케이션시 불가능한 요청이 왜 불가능한지 파악이 된다.
특화 역량이 있지만 이외의 영역도 가능한지는 CRUD서버 만드는 정도의 수준은 어렵지 않음. 할 수 있다는것을 어필하며 역량을 채워가는 것도 좋을 것 같다.
기본적으로 자바스크립트의 개념을 잘 안다면 리액트/뷰/노드 뭐든 할 수 있기에 당장 프로젝트를 진행하는 것이 아닌 빠른 성장으로 시작하는 미래가치 투자도 존재하기 때문! → JS를 깊이 알면 JSX 문법에서 되는 구문. 문/식 평가 등의 개념으로 연동됨
답변
스타트업은 현직에 바로 들어갈 인재상을 원하고
큰 기업은 브라우저, 네트워크, 자바스크립트 이론과 개념을 물어 미래가치와 흡수력을 보게됩니다.
회사마다, 면접관마다 스타일이 다르지만 공통적으로 자바스크립트, 브라우저, 네트워크의 코어한 이론지식을 묻게 됩니다.
오늘의 팁
- 위임, callback의 개념을 알아두면 이벤트를 추가하고 실행할 때 위임받는 과정 이해가 쉬울 것. (JS, HTML 모두 브라우저에 동작을 위임하고 특정 시점에 실행하기 때문)
신기술 뉴스레터 구독 - 슬랙 팀 채널에 공유
(요즘it도 추천합니다. 한국어로 뉴스레터를 전달하기 때문에 보기는 더 쉬워요)