관리 메뉴

나의 개발일지(김지헌)

항해 99 93일차 12/20일 본문

항해 99

항해 99 93일차 12/20일

코딩이좋아요 2022. 12. 21. 00:59

오늘도 기술면접 준비를 했다 생각 보다 오래 걸리고 이론을 알기가 쉽지않은거 같다

더보기

Promise란 무엇인지 설명해주실 수 있을까요?

  • 프로미스란? 객체는 비동기 작업이 맞이할 미래의 완료 또는 실패와 그 결과 값을 나타냅니다.이행 fulfilled : 연산이 성공적으로 완료됨.
  • 거부 rejected : 연산이 실패함.
  • 대기 pending : 이행하지도, 거부하지도 않은 초기 상태.

9. Hoisting이란 무엇인지 설명해주실 수 있을까요?

자바스크립트 런타임시 선언해둔 변수와 함수를 가져가서 메모리에 기억을 해두고 호출시 실행해주는것 즉 함수가 실행되기 전에 안에 있는 변수들을 범위의 최 상단으로 끌어올리는 개념

10. 개발자로서 본인의 장단점과 근거가 되는 경험을 말씀해주실 수 있을까요?(협업 능력 제외)

나중

11. async/await 이란 무엇인지 설명해주실 수 있을까요?

  • async : function 앞에 사용되고 항상 프로미스를 반환한다.(프로미스가 아닌것도 감싸서 반환)
  • await : async 안에서만 동작하고 프로미스가 처리될 때까지 함수 실행을 기다리게 만들며 처리가 완료되면 결과와 함께 실행이 재개된다. 장점:프로미스가 처리되는 동안에 엔진이 다른일을 할 수 있다.(cpu 리소스가 낭비 되지 않음)

12. Arrow Function 이란 무엇인지 설명해주실 수 있을까요?

  • 일반적으로 사용된 function 키워드 대신 화살표 (⇒) 를 사용하여 보다 간략한 방법으로 함수를 선언 할 수 있는 방법 (= 익명함수)자신의 thisargumentssuper 또는 new.target을 바인딩하지 않고,
    • this를 가지지 않는다.
    • arguments를 지원하지 않음
    • new와 함께 호출할 수 없다
    • super가 없다.
  • 객체 안에 메소드로 호출할 경우 this는 메소드를 포함하는 객체에 바인딩 되는데 화살표 함수의 this는 바인딩을 하지 않기 때문에 스코프안에서 this의 값을 찾을 수 없음.
  • 외부에 있던 this를 그대로 내부로 가져와서 사용하는 함수기 때문입니다.

13. ‘==’와 ‘===’ 연산자의 차이는 무엇인지 설명해주실 수 있을까요?

  • ==(동등 연산자) : 두개의 값 숫자형 1과 문자열 1을 비교할 때 타입은 비교하지않고 오직 값만을 비교해서 true false로 나타낸다 ex) 1 == “1” true , null == undefined true
  • ===(일치 연산자) : 두 개의 값과 타입이 일치하여야지 true를 나타내고 값만 일치하고 타입은 일치하지 않을시 false를 나타냄.

14. 즐겨 보는 테크 유튜버나 뉴스레터가 있다면 알려주실 수 있을까요?

코딩알려주는누나

15. Express란 무엇이고 왜 필요하며 대안은 무엇이 있는지 설명해주실 수 있을까요?

  • Express가볍고 유연하게 웹 서버를 구성 할 수 있고, 라우팅시 REST API의 메서드를 이용하여 CRUD를 구현하는 것이 직관적이다.HAPI: Hapi는 크고 복잡한 어플리케이션에 특성화 되어 있다. 보일러플레이트로 작성해야 할 코드가 많아서 작은 웹앱에서는 쓰기 불편하고, 예제 및 hapi로 작성된 오픈소스 앱도 적다.
  • KOA :메모리를 덜먹고 표현력이 좋다,필요한 미들웨어만 작성 가능
  • 미들웨어 기반의 웹 프레임 워크로

16. npm 이란 무엇인지 설명해주실 수 있을까요?

  • Node.js의 패키지를 관리할 수 있는 도구이다.단점: 모듈을 개발한 개발자에게 의존적이기 때문에 에러가 있는 경우 수정하는게 힘들다
  • 자신에게 필요한 모듈을 다운 받을 수 있음

17. 사용자 패스워드를 전송하고 보관하는 방법을 설명해주실 수 있을까요?

  • 암호화와 해싱 두가지 밤법이 있으며 둘의 차이는 방향성이다.단방향 해시 함수는 어떤 수학적 연산(또는 알고리즘)에 의해 원본 데이터를 매핑시켜 완전히 다른 암호화된 데이터로 변환시키는 것을 의미한다. 이 변환을 해시라고 하고, 해시에 의해 암호화된 데이터를 **다이제스트(digest)**라고 한다.salt라고 하며 이 방법으로 데이터베이스에 비밀번호를 저장한다.
  • 프론트에서 받은 비밀번호를 해싱으로 암호화해서 저장할 시 무차별 대입 공격(브루트 포스)에 취약하기 때문에 해시 함수를 돌리기 전에 임의의 문자열을 덧붙혀서 암호화 하는 방법을
  • 해싱은 단방향이기 때문에 복호화가 불가능 하고 암호화는 양방향이기 때문에 복호화가 가능하다.

'항해 99' 카테고리의 다른 글

항해 99 95일차 12/22일  (0) 2022.12.23
항해 99 94일차 12/21일  (0) 2022.12.22
항해 99 92일차 12/19일  (2) 2022.12.20
항해 99 91일차 12/18일  (0) 2022.12.19
항해 99 90일차 12/17일  (0) 2022.12.18