개발자 면접 대비
#클래스패스와 클래스로더
-클래스패스 ClassPath : Class파일이 저장되어있는 디렉토리의 나열
-클래스로더 ClassLoader : 컴파일 시점(Compile Time)이 아닌 실행 시점(Run Time)에 클래스를 로딩할 수 있게 해주는 기술
#OOP란
-Object Oriented Programming , 객체 지향 프로그래밍 이란 뜻으로 특징으로는 캡슐화, 상속, 다형성이 있다
#캡슐화 : 관련된 데이터와 메서드를 하나의 단위로 묶어 객체 내부를 숨김
#상속 :
#다형성 : 다형성이란 하나의 메소드나 클래스가 있을 때 이것들이 다양한 방법으로 동작하는 것을 의미한다
1)오버로딩 - 하나의 클래스에서 같은 이름의 메서드들을 매개변수를 다르게하여 여러개 정의하는 것 ( 컴파일 시점 )
2)오버라이딩 - 슈퍼클래스에서 상속받은 메서드를 서브클래스에서 새롭게 정의하는것 ( 실행 시점 )
# 자바의 특징
-객체지향언어이며 운영체제에 독립적이다. 자바가상머신(JVM)이 자바로 작성된 프로그램은 운영체제의 종류에 실행가능하다
# 인터페이스와 다형성
-인터페이스 : 추상메서드와 상수만을 멤버로 가지는 추상클래스, 인터페이스로 부터만 상속 받을 수 있으며, 다중상속이 가능하다
# 제네릭을 사용하는 이유
-제네릭 : 클래스를 선언할 때 타입을 결정하지 않고 객체를 생성할 때 유동적인 타입으로 재사용
# Spring Framework의 장점
# 웹서버와 WAS차이
-WEB SERVER
웹 서버는 네트워크를 통하여 웹 클라이언트들로부터 HTTP 요청들을 수신하고,
웹 페이지 같은 부가적인 컨텐츠들과 함께 HTTP 응답을 제공하는 역할을 하는 컴퓨터 프로그램
-WAS
Web Application Server
웹과 기업의 기간 시스템 사이에 위치하면서, 웹 기반 분산 시스템 개발을 쉽게 도와주고 안정적인 트랙잰션 처리를 보장해 주는 일종의 미들웨어 소프트웨어 서버. WAS는 동적 서버 콘텐츠를 수행하는 것으로 일반적인 웹 서버와 구별이 되며, 주로 데이터베이스 서버와 같이 수행이 된다.
-WAS와 웹 서버를 따로쓰는이유?
목적이 다르기 때문이다. 웹 서버는 정적인 데이터를 처리하는 서버이다. 이미지나 단순 html파일과 같은 리소스를 제공하는 서버는 웹 서버를 통하면 WAS를 이용하는 것보다 빠르고 안정적이다. WAS는 동적인 데이터를 처리하는 서버이다. DB와 연결되어 데이터를 주고 받거나 프로그램으로 데이터 조작이 필요한 경우에는 WAS를 활용 해야 한다.
#
-쿠키
이 쿠키는 "사용자의 브라우저"에 저장이 됩니다.
그리고 사용자의 컴퓨터를 만질 수 있다면 누구라도 쿠키에 입력된 값을 확인할 수 있습니다.
이 말은 "보안성이 없다"라는거죠.
-세션
세션의 경우 "서버에 저장되는 쿠키"라고 이해하시면 편합니다.
세션은 $_SESSION['변수명']을 통해 불러올 수 있고, 저장도 가능합니다.
하는 기능은 쿠키와 크게 다르지 않지만, 서버에 저장되고, 서버에 직접 접근하지 않는 이상 세션 내의 데이터를 탈취하는 것은 어렵다고 보시면 됩니다.
-캐시
캐시의 경우 쿠키, 세션과는 전혀 다른 기능을 가지는데요.
홈페이지를 접속하면 css, js, 이미지 파일이 사용자의 브라우저에 저장이 됩니다.
그 후 다시 같은 홈페이지를 접속하게 되면 css, js, 이미지 파일을 서버가 아닌 사용자의 PC에서 가져오게 됩니다.
이렇게 저장된 데이터를 캐시되었다고 합니다.
이로써 얻는 이점은 css, js, 이미지의 용량이 3MB라고 가정할 때, 서버는 한번 요청될 때마다 3MB의 자원을 아끼는거죠.
대부분의 홈페이지는 상단, 하단이 동일하므로 더욱 더 많은 자원이 아껴지는겁니다.
이로써 발생하는 문제가 있는데요.
홈페이지 관리자가 이미지를 변경 -> 사용자는 이미지가 변경되어있지 않음.
위와 같은 상황이 발생할 수 있습니다.
이러한 경우도 브라우저에 이미 캐시되어있는 경우 발생하는 문제죠.
해결 방법은 사용자 브라우저의 캐시를 지워주거나, 서버에서 클라이언트로 응답을 보낼 때 header에 캐시 만료시간을 명시해주는 등 방법은 다양합니다.
# DOM
- DOM(Document Object Model)은 HTML 문서의 모든 요소에 접근하는 방법을 정의한 API
- DOM은 Core DOM과 XML DOM, HTML DOM 세가지로 분류
- DOM은 노드구조로 트리형태로 표현
# 컬렉션이란?
-Java Collection Framework (JCF) , Java에서 객체를 모아서 제어, 관리하기위한 클래스
-List : 순서가 있는 데이터 집합, 데이터의 중복 허용
( LinkedList, Stack, Vector, ArrayList )
-Set : 순서를 유지하지 않는 데이터 집합, 데이터의 중복 불가
( HashSet, TreeSet )
-Map : 키(key)와 값(Value)의 쌍으로 이루어진 데이터의 집합, 순서 유지되지않음
키는 중복 허용하지 않지만 값은 허용
( HashMap, TreeMap, HashTable, Properties )