기술 면접 준비
팀 프로젝트
상태 관리를 하는 이유에 대해 말하시오.
React는 기본적으로 부모 컴포넌트에서 자식 컴포넌트로 Props를 내려주는 "단방향 방식"을 사용한다. 이 방식은 props의 출발지와 목적지의 거리가 멀어질수록, 오류 발생 시 해당 오류의 source 추적이 힘들어진다. 따라서 props를 출발지에서 목적지까지 한번에 전달할 수 있는 방법이 필요하다. 나는 평소 Redux Toolkit이나 Zustand를 사용하여 전역적으로 state를 관리한다. 또한, 서버와 클라이언트 간의 비동기 작업에서는 React Query를 사용하여 상태를 관리한다.
타입 | 사용 용도 |
---|---|
feat | 기능 구현 |
fix | 문제 수정 |
rename | 파일 이름 변경 or 파일 위치 변경 |
remove | 파일 삭제 or 폴더 삭제 |
refactor | 코드 리팩토링 |
comment | 주석 추가/수정/삭제 |
style | CSS 관련 코드 추가/수정/삭제 |
docs | README 파일 추가/수정/삭제 |
test | 테스트 코드(ex. console.log) 추가/수정/삭제 |
chore | 컴포넌트, 훅 등을 제외한 파일(ex. 패키지 매니저) 수정 |
!HOTFIX | 긴급 수정 |
[타입] - 이슈 제목
(ex. [feat] - 헤더 UI 제작
)on+동작+Handler
형태로 이름 작성 (ex. onChangeHandler
)event
가 아닌 e
로 표기// Good
export const name1 = () => {};
export const name2 = () => {};
// Bad
const name1 = () => {};
const name2 = () => {};
export {name1, name2};
import type
으로 명시문제
: 개발자들이 사전에 작성한 와이어프레임이 디자이너가 제작해야하는 시안 형태와 많이 다름
원인
: 웹(Web)에서 페이지를 표현하는 방식과 앱(App)에서 페이지를 표현하는 방식이 다름
해결
: 웹(Web) -> 앱(App)
버전으로 발전시키는 것보다 앱(App) -> 웹(Web)
버전으로 발전시키는 것이 더욱 편해서 앱(App) 버전의 와이어프레임을 먼저 제작해보기로 결정함
문제
: 웹(Web) 환경에서 제작했던 와이어프레임을 앱(App) 환경으로 변동하는 데 어려움을 겪음
원인
: 웹(Web)에서 한 페이지로 표현 가능한 화면을 앱(App)에서는 여러 화면으로 쪼개서 표현해야 함
해결과정