본문 바로가기
Interview preparation

면접 질문 대비 리스트(CS)

by Johnny_gon 2023. 6. 13.
728x90
반응형

- CS -

DNS란?

-DNS(도메인 네임 시스템)이 사람이 읽을 수 있는 도메인 이름(qzom1425.tistory.com)을

IP 주소로 변환하는 시스템.

 

-DNS 서버를 사용하면 영문과 숫자로 된 복잡한 IP 주소를 기억할 필요가 없습니다.

 

-DNS는 분산 데이터베이스 구조를 가진다.

 

브라우저 렌더링(과정)

 

1. html 파싱으로 DOM을 만들고

2. CSS를 파싱해서 CSSOM을 만든다음

3. 위 DOM과 CSSOM으로 Render Tree를 만들고

4. Layout 과 Paint과정을 거처서 화면에 웹사이트가 렌더링(사용자에게 보여지게) 됩니다.

 

GET과 POST의 차이?

 

GET

1. GET 방식은 HTTP Method 중 하나로 주로 서버에 데이터(리소스)를 조회할 때 사용.

2. URL을 통해 모든 파라미터를 전달하기 때문에 주소창에 전달 값이 노출(보안위험).

3. URL 길이가 제한이 있기 때문에 전송 데이터 양이 한정되어 있음.

4. 형식에 맞지 않으면 인코딩해서 전달.

5. HTTP Header에서 캐시 옵션을 지정할 수 있습니다.

6. 브라우저 히스토리에 남습니다.

7. GET은 CRUD 기능 중에 R-Read(조회)의 역할

 

GET을 통해 서버에 리소스(데이터)를 요청할 때 웹 캐시가 요청을 가로채 서버로부터 리소스를 다시 다운로드하는 대신 리소스 복사본을 반환합니다.

 

POST

1. POST 방식은 HTTP Method 중 하나로 주로 서버에 데이터(리소스)를 생성할 때 사용.

2. HTTP Body에 데이터(리소스)를 포함해서 전달.

3. 브라우저에는 직접적으로 파라미터가 노출되지 않고 길이 제한도 없음.

4. POST 방식의 요청은 캐시 되지 않습니다.

5. 브라우저 히스토리에 남지 않습니다.

6. POST 방식은 서버의 값이나 상태를 바꾸기 위해 활용.

7. CRUD 기능 중에 C-Create(생성)의 역할

 

 

객체 지향 프로그래밍이란?

객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임 중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.

 

-장점

 코드 재사용이 용이

 

   남이 만든 클래스를 가져와서 이용할 수 있고 상속을 통해 확장해서 사용할 수 있다.

 

 유지보수가 쉬움

 

    절차 지향 프로그래밍에서는 코드를 수정해야할 때 일일이 찾아 수정해야하는 반면 객체 지향 프로그래밍에서는 수정        해  야 할 부분이 클래스 내부에 멤버 변수혹은 메서드로 존재하기 때문에 해당 부분만 수정하면 된다.

 

 대형 프로젝트에 적합

 

    클래스 단위로 모듈화시켜서 개발할 수 있으므로 대형 프로젝트처럼 여러 명, 여러 회사에서 프로젝트를 개발할 때 업        무  분담하기 쉽다.

 

- 단점

  처리 속도가 상대적으로 느림

  객체가 많으면 용량이 커질 수 있음

  설계시 많은 시간과 노력이 필요

 

 

API란?

“API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻합니다.

 

REST API란?

HTTP URI를 통해 자원을 표시하고 HTTP Method를 통해 자원에 대한 처리를 표현합니다. 사람이 읽을 수 있는 API라는 것이 특징입니다. HTTP를 사용하기 때문에 HTTP의 특성을 그대로 반영합니다. 또한 별도의 인프라 구축이 필요없습니다.

 

단점으로는 RESTful 한 것에 대한 명확한 표준이 존재하지 않는다는 점과 RESTful을 완전히 만족하는 API를 만들기는 매우 까다롭다는 점, 그리고 REST API가 분산환경에 적합하지 않다는 점이 있습니다.

 

모든 관련된 동작을 URI를 통해 알려주는 HAPEOAS로 동적인 API제공도 가능하다. 이를 클라이언트가 API의 변화에 일일이 대응하지 않아도 되는 장점을 갖는 방법도 있다.

 

 

프로세스와 스레드?

프로세스는 메모리 상에서 실행중인 프로그램을 말하며, 스레드는 이 프로세스 안에서 실행되는 흐름 단위를 말한다.

프로세스는 최소 하나의 스레드를 보유하고 있으며, 각각 별도의 주소공간을 독립적으로 할당 받는다.(code, heap, stack) 스레드는 이중에 stack만 따로 할당받고 나머지 영역은 스레드끼리 서로 공유한다.

# 요약

프로세스 : 자신만의 고유 공간과 자원을 할당받아 사용 스레드 : 다른 스레드와 공간과 자원을 공유하면서 사용

 

 

 

728x90
반응형