스크립트 언어와 컴파일 언어를 나열하고 차이점을 설명하세요.
- 스크립트 언어로는 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의 차이점은?
'정보처리기사, 기술면접' 카테고리의 다른 글
[기술면접] 백엔드 관련 (Java, Spring, JPA 등) (0) | 2021.04.08 |
---|---|
[기술면접] CS(Computer Science) 관련 (0) | 2021.04.08 |
2020 정보처리기사 필기 내용 정리 (0) | 2021.03.23 |