Skip to the content.

프로그램이 무엇인지 말해 보세요

-컴퓨터가 사람 일을 할 수 있도록 해 주는 것

-컴퓨터에 처리되는 작업의 순서를 논리적으로 명령어로 작성되는 것

JAVA언어의 좋은 점에 대해 말해 보세요

-객체지행 프로그래밍 언어,플랫폼 독립적,이식성이 좋다,라이브러리 지향성,보안성,멀티 스레드,가상 머신,바이트 코드

객체지향 언어의 장점과 객체지향 프로그램이 등장한 이유 설명

-코드의 재사용이 높아 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성 할 수 있다.

-코드의 관리가 용이하여 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다.

-제어자의 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며,코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다.

자바 데이터 타입인 Primary Type과 Reference Type에 대해 설명

-Primary Type은 변수에 값 자체를 저장하여 Reference Type은 메모리상에 객체가 있는 위치를 저장한다.

-Primary Type의 종류는 boolean byte,char,short,int,float,long,double 총 8가지 이며 Reference Type 종류는 클래스 타입,인터페이스 타입,배열 타입,열거타입이 있다.

배열과 컬렉션의 차이점

-배열은 단 하나의 자료형만 저장이 가능하고,컬렉션은 복수의 자료형을 저장할 수 있다.

-배열은 고정된 크기이고 컬렉션은 가변적 크기이다.

다형성이 무엇인가

-여러가지 데이터를 다룰 수 있는 특성이다.

-조상 클래스의 인스턴스를 이용하여 자손타입의 클래스를 다룬다거나 메서드 오버로딩을 통하여 동일 이름의 메서드를 이용하여 다양한 형태의 파라미터를 다루는 것을 뜻한다.

멀티 쓰레드의 장단점

-두 가지 이상의 작업을 동시에 실행 할 수 있어 자원을 효율적으로 이용할 수 있으나 dead lock 및 동기화에 대한 철저한 검증이 필요하다.

자바에서 멀티쓰레드를 구현하는 방법에 대해서 설명하세요

-Thread 클래스를 상송하는 법,단일 상속만 된다는 단점이 있다.Runnable인터페이스를 상속하는 법.

다중 상속이 된다는 장점이 있다.

Java 컬렉션의 대표 인터페이스는 무엇인가

-List

순서가 있는 데이터의 집합으로 데이터의 중복을 허용한다.

구현 클래스-ArrayList,LinkedList,Stack,Vector

-Set

순서를 유지하지 않는 데이터의 집합으로 데이터의 중복을 허용하지 않는다.

구현 클래스-HashSet,TreeSet

-Map

키와 값을 쌍으로 이루어진 데이터의 집합으로 순서는 유지되지 않으며,키는 중복을 허용하지 않고,값은 중복을 허용한다.

구현 클래스-HashMap,TreeMap,HashTable,Properties

컬렉션에서 제네릭이 추가된 이유

-컬렉션은 복수개의 데이터 타입 요소값이 저장되다보니 원하는 자료형 타입 요소값을 추출하기 어렵다.

그러므로 지정한 자료형 타입 한가지만 저장하기 위해서 나온 것이 제네릭이다.

접근제어자의 종류와 특성에 대하여 설명

-가변적 크기이다.

-순차적으로 요서 값을 저장한다.

-중복 요소 값을 허용한다.

자바의 메모리 구조가 어떤 식으로 이루어졌나

-code:함수,제어문,상수

-data:초기화된 전역변수

-bss:초기화 안된 전역 변수

-heap:동적할당

-stack:지역변수

out of memory에러 메시지는 어느 메모리 부족으로 나타나는 것인가

-heap 메모리 부족

메서드에서 오버로딩과 오버라이딩의 설명

-오버로딩:메소드 이름은 같지만 매개변수의 개수나 데이터 형식을 다르게 정의하는 것

-오버라이딩:기존에 있는 메소드를 재정의하는 것으로 매개변수의 개수나 데이터형식이 같아야 한다.

Exception에 대해

-프로그램이 비정상적인 종료나 중단을 막을 수 있다.

-RuntimeException과 그 외의 Exception으로 나눌 수 있다.

동기화에 대해

-하나의 자원을 여러 태스크가 사용하려 할 때 한 시금에 하나의 태스크만이 사용할 수 있도록 한다.

프로세스와 쓰레드의 차이점에 대해

-프로세스:실행 중인 프로그램,자원과 쓰레드로 구성

-쓰레드:프로세스 내에서 실제 작업을 수행하는 단위,모든 프로세스는 하나 이상의 쓰레드를 가지고 있다

-다중 쓰레드:하나의 프로세스(프로그램)에 하나 이상의 쓰레드를 생성하여 실행

데이터베이스 종류

Hierarchical database:ms/db,hdb

network db

relational db,or db

-대형:oracle,db2,sysbase,informix

-소형:ms-sql,mysql,postgresSql

oodb(object oriented database)

oralce과 mysql의 차이

oracle:대용량처리에 적합,유닉스와 리눅스,메인프레임 등에서 사용,db관리자 별도

mysql:5000만건 미만의 데이터 주로 pc,유닉스시스템에서 사용,보통 개발자가 db관리

데이터베이스 언어 관해

ddl:create,alter,drop

dml:select,insert,delete,update

dcl:commit,rollback,grant,revoke

각종 제약사항

-not null

-primary key

-foreign key

-unique

-default

-check

검색성능을 향상 시키는 색인에 대해

색인은 컴퓨터에서 내용을 미리 목록을 만들어 놓고 찾고자 하는 내용을 검색하는데 시간을 줄이기 위한 것이다.

색인은 검색기능을 향상시키기 위한 것으로 정보 요구자가 보다 빨리 정보에 접근할 수 있도록 그 정보의 소개를 표시해주고

원하는 자료의 유무를 확인시켜 주며 자료의 신속한 이용을 가능하게 하는 기능을 가지고 있다.

인덱스(색인)이 만으면 조회 속도는 빠르지만 입력.수정,삭제의 속도는 떨어진다.

트랜잭션에 대해(한꺼번에 모두 수행되어야 할 일련의 연산들을 의미)

데이터베이스 트랜잭션은 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위로 논리적 작업 단위이다.

여기서 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며 일관되고 믿을 수 있는 시스템을 말한다.

데이터베이스 시스템은 각각의 트랜잭션에 대해 원자성,일관성,고립성,영구성을 보증한다.앞글자를 따서 ACID라고 한다.

commit transaction-트랜잭션 성공이며 갱신이 실제 적용

커밋과 롤백에 대해

-커밋:처리결과의 영구적 반영을 시행한다

-롤백:결과를 취소하고 트랜잭션의 처음 시점으로 되돌린다.

crud란

c-create

r-read

u-update

d-delete

커서란

-커서는 일련의 데이터에 순차적으로 엑세스할 때 검색 및 “현재 위치”를 포함하는 데이터 요소

declare->open->fetch->empty->close

server side applet인 servlet에 대해 정의 servlet클래스 만드는 방법

java servlet은 java를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며 흔히 서블릿이라고 한다.

서블릿은 java ee 사양의 일부분으로 주로 이 기능을 이용하여 쇼핑몰이다 온라인 뱅킹 등의 다양한 웹 시스템이 구현되고 있다

서블릿은 외부 요청마다 프로세스보다 가벼운 스레드로써 응답하므로 보다 가볍다 또한 서블릿은 java로 구현되므로 다양한 플렛폼에서 동작한다.

servlet과 jsp의 차이점

servlet은 java 소스에 html 코드가 삽입된다.

jsp는 반대로 html코드에 java코드가 삽입된다.

servlet class는 컴파일과정과 등록과정이 필요하지만 jsp는 필요 없다

servlet보다는 jsp 디자인과 로직에 대한 구분이 명확해서 유지보수에 능하다

간단한 로직을 구현할 때는 jsp가 더 간편하다

하지만 복잡한 로직을 구현할 때에 html 중심의 코드가 이해하기 어렵게 만들 수 있고 프로그래밍 언어를 모르는 사람이 실수로 중요한 코드를 건들 우려가 있다.

그리고 힘들게 개발한 로직의 유출을 막기 위해서도 servlet 기술이 필요하다

그래서 요즘은 jsp기술과 servlet 기술을 혼용한 mvc 프로그래밍 방법이 권장되고 있다.

프로그램의 기능을 구현하는 복잡한 로직은 서블릿 클래스 안에 기술하고 그 결과를 가져다가 출력하는 일만 jsp 페이지가 담당한다.

jsp구성요소인 지시어,주석문,선언문,연산문,수행문 설명

지시어 <%@ %>

page:jsp페이지에 대한 정보를 지정(문서의 타입,출력 버퍼 크기,에러 페이지 등)

-language,contentType,import,session,buffer,autoflush,errorPage,isErrorPage 등등

tablib:jsp페이지에서 사용 할 태그 라이브러리 지정

include:jsp페지이의 특정 영역에 다른 문서를 포함

request와 response 객체 대해

request:클라이언트에서 넘어오는 데이터를 전달받기 위한 객체

response:서버에서 클라이언트로 데이터를 전달하기 위한 객체

클라이언트에서 데이터를 넘기는 방법

html에서 form객체를 작성하여 action으로 정해진 서버의 url로 전달하는데 전달할 때는 submit 함수를 이용하게 된다.

get방식으로 url 뒤에 ?를 이용하여 작성한다.

http수행방식중 get방식과 post방식의 차이점

get은 데이터의 값이 url의 뒤에 이어 붙는다(?로시작하고 &로 여러 데이터를 넘길 수 있다.)

post는 숨겨진 값으로 전송된다(보안에 강하다.단 암호화는 되지않는다.)

get은 url에 이어 붙기 때문에 길이제한이 있어서 많은 양의 데이터를 보내기 힘들다

post는 길이 제한이 없기 때문에 많은 양을 보내기에 적합하다

get은 가져오는 것(select)이고 post는 수행(insert,delete,update)하는 것이다.

post는 데이터가 보이지않아 즐겨찾기가 불가능하다.

쿠키와 세션을 정의하고 특징

쿠키

-클라이언트(브라우저)에 데이터를 저장 setCookie

세션

-session id를 식별자로 서버에 데이터 저장

-session id로는 쿠키나 도메인 파라미터로 사용 주로 사용자 인증시 사용

쿠키와 세션 장단점

쿠키:클라이언트에서 실행됨으로 보안이 취악하나 속도가 삐르다

세션:서버에서 실행되며 속도는 느리지만 보안 기능이 강력하다 로그인 인증은 보안떼문에 세션으로 만든다

mvc란

모델-뷰-컨트롤러의 약자로 소프트웨어 공학에서 사용되는 아키텍쳐 패턴이다

이 패턴을 성공적으로 사용하면 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다.

mvc에서 모델은 애플리케이션의 정보를 나타내며 뷰는 텍스트,체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타내고 컨트롤러는 데이터와 비즈니스 로직 사이의 상호작용을 관리한다.

아이바티스란

sql에 기반한 데이터베이스와 자바,닷넷,루비 등을 연결시켜주는 역할을 하는 영속성 프레임워크이다.

이러한 연결은 프로그램의 소스코드에서 sql 문장을 분리하여 별도의 xml파일로 저장하고 이 둘을 연결시켜주는 방식으로 동작한다.

dom이란

문서 객체 모델은 객체 지향 모델로써 구조화된 문서를 표현하는 형식이다.

dom은 플랫폼/언어 중립적으로 구조화된 문서를 표현하는 w3c의 공식 표준이다.

css란

웹문서의 전반적인 스타일을 미리 저장해 둔 스타일시트이다

문서 전체의 일관성을 유지할 수 있고,세세한 스타일 지정의 필요를 줄어들게 하였다.

프레임워크를 사용하는 이유

개발자는 각자 실력차이의 폭이 큰 직업군이다.

개발자의 구성에 따라 프로젝트 결과물의 차이가 크다

프레임워크는 미리 코드로 구조를 구성하며 개발자가 해당 구조에 코드를 짜 맞추는 방식이다.

회사는 프레임워크를 사용함으로써 일정한 품질을 보장 받을 수 있다.

개발자는 정해진 틀에서 부품을 끼워 맞추기에 개발 시간을 단축 시킬 수 있다.

스프링 프레임워크의 특징

pojo(plain old java object)기반의 프레임워크 즉 pojo의 구성만으로 제작이 가능

의존성 주입(di:dependency injdection)를 통한 객체간의 관계 구성

생성자 주입->setter를 통한 주입->인터페이스를 통한 주입

aop(aspect oriented programming)관점 지향 프로그래밍 즉 aop는 application 전체에 걸쳐 사용되는 공통된 기능을 재사용하도록 지원하는 기법,즉 oop를 돕는 보조적인 기술

di란

의존성을 주입하는 것

설정 파일을 통해 객체간의 의존객체를 설정함으로써 외부 assembler가 객체간의 의존 관계를 정의하게 되며

객체는 직접 의존하고 있는 객체를 생성하거나 검색할 필요가 없어지므로 코드의 관리가 쉬워진다.

aop란

다양한 곳에서 자주 사용되는 공통 관심 요소를 단일 기능으로 뽑아내어 코드의 중복을 줄이고 관리의 효율성을 높이는 것을 목적

로깅이나 로그인 등의 기능을 예를 들수 있다.

pojo란

그대로 해석하면 오래된 방식의 간단한 자바 오브젝트라는 말로서 j2ee등의 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 중속된 무거운 객체를 만들게 된 것에 반발해서 사용하게 된 용어들이다.

메이븐

자바용 프로젝트 관리 툴

아파치 오픈 소스 빌드 툴

rest 서비스란

확장성 생성언어xml 파일로 된 웹 페이지를 읽어 원하는 정보를 수집하는 기능

static의 의미

클래스가 로딩될 때 메모리 공간을 할당하는데 처음 설정된 메모리 공간이 변하지 않음을 의미

객체를 아무리 많이 만들어도 해당 변수는 하나만 존재

객체-주체가 실생활에서 파악할 수 있는모든 사물을 의미

클래스-객체의 설계도를 코드화

인스턴스-객체를 생성하며 jvm이 관리하는 메모리에 전개된 것

객체를 단순화시켜 설계한 코드가 클래스이며 코드화된 객체를 생성하여 메모리에 적재한 것을 인스턴스

객체지향

캡술화,다형성,상속을 이용하여 코드 재사용 증가 유지보수 감소

추상클래스 인터페이스 차이

추상클래스

extends

한개 이상의 추상 메서드를 가지고 있는 클래스

인스턴스의 생성이 불가능하며 해당 클래스를 상속하여 추상 메서드를 구현해야만 사용 가능

인터페이스

implements

메서드에 대한 명세와 상수만 존재

상속받은 클래스는 인터페이스에 있는 모든 메소드를 구현해야 한다

공통점

선언만 있고 구현 내용이 없는 클래스,상속받은 자식 클래스가 반드시 구현해야 한다.

차이점

추상클래스를 상속받은 클래스는 반드시 추상 메서드를 구현해야 한다

추상클래스 단일 상속 인터페이스 다중 상속