IT/CS

웹 프로그래머 단골 기술 면접 질문 (2)

Eri_n 2022. 5. 26. 13:53
반응형

10. Primitive typeReference type

Primitive type - 변수에 값 자체를 저장

정수형 byte, short, int, long

실수형 float, double

문자형 char 논리형 boolean

* Primitive typeWrapper Class를 통해 객체로 변형할 수 있다.

 

Reference type - 메모리상에 객체가 있는 위치를 저장

종류 - Class, Interface, Array

 

11. Wrapper Class

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

 

12. 접근제한자(public > protected > default > private)

public - 접근 제한이 없다. (같은 프로젝트 내에 어디서든 사용가능)

protected - 같은 패키지 내, 다른 패키지에서 상속받아 자손클래스에서 접근 가능

default - 같은 패키지 내에서만 접근 가능

private - 같은 클래스 내에서만 접근 가능

13. 소켓 통신(TCP/UDP)

TCP(Transmission Control Protocol)

- 연결형 서비스 제공

- 높은 신뢰성 보장

- 연결의 설정(3-way handshaking)

- 연결의 해제(4-way handshaking)

- 데이터 흐름 제어, 혼잡 제어

- 전이중, 점대점 서비스(양방향 송수신 서비스)

 

UDP(User Datagram Protocol)

- 비연결형 서비스 제공

- 신뢰성이 낮음

- 데이터의 전송 순서가 바뀔 수 있음

- 데이터 수신 여부 확인 안함(3-way handshaking과 같은 과정 X)

- TCP보다 전송속도가 빠름

 

14. Stack, Queue

STACK

- LIFO(Last In First Out)의 후입선출 구조

- push();를 이용한 데이터 입력, pop();을 이용한 데이터 출력

- ) 시스템 스택 : 함수의 호출과 복귀 순서는 스택의 구조를 응용하여 관리

- 역순 문자열 만들기, 수식의 괄호 검사, 수식의 후위 표기법 변환

 

QUEUE

- FIFO(First In First Out)의 선입선출 구조

- enQueue();를 이용한 데이터 입력, deQueue();를 이용한 데이터 출력

- ) 우선순위가 같은 작업 예약(인쇄 대기열), 선입선출이 필요한 대기열(티켓 카운터)

* Linear Queue(선형큐)는 메모리 재사용이 불가능 이러한 문제점을 보완하여 Circular Queue(원형 큐)가 나옴

 

15. Singleton Design Patter(싱글톤 디자인 패턴, 싱글톤 패턴)

- 클래스 인스턴스가 하나만 만들어지도록 하고, 그 인스턴스에 대한 전역 접근을 제공한다.

 

16. 제네릭

다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능

잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거할 수 있다.

클래스 내부에서 사용할 데이터 타입을 나중에 인스턴스를 생성할 때 확정하는 것

 

17. 람다식

(매개변수) -> {실행코드} 형태로 작성

런타임 시 인터페이스의 익명 구현 개체로 생성됨. (람다식은 인터페이스 변수에 대입됨)

하나의 추상 메소드가 선언된 인터페이스만이 람다식의 타켓 타입이 될 수 있음

>> 이런 인터페이스 = 함수적 인터페이스 : 함수적 인터페이스 작성 시 두 개 이상의 추상 메소드가 선언되지 않도록 컴파일러가 체킹해주는 기능이 있는데, 인터페이스 선언 시 @FunctionalInterface 어노테이션을 붙이면 됨.

 

장점

코드 간결, 가독성 향상, 코딩 시간이 줄고 병렬프로그래밍 용이

단점

재사용 불가, 디버깅 까다로움

 

18. 스트림

컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자

Iterator와 비슷한 역할, but 차이점

내부 반복자를 사용하므로 병렬처리가 쉽다.

- 외부 반복자란 개발자가 코드로 직접 컬렉션의 요소를 반복해서 가져오는 코드 패턴.

: index를 이용하는 for, Iterator를 이용하는 while문 등.

- 내부 반복자는 컬렉션 내부에서 요소들을 반복시키고, 개발자는 요소당 처리해야 할

코드만 제공하는 코드패턴. so 코드 간결, 병렬처리가 컬렉션 내부에서 처리 됨.

 

요소 처리 코드를 제공

- 요소 처리 내용을 매개값으로 전달할 수 있음.

 
반응형