본문 바로가기

Back-end/CS 지식

CS 면접 예상 질문 및 답변

728x90
반응형

1. OSI 7 계층이란?

물리, 데이터 링크, 네트워크, 전송, 세션, 표현, 응용 계층으로 구성되어 있습니다.

 

 

2. 3계층과 4계층의 차이는?

네트워크 계층은 전송 데이터를 목적지까지 경로를 찾아 전송하는 계층이라면 전송 계층은 데이터를 전송하고 전송 속도를 조절하며, 오류가 발생된 부분은 다시 맞춰주는 계층이다. 종단과 종단 간의 통신 방식이라는 특성이 있다.

 

 

3. 서버 클라이언트 관계

 

 

4. APM 이란?

A(Apache): 웹 서버, P(PHP): 웹 프로그래밍 언어, M(MySQL): 데이터 베이스

-> 위의 세가지가 연동되어 운영되도록 만든 환경을 의미. 클라이언트가 웹 브라우저에서 URL을 입력하면 80포트를 통해 서버에 request하게 됨.

-> 서버는 클라이언트에게 HTML, CSS 등의 웹 사이트 정보를 담아 response 하게 됨.

 

 

5. 리눅스란?

컴퓨터 운영체제 중 하나로 다중 사용자, 다중 작업을 지원하는 네트워크 운영체제.

유닉스와 완벽하게 호환이 가능하며 강력한 네트워크를 구축할 수 있고 개발 환경이 풍부하다는 장점이 있다.

 

 

6. Web Server Web Application Server의 차이점은?

웹 서버는 클라이언트로부터 HTTP 요청을 받아들이고 HTML, CSS, javascript와 같은 정적인 데이터를 처리하는 서버라면, 웹 애플리케이션 서버는 JSP, PHP 등 사용자의 입력과 같은 동적인 데이터를 처리하고 그 결과를 보여주는 웹 서버이다. “미들웨어이기도 함.

 

 

7. 운영체제의 역할이 무엇인가요?

운영체제는 Operating System의 약자로 시스템 하드웨어를 관리하고, 응용 소프트웨어를 실행하기 위해 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다. , 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어를 의미함.

 

 

8. GUICLI의 차이점은?

Graphic User Interface의 약자로 그래픽을 이용해 사용자와 소통하는 방식이다. 우리가 흔히 접하는 화면이 GUI라고 볼 수 있다. Command-Line interface의 약자로 글자의 입출력을 통해 사용자와 컴퓨터 간 소통하는 방식이다. 리눅스와 윈도우의 cmd창이 그 예시라고 할 수 있다.

GUI에 비해 컴퓨터의 자원을 적게 사용하기 때문에 서버용 컴퓨터들은 지금도 여전히 CLI 환경을 사용하는 추세.

 

 

9. HTTP란 무엇인가? / FTP?

  • HyperText Transfer Protocol의 약자로 서로 다른 시스템들 사이에서 통신을 주고받게 해주는 가장 기초적인 프로토콜이다. 보안성 문제를 해결하기 위해 SSL(보안 소켓 계층)을 사용한 HTTPS가 나옴.
  • FTP는 TCP/IP 네트워크 상의 장치가 파일을 전송할 때 사용하는 프로토콜이다.

 

 

10. 리눅스의 패키지 매니저란?

패키지를 다루는 작업을 편리하고 안전하게 수행하기 위해 사용되는 툴이다. 라이브러리가 코드의 작성을 위해 사용되는 코드의 묶음이라면 패키지는 코드의 배포를 위해 사용되는 코드의 묶음이다.

우분투에서는 apt-get으로 프로그램 설치, 업뎃, 삭제가 가능.

 

 

11.  DB 관련 지식

  • RDBMS: 관계형 데이터베이스 시스템
  • DDL: 데이터 정의어 = CREATE, ALTER, DROP
  • DML: 데이터 조작어 = INSERT, UPDATE, DELETE, SELECT
  • DCL: 데이터 제어어 = BEGIN, COMMIT, ROLLBACK
  • 개념 스키마, 내부 스키마, 외부 스키마: 개념스키마는 전체적인 뷰를 관장하는 입장에서 DB를 정의한 것으로 한 개 밖에 존재할 수 없음/내부 스키마는 물리적인 저장장치 입장에서 DB가 저장되는 방법을 기술한 것/외부 스키마는 사용자나 응용 프로그래머가 개인의 입장에서 필요한 데이터베이스의 논리적 구조를 정의한 것, 실세계에 존재하는 데이터들을 어떻게 사용자에게 보여줄 것인가?
  • 유일성과 최소성: 하나의 키 값으로 하나의 튜플을 유일하게 식별/키를 구성하는 속성 하나를 제거하면 유일하게 식별할 수 없음.
  • 슈퍼키는 유일성은 만족하지만 최소성은 만족하지 못함.

 

 

12.  REST API?

Represential State Transfer Application Programming Interface의 약자로, 응용프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스이다.

고객이 음식을 주문했을 때 주방에서 조리가 되면 그것을 고객에게 다시 전달해주는 점원같은 역할. -> 개발 비용과 시간이 줄어들고 유지관리가 쉽기 때문에 많이 사용 – rest 아키텍쳐: 웹의 장점을 최대한 활용할 수 있는 아키텍처

REST를 기반으로 서비스 API를 구현한 것으로 CRUD 연산을 함.

 

 

13.  패킷이란?

통신망을 통해 전송하기 쉽도록 자른 데이터의 전송 단위

 

 

14.  GETPOST 방식의 차이는?

GETURL에 변수를 포함시켜 요청하고 POST는 데이터를 Body에 포함시켜서 요청함. GET은 캐싱이 가능하고 POST는 불가능함. REST API에 빗대어 생각해봤을 때 회원 정보를 등록하는 API를 만들 때는 POST 메소드를 사용하고 회원 정보를 조회하는 API를 만들 때는 GET 메소드를 주로 사용한다.

 

 

15.  트랜잭션의 네가지 특징(ACID)

-       원자성: 데이터베이스에 모두 반영되거나, 전혀 반영되지 않아야 함.

-       일관성: 작업 처리 결과가 항상 일관성이 있어야 함.

-       독립성: 둘 이상의 트랜잭션이 동시에 실행되고 있을 경우, 다른 트랜잭션의 연산에 끼어들 수 없음.

-       지속성: 트랜잭션이 성공적으로 완료됐을 경우, 결과는 영구적으로 반영되어야 함.

 

16.  쿠키와 세션의 차이는?

가장 큰 차이점은 사용자의 정보가 저장되는 위치이다. 쿠키는 텍스트로 클라이언트에 저장되지만 세션은 오브젝트 형식으로 웹 서버에 저장된다. 쿠키는 서버의 자원을 전혀 사용하지 않지만 세션은 서버의 자원을 사용한다. 쿠키가 세션보다 요청 속도가 더 빠르지만 보안 면에서는 세션이 더 우수하다.

 

 

17.  프로세스와 스레드의 차이

프로세스는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 의미하고, 스레드는 어떠한 프로그램(프로세스) 내에서 실행되는 흐름의 단위를 말한다.

 

 

18.  캡슐화란?

낮은 결합도를 유지할 수 있도록 설계, 외부에서 접근할 수 없도록 제한을 두는 것.

 

 

19.  객체지향 SOLID 원칙

단일 책임의 원칙, 개방 폐쇄의 원칙, 리스코프 교체의 원칙, 인터페이스 분리의 원칙, 의존 관계 역전의 원칙이 있습니다.

 

 

20.  오버로딩과 오버라이딩의 차이

오버로딩은 같은 이름의 메서드를 여러 개 가지면서 매개변수에 따라 함수를 접근 가능하게 하는 것, 오버라이딩은 상위 클래스의 메서드와 같은 이름을 하위 클래스가 재정의해서 사용하는 것.

 

 

 

 

 

 

 

728x90
반응형

'Back-end > CS 지식' 카테고리의 다른 글

[CS] OSI 7 계층의 모든 것!  (0) 2022.04.08
[CS] APM이란 무엇인가?  (0) 2022.04.06
카카오 로그인 (OAuth) 동작 방식  (0) 2022.03.16
서버 국룰  (0) 2022.03.13
[UMC] Server 워크북 모음  (0) 2021.10.13