7. 가장 단단한 노드.js 면접 문답


노드js는 크로스플랫폼 자바스크립트가 실행될 때 서버에서 자바스크립트 코드를 실행하는 소스입니다.노드js는 개발자가 자바스크립트를 사용하여 서버측 스크립트를 작성할 수 있도록 합니다. 페이지가 사용자의 웹 브라우저로 전송되기 전에 서버에서 스크립트를 실행하여 동적 웹 페이지 내용을 생성할 수 있습니다.

🔴 Originally published on FullStack.Cafe - Kill Your Tech & Coding Interview



질문 1: 개발 및 제품 환경에 사용할 프로필 분리 예제 제공

Topic: Node.js
Difficulty: ⭐⭐⭐⭐


완벽한 구성 설정은 다음을 보장해야 합니다.
  • 파일 및 환경 변수
  • 에서 키 읽기 가능
  • 기밀은 약속 코드
  • 범위에 있지 않음
  • 구성이 계층화되어 있어 검색이 용이합니다
  • .
    다음 구성 파일을 고려하십시오.
    var config = {
      production: {
        mongo : {
          billing: '****'
        }
      },
      default: {
        mongo : {
          billing: '****'
        }
      }
    }
    
    exports.get = function get(env) {
      return config[env] || config.default;
    }
    
    용도는 다음과 같습니다.
    const config = require('./config/config.js').get(process.env.NODE_ENV);
    const dbconn = mongoose.createConnection(config.mongo.billing);
    
    🔗자료 출처: github.com/i0natan/nodebestpractices

    문제2: 노드의 시간 계산 기능은 무엇입니까?js?

    Topic: Node.js
    Difficulty: ⭐⭐⭐⭐


    노드의 타이머 모듈입니다.js는 시간대를 설정한 후에 코드를 실행하는 함수를 포함합니다.

  • setTimeout/clearTimeout - 지정된 밀리초
  • 후에 코드 실행을 스케줄링하는 데 사용

  • setInterval/clearInterval-는 코드 블록을 여러 번 실행하는 데 사용될 수 있음

  • setImmediate/clearImmediate - 현재 이벤트 주기
  • 종료 시 코드 실행

  • 과정 1nextTick - 이벤트 순환의 다음 번갈아 호출을 계획하는 데 사용되는 리셋 함수
  • function cb(){
      console.log('Processed in next iteration');
    }
    process.nextTick(cb);
    console.log('Processed in the first iteration');
    
    출력:
    Processed in the first iteration
    Processed in next iteration
    
    🔗자료 출처: github.com/jimuyouyou

    문제3: 노드의 반응기 모드를 설명한다.js?

    Topic: Node.js
    Difficulty: ⭐⭐⭐⭐⭐


    Reactor 모드는 노드에서 I/O 작업을 방해하지 않는다는 생각입니다.js.이 모드에서는 각 입출력 작업과 연관된 프로세서를 제공합니다(Node.js에서는 콜백 함수).입출력 요청이 생성되면 재사용기로 전송됩니다.
    이 재사용자는 비차단 입출력 모드에서 각 요청을 수집하고 각 이벤트를 대기열에 배치하는 동시 처리를 위한 공지 인터페이스입니다.따라서, 해독기는 이벤트 대기열을 제공합니다.
    이벤트 대기열의 항목을 교체하는 이벤트가 하나 더 있습니다.모든 이벤트는 이와 관련된 리셋 함수를 가지고 있으며, 이벤트가 순환할 때 이 리셋 함수를 호출합니다.
    🔗자료 출처: hackernoon.com

    질문 4: 노드의 LTS 버전은 무엇입니까?너는 왜 신경을 쓰느냐?

    Topic: Node.js
    Difficulty: ⭐⭐⭐⭐⭐


    노드의 LTS(장기 지원) 버전입니다.js는 모든 관건적인 오류 복구, 보안 업데이트, 성능 개선을 수신합니다.
    노드의 LTS 버전입니다.js는 최소 18개월을 지원하며 짝수 버전 번호 (예: 4, 6, 8) 로 표시됩니다.LTS 발표 시리즈는 안정성과 안전성에 전념하고 현재 발표 시리즈는 수명이 짧고 코드 업데이트가 빈번하기 때문에 생산에 가장 적합하다.LTS 버전에 대한 변경은 안정성, 안전성 업데이트, 가능한 npm 업데이트, 문서 업데이트, 일부 성능 개선에 대한 오류 복구에만 한정됩니다. 이러한 개선은 기존 응용 프로그램을 파괴하지 않는다는 것을 증명할 수 있습니다.
    🔗자료 출처: github.com/i0natan/nodebestpractices

    질문 5: Express "애플리케이션"과 "서버"를 분리해야 하는 이유

    Topic: Node.js
    Difficulty: ⭐⭐⭐⭐⭐


    API 선언이 네트워크 관련 구성(포트, 프로토콜 등)과 분리된 상태로 유지되므로 네트워크 호출을 수행하지 않고 프로세스에서 API를 테스트할 수 있으며 모든 이점을 얻을 수 있습니다. 즉, 빠른 테스트 실행과 코드의 덮어쓰기 지표 획득입니다.또한 유연하고 서로 다른 네트워크 조건에서 동일한 API를 배포할 수 있습니다.장점: 관심사와 깨끗한 코드를 더욱 잘 분리할 수 있다.
    API 선언은 응용 프로그램에 있어야 합니다.js:
    var app = express();
    app.use(bodyParser.json());
    app.use("/api/events", events.API);
    app.use("/api/forms", forms);
    
    서버 네트워크 선언은/bin/www에 있어야 합니다.
    var app = require('../app');
    var http = require('http');
    
    /**
     * Get port from environment and store in Express.
     */
    
    var port = normalizePort(process.env.PORT || '3000');
    app.set('port', port);
    
    /**
     * Create HTTP server.
     */
    
    var server = http.createServer(app);
    
    🔗자료 출처: github.com/i0natan/nodebestpractices

    문제6: 이 두 가지 방법의 차이는 무엇입니까?nextTick() 및 setImmediate()?

    Topic: Node.js
    Difficulty: ⭐⭐⭐⭐⭐

    process.nextTick()setImmediate() 사이의 차이점은 process.nextTick() 작업의 실행을 이벤트 순환의 다음 순환으로 미루거나 이벤트 순환의 지속적인 실행이 끝난 후에 리셋 함수만 호출하고 setImmediate() 이벤트 순환의 다음 순환에서 리셋을 실행하며 이벤트 순환을 되돌려 입출력 작업을 수행한다.
    🔗자료 출처: codingdefined.com

    질문 7:try/catch 블록이 없는 코드 예시 다시 쓰기

    Topic: Node.js
    Difficulty: ⭐⭐⭐⭐⭐


    코드의 예:
    async function check(req, res) {
      try {
        const a = await someOtherFunction();
        const b = await somethingElseFunction();
        res.send("result")
      } catch (error) {
        res.send(error.stack);
      }
    }
    
    try/catch 블록을 사용하지 않은 상태에서 코드 예시를 다시 씁니다.
    답변:
    async function getData(){
      const a = await someFunction().catch((error)=>console.log(error));
      const b = await someOtherFunction().catch((error)=>console.log(error));
      if (a && b) console.log("some result")
    }
    
    또는 어떤 특정 함수가 오류를 일으켰는지 알고 싶으면 다음과 같이 하십시오.
    async function loginController() {
      try {
        const a = await loginService().
        catch((error) => {
          throw new CustomErrorHandler({
            code: 101,
            message: "a failed",
            error: error
          })
        });
        const b = await someUtil().
        catch((error) => {
          throw new CustomErrorHandler({
            code: 102,
            message: "b failed",
            error: error
          })
        });
        //someoeeoe
        if (a && b) console.log("no one failed")
      } catch (error) {
        if (!(error instanceof CustomErrorHandler)) {
          console.log("gen error", error)
        }
      }
    }
    
    🔗자료 출처: medium.com

    Thanks 🙌 for reading and good luck on your interview!
    Check more FullStack Interview Questions & Answers on 👉 www.fullstack.cafe

    좋은 웹페이지 즐겨찾기