S E P H ' S
[Web] IT 기술 면접 질문 정리 (1) 본문
1. JAVA
Java : 네트워크 상에서 쓸 수 있도록 미국의 선 마이크로 시스템즈가 개발한 객체 지향 프로그래밍 언어
Java의 특징
1. 자바가상머신(JVM)만 설치하면 컴퓨터의 운영체제에 상관없이 작동한다. 운영체제에 독립적
2. 기본 자료형을 제외한 모든 요소들이 객체로 표현
3. 객체 지향 개념의 특징인 캡슐화, 다형성, 상속이 잘 적용된 언어
4. Garbage Collectoor를 통한 자동적 메모리 관리
5. 멀티쓰레드(Multi-thread)를 지원
2. OOP(객체지향 프로그래밍)
OOP : Object-Oriented Programming의 약어로써 객체 지향 프로그래밍을 의미
데이터를 객체로 취급하여 프로그램에 반영한 것이며, 순차적으로 프로그램이 동작하는 기존의 것들과는 다르게
객체의 상호작용을 통해 프로그램이 동작하는 것을 말함.
OOP의 특징
1. 객체지향 프로그래밍은 코드의 재사용성이 높다.
2. 코드의 변경이 용이
3. 직관적인 코드분석
4. 개발속도 향상
5. 상속을 통한 장점 극대화
3. Object
Object(객체)는 OOP에서 데이터(변수)와 그 데이터에 관련되는 동작(함수). 즉 절차, 방법, 기능을 모두 포함한 개념
ex) 기차역에서 승차권을 발매하는 경우, 실체인 '손님'과 동작인 '승차권 구매'는 하나의 객체이며, 실체인 '역무원'과 동작인
'승차권 발매'도 하나의 객체이다.
같은 성질, 같은 구조와 형태를 가지는 객체는 등급으로 정의하고 등급에 속하는 객체는 그 등급의 인스턴스라고 한다.
4. Overloading vs Overriding
Overloading(오버로딩)
- 같은 이름의 메소드를 여러개 정의하는 것
- 매개변수의 타입이 다르거나 개수가 달라야 함
* return type과 접근 제한자는 영향을 주지 않는다.
Overriding(오버라이딩)
- 상속에서 나온 개념
- 상위 클래스 (부모 클래스)의 메소드를 하위 클래스(자식 클래스)에서 재정의
5. Servlet, JSP
Servlet : Container가 이해할 수 있게 구성된 순수 자바 코드로만 이루어진 것(HTML in Java)
JSP(Java Server Page) : HTML 기반에 Java코드를 블록화 하여 삽입한 것(Java in HTMl)
6. JDBC
Java Data Base Connection 의 약자로 Java 언어를 통해 데이터 베이스에 접근할 수 있는 프로그래밍을 의미
7. Get, Post
Get 방식
- 클라이언트에서 서버로 데이터를 전달할 때, 주소 뒤에 "이름"과 "값"이 결합된 스트링 형태로 전달
- 주소창에 쿼리 스트링이 그대로 보여지기 때문에 보안성이 떨어진다.
- 길이에 제한이 있다. ( == 전송 데이터의 한계가 있다.)
- Post방식에 비해서 상대적으로 전송 속도가 빠르다.
Post 방식
- 일정 크기 이상의 데이터를 보내야 할 때 사용한다.
- 서버로 보내기 전에 인코딩하고, 전송 후 서버에서는 다시 디코딩 작업을 한다.
- 주소창에 전송하는 데이터의 정보가 노출되지 않아 Get 방식에 비해 보안성이 높다.
- 속도가 Get방식 보다 느리다.
- 쿼리스트링(문자열) 데이터 뿐만 아니라, 라디오 버튼, 텍스트 바스 같은 객체들의 값도 전송가능.
Get과 Post 차이점
Get | Post |
주로 웹 브라우저가 웹 서버에 데이터를 요청할 때 사용 | 웹 브라우저가 웹 서버에 데이터를 전달하기 위해 사용 |
웹 브라우저에서 웹 서버로 전달 되는 데이터가 인코딩 되어 URL에 붙는다. | 전달되는 데이터가 보이지 않음 |
데이터가 255개의 문자를 초과하면 문제가 발생할 수 있음 | 웹 서버에 많은 데이터를 전달하기 위해서는 Post 방식을 사용하는 것이 바람직하다. |
8. Session & Cookie
Session & Cookie 사용 이유
- 우리가 인터넷에서 사용하고 있는 HTTP 프로토콜은 연결 지향적인 성격을 버렸기 때문에 새로운 페이지를 요청할 때마다
새로운 접속이 이뤄지며 이전 페이지와 현재 페이지 간의 관계가 지속되지 않는다. 이에 따라 HTTP프로토콜을 이용하게 되는 웹사이트
에서는 웹 페이지에 특정 방문자가 머무르고 있는 동안에 그 방문자의 상태를 지속시키기 위해 쿠키와 세션을 이용한다.
Session
- 특정 웹 사이트에서 사용자가 머무르는 기간 또는 한 명의 사용자의 한번의 방문을 의미한다.
- Session에 관련된 데이터는 Server에 저장된다.
- 웹 브라우저의 캐시에 저장되어 브라우저가 닫히거나 서버에서 삭제 시 사라진다.
- Cookie에 비해 보안성이 좋다.
Cookie
- 사용자 정보를 유지할 수 없다는 HTTP의 한계를 극복할 수 있는 방법
- 인터넷 웹 사이트의 방문 기록을 남겨 사용자와 웹 사이트 사이를 매개해 주는 정보이다.
- Cookie 는 인터넷 사용자가 특정 웹 서버에 접속할 때, 생성되는 개인 아이디와 비밀번호, 방문한 사이트의 정보를 담은 임시 파일로써,
Server가 아닌 Client에 텍스트 파일로 저장되어 다음에 해당 웹 서버를 찾을 경우 웹 서버에서는 그가 누구인지 어떤 정보를 주로 찾았는
지 등을 파악할 때 사용된다.
- Cookie 는 Client PC에 저장되는 정보기 때문에, 다른 사용자에 의해서 임의로 변경이 가능하다. (정보 유출 가능, Session보다 보안성
이 낮은 이유)
Q. 보안성이 낮은 Cookie 대신 Session을 사용하면 되는데 그러지 않는 이유는?
A. 모든 정보를 Session 에 저장하게 되면 Server의 메모리를 과도하게 사용하게 되어 Server에 과부하가 발생할 수 있다.
9. MVC 패턴
MVC
- 객체 지향 프로그래밍에서, MVC란 사용자 인터페이스를 성공적이며 효과적으로 데이터 모형에 관련 시키기 위한 방법론 또는 설계 방식
중 하나이다. MVC방식은 Java, Smalltalk
- MVC 패턴은 목적 코드의 재사용에 유용한 것은 물론, 사용자 인터페이스와 응용 프로그램 개발에 소요되는 시간을 현저하게 줄여주는 형
식이라고 많은 개발자들이 평가하고 있다.
MVC 구성요소
Model : SW 응용과 그와 관련된 고급 클래스 내의 논리적 데이터 기반 구조를 표현. 이 목적 모형은 사용자 인터페이스에 관한 어떠한 정보도 가지고 있지 않다.
View : 사용자 인터페이스 내의 구성요소들을 표현 (사용자에게 보여지는 화면)
Controller : Model 과 View를 연결하고 있는 클래스를 대표, Model과 View 내의 클래스들 간 정보 교환하는데 사용
10. Interface, Abstract
Interface
- 일종의 추상 클래스
- 오직 추상 메소드와 상수만을 멤버로 갖는다.
- Implements 키워드 사용
- 상속의 관계가 없는 클래스 간 서로 공통되는 로직을 구현하여 쓸 수 있도록 한다.
- Extends는 하나의 클래스만 상속 가능하나 Interface는 다중 상속이 가능하다.
Abstract
- 추상 메소드를 하나 이상 가진 클래스
- 자신의 생성자로 객체 생성 불가능
- 하위 클래스를 참조하여 상위 클래스의 객체를 생성
- 하위 클래스를 제어하기 위해 사용
Interface vs Abstract
공통점 | 차이점 |
- new 연산자로 인스턴스 생성 불가능 - 프로토타입만 있는 메소드를 갖는다. - 사용하기 위해서는 하위클래스에서 확장/구현해야한다. |
- 사용하는 키워드가 다르다. - Abstract는 일반 메소드를 사용할 수 있지만, Interface는 메소드 선언만 가능하다. |
출처 : https://hahahoho5915.tistory.com/16
'CS > 기술면접지식' 카테고리의 다른 글
[Part2. CS] - 자료구조 (2) (0) | 2021.09.15 |
---|---|
[Part2. CS] - 자료구조 (1) (0) | 2021.09.08 |
[Part1. CS] - 개발상식 (0) | 2021.09.01 |
[Web] IT 기술 면접 질문 정리 (2) (0) | 2021.06.22 |