1.HTTP 와 프로토콜에 대해서 설명하시오
1) HTTP HyperText Transfer Protocol 프로토콜은
웹 브라우저와 웹 서버 사이의 데이터 통신 규칙입니다.
웹 페이지의 링크를 클릭하면 ,
웹 브라우저는 HTTP 요청 형식에 따라 웹 서버에 데이터를 전송합니다.
웹 서버는 웹 브라우저가 보낸 데이터를 분석하여 요청 받을 일을 처리하여 응답합니다.
2) 프로토콜은 통신에서 통신 규약 및 약속을 의미합니다.
사용목적은 서로 다른 시스템간의 정보통신을 원활히 하기 위해서 입니다.
대표적인 표준 프로토콜은 TCP/ IP 입니다.
1-1 HTTP와 HTTPS의 차이
HTTP : HyperText Transfer Protocol
-> 동작 순서 : TCP -> HTTP
HTTPS : HyperText Transfer Protocol over Secure Socket Layer
-> 동작 순서 : TCP -> SSL -> HTTP
약자를 보면 두개는 모두 HTML 같은 HyperText 문서를 전송하기 위한
통신 규약 (Protocol)이고
차이는 SSL (Secure Socket Layer)을 쓰냐 아니냐의 차이입니다.
SSL 프로토콜은 테레사 (Terrsa)가 개발해 Netscape사가 NetSite의 암호화 중심
프로토콜로 정착시킨 기술로 정보 암호화 시 공개키 (Public Key)와 개인 키 (Private key )
라는 두 가지 키를 이용하는 방법입니다.
https 란 인터넷상에서 정보를 암호화하는 SSL (Secure Sockey Layer) 프로토콜을 이용하여
데이터를 전송하고 있다는 것을 의미합니다.
결론 : 문서를 전송 시, 암호화 처리를 하느냐의 차이 입니다.
2. POST , GET 방식에 대해 설명하시오
Get,Post 방식은 HTTP 프로토콜을 이용해서 서버에 무언가를 요청할 때 사용하는 방식입니다.
Get : URL (주소창) 을 통해서 모든 파라미터를 전달합니다. 주소창에 전달되는 값이 노출되기에
ID/PW 등의 정보를 GET방식으로 전달하면 문제가 발생할 가능성이 있습니다.
URL, 길이가 제한이 있기에 많은 양의 전달이 불가능합니다.
URL 형식에 맞지 않는 파라미터 이름과 값은 인코딩해서 전달해야합니다.
http://url/naver.html ? id =5 & pagenum=2 과 같이 하는 것
주소줄 뒤에 ? 이걸로 시작합니다.
Post: 전달하고자 하는 정보가 HTTP Body에 포함되어 전달됩니다.
웹 브라우저 사용자의 눈에 직접적으로 파라미터가 노출이 안됩니다.
길이에 제한이 없습니다.
2-2 언제 GET을 쓰고 언제 POST를 쓰나요 ?
GET은 가져오는 것 , POST 는 수행하는 것 입니다.
GET은 SELECT 적인 성향이 있습니다. 서버에서 어떤 데이터를 가져와서 보여준다거나 하는 용도입니다.
POST는 서버의 값이나 상태를 바꾸기 위해서 사용합니다.
3. 비동기 통신과 동기 통신의 차이점에 대해 설명해주세요
동기식 통신은 통신에 참여하는 노드 모두가 시간을 동기화해서 전송하는 것을 말합니다.
예를 들어 면접 진행시 15분씩 1명씩 진행하는 것
은행 이체 시스템
커피 자판기 결제 시스템 등이 있습니다
비동기식은 시간을 안맞추는 대신 전송 전에 연결을 맺는 등의 오버헤드를 가집니다.
예를 들면 내가 말하기 전에 너 들을 준비 되었니 ? 라고 통보하고 말하는 것과 같습니다.
4.MVC 에 대해 설명하시오
화면과 데이터 처리를 분리해서 재사용이 가능하도록 하는 구조입니다.
Model , View, Controller
모델 : 데이터 혹은 데이터를 처리하는 영역
뷰 : 결과 화면을 만들어 내는데 사용하는 자원
컨트롤러 : 웹의 요청request을 처리하는 존재로 뷰와 모델 사이의 중간 통로 식 역할 입니다
모델 2 방식은 개발자와 웹 퍼블리셔의 영역을 분리할 수 있으며
컨트롤러의 URI를 통해서 뷰를 제어하기 때문에 뷰의 교체나 변경과 같은 유지보수에 유용하게 사용
될 수 있습니다.
5. CGI 에 대해서 설명하시오
웹 어플리케이션의 실행은 웹 브라우저가 웹 서버에게 실행을 요청하면서
발생합니다. 웹 서버는 클라이언트가 요청한 프로그램을 찾아서 실행하고
해당 프로그램은 작업을 수행한 후 그 결과를 웹 서버에게 돌려줍니다.
그러면 웹 서버는 그 결과를 HTTP 형식에 맞추어 웹 브라우저에게 보냅니다.
이때 웹 서버와 프로그램 사이에 데이터를 주고 받는 규칙을 CGI (Common Gateway Interface)
라고 합니다.
이렇게 서버에 의해 실행되며 CGI 규칙에 따라서 웹 서버와 데이터를 주고 받도록
작성된 프로그램을 CGI 프로그램이라고 합니다.
자바에서는 서블릿이 곧 CGI 프로그램입니다.
6. PHP 에 대해 설명하시요
PHP = Professional HTML Preprocessor 의 약자
HTML 문서 내부에 포함이 되어 웹 서버에서 실행될수 잇는 스크립트 언어입니다
스크립트 언어는 컴파일을 하는 언어와는 달리 텍스트로 되어있는 파일을
인터프리터가 라인마다 해석을 해서 실행하는 방식입니다.
PHP는 웹서버가 실행될 때 PHP 해석 엔진이 같이 실행되면서
메모리로 로드됩니다.
즉 PHP는 웹 서버 모듈로 동작합니다.
반면 CGI 프로그램은 웹브라우저에서
서비스 요청이 있으면 웹 서버가 외부 프로그램을 실행해서
결과값을 웹서버로 넘겨주고 웹 서버는 그 결과를 클라이언트로 보내면서
하나의 작업이 끝나게 됩니다.
8 DDL, DML ,DCL
DDL : 도메인 ,테이블, 뷰 ,인덱스 정의, 변경, 제거하는 언어 ( CREATE, DROP, ALTER)
DML : 데이터 베이스에 저장된 데이터를 검색, 삽입, 삭제, 갱신하는 언어
(SELECT, INSERT, DELETE, UPDATE)
DCL : DBA가 데이터 관리를 목적으로 사용하는 언어
(GRANT, REVOKE, COMMIT, ROLLBACK)
9. 오버라이딩과 오버로딩의 차이
오버라이딩 : 부모 클래스 함수의 재정의
(함수 이름, 매개변수, 변환형은 그대로 합니다)
오버라이딩 규칙으로는
자식 클래스에서 오버라이딩하는 메서드는 부모 클래스의 메서드와 이름이 같아야합니다
매개변수가 같아야합니다
리턴 타입이 같아야합니다
오버로딩 : 함수의 재정의
(함수 이름만 동일하고 나머지는 달라도 괜찮습니다.)
오버로딩의 규칙으로는
특정 클래스 내에서 이름이 같은 메서드를 여러 개 중복 정의한 것입니다
이름이 같아야합니다
매개변수가 달라야합니다,
10 클래스, 객체, 메소드란
클래스 : 공통된 속성과 연산을 갖는 객체의 집합
객체 : 현실 세계의 개체
메소드 : 객체가 메시지를 받아 실행해야할 객체의 구체적인 연산
11. INNER JOIN 과 OUTER JOIN의 차이
INNER의 조인 경우 조인 되는 테이블 간에 서로 연결되는 칼럼 값이 존재해야하만
테이블에 데이터를 가져올 수 있습니다.
OUTER 조인의 경우 조인되는 테이블 간에 서로 연결되는 칼럼이 존재 핮 않더라도
데이터를 가져올 수 있습니다.
12. JAVA 에서의 접근제어자
Private - 같은 클래스 내에서만 접근이 가능합니다
default - 같은 패키지 내에서만 접근이 가능합니다
protected - 같은 패키지 내에서 그리고 다른 패키지의 자손 클래스에서 접근이 가능합니다
pubilc - 접근 제한이 전혀 없습니다
public > protected > default > private
13 AOP 란 ?
Aspect Oriented Programming
다양한 고셍서 자주 사용되는 공통 관심요소를 단일 기능으로
뽑아내어 코드의 중복을 줄이고 관리의 효율성을 높이는 것을 목적으로 한다
로깅이나 로그인 등의 기능이 예로 있다
14 쓰레드와 프로세스의 차이
쓰레드 : 하나의 프로그램 내에서의 실행 단위 . 프로세스 내에 존재
프로세스 : 실행 중인 프로그램, 운영체제 내에 존재
각각 별개의 메모리 공간을 가진다
프로세스 간 전환 속도가 쓰레드 간 보다 느리다
메모리를 공유해서 사용이 가능하다
-> 공통점
1. 특정 순서로 실행 해야 할 명령 시퀀스를 나타낸다
2. 비동기적 행위
-> 멀티 프로세싱 : 한 컴퓨터에서 여러 프로그램을 돌리는 것
-> 멀티 쓰레딩 : 한 프로그램에서 여러 실행 흐름이 있는 것
채팅을 예로 들면
채팅 프로그램 하나를 여는것은 프로세스 하나가 할당이 되는것이고
회원이 들어올 때마다 쓰레드가 하나씩 발생하는 것입니다.
15. Spring Framework의 특징
POJO(Plain-old java object)
16. 라이브러리와 프레임워크의 차이점
라이브러리 : 쓸만한 기능들을 모아놓은 유틸 모음집
프레임워크 : 일정 수준 이상의 품질을 보증하는 코드를 비교적 빠르고
편하게 완성 및 유지 보수 할 수 있는 솔류션
17. 객체 지향 언어의 특징
1) 캡슐화 : 객체의 속성과 행위를 하나로 묶고 실제 구현 내용 일부를 외부에 감추어
은닉하는것
2) 상속 : 새로운 클래스가 기존의 클래스의 자료와 연산을 이용할 수 있게 하는 기능
3) 다형성 : 어떤 한 요소에 여러 개념을 넣어 놓은 것 (오버라이딩, 오버 로딩)
4) 추상화 : 공통의 속성이나 기능을 묶어 이름을 붙이는 것
18. 세션과 쿠키의 차이
세션 : 클라이언트와 웹 서버 간 네트워크 연결이 지속적으로 유지되고 있는 상태
cookie보다 보안성이 좋습니다.
쿠키: 웹 브라우저가 보관하고 있는 데이터.
키와 값으로 구성.
pc에 저장되는 정보기 때문에 , 다른 사용자에 의해 임의로 변경이 가능합니다.
정보 유출이 가능하고 보안성이 낮습니다.
-> 자동 로그인, 팝업에서 '오늘 더 이상 이창을 보지 않음' 체크, 장바구니
- 보안성이 낮은 cookie 대신 session을 사용하면 되는데 안 하는 이유 ?
A . 모든 정보를 Session에 저장하면 server의 메모리를 과도하게 사용하게 되어
server에 무리가 갑니다.
19. 자바스크립트와 제이쿼리
자바 스크립트 :
동적으로 컨텐츠를 바꾸고 멀티미디어를 다루고 움직이는 이미지 등 웹 페이지를 꾸며주도록
하는 프로그래밍 언어
제이쿼리 : 자바스크립트를 이용해 만든 라이브러리 언어
-> 선택자 : $(""), * : 모든, # :id, class: 태그 이름 : 태그
20. JSP 란 ?
JAVA SERVER PAGES 의 약자
HTML 내에 자바 코드 삽입하여 웹 서버에 동적으로 웹페이지를 생성하여
웹 브라우저에 돌려주는 언어
21.MyBatis 란 ?
객체 지향 어플리케이션에서 관계형 데이터 베이스를 쉽게 사용할 수 있도록
도와주는 데이터 매핑 프레임 워크
장점 : SQL 및 프로시저 구문의 독립
복잡한 JDBC 코드를 걷어내어 깔끔한 소스 코드 유지
수동적인 파라미터 설정과 쿼리 결과에 대한 매핑 구문 제거
22. Ajax란 ?
비동기식 자바스크립트와 XML 이라는 뜻
브라우저를 새로 고칠 필요 없이 자바 스크립트를 호출하여
서버 측 메서드를 실행할 수 있습니다.
23. 부트 스트랩
쉽고 빠른 프론트엔드 웹 개발을 위해 설계된
HTML, CSS, JS 웹 프레임 워크입니다.
미리 정의된 클래스를 이용해 쉽게 웹 디자인하고
완성도 높은 다양한 UI 개발 가능합니다.
24. TCP/ UDP 차이
TCP : 연결형 서비스 , 높은 신뢰성, 양방향 통신
UDP : 비연결형 서비스, 신뢰성 낮음, TCP 보다 빠른 전송 속도, 단방향 통신
25. Abstract/ interface 차이
abstract : 클래스의 의미. 추상 클래스/ 추상 메소드를 한 개 이상 포함하고 있는 클래스를 의미
interface : 인터페이스 클래스, 추상 메소드로 구성되어있는 것을 의미한다
-> 둘의 차이
일반적인 클래스는 상속으로 사용되고 인터페이스는 포함이라는 키워드를 이용하여 사용합니다.
다중 상속의 목적으로 하냐 아니냐의 차이
둘 다 상속 받은 클래스에서 오버라이딩 (재정의) 하여 사용
-> 둘의 공통점
인스턴스 생성을 할 수 없다
26. call by reference/ call by value
call by reference : 매개 변수의 원래 주소에 값을 저장하는 방식
클래스 객체를 인수로 전달한 경우
call by value : 인수로 기본 데이터형을 사용
주어진 값을 복사하여 처리하는 방식
메서드 내의 처리 결과는 밖의 변수에 영향을 미치지 않습니다.
27. primitive type 과 reference type
primitive type: 변수에 값 자체를 저장
종류 - byte, short, int long float double char boolean
reference type : 메모리 상에 객체가 있는 위치를 저장
종류- class, interface , array 등
28. 자바 컬렉션의 대표 인터페이스
같은 타입의 참조 값을 여러 개 저장하기 위한 라이브러리
set: 중복을 허용하지 않고 순서를 가지지 않습니다
list : 중복을 허용하고 순서를 가지고 있습니다
map : key와 value 의 형태로 저장합니다.
29. 자바에서의 객체의 직렬화
JVM 힙 영역에 존재하는 객체를 한 줄어선 바이트의 형태로
만드는 것을 객체의 직렬화라고 합니다.
객체의 형태로 복원하는 작업을 역 직렬화 라고 합니다,.
30.
'네트워크' 카테고리의 다른 글
자바 채팅 분석 / thread pool/ string pool (0) | 2020.01.16 |
---|---|
STP Intro / 스위치의 기본 통신방식 , loop 구조 / (0) | 2020.01.09 |
DHCP(Dynamic Host Configuration Protocol) / 로드 밸런싱 (Load Balance) (0) | 2020.01.07 |
네트워크 이중화와 클라우드 개념 (0) | 2020.01.07 |
채팅 프로그램 서버 구조 (0) | 2020.01.06 |