목록분류 전체보기 (45)
일상기록
보호되어 있는 글입니다.
SQL Index란? 데이터베이스에서 데이터 검색 속도를 높이기 위한 데이터 구조로, 특정 열(칼럼)에 대한 정렬된 데이터를 가지고 있는 객체입니다. 인덱스를 생성하면 특정 열의 값을 찾아내기 위해 전체 데이터를 탐색하는 것이 아니라, 인덱스를 통해 빠르게 찾을 수 있어서 검색 속도가 향상됩니다. 장점: 빠른 검색 속도: 인덱스를 사용하면 데이터를 빠르게 찾을 수 있다. 적은 리소스 사용: 인덱스를 사용하면 데이터베이스가 검색에 필요한 리소스를 줄일 수 있다. 데이터 무결성 유지: 인덱스를 사용하면 데이터 무결성이 유지 단점: 인덱스를 만드는 데 시간이 소요 인덱스를 만들면 데이터베이스의 크기가 증가 데이터가 변경될 때마다 인덱스를 업데이트해야 하기 때문에 성능이 저하될 수 있다. 예를 들어, 학생들의 ..

가비지 컬렉션(Garbage Collection)란 java개발자나 Spring 백엔드 면접에서 '가비지 컬렉션을 설명해주세요?'라는 질문을 하기도 한다. 가비지 컬렉션은 자바를 배우게 되면 가장먼저 자바 가상 머신 JVM(Java Virtual Machine)은 자바 프로그램 실행환경을 만들어 주는 소프트웨어라는 걸 배우고 대부분 답변은 JVM의 Heap 영역에서 동적으로 할당했던 메모리 영역 중 필요 없게 된 메모리 영역을 주기적으로 삭제하는 프로세스를 말합니다. C나 C++에서는 이러한 가비지 컬렉션이 없어 개발자가 수동으로 메모리 할당과 해제를 일일이 해줘야 하는 반면 Java는 JVM에 탑재되어 있는 가비지 컬렉터가 메모리 관리를 대행해줍니다. 라고 설명하며 그친다. 면접에서 어느정도의 설명을 ..

DFS(depth-first search) 깊이 우선 탐색은 그래프 완전 탐색 기법 중 하나이다. 그래프의 시작 노드에서 출발하여 탐색할 한 쪽 분기를 정하여 최대 깊이까지 탐색을 마친 후 다른 쪽 분기로 이동하여 다시 탐색을 수행하는 알고리즘이다. DFS의 핵심 DFS는 한 번 방문한 노드를 다시 방문하면 안 되므로 노드 방문 여부를 체크할 배열이 필요하며, 그래프의 인접 리스트로 표현한다. DFS의 탐색 방식은 후입선출 특성을 가지므로 스택(stack)을 사용한다.(실제 스택보다는 스텍의 성질을 갖는 재귀 함수로 많이 구현한다.) import java.util.*; public class DFS { static int n; // 정점의 개수 static ArrayList[] graph; // 인접 리..

스레드(thread)란 스레드(thread)란 프로세스(process) 내에서 실제로 작업을 수행하는 주체를 의미 모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행한다. 또한, 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스(multi-threaded process)라고 한다. 스레드를 가벼운 프로세스, 즉 경량 프로세스(LWP, light-weight process)라고 부르기도 한다. 프로세스 내에서 실행되는 흐름의 단위를 의미 멀티태스킹과 멀티스레딩 우리가 사용하는 윈도우, 유닉스를 포함한 대부분의 OS는 멀티태스킹(multi-tasking, 다중작업)을 지원하기 때문에 여러 개의 프로세스가 동시에 실행될 수 있다. 멀티스레딩은 하나의 프로세스 내에서 여러 스레드가 동시에 ..

프로세스(Process)란? Process란 하나 혹은 그 이상의 Thread로 실행되는 컴퓨터 프로그램의 instance이다. Process는 Program code와 그 activity를 포함한다. wikipedia 프로세스는 가상 메모리 공간, 코드, 데이터, 시스템 자원의 집합이다. microsoft 프로세스는 운영체제가 프로그램을 실행하기 위해 필요한 가장 작은 단위의 쓰레드, 메모리, 소스코드들의 집합이며 프로그램 동작 그 자체를 의미한다. 운영체제는 "프로세스"를 작업의 단위로 보고 자원들을 작업(프로세스)들에 적절하게 분배한다. 프로세스(Process)란 간단히 말해 '실행 중인 프로그램(program)'이다. 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가..