본문 바로가기

기술면접 대비

(11)
클러스터 인덱스란? 클러스터링 인덱스(Clustered Index)는 데이터베이스에서 사용되는 인덱스(Index) 중 하나로, 데이터베이스 내의 테이블에 대한 인덱스를 생성할 때 주로 사용됩니다. 클러스터링 인덱스는 데이터베이스 테이블에서 행(row)의 물리적인 순서에 따라 인덱스를 구성합니다. 즉, 클러스터링 인덱스를 생성하면 해당 테이블의 모든 데이터가 클러스터링 인덱스에 따라 정렬됩니다. 이로 인해 검색 속도가 빨라지는 장점이 있습니다. 하지만 클러스터링 인덱스를 생성하면 해당 테이블의 데이터를 변경할 때마다 인덱스를 재정렬해야 하므로 삽입, 삭제, 수정 연산의 성능이 저하될 수 있습니다. 또한 하나의 테이블에 대해서는 하나의 클러스터링 인덱스만 생성할 수 있습니다. https://github.com/zeroempty..
오버로딩, 오버라이딩 오버로딩과 오버라이딩의 차이점 오버로딩(overloading)과 오버라이딩(overriding)은 둘 다 메소드의 재정의를 의미하지만 차이점이 있습니다. 오버로딩은 같은 이름의 메소드를 여러 개 정의하는 것을 의미합니다. 이때 각 메소드는 매개변수의 개수나 타입이 달라야 합니다. 오버로딩을 사용하면 같은 기능을 하는 메소드를 여러 개 만들 수 있습니다. 오버라이딩은 상속 관계에 있는 클래스에서 부모 클래스의 메소드를 자식 클래스에서 재정의하는 것을 의미합니다. 오버라이딩을 사용하면 부모 클래스의 메소드를 자식 클래스에서 새롭게 구현할 수 있습니다. 오버로딩은 같은 이름의 메소드를 여러 개 정의하는 것이고, 오버라이딩은 상속 관계에 있는 클래스에서 부모 클래스의 메소드를 재정의하는 것입니다. https:/..
배열(Array), 링크드 리스트(linked list), 스택(Stack), 큐(Queue) Stack과 Queue 그리고 Array와 Linked List 자료구조에 대해 말씀해주시고 차이점에 대해 설명해주세요. Stack은 Last In First Out 방식을 가지는 자료구조입니다. 스택은 들어온 순서대로 데이터가 쌓이며, 가장 마지막에 들어온 데이터가 먼저 삭제되는 자료구조입니다. Queue는 First In First Out (FIFO) 방식으로 작동하는 자료 구조입니다. 큐는 새로 들어온 데이터가 먼저 들어온 데이터의 뒤쪽에 추가되고, 들어온 순서대로 데이터가 삭제됩니다. Stack과 Queue는 Array 또는 Linked List를 기반으로 구현할 수 있습니다. Array는 순차적(ordered)으로 데이터를 저장한다는 특징을 가지고 있습니다. 데이터가 들어온 순서대로 저장이 되며..
트랜잭션 트랜잭션이 무엇인지 설명해 주세요. 트랜잭션은 데이터베이스 관리 시스템에서 수행되는 작업 단위입니다. 하나 이상의 작업을 묶어서 하나의 트랜잭션으로 만들고, 이를 모두 실행하거나 모두 취소할 수 있는 기능을 제공합니다. 예를 들어, 은행에서 계좌 간 이체를 수행하는 경우, 이체 금액을 출금 계좌에서 차감하고, 입금 계좌에 입금하는 두 가지 작업이 필요합니다. 이 두 작업을 하나의 트랜잭션으로 묶어서 실행하면, 이체가 완료되거나 실패할 때는 모두 함께 처리됩니다. 만약 중간에 오류가 발생하여 이체가 실패하면, 이전에 처리된 출금 작업도 취소됩니다. 트랜잭션은 ACID라는 특징을 가지고 있습니다. ACID는 Atomicity(원자성), Consistency(일관성), Isolation(격리성), Durabi..
POJO란? POJO는 Plain Old Java Object의 약자로, 특정 프레임워크나 라이브러리에 종속되지 않고, 순수한 자바 객체를 의미합니다. 즉, POJO는 자바에서 객체 지향적인 프로그래밍을 할 때 사용되는 일반적인 객체입니다. POJO는 특정한 인터페이스를 구현하거나 클래스를 상속받지 않으며, 일반적으로 getter/setter 메서드를 제공하여 객체의 속성을 설정하고 검색하는 방법을 제공합니다. POJO는 특히 자바 기반의 웹 애플리케이션에서 데이터 전송 객체(Data Transfer Object)로 사용되어 데이터베이스에서 데이터를 검색하고 이를 사용자에게 보여줄 때 유용합니다. https://github.com/zeroempty2/TIL/blob/main/JAVA/POJO.md GitHub - z..
TCP와 UDP TCP와 UDP의 공통점과 차이점을 설명해보세요. TCP와 UDP는 인터넷 프로토콜 중 두 가지 주요한 전송 계층 프로토콜입니다. 공통점: 둘 다 인터넷 프로토콜 중 전송 계층에서 사용되는 프로토콜입니다. 둘 다 패킷(Packet)을 이용하여 데이터를 전송합니다. 둘 다 IP 프로토콜을 사용하여 통신합니다. 차이점: TCP는 연결 지향적인 프로토콜이고, UDP는 비연결 지향적인 프로토콜입니다. TCP는 신뢰성 있는 전송을 보장합니다. 패킷의 손실이나 에러가 발생하면 다시 전송하거나 오류를 수정하여 보내지며, 데이터 전송 후에도 확인 응답을 보내어 수신 여부를 확인합니다. 반면 UDP는 신뢰성이 보장되지 않습니다. 패킷의 손실이나 에러가 발생하면 다시 전송하지 않습니다. TCP는 데이터의 순서를 보장합니다..
프로세스와 스레드 프로세스와 스레드의 차이에 대해 설명해 주세요 프로세스(Process)와 스레드(Thread)는 컴퓨터 시스템에서 동시에 실행될 수 있는 작업 단위를 나타내는 용어입니다. 프로세스는 운영체제로부터 자원을 할당 받은 독립적인 실행 단위입니다. 각 프로세스는 자신만의 메모리 공간을 갖고, 실행 중에는 다른 프로세스와는 완전히 분리된 상태입니다. 프로세스는 독립적으로 실행되기 때문에 서로 간섭하지 않고, 각각이 독립적인 작업을 수행할 수 있습니다. 스레드는 프로세스 내에서 실행되는 실행 단위입니다. 한 프로세스 내에서 여러 개의 스레드를 만들 수 있으며, 이 스레드들은 프로세스 내부의 자원(메모리, 파일 등)을 공유합니다. 스레드는 각각이 별도의 스택(Stack)을 갖고 있지만, 코드, 데이터 섹션, 열린 파..
MSA(Microservice Architecture)란? MSA(Microservice Architecture)란? MicroService Architecture는 이름에서부터 알수있듯이, 작은 서비스 여러개가 모여서 하나의 시스템을 제공하는 아키텍처를 뜻합니다. MicroService Architecture에서 각 서비스는 작고 독립적이며 느슨하게 결합되어 있기 때문에 서비스들을 독립적으로 배포할 수 있고, 전체 프로그램을 빌드한 뒤에 재배치하지 않고도 기존 서비스들을 업데이트 할 수 있습니다. https://github.com/zeroempty2/TIL/blob/main/MSA/MSA.md GitHub - zeroempty2/TIL Contribute to zeroempty2/TIL development by creating an account on Git..
List, Set, Map, HashMap의 차이, Parameter와 Argument의 차이 List, Set, Map, HashMap의 차이에 대해서 설명해주세요. List List는 순서가 있는 데이터의 집합입니다. List는 데이터를 추가한 순서대로 저장하며, 같은 데이터를 중복해서 저장할 수 있습니다. List는 인덱스를 사용하여 원하는 위치의 데이터를 가져올 수 있고, ArrayList, LinkedList, Vector 등의 구현 클래스가 있습니다. Set Set은 중복된 데이터를 저장하지 않는 순서가 없는 데이터의 집합입니다. Set은 HashSet, TreeSet 등의 구현 클래스가 있습니다. Map Map은 Key와 Value 쌍으로 이루어진 데이터의 집합입니다. Map은 Key를 사용하여 Value를 찾습니다. Map은 Key의 순서는 유지되지 않습니다. Map은 HashMap..
DI(Dependency Injection),DB 인덱스 DI(Dependency Injection)에 대한 설명과 해당 기술의 장점에 대해 설명해주세요. DI란 객체의 생성자에서 필요로 하는 의존성을 외부에서 주입하는 방식을 의미합니다. DI를 사용하면 DI를 사용하면 객체 사이의 결합도가 감소하며 객체가 서로에게 종속적이지 않도록 해주어 코드 유지보수가 더욱 쉬워집니다 https://github.com/zeroempty2/TIL/blob/main/SPRING/DI.md GitHub - zeroempty2/TIL Contribute to zeroempty2/TIL development by creating an account on GitHub. github.com DB에서 인덱스를 잘 사용하면 어떤 장점이 있을까요? 인덱스는 데이터베이스에서 데이터를 빠르게 ..