[기술면접]_프론트엔드_문제_은행_42선

hanseungjune·2023년 6월 23일
0

직무면접

목록 보기
1/7
post-thumbnail

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

// Promise 생성
const promiseExample = new Promise((resolve, reject) => {
  const isSuccess = true; // 성공 여부를 나타내는 변수

  if (isSuccess) {
    resolve("Success!"); // 성공 시 resolve 실행
  } else {
    reject(new Error("Failed!")); // 실패 시 reject 실행
  }
});

// Promise 실행
promiseExample
  .then((result) => {
    console.log(result); // resolve 실행 결과 출력
  })
  .catch((error) => {
    console.error(error); // reject 실행 결과 출력
  });

키워드

  • Promise 기반
  • 순차적으로 실행
  • 기존의 Promise 보다 가독성이 종음

답변

  • async/await는 Promise 객체기반의 가독성 좋은 ES6 문법입니다.
  • async 함수가 실행되면서 함수 내부의 await 키워드에 맞춰서 순차적으로 작업이 실행되게 합니다.

6. 비동기란?

키워드

  • 작업 순서와 관계없이 실행
  • 이벤트 큐에 작업 등록
  • 실행 스택이 비어있으면, 해당 작업을 실행(이벤트 루프)
  • 우선순위 : 1. Promise 실행, 2. setInterval 같은 시간 관련 함수 3. 나머지

답변

  • 비동기란 작업 순서와 관계없이 형식에 따라 실행되는 것을 말합니다.
  • 이벤트 큐에 작업이 적재되고,
  • 해당 큐에 있는 작업들 중에서 우선순위에 따라서
  • 비어있는 실행 스택으로 올라가면서 작업이 실행되는 것입니다.
  • 우선순위는 Promise 객체, setInterval 같은 타이머 함수, 이벤트 등 나머지 함수 순입니다.
profile
필요하다면 공부하는 개발자, 한승준

0개의 댓글