공부/면접 준비(30)
-
[면접준비] 정렬 알고리즘을 설명해 주세요. (24/04/11)
선택 정렬(Selection Sort) 특징: 배열의 각 위치에 대해 나머지 부분에서 최소값을 찾아 위치를 교환한다. 장점: 구현이 간단하다. 단점: 시간 복잡도 O(n^2), 대규모 데이터셋에 비효율적이다. 메모리 사용: 추가 메모리 사용이 거의 없음 (In-place). function selectionSort(arr) { for (let i = 0; i < arr.length; i++) { let minIdx = i; for (let j = i + 1; j < arr.length; j++) { if (arr[j] < arr[minIdx]) { minIdx = j; } } [arr[i], arr[minIdx]] = [arr[minIdx], arr[i]]; } return arr; } 버블 정렬(Bub..
2024.04.11 -
[면접준비] Array, LinkedList에 대해 설명해주시고 각각 어떻게 사용하는지 말씀해주세요. (24/04/08)
Array 정의 고정된 크기의 연속적인 메모리 공간에 원소들을 저장하는 자료구조 특징 고정된 크기 : 생성시 크기가 정해지며, 이후에 크기를 동적으로 변경하기는 어렵다. 인덱싱 : 인덱스를 사용해 접근, 접근에 O(1)시간이 걸림. 메모리 사용 : 연속적인 메모리 공간을 사용하므로 메모리 관리에 용이함. LinkedList 정의 노드들의 집함. 각 노드는 데이터와 데이터를 가리키는 포인터로 구성되어 있음. 특징 동적 크기 : 크기를 동적으로 변경할 수 있기 때문에 노드를 추가하거나 삭제하면서 크기 조절 가능. 포인터 : 링크드 리스트에서 각 노드들은 다음 노드를 가리키는 포인터를 포함하고 있다. 메모리 사용 : 비연속적인 메모리 공간을 사용한다. 답변 Array와 LinkedList는 데이터를 저장하는 ..
2024.04.08 -
[면접준비] NoSQL과 RDBMS의 특징과 차이점에 대해서 장, 단점을 들어 설명해주세요. (24/04/08)
NoSQL 특징 유연성 : 스키마 선언 없이 필드 추가, 삭제가 자유로운 schema-less 구조 확장성 : 스케일 아웃에 의한 서버 확장 용이 고성능 : 대용량 데이터를 처리하는 성능이 뛰어남 가용성 : 여러 백업 서버 구성이 가능하여 장애 발생 시에도 무중단 서비스 가능 장점 수직 및 수평적 확장(샤딩)이 가능하므로 데이터베이스가 어플이 발생시키는 모든 CRUD 처리 가능. 데이터가 어플이 필요로 하는 형식으로 저장되며, 이로 인해 읽어오는 속도가 빠르다. 비구조화된 데이터 처리와 대량의 분산 데이터 처리에 효율적임. 필요에 따라 스키마를 정의할수도 있다. 단점 데이터베이스 일관성에 약하다. 일관성을 가용성, 분할 용인, 속도와 맞바꾸었다. 복잡한 쿼리는 지원하지 않을 수 있다. BASE특성 RDB..
2024.04.08 -
[면접준비] 클래스형과 함수형의 차이를 설명해주세요. 어떤 방식을 주로 사용하였고 그 이유가 뭔지 답변해주세요. (24/04/05)
함수형 전달받은 인자값을 중심으로 결과값을 반환하는 간결한 방식의 프로그래밍으로 데이터를 함수 내부에서 따로 저장하거나 하지 않는다. 한 번에 하나의 작업만 수행하는 함수들의 조합으로 로직을 처리한다. 클래스형 객체지향 프로그래밍. SOLID원칙 S (SRP) 단일 책임 원칙 (Single responsibility principle) 한 클래스는 하나의 책임만 가져야 한다. O (OCP) 개방-폐쇄 원칙 (Open/closed principle) “소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.” L (LSP) 리스코프 치환 원칙 (Liskov substitution principle) “프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 ..
2024.04.05 -
[면접준비] 객체지향 프로그래밍이란 무엇이고 어떻게 활용할 수 있나요? (24/04/05)
객체지향 프로그래밍(OOP) 소프트웨어 개발 프로그래밍 패러다임중 하나로, 현실 세계의 사물을 모델링하여 소프트웨어를 개발하는 방법이다. 핵심 개념 클래스와 객체 클래스 : 객체를 생성하기 위한 설계도, 템플릿. 객체 : 클래스의 인스턴스. 데이터와 데이터를 처리하기 위한 메서드를 포함한다. 추상화 여러 객체들의 공통적인 특징(속성과 기능)을 추출하여 정의하는것. 클래스 정의 = 추상화. 상속 상위 클래스의 특성과 메서드를 하위 클래스가 상속받는다. 코드의 재사용성을 높일 수 있다. 다형성 같은 이름의 메서드가 다양한 형태로 동작할 수 있는 능력을 가리킴. 상위 클래스에 정의된 메서드가 하위 클래스에서 다르게 구현될 수 있음. 오버라이딩 : 하위 클래스가 상위 클래스에서 상속받은 메서드를 재창조해서 사용..
2024.04.05 -
[면접준비] OSI 7계층에 대해 아는대로 설명해주세요. (24/04/04)
OSI 7계층 OSI 7 계층 모델은 네트워크 통신 과정을 이해하기 쉽게 단계별로 구분하여, 문제 발생 시 특정 계층만 집중적으로 다룰 수 있도록 설계되었습니다. 단계 물리계층(Physical Layer) 전기적, 기계적, 기능적 특성을 기반으로 데이터를 전송. 데이터를 전달만 할뿐, 데이터에 대한 판단은 전혀 신경쓰지 않는다. 케이블, 리피터, 허브 데이터 링크 계층(DataLink Layer) 전달받은 정보의 오류와 흐름을 관리하여 정보 전달을 수행하는 계층. 이 계층에서 전송되는 단위를 프레임이라고 하며, 프레임간 오류 검출과 수정을 수행하며 물리 계층에서 전송된 데이터를 논리적인 단위로 분리한다. MAC 주소 네트워크 계층(Network Layer) IP 주소를 사용하는 계층으로, 데이터를 목적지..
2024.04.04