기술 면접
-
기술 면접 - JAVA (기본)기술 면접 2021. 4. 22. 02:13
1. JAVA 언어 특징 운영체제에 독립적 JVM에서 동작하기 때문에, 특정 운영체제에 종속되지 않음 하지만 JVM은 운영체제마다 따로 설치해야 한다 객체 지향 언어 캡슐화, 상속, 다형성, 추상화 객체 지향 설계 5원칙(SOLID) 가비지 컬렉터를 통한 자동 메모리 관리 멀티 스레드를 쉽게 구현 동적 로딩을 지원 애플리케이션이 실행될 때 모든 객체가 생성되는 것이 아니고, 각 객체가 필요한 시점에 클래스를 동적 로딩해서 사용 2. JVM(Java Virtual Machine) JVM의 구조 중 메모리 구조는 다음과 같이 구성됩니다. Method Area(메소드 영역): 클래스 변수의 이름, 타입, 접근 제어자 등과 같은 클래스와 관련된 정보를 저장한다. 그 외에도 static 변수, 인터페이스 등이 저..
-
기술 면접 - 자료구조 (Hash 테이블)기술 면접 2021. 4. 22. 02:12
테이블이란 저장되는 데이터가 key와 value가 하나의 쌍을 이루는 것 테이블에 저장되는 모든 데이터들을 이를 구분하는 키가 있어야 하고, 이 키는 데이터를 구분하는 기준이 되기 때문에 중복이 되어서는 안됨 해쉬 함수 키값이 배열의 인덱스 값으로 사용하기에는 적당하지 않다! 키값의 범위가 매우 넓어서 매우 큰 배열이 필요하다! 이 두 가지 문제를 동시에 해결해 주는 것이 해쉬 함수 넓은 범위의 키를 좁은 범위의 키로 변경하는 역할을 수행함 충돌 만약 서로 다른 두 개의 키가, 해쉬 함수를 통과하였는데, 그 결과가 같다면 이를 충돌이라고 한다 충돌이 많이 일어난다면, O(1)으로 값을 탐색할 수 있는 장점이 없어진다 충돌 문제 해결책 1. Open Addressing 해시 충돌이 발생하면, 비어 있는 다..
-
기술 면접 - 자료 구조(비선형 구조)기술 면접 2021. 4. 22. 02:10
1. 트리 트리는 계층적 관계를 표현하는 자료 구조 연결리스트를 기반으로 만들어진다 노드 트리의 구성요소에 해당하는 1, 3, 6 같은 요소 간선 노드와 노드를 연결하는 선 루트 노드 트리 구조에서 최상위에 존재하는 노드 리프 노드 자식 노드가 없는 노드 내부 노드 리프 노드를 제외한 모든 노드 이진 트리와 서브 트리 루트 노드를 중심으로 두 개의 서브 트리(큰 트리에 속하는 작은 트리)로 나뉘어 진다. 또한 나뉘어진 두 서브 트리도 모두 이진 트리어야 한다. 위의 그림이 이진 트리의 예시! 트리에서는 각 층별로 숫자를 매겨서 이를 트리의 Level(레벨)이라고 한다. 레벨의 값은 0 부터 시작하고 따라서 루트 노드의 레벨은 0 이다. 그리고 트리의 최고 레벨을 가리켜 해당 트리의 height(높이)라고..
-
기술 면접 - 자료 구조 (선형 구조)기술 면접 2021. 4. 22. 02:10
자료구조란? 데이터의 표현 및 저장 방법 선형 자료구조 데이터를 선의 형태로, 나란히 혹은 일렬로 저장하는 방식 1 . 순차 리스트 배열을 기반으로 만든 리스트 논리적 저장 순서와 물리적 저장 순서가 일치함 찾고자 하는 원소의 인덱스 값만 알고 있다면 O(1)에 해당 원소로 접근할 수 있음 add 배열의 끝에 원소를 추가, 위치를 알고 있기 때문에, O(1) remove 배열의 원소를 지웠을 때, 그 뒤의 원소들을 앞으로 한 칸씩 밀어줘야 함, O(N) get 인덱스를 알고 있다면, 시작 위치 + 인덱스로 주소를 알 수 있음, O(1) Contains 어떤 원소를 가지고 있는지 확인, 모든 원소를 순서대로 찾아봐야 한다, O(N) 2. 연결 리스트 메모리의 동적 할당을 기반으로 구현된 리스트 각각의 원소..
-
기술 면접 - 디자인 패턴기술 면접 2021. 4. 21. 01:57
디자인 패턴이란? 자주 사용하는 설계 패턴을 정형화 해서 이를 유형별로 가장 최적의 방법으로 개발을 할 수 있도록 정해둔 설계 알고리즘과 유사하지만, 명확하게 정답이 있는 형태는 아니며, 프로젝트의 상황에 맞추어 적용 가능 생성 패턴 객체를 생성하는 것과 관련된 패턴으로, 객체의 생성과 변경이 전체 시스템에 미치는 영향을 최소화 하고, 코드의 유연성을 높여준다 Factory Method Singleton Prototype Builder Abstract Factory 구조 패턴 프로그램 내의 자료구조나 인터페이스 구조 등 프로그램 구조를 설계하는데 활용될 수 있는 패턴 클래스, 객체들의 구성을 통해서 더 큰 구조를 만들 수 있게 해준다 Adapter Composite Bridge Decorator Faca..
-
기술 면접 - 객체 지향기술 면접 2021. 4. 20. 02:05
객체지향이란 현실에 존재하는 사물을 있는 그대로 모델링하여, 이들의 행위와 속성을 정의하고, 절차적이 아닌 객체가 중심이 되어 실제 사물이 동작하는 방식으로 설계하는 방식 사물에 대해서는 객체라고 부르며, 해당 사물이 하는 행위를 메소드로 정의하고, 해당 사물이 가지는 속성을 변수라고 정의합니다 객체 지향의 4대 특성 캡슐화 객체의 속성을 보호하기 위해서 사용함 장점 객체 지향의 패러다임 중 하나인 추상화를 제공 실제로 메서드가 어떻게 동작하는지는 외부에서는 이해할 필요가 없으며, 이를 단순 호출만으로 해당 기능을 실행 할 수 있고, 이를 통해서 객체 단위로 프로그램 설계가 가능 재사용성 향상 한 객체에 관련된 속성 및 메서드는 모두 캡슐화의 형태로 제공됨으로, 객체의 모듈성과 응집도가 높아짐 유지보수 ..
-
기술 면접 - 데이터 베이스 (2)기술 면접 2021. 4. 20. 02:04
정규화 이상 현상이 발생하는 테이블을 수정하여 정상으로 만드는 과정 정규화를 하기 위해서는 테이블을 분석하여 기본키와 함수 종속성을 파악해야 함 함수 종속성 어떤 속성 A의 값을 알면 다른 속성 B의 값이 유일하게 정해지는 의존 관계를 '속성 B는 속성 A에 종속한다' 라고 함 A -> B라고 표기, A는 B의 결정자 정규화 과정 이상현상이 있는 릴레이션은 이상현상을 일으키는 함수 종속성의 유형에 따라 등급을 구분할 수 있음 릴레이션은 정규형이라는 개념으로 구분 제 1 정규형 릴레이션의 속성 값이 원자값이어야 한다 제 2 정규형 릴레이션 R이 제 1 정규형이고 기본키가 아닌 속성이 기본키에 완전 함수 종속일 때 이상현상을 일으키는 속성을 분리한다 제 3 정규형 속성들이 이행적으로 종속되어 있는지 여부 이..
-
기술 면접 - 데이터 베이스 (1)기술 면접 2021. 4. 20. 02:02
데이터베이스 시스템 데이터 베이스 특징 실시간 접근성 계속적인 변화 동시 공유 내용에 따른 참조 DBMS의 장점 데이터의 독립성 물리적 독립성 : 데이터베이스 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도 관련된 응용 프로그램을 수정할 필요가 없다. 논리적 독립성 : 데이터베이스는 논리적인 구조로 다양항 응용 프로그램의 논리적 요구를 만족시켜줄 수 있다. 데이터의 무결성 여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지하는 기능으로 데이터의 유효성 검사를 통해 데이터의 무결성을 구현하게 된다. 데이터의 보안성 인가된 사용자들만 데이터베이스나 데이터베이스 내의 자원에 접근할 수 있도록 계정 관리 또는 접근 권한을 설정함으로써 모든 데이터에 보안을 구현할 수 있다...