기술 면접 예제

-Java 2015. 2. 4. 12:21

[자바 관련]

1. 데이터 타입인 primitive Type(기본형)

boolean, char, byte, short, int, long, float, double 8 종류

 

2. Reference Type에 대해 설명

8개의 기본형을 제외한 나머지 타입, 객체의 주소를 저장

 

3. 자바 컬렉션의 대표 인터페이스는?

List, Set, Map, Tree

 

4. 접근제어자의 종류와 특성에 대해 설명

default : 패키지내 접근

protected : 같은 패키지내에서, 다른 패키지의 자손클래스에서 접근가능

public : 모든 영역에서 사용가능. 다른 패키지에서 상속하지 않고 import만 해서

호출해서도 사용

private class 내에서만 사용가능

 

5. 객체의 직렬화(Serialization)?

Person, FileOutputStream, FileInputStream 클래스. 객체를 연속적인 데이터로 변환

 

6. 쓰레드란?

모든 프로세스는 하나 이상의 쓰레드를 가지고 있다.

프로세스 : 공장

쓰레드 : 일꾼

 

7. 쓰레드를 구현하기 위한 인터페이스, 클래스는?

Runnable, Thread

 

8. Static 키워드에 대해 설명

static 이 붙은 변수, 메소드는 인스턴스를 생성하지 않고도 사용할 수 있다.

 

9. classinstance에 대해 설명.

class 객체를 정의해 놓은 것, 객체를 생성하기 위해 사용

instance 클래스로부터 만들어진 객체를 그 클래스의 인스턴스(객체)라고 함.

 

10, oop?

객체지향 프로그래밍(Object Oriented Programming)

객체라는 작은 단위로 모든 처리를 기술하는 프로그래밍방법.

모든처리는 객체에 대한 요구의 형태로 표현되며, 요구를 받은 객체는 자기자신내에 기술되어 있는 처리를 실행한다. 프로그램이 단순화되고 생산성과 신뢰성이 높은 시스템을 구축할 수 있다.(수정, 재사용 용이) 특징으로는 캡슐화, 상속, 다형성, 추상화가 있음

11. 캡슐화란?

객체의 속성(data field)과 행위(method)를 하나로 묶고, 실제 구현 내용 일부를 외부에 감추어 은닉.

1). Data 보호

멤버변수로의 직접적인 접근을 막아서 데이터의 안정성을 보장.

데이터를 담고 있는 변수를 private로 선언해서 외부의 접근 차단

get, set 메서드를 통한 간접접근 가능

2). 유지보수성

속성이 변경되어도 메소드를 수정하는 것으로 단순하게 처리할 수 있다.

3). 사용자 편의성

내부구현이 달라져도 사용자의 사용법은 변하지 않는다.

 

12. 상속이란?

상위객체의 메소드를 그대로 물려받아 재사용하면서 새로운 객체를 만드는 방법.

Has-a 상속 : 하위객체가 상위객체의 모든 것을 물려받음

(부품을 물려받는 것, 새로운 기능 추가 가능)

Is-a 상속 : 프레임()을 물려받는 것

 

-다형성이란?

하나의 인터페이스를 사용하여 다양한 구현방법을 제공하는 것(override, overload)

하나의 변수로 여러타입의 객체를 가질 수 있는 것.

 

-추상화란?

모든객체의 공통적인 성질망을 일반화하여 담아 놓은 것.

 

13. 오버로딩과 오버라이딩 비교

- 공통점 : method 이름이 같다. 다형성 효과.

 

오버로딩 상속받지 않아도 가능

같은 클래스 내에서 메소드 이름은 같게, parameter 값은 다르게 정의 하는 것.

 

오버라이딩 상속을 기반으로 한다.

부모로부터 상속받은 method 중 특정 method를 수정, 추가하여 재정의하는 기법.

return type/method 이름/parameter list는 부모 method와 같게 정의.

접근제어자는 같거나 더 넓은 범위로 정의.

 

14. 추상클래스와 인터페이스에 대해 설명해 보세요.

공통점 : 생성자를 만들 수 없다.

 

추상클래스 : 새로운 클래스를 작성하는데 있어서 바탕이 되는 조상클래스.

추상 : 객체의 공통적인 성질만은 뽑아 일반화하여 담아놓은 것.

추상메소드 : 설계만 해놓고 실제 수행될 내용은 작성하지 않았기 때문에 미완성 메소드.

 

인터페이스 :

일종의 추상클래스로 추상클래스처럼 추상메서드를 갖지만 추상화정도가 높아서 추상클래스와

달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다.

오직 추상메서드와 상수만을 멤버로 가짐.

 

15. 속성변수, 지역변수, 매개변수에 대해서

속성변수(전역변수) : 모든 함수에서 사용할 수 있는 변수.

매개변수 : 어떤 함수가 동작하기 위해 필요한 데이터

지역변수 : 한정된 지역, 함수의 {}로 싸여있는 함수본체 부분에서만 사용되는 함수.

변수가 선언된 지역이 끝나면 그 변수에 들어갈 값에 잃게 됨.

 

[DataBase/Oracle]

1.데이터베이스란? 장단점은?

데이터저장소이고 장점 : 데이터중복 최소화, 일관성, 무결성, 보안성 유지

단점 : 비용부담, 전문가 필요, 시스템이 복잡

 

2.SQL에 대해.

데이터베이스에서 데이터를 조회, 삭제 당의 작업을 수행하는 질의 언어

 

3. DDL, DML DCL?

DDL : 테이블 생성, 변경, 삭제.

DML : 데이터 추가, 변경, 삭제

DCL : 권한관리, DB에 연결할 수 있는 권한 부여

 

트랜잭션 : 데이터베이스 시스템에서 사용되는 가장 작은 단위의 엄무처리단위.

 

4. Oracle, mysql, mssql(relation, database) 등을 부르는 종류명은?

DBMS

 

5. 데이터베이스 설계 시 정규화를 하는 이유는?

데이터베이스 작업속도 향상을 위해

 

6. 기본키와 외래키 설명

기본키 : 해당 컬럼 같은 반드시 존재해야 하며, 유일해야 함

(NOT NULLUNIQUE 제약조건을 결합한 형태)

 

외래키 : 해당 컬럼 값은 참조되는 테이블의 컬럼값 중의 하나와 일치하거나 NULL을 가짐.

 

 

7. join이란?

둘 이상의 테이블에서 테이블 간의 논리적 관계를 기준으로 데이터를 검색하여

결과 집합(ResultSet)을 만드는 것을 의미함

 

8. 서브쿼리

하나의 sql문안에 포함되어 있는 또 다른 sql

서브쿼리는 메인쿼리가 서브쿼리를 포함하는 종속적인 관계임.

 

9. wherehaving의 차이

where적은 개별 행에 적용

having절은 그룹전체, 즉 그룹을 나타내는 결과집합의 행에만 적용된다(gruop by).

 

10. view에 대해 설명

한 개 이상의 기본테이블이나 다른 뷰를 이용하여 생성되는 가상테이블.

뷰는 기존에 생성되 테이블 또는 다른 뷰에서 접근할 수 있는 전체 데이터 중에서

일부만 접근할 수 있도록 제한하기 위한 기법.

 

11.group by?

한 특정열의 값들을 unique한 값에 따라 그룹을 짓는 연산자.

 

12.order by?

select 문에서 가져온 데이터를 직접적으로 정렬할 수 있게 한다.

select 문의 제일 마지막에 입력

DESC 내림차순

ARC 오름차순

 

13.PKUK의 차이점

공통점의 유일성

PK는 다른곳에서 참조하게 끔 해주는 것(ex:사원번호)

UK는 그런 것 없음(주민등록번호)

PK NOT NULL이지만 UKNULL 허용

 

14. INNER JOIN OUTTERJOIN의 차이점

inner join 두 테이블간의 공통된 칼럼(속성만)추출 (공통된 데이터만 추출)

outter join 두 테이블에서 기준이 되는 테이블 모든 값 출력

(공통되지 않는 것은 NULL로 출력(

 

[JSP]

쿠키와 세션에 대해서

쿠키 인터넷 웹사이트의 방문기록을 남겨, 사용자와 웹 사이트를 매개해주는 정보

 

세션 -

통신 : 사용자와 컴퓨터, 또는 두 대의 컴퓨터간의 활성화된 접속을 의미.

프로그램 : 응용프로그램의 기동을 시작해서 종료할 때까지의 시간을 가르킴

차이점

쿠키는 웹서버에서 웹 클라이언트(브라우제)를 통해 접속자의 하드디스크에 저장되는 정보

세션은 웹클라이언트(브라우저) Cache에 임시저장

따라서 웹클라이언트를 종료해도 쿠키는 사용자의 하드에 저장

세션은 종료하거나 만료시기가 지나면 서버에서 자동삭제

 

쿠키는 동일한 요청에 대한 값이 항상 동일하게 주어짐

세션은 매 요청마다 그 값이 변경

쿠키는 저장 값 유형이 문자열 형태만 가능

세션은 자바의 모든 객체(Object) 형태가 가능

쿠키는 보안에 취약, 세션은 보안에 강력

 

2.MVC(Model-View-Controller)?

모델 : 비즈니스 로직과 사용되는 데이터를 다루는 영역

(비즈니스 데이터는 데이터베이스에 의해 관리,

해당 데이터를 다루는 연산은 SQL문을 이용해 구현)

: 사용자에게 보여줄 프리젠테이션 로직을 담당하는 영역

컨트롤러 : 사용자의 입력 및 흐름 제어, 모델과 뷰 영역간의 조정 역할

사용자의 요청을 받아 이룰 수행하기 위한 비즈니스 로직을 선택하고 호출하며,

수행한 비즈니스 로직의 결과를 뷰를 통해 보여줌.

 

3. model1model2의 차이점

모델1 : 웹브라우저의 요청이 JSP에 바로 전달. JSP는 자바빈이나 서비스 클래스를 이용

브라우저에 요청한 작업.

모델2 : 웹브라우저의 요청을 서블릿이 발음. 서블릿은 처리 후 결과를 JSP에 포워딩함.

JSP는 결과를 클라이언트에게 전송.

 

4. JSTL(JSP Standard Tag Library)이 무엇이고 사용하는 이유는?

개발자가 직접 <jsp:include>처럼 태그를 작성할 수 있는 기능.

이런 커스텀 태그 중에 많이 사용되는 것들을 모음.

코드가 간결해짐

 

7. JSP에 대해 설명

동적인 웹페이지를 개발하기 위한 기술

HTML내에 자바코드를 삽입하는 방식으로, HTML과 자바코드 분리가 가능하고,

서블릿에서 HTML을 작성하는 것과 같은 번거로움이 없다.

 

8. JSP의 동작 원리

->요청분석넘기기->해당분석 JSP파일에 서블릿이 있을 경우 Servlet으로 실행/없을 경우

컴파일된 서블릿 컨테이너에 적재한 후 서블릿 실행 -> 데이터베이스 처리 -> 뷰로 가져온다.

 

9. Servlet이란?

사용자의 요구에 따라 동적으로 웹 컨텐츠를 생산해서 클라이언트 측에 전송하는 자바기술

HTTPSERVLET 클래스를 상송받아서 사용자정의 서블릿 프로그램 작성

 

장점 쓰레드를 기반으로 웹 어플리케이션 운영에 효율적

자바를 기반으로 하므로 자바 api 모두 사용가능

웹 어플리케이션 개발시 서블릿 이점

콘텐츠와 비즈니스로직 분리

콘트롤러와 뷰 역할 분담

디자이너 개발자 원활한 공동작업 가능-> 유지보수 수월, 기능확장 용이

 

10. 제네릭이란?

- 각 데이터 형에 대한 별도의 메소드나 멤버변수를 구현할 필요없이 미리 정의된 하나의 메소드 또는 매개변수에 서로 다른 자료형의 결과를 얻을 수 있도록 하는 기능

- 메소드나 멤버 변수의 기능은 같지만 그것을 필요료 하는 곳에 따라 넘겨받는 결과의 자료형이 서로 다를 때 틀이 되는 하나의 메소드나 멤버 변수를 정의해 놓고, 호출하는 쪽에서 요구하는 자료형의 값을 설정하도록 하는 것이다.

자료형을 클래스로 담는 것

 

[Android]

1.Activity?

어플리케이션의 한 화면. 사용자와 직접 상호작용.

 

2.Intent?

각 구성요소를 사용하기 위해서 각 구성요소를 호출하는 것.

 

3.Service?

화면에 표시되면 사용자와 직접 상호작용을 하는 액티비티와는 달리,

화면에 표시되지 않고 백그라운드에서 실행되는 컴포넌트

 

6.BroadCastReceiver?

주로 시스템의 상태에 관련된 메시지(베터리 부족, 언어 변경됨 등)

혹은 어플리케이션의 메시지(다운로드 완료)에 응답하는 역할

해당 이벤트가 발생하였을 경우 그를 잡아내는 능력만 있을 분, 이를 사용자에게 알릴 방법은 없음

 

7.Content Provider?

어플리케이션 내의 데이터(전화번호부, 메모 등)를 다른 어플리케이션과 공유할 수

있도록 해줌

[etc.]

7. HTML5의 주요 기능

header, nav, footer, articl로 구조화 작업. SQL기반 데이터베이스 지원을 위한 기능 추가.

 

8.CSS Position 속성

static : default . 일반적인 흐름

relative : topleft 거리를 지정할 수 있음

absolute : top, left, right, bottom 등을 위치지정

fixed : 위치를 고정.

 

9. CI?

지속적으로 퀄리티 컨트롤을 적용하는 프로세스를 실행하는 것.

 

11.JQuery의 장점

모든 브라우저에서 동작하기 때문에 유연한 프레임워크.



기술면접.hwp


'-Java' 카테고리의 다른 글

파이널 프로젝트 My Style 발표 동영상  (1) 2015.03.16
JSP  (0) 2014.11.04
java  (0) 2014.10.30
JavaScript  (0) 2014.10.29
CSS PT자료  (0) 2014.10.28
Posted by G-bong
,