정보처리기사, 기술면접

[기술면접] 웹개발자 기초 지식

codewalker 2021. 4. 8. 01:06

스크립트 언어와 컴파일 언어를 나열하고 차이점을 설명하세요.

  • 스크립트 언어로는 python, javascript 등이 있으며, 컴파일 언어로는 C/C++, JAVA 등이 있음
  • 컴파일 언어는 컴파일러를 통해 사전에 컴파일되어 기계어 상태로 실행되므로 실행이 빠르고, 또한 컴파일 단계에서 전체 코드를 기계어로 변환할 때 최적화 작업을 진행하여 실행 시간을 보다 빠르게 할 수 있음
  • 이에 반해 스크립트 언어는 컴파일 단계없이, 실행 단계에서 한 줄씩 기계어로 번역 후 실행되므로 통상 컴파일 언어보다 실행이 느리고, 또한 전체 코드에 대한 실행 코드 최적화가 어려움

 

 

객체지향 프로그래밍(OOP)이란 무엇인가?

  • 현실 세계의 사물을 객체라고 보고 그 객체로부터 개발하고자 하는 애플리케이션의 특징을 뽑아와 프로그래밍하는 것이다. (추상화)
  • 자주 사용되는 로직을 라이브러리로 만들어두면 계속해서 사용할 수 있으며 그 신뢰성을 확보할 수 있다.
  • 라이브러리를 각종 예외상황에 맞게 잘 만들어두면, 개발자의 실수를 컴파일 단계에서 잡아낼 수 있다.
  • 개발자가 라이브러리의 내부를 잘 몰라도 라이브러리가 제공하는 기능들을 사용할 수 있어 생산성이 높다.
  • 객체 단위로 코드를 작성하기 때문에 디버깅이 쉽고 유지보수에 용이하다.
  • 데이터 모델링을 할 때 객체와 매핑하는 것이 수월하기 때문에 요구사항을 보다 명확하게 파악하여 프로그래밍할 수 있다.
  • OOP의 4대 원칙
    • 캡슐화(Encapsulation): 데이터와 함수를 하나로 묶고 그 정보를 은닉(Information Hiding)하여 접근을 제한한다. 따라서 잘못된 변경으로 인한 오류를 줄일 수 있다.
    • 추상화(Abstraction): 객체의 속성 중 불필요한 부분을 생략하고 공통부분을 추출하여 개략화하는 것이다.
    • 상속성(Inheritance): 이미 정의된 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것이다.
    • 다형성(Polymorphism): 하나의 메세지에 대해 각 객체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력을 말한다.

 

 

절차지향은 무엇이며, 절차지향 언어로 객체지향처럼 프로그래밍을 할 수 있는가?

  •  

 

 

MVC 패턴이란 무엇인가?

  •  

 

 

RESTful의 개념에 대해 설명해주세요.

  • HTTP URI를 통해 리소스를 명시하고 HTTP 메서드를 통해 해당 자원에 대한 CRUD를 수행하는 것
    • 일관된 인터페이스(Uniform Interface)
    • 무상태성(Stateless)
    • 캐시 가능(Cacheable)
    • 클라이언트-서버 구조(Client-Server Architecture)
    • 자체 표현(Self-Descriptiveness)
    • 계층 구조(Layered System)

 

 

함수형 프로그래밍이란 무엇인가?

  •  

 

 

TDD는 무엇인가?

  •  

 

 

hello world를 출력하는 코드를 작성했을 때, 해당 코드가 수행되는 전체 과정을 설명하세요. (원하는 언어에 대해서)

  •  

 

 

Web Server와 WAS의 차이점은?

  •