예전에도 면접을 다녀오고 나서 한두문제씩 포스팅하긴 했지만 한번에 모아서 한 적은 없어서 정리하면서 공부할 겸 쓴다.
내가 받았던 질문 + 검색하면 자주 나오는 질문 등을 올려보기로...
여러 번 받은 질문은 형광펜칠을 했다.
답은 천천히 채우는걸루 ㅎㅎ
JAVA
JAVA의 특징
-객체지향 프로그래밍 언어이다.
-장점
JVM(자바가상머신) 위에서 동작하기 때문에 운영체제에 독립적이다.
GabageCollector를 통한 자동적인 메모리 관리가 가능하다.
-단점
JVM 위에서 동작하기 때문에 실행 속도가 상대적으로 느리다.
다중 상속이나 타입에 엄격하며, 제약이 많다.
OOP(객체 지향 프로그래밍)란?
-객체 지향 프로그래밍 (Object-Oriented Programming, OOP)은 프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.
OOP(객체 지향 프로그래밍)의 특징은?
-추상화 , 캡슐화 , 상속 , 다형성 의 네가지 특징을 가진다.
클래스란?
-클래스는 객체를 만들기 위한 확장 가능한 코드 템플릿이며, 상태(멤버 변수) 및 동작(멤버 함수 or 메서드) 구현에 대한 초기값을 제공한다.
객체란?
-변수, 데이터 구조, 함수, 메서드가 될 수 있으며 식별자가 참조하는 메모리의 값이다.
-객체에는 상태(데이터)와 동작(코드)가 있다.
JVM이란?
자바를 실행하기 위한 가상 기계(컴퓨터),
OS에 종속받지 않고 CPU 가 Java를 인식, 실행할 수 있게 하는 가상 컴퓨터이다.
자바 바이트코드(.class 파일)를 OS에 특화된 코드로 변환하여 실행한다.
상수란?
변수와 마찬가지로 값을 저장하는 공간이지만 변수와 달리 값을 저장하면 다른 값으로 변경이 불가능하다.
변수 타입 앞에 키워드 final을 붙인다.
ex)final int MAX_SPEED = 10;
리터럴이란?
12, 3.14, 'A'같은 상수. 프로그래밍에서는 '값을 한 번 저장하면 변경할 수 없는 저장공간'으로 정의했기 때문에 상수 대신 리터럴이라는 용어를 사용한다.
ex) final int MAX_VALUE = 100; 이라는 코드에서 MAX_VALUE는 상수이고 0100은 리터럴이다.
리터럴의 타입이 정수형이나 실수형이면 접미사를 붙인다. (정수형(long) : L ,l 실수형 : f(float), d(doable) )
문자의 경우 ' ' 로 감싸고, 문자열은 " "로 감싼다.
오버라이딩(Overriding)과 오버로딩(Overloading)의 차이
-오버라이딩: 상위 클래스가 가지고 있는 메서드를 하위 클래스에서 상속 및 재정의하는 것(부모클래스의 메서드는 무시하고 자식클래스의 기능을 사용하는 것)
-오버로딩: 같은 이름의 함수(메서드)를 여러개 정의하고, 매개변수의 유형과 개수를 다르게 하여 다양한 호출에 응답할 수 있게 하는 것
MVC란?
Model, View, Controller의 약자.
하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴이다.
Model: 데이터와 연관된 비즈니스 로직을 처리한다.
View: 모델로부터 정보를 받아와 사용자가 볼 결과물을 생성한다.
Controller: Model과 View 사이를 이어주는 인터페이스 역할을 한다. 사용자로부터 View에 요청이 있으면 Controller는 해당 업무를 수행하는 Model을 호출하고 Model이 업무를 모두 수행하면 다시 결과를 View에 전달한다.
Google의 Angular JS, PHP의 CODEIGNITER, Python의 django, Facebook의 React 등이 MVC패턴을 사용한다.
Servlet이란?
동적 웹 페이지를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술이다.
MVC패턴에서 컨트롤러로 이용된다.
https://dsdsds.tistory.com/57?category=1036441
인터페이스란?
다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스이다.
추상 클래스와 인터페이스의 차이는?
추상 클래스는 다중 상속이 불가능하지만, 인터페이스는 가능하다.
추상 클래스는 추상 메소드뿐만 아니라 생성자, 필드, 일반 메소드도 포함할 수 있지만, 인터페이스는 추상 메소드와 상수만 포함할 수 있다.
동기와 비동기의 차이는?
동기는 데이터의 요청과 결과가 한 자리에서 동시에 일어나는 것이다.
동기는 요청에 대한 응답이 돌아오기 전까지는 사용자가 다른 활동을 할 수 없고 기다리기만 해야 하지만 설계가 간단하다.
비동기는 요청한 결과가 동시에 일어나지 않는 것이다.
비동기는 결과가 반환되는 동안 다른 일을 해도 되지만 설계가 복잡하다.
Java의 Collection (List, Map, Set, Stack, Queue)
GC란?
스레드와 프로세스의 차이는?
프로세스: 메모리에 올라와 실행되고 있는 프로그램의 인스턴스
Spring
Spring을 사용하는 이유?
AOP란?
DI 이란?
Bean이란?
DAO, VO가 하는 일은?
AJAX란?
Container란?
네트워크
TCP/UDP
OSI 7 계층
https://dsdsds.tistory.com/52?category=1036441
DNS란?
RESTful API란?
REST는 자원을 url로 표기하고 자원 상태를 주고받는 아키텍쳐이며, HTTP Method 를 통해 자원을 처리하도록 설계하는 것이다.
RESTful API는 REST원칙을 충실히 지킨 서비스 디자인을 말한다.
데이터베이스
JOIN의 종류와 차이
정규화란?
인덱싱의 필요성
트랜잭션이란?
참고출처:
'자료모음' 카테고리의 다른 글
윈도우10에 Docker 설치하기 (0) | 2022.08.15 |
---|---|
SQL Join (0) | 2022.08.01 |
내가 보려고 모은 개발 관련 유튜브 강의 모음 (0) | 2022.05.15 |