0. 자기소개
키워드
- 적극적인 커뮤니케이션
- 주당 8회 이상 인터뷰
- 스프린트 및 스크럼 회의 주도
- 꾸준한 학습 태도
- 전문성 추구하는 가치관
- 하다보니 잘해짐
- 개발에 대한 재미가 올라감
- 그래서 계속 학습
답변
- 안녕하십니까 프론트엔드 지원자 한승준입니다.
- 저를 나타내는 강점은 적극적인 커뮤니케이션과 꾸준한 학습 태도입니다.
- 적극적인 커뮤니케이션을 증명하는 것은 인터뷰 요청, 스프린트 및 스크럼 회의 입니다.
- 실제로 4개의 사이드 프로젝트를 진행하면서, 다른 조의 팀원들에게 주당 8회 이상의 인터뷰를 요청해서 피드백을 받았습니다
- 그리고 보다 체계적으로 진행하고 싶어서 스프린트 및 스크럼 회의를 하자고 주도하곤 했습니다.
- 꾸준한 학습태도는 제가 전문성을 추구하는 가치관이 있다보니, 자연스럽게 학습을 지속하였습니다.
- 그러다가 잘하니까 재미를 느끼고 더 열심히 하고 있는 상황입니다.
- 그래서 나름 저만의 러닝커브를 줄이기 위해서 커리큘럼을 만들면서 노력하고있습니다.
- 위의 커뮤니케이션, 꾸준한 학습 태도를 기반으로 성장해서, 가시성 있는 성과를 보여주는 프론트엔드 개발자가 되겠습니다.
1. 자신의 강점과 약점은 무엇인가요?
키워드
답변
- 단점부터 말씀드리겠습니다. 저는 미련이 많은게 단점입니다.
- 일이 해결되지 않으면, 다음 스텝으로 넘어가도 되지만 넘어가지 못합니다
- 장점은 커뮤니케이션을 잘하고, 학습태도가 꾸준합니다
- 모든 프로젝트를 사용자 입장에서 만들기 위해서 주당 8번 이상 인터뷰를 했고
- 항상 문제가 발생하기에 이를 극복하기 위해서 꾸준히 공부를 하고,
- 공부하고 금방 까먹어서 기술 블로그를 적으면서 기억력을 높이고 있습니다.
2. 어떤 프레임워크를 사용하여 개발했나요? 왜 그 프레임워크를 선택했나요?
키워드
- React
- React 지원하는 라이브러리가 많음
- 에러해결을 위한 인터넷 자료가 많음
답변
- 저는 React를 사용했습니다.
- 첫 번째, Redux, Emotion 같은 여러가지 라이브러리가 많습니다.
- 그래서 선택의 폭이 넓어서 선택했습니다.
- 두 번째, 에러해결을 위해서 커뮤니티가 잘되어있습니다.
- 실제로 스택오버플로우나 구글링을 통해서 해결하기가 좋다고 생각해서 선택했습니다.
3. RESTful API에 대해 설명해주세요.
키워드
- HTTP 통신 인터페이스
- 표준 메소드
- GET(데이터 가져오기)
- POST(데이터 보내기)
- PUT(데이터 보내고, 수정된 데이터 확인)
- DELETE(데이터 삭제 요청)
답변
- HTTP 프로토콜을 통해서 클라이언트-서버끼리 통신하는 인터페이스입니다.
- 대표적으로 표준 HTTP 메소드가 있고 GET, POST, PUT, DELETE 입니다.
- GET은 데이터를 서버에서 가져오고
- POST는 데이터를 서버로 전송하는 것입니다.
- PUT은 데이터를 서버로 전송해서 저장된 데이터를 수정하는 것이고
- DELETE는 데이터를 삭제하는 것입니다.
4. CSRF나 XSS 공격이란?
키워드
- CSRF : 사용자의 권한을 이용
- 예시 : 로그인하고 악의적인 링크들어가면 권한을 빼앗김
- XSS : 악의적 스크립트 실행으로 개인정보 탈취
- 예시 : 특정 페이지 열람으로 스크립트가 실행되게해서 개인 정보를 탈취하는 경우
답변
- CSRF는 권한을 뺐어서 악의적으로 이용하는 것입니다.
- 특정 링크를 클릭하게 해서 로그인된 사용자의 권한을 빼앗는 경우입니다.
- XSS는 악의적인 스크립트를 실행하게 해서 개인정보를 탈취하는 것입니다.
- 똑같이 링크를 통해서 페이지를 열람할 때, 스크립트가 실행되어 개인정보를 탈취하는 것입니다.
5. async/await
const promiseExample = new Promise((resolve, reject) => {
const isSuccess = true;
if (isSuccess) {
resolve("Success!");
} else {
reject(new Error("Failed!"));
}
});
promiseExample
.then((result) => {
console.log(result);
})
.catch((error) => {
console.error(error);
});
키워드
- Promise 기반
- 순차적으로 실행
- 기존의 Promise 보다 가독성이 종음
답변
- async/await는 Promise 객체기반의 가독성 좋은 ES6 문법입니다.
- async 함수가 실행되면서 함수 내부의 await 키워드에 맞춰서 순차적으로 작업이 실행되게 합니다.
6. 비동기란?
키워드
- 작업 순서와 관계없이 실행
- 이벤트 큐에 작업 등록
- 실행 스택이 비어있으면, 해당 작업을 실행(이벤트 루프)
- 우선순위 : 1. Promise 실행, 2. setInterval 같은 시간 관련 함수 3. 나머지
답변
- 비동기란 작업 순서와 관계없이 형식에 따라 실행되는 것을 말합니다.
- 이벤트 큐에 작업이 적재되고,
- 해당 큐에 있는 작업들 중에서 우선순위에 따라서
- 비어있는 실행 스택으로 올라가면서 작업이 실행되는 것입니다.
- 우선순위는 Promise 객체, setInterval 같은 타이머 함수, 이벤트 등 나머지 함수 순입니다.