티스토리 뷰

Study

기술면접-컴퓨터공학(웹)-1

멋쟁이 그루트 2024. 3. 12. 10:05

1. Javascript에서 Gargabe Collection이 필요한 이유를 설명해주세요.

JavaScript는 동적으로 메모리를 할당하여 객체를 생성하고 사용합니다. 사용자가 직접 메모리를 할당하고 해제하는 작업을 수행할 수 없습니다. 가비지 컬렉션은 더 이상 필요하지 않은 객체를 감지하고 자동으로 메모리를 해제하여 메모리 누수를 방지합니다.

 

2. Javascript에서 Gargabe Collection이 동작하는 과정에 대해 설명해주세요.

가비지 콜렉터는 roots로부터 roots가 참조하고 있는 오브젝트들, 그리고 해당 오브젝트들이 하위로 참조하고 있는 오브젝트들을 계속해서 돌면서 접근이 가능한 오브젝트들인지를 확인합니다. 이러한 Mark-and-sweep 알고리즘을 통해 가비지 콜렉터는  더 이상 접근이 불가능한 오브젝트를 필요하지 않은 메모리로 판단하고 해제 합니다.

 

3. HTML 과 HTML5 차이?

HTML은 웹 개발자들에게 새로운 요소와 기능을 제공했지만, 반면에 다양한 브라우저에서의 호환성 문제와 새로운 웹 표준의 요구에 대응하기 어려웠습니다. HTML5는 최신 웹 표준의 최신 버전이며, 멀티미디어 요소, 그래픽 요소, 시맨틱 요소, 그리고 오프라인 애플리케이션을 지원합니다. 이처럼 HTML5는 이전 버전들보다 더 많은 기능과 향상된 성능을 제공하며, 현재 대부분의 웹 개발에서 사용되고 있습니다.

 

4. RESTful API란?

웹 서비스를 설계하고 구현하기 위한 아키텍처적 스타일입니다. RESTful API는 웹에서의 리소스를 정의하고, 해당 리소스에 대한 표준 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 상호작용합니다.

 

다음과 같은 구성요소를 지닙니다.

  1. 자원(Resource) : HTTP URL
  2. 자원에 대한 행위 : HTTP Method
  3. 자원에 대한 표현 : Representation

다음과 같은 규칙이 포함됩니다.

  1. 의미를 바로 알아볼 수 있도록 작성하고, 소문자를 사용한다.
  2. 리소스에 대한 행위를 HTTP Method로 표현한다.
  3. resource는 명사를 사용한다.
  4. 영어를 복수형으로 작성한다.
  5. 가독성을 위해 언더바 대신 하이픈을 사용한다.
  6. 파일 확장자는 URI에 포함시키지 않는다.

5. 동기와 비동기 처리 방식의 차이점?

동기 처리는

  • 동기 처리는 순차적으로 작업을 수행합니다.
  • 한 작업이 완료될 때까지 다음 작업을 수행하지 않습니다.
  • 작업이 완료되기를 기다린 후 결과를 반환하거나 다음 작업을 수행합니다.

비동기 처리는

  • 비동기 처리는 작업을 순차적으로 기다리지 않고, 동시에 여러 작업을 수행합니다.
  • 작업이 완료되지 않았더라도 다음 작업을 수행할 수 있습니다.
  • 결과를 기다리는 동안 다른 작업을 수행하고, 작업이 완료되면 결과를 처리합니다.

6. 프록시 서버란?

프록시 서버는 클라이언트와 서버 간에 중개 역할을 하는 서버입니다.

  • 클라이언트의 IP 주소를 숨길 수 있어 개인 정보 보호를 강화하거나, 보안 문제를 해결할 수 있습니다.
  • 이전에 요청한 데이터를 캐싱하여, 같은 요청이 반복될 때 해당 데이터를 제공함으로써 네트워크 부하를 줄일 수 있습니다.
  • 특정 웹 사이트나 서비스에 대한 접근을 제어할 수 있습니다.
  • 록시 서버를 통해 요청을 다수의 백엔드 서버로 분산하여 로드 밸런싱을 수행할 수 있습니다.

7. DNS란? 

인터넷에서 사용되는 네트워크 이름을 IP 주소로 변환하는 시스템입니다.

동작은 다음과 같이 진행됩니다.

  1. 사용자가 웹 브라우저나 다른 네트워크 애플리케이션에서 도메인 이름을 입력하면, 해당 애플리케이션은 DNS에게 해당 도메인 이름의 IP 주소를 요청합니다.
  2. 요청이 DNS 서버에 도착하면, 해당 서버는 먼저 자신의 캐시에서 요청된 도메인 이름에 대한 IP 주소를 확인합니다. 캐시에 해당 정보가 없거나 만료된 경우, 다른 DNS 서버에 질의를 보냅니다.
  3. 도메인 이름에 대한 IP 주소를 찾으면, 해당 IP 주소를 요청한 클라이언트에게 반환합니다.
  4. IP 주소를 캐시에 저장합니다. 이를 통해 동일한 도메인에 대한 다음 요청이 더 빠르게 처리됩니다.

8. 패킷이란?

컴퓨터 네트워크에서 데이터를 전송하는 데 사용되는 기본적인 단위입니다. 데이터는 작은 크기의 패킷으로 나누어져 전송됩니다. 각각의 패킷은 목적지로 전송되어 다시 조합되어 원래의 데이터로 복구됩니다.

패킷의 구성 요소는 다음과 같습니다:

  1. 헤더: 패킷의 제어 정보를 포함하고 있습니다. 이 정보에는 목적지 주소, 출발지 주소, 패킷 순서, 오류 검사 등의 정보가 포함됩니다.
  2. 데이터: 실제 전송되는 데이터를 포함하고 있습니다. 이는 메시지, 파일, 웹 페이지의 일부 등 어떠한 종류의 정보도 될 수 있습니다.
  3. 풋터: 패킷의 끝을 나타내는 마지막 부분입니다. 이 부분에는 패킷의 끝을 나타내는 제어 정보가 들어갈 수 있습니다.

9. 콜백지옥이란? 또 해결 방법은?

비동기 로직 처리 중에 콜백 함수를 연속해서 사용함으로 인해 복잡하고 가독성이 떨어지는 상황을 말합니다. promise 또는 async/await을 활용해 해결이 가능합니다.

 

10. Promise 와 async/await의 차이?

Promise는 ES6에서 추가되었고, async/await은 ES8에서 추가되었습니다. Promise는 pending, fulfilled, rejected 의 상태를 가지고, resolve와 reject를 통해 결과값을 반환 합니다. 또한 then과 catch 를 통해 작업의 완료나 오류를 처리할 수 있습니다. asnyc/await 은 await을 통해 반환값을 받습니다. 또한 try catch를 통해 오류를 처리할 수 있습니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함