프로그래밍

채상혁·2022년 5월 13일
0

면접

목록 보기
1/1

JAVA 언어의 특징
객체지향형 언어, 플랫폼 독립적, 라이브러리 지향성, 보안성, 멀티 쓰레드, 가상머신(JVM), 바이트 코드

하나의 프로세스를 다수의 실행 단위로 구분하여 자원을 공유하고
자원의 생성과 관리의 중복성을 최소화하여
수행 능력을 향상시키는 것을 멀티쓰레딩이라고 한다.

하나의 프로그램에 동시에 여러개의 일을 수행할수 있도록 해주는 것이다.

객체지향 언어의 장점 : 코드의 재사용성 증가, 코드의 관리가 용이, 제어자와 메서드를 이용해서 데이터를 보호하고 코드의 중복을 제거

배열, 컬렉션의 차이점 : 배열은 하나의 자료형만 저장이 가능하고 컬렉션은 복수의 자료형을 저장할 수 있다. 고정된 크기, 가변적 크기.

원시타입과 참조타입 : 변수에 값 자체를 저장, 메모리상에 객체가 있는 위치를 저장.

다형성 : 하나의 객체가 여러가지 타입을 가질 수 있게 하는 것.

멀티 쓰레드를 구현하는 방법 Thread 클래스를 상속, Runnable 인터페이스를 상속

List : 순서가 있는 데이터의 집합 중복허용
Set : 순서가 없는 데이터의 집합 중복 허용 x
Map : Key, Value 값으로 이루어진 데이터의 집합으로 순서는 유지 x

컬렉션에서 Generic 이 추가된 이유 : 컬렉션의 복수 자료형으로 인해 저장형 자료 한가지만 저장하기 위해서 나온 것이 제네릭.

접근 제어자의 종류
private: 같은 클래스에서만
default: 같은 패키지 내에서만
protected: 같은 패키지 내에서, 다른 패키지의 자손클래스에서 접근이 가능
public: 접근 제한이 없다.

Wrapper: 원시타입으로 표현할 수 있는 간단한 데이터를 객체로 만들어야 할 경우가 있는데 그러한 기능을 지원하느 클래스

추상클래스 : 미완성 설계도 -> 상속을 통해서 자손클래스에 의해서 완성된다.

인터페이스 : 추상 클래스보다 추상화 정도가 높아서 추상 메서드와 상수만을 멤버변수로 가질 수 있으며 다중상속 가능, 결합도 저하

  • 인터페이스를 왜 쓰는지 ?

--다형성을 구현하기 위해서 사용 클래스 간의 결합도를 낮추고 응집도를 높힐 수 있다.
스프링에서 DI 등에서 다형성을 구현하고 결합도를 낮추기 위해 사용

List 인터페이스를 구현한 ArrayList 컬렉션 이란?
가변적크기, 순차적으로 요소값을 저장, 중복 요소 값을 허용한다.

자바의 메모리 구조:
CODE -> DATA -> BSS(초기화 안된 전역변수) -> HEAP -> STACK

오버로딩과 오버라이딩의 차이점?
-- 오버로딩은 같은 클래스 내에서 메서드 이름은 같지만 매개변수의 개수나 데이터의 형식을 다르게 정의

-- 오버라이딩은 부모와 자식간의 관계에서 부모의 메서드를 재정의 하는것으로 매개변수의 개수나 데이터의 형식은 같다.

동기화란 무엇인가?

-- 하나의 자원을 여러 태스크가 사용하려 할 때에 한 시점에서 하나의 태스크만이 사용할 수 있도록 하는 것

프로세스와 쓰레드의 차이점?

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

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

객체지향이란 ?

--추상화 캡슐화 상속

객체지향 프로그래밍이란 : 기능과 데이터를 객체로 취급하여 프로그램에 반영 순차적 실행이 아닌 객체와 객체의 상호작용을 통해 동작하는것입니다.

객체지향과 절차지향 프로그래밍의 차이는 무엇입니까?

-- 순차적 프로그래밍, 작업순서대로 코딩, 함수 단위로 구성되며 기능별로 묶어놓는 특징이 있다.

-- 구성요소 클래스,객체 객체별로 개발이 가능합니다. 코드 재사용이 가능, 안정성 증가.

자바언어란?

JVM만 설치하면 컴퓨터의 운영체제에 상관없이 작동한다. 기본 자료형을 제외한 모든 요소들이 객체로 표현되고 캡슐화, 사옥, 다형성이 적용된 언어 가비지 컬렉터를 지원하고 멀티쓰레드를 지원합니다.(다중동기화)

자바언어의 컴파일 과정
컴파일러가 소스코드를 자바 바이트 코드로 변환 (.class) -> JVM 바이트 코드를 기계어로 변환하여 인터프리터 방식으로 application을 실행.

스크립트 언어와 컴파일 언어의 차이점은??
스크립트 언어는 실행될 때 바로 해석, 코드 수정 후 실행할 때마다 결과 바뀐다는 특징,
컴파일 언어는 한번 컴파일 한 후 , 코드 수정 후 다시 컴파일하기 전까지는 결과 동일 속도 차이가 있다.

다형성과 상속은 무엇입니까?
-객체지향개발의 두가지 특징입니다.
다형성이란 하나의 지시에 대해 여러 객체가 각자 다른 행위를 수행하는 것을 말합니다. 행동을 구현하는 수 많은 다른 클래스들을 갖게 합니다.

-상속은 기존 클래스의 변수와 메서드를 모두 취하여 추가적인 기능도 가지는 클래스를 새로 만드는것

Static 이란 무엇입니까?

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

자바 메모리 영역

메서드 영역, 스택, 힙

배열과 링크드리스트의 차이점은 무엇입니까?

배열은 인덱스를 가지며,데이터를 한번에 접근하여 접근속도가 빠르고 크기 변경이 불가능합니다. 반면에 링크드리스트는 인덱스대신 현재 위치의 이전 다음 위치를 기억하고 한번에 접근 불가하여 배열보다 속도가 떨어지고 크기가 가변적입니다.

스택과 큐의 차이점은 무엇입니까?
Stack 지역변수, 함수 LIFO
QUEUE FIFO

프레임워크란 무엇입니까?
:소프트웨어를 만들 때 뼈대가 되는 부분을 미리 구현한 클래스, 인터페이스, 메서드등의 모음입니다.

Spring FrameWork를 사용하는 이유는?
스프링은 전체구조에 집중했기 때문에 특정영역의 프레임워크와 공존하는 방식으로 사용이 가능하다.

POJO방식 의존성주입을 통한 객체간의 관계구성 관점지향프로그래밍, 트랜잭션을 지원합니다. xml설정가능합니다.

Class와 Instnace 의 차이점은 무엇인가?
클래스는 어떤 특정 종류의 모든 객체들에 대해 일반적으로 적용할 수 있는 변수와 메서드를 정의하고 있는 소프트웨어적 설계도, 인스턴스는 클래스에 대해 선언, 생성되는 변수이며 메모리 공간을 차지하게 됩니다.

객체는 소프트웨어 구현할 대상이고 구현할 설계도가 class이며 실체가 instance입니다.

servlet과 jsp의 차이점에 대하여 말해 보세요...?

  • servlet은 JAVA + HTML코드
  • JSP는 HTML + JAVA코드 jsp는 컴파일 과정과 등록 과정이 필요없다.

request와 response 객체..
클라이언트에서 넘어 오는 데이터를 전달 받기 위한 객체
서버에서 클라이언트로 전달하기 위한 객체

쿠키와 세션을 정의하고 특징을 설명하시오.

쿠키 : 클라이언트에 데이터를 저장합니다. 보안이 취약하고 속도가 빠릅니다.

세션 : sid를 식별자로 서버에 데이터를 저장 속도는 느리지만 보안이 강력합니다.

MVC 모델이란 무엇입니까??

model, view, controller로 모델은 어플리케이션의 정보, 뷰는 텍스트, 컨트롤러는 데이터와 비즈니스 로직 사이의 상호동작을 관리합니다.

스프링 프레임 워크

  1. CI란 무엇인가요??
    continuous integration 지속적인 통합을 의미합니다. 개발과 동시에 통합을 진행함으로써 소프트웨어의 품질 향상목표

  2. DI란 무엇인가요?
    의존성 주입을 뜻합니다. 설정파일을 통해 객체간의 의존관계를 설정함으로써 외부 어셈블러(기계어) 객체간의 의존 관계를 정의하게 되며, 객체는 직접 의존하고 있는 객체를 생성하거나 검색할 필요가 없어지므로 관리가 쉬워진다.

  3. AOP란 무엇인가?
    자주 사용되는 요소를 단일 기능으로 뽑아내어 코드의 중복을 줄이고 관리의 효율성을 높이는 것을 목적으로 합니다. 로그인등;;

  4. POJO란 무엇인가?
    특정 자바 모델이나 기능, 프레임워크 등을 따르지 않은 자바 오브젝트를 지칭하는 말

  5. MAVEN 이란?
    프로젝트 관리툴 현재는 gradle을 많이 쓰는것으로 압니다. 오픈소스 빌드 툴.

6 SVN이란?
버전관리 시스템으로 서버기반으로 사용할 수 있는 프로그램입니다.

7 MyBatis란?
데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 해주는 개발 프레임 워크.
소스코드에서 SQL문장을 분리하여 별도의 XML파일로 저장하고 서로 연결시켜주는 방식
XML 서술자나 아노테이션을 통해서 객체들을 연결시킵니다.

8 REST 서비스란 ??
XML(확장성 생성 언어) 파일로 된 웹 페이지를 읽어 원하는 정보를 수집하는 기능
..... 추가 요망.

PROJECT

SI 시스템 통합
기획 개발 구축 운영까지...

ISP(전략정보시스템 계획) BRP(업무 재설계) 요구사항분석 업무분석 설계 구현 시험 인수 및 구축 운영 및 유지보수

0개의 댓글