데이터 베이스 개체 데이터베이스(Database) 개체(Database Objects)는 데이터베이스 내에서 데이터를 구조화하고 저장하기 위해 사용되는 요소를 의미한다. 주요 데이터 베이스에는 테이블 외에 인덱스, 뷰, 스토어드 프로시저, 트리거, 함수, 커서 등 이 있다. 인덱스(Index) DB의 성능을 향상 시키기 위해 사용되는 개체 인덱스는 특정 열(또는 열 집합)을 기반으로 데이터의 빠른 검색을 가능하게 함 DB 테이블의 열에 대한 인덱스를 생성하면 해당 열의 값을 기준으로 정렬된 데이터 구조 생성 ⇒ 쿼리의 실행 속도를 향상 시키고 데이터 접근을 효율적으로 만듦 인덱스 생성(CREATE INDEX) 인덱스 생성 전 [Execution Plan] * Execution Plan은 데이터베이스 관리..
전체 글
데이터 베이스란? 데이터베이스란? 데이터베이스에 대한 필수 지식과 이를 비즈니스에 활용하는 방법을 알아보세요. www.oracle.com 데이터 베이스(Database,DB)는 구조화된 정보 또는 데이터의 집합 → 데이터의 묶음 데이터 베이스의 필요성 엑셀 시트나 CSV 파일과 같은 파일 형식으로 데이터를 저장하고 사용하는 것은 작은 규모의 데이터 또는 임시 데이터에 대해서는 유용할 수 있다. 🔽 데이터베이스와 파일형식의 차이점 DB의 필요성 DB 파일 형식 데이터 일관성 여러 사용자가 동시에 데이터를 조작할 때 데이터 일관성을 유지하기 위해 동시성 제어와 트랜잭션 관리 등의 기능을 제공 시에 여러 사용자가 접근하거나 조작할 때 일관성을 유지하기 어려움 데이터 접근과 조작 효율성 인덱스를 활용하거나 최적..
HTTP (HyperText Transfer Protocol) HTTP는HyperText Transfer Protocold의 약자로 www(World Wide Web)에서 정보를 주고 받을 수 있는 프로토콜(규약)이다. 클라이언트(사용자/ 웹브라우저)와 서버(Server) 사이에 이루어지는 요청과 응답 프로토콜이라고 할 수 있으며 클라이언트에서 서버에 요청 후 서버에서 메세지를 보내는 클라이언트-서버 모델을 기반으로 동작한다. 클라이언트-서버 모델(client-server model) 클라이언트-서버 모델(client-server model)은 컴퓨터 네트워크 및 분산 컴퓨팅에 사용되는 개념이며 모델의 이름 그대로 서버와 클라이언트 간의 상호작용을 기반으로 한다. * 자원(resource)를 사용하는 앱..
제네릭(Generic)이란? 제네릭은 자바의 타입 안정성을 위한 프로그래밍 기법으로 제네릭을 통해 컬렉션에 저장될 데이터의 타입을 컴파일 시점에 체크 가능하여 런타임 시 발생하는 에러를 방지할 수 있습니다. 제네릭은 클래스나 인터페이스, 메서드를 정의할 때 타입을 명시적으로 고정하지 않고 외부에서 지정할 수 있도록 함으로써 다양한 타입에서의 동작이 가능합니다. 이렇게 일반화된 코드는 중복 코드를 줄이고 코드의 재사용성을 높일 수 있습니다. 제네릭을 사용하지 않는 코드에서는 명시적으로 데이터의 타입을 캐스팅 해주어야 하지만, 제네릭의 사용함으로써 특정 타입을 지정하여 타입 캐스팅 과정을 생략 하는 등 형변환의 번거로움을 줄여줍니다. 제네릭(Generic)은 포괄적인, 일반적인이라는 뜻을 가지고 있다. 클래..
그리디(Greedy) 알고리즘 탐욕스러운 -> 가장 처음의 경우로 만족하면 끝내는 (뒤의 것 신경 쓰지 않는 ) * 동전 금액 맞추기가 쉬운 에제 ✅ Greedy 알고리즘 사용하기 위한 조건 - 탐욕적 선택 속성(Greedy Choice Property) : 현재 선택이 미래 선택에 영향을 미치지 않을 때 - 최적 부분 구조(Optimal Substructure) : 부분의 최적 해가 모이면 전체의 최적해 -> 큰 문제를 작은 부분으로 나눌 수 있고 그 작은 문제들에 대한 최적의 해가 더해진 것이 곧 전체 문제의 최적해가 되는 것(최적 부분 구조 조건) ✅ 정렬 그리디 전략 그리디 전략을 쓰는 이유 - 속도() - 다이나밍 프로그래밍 = 100%최적해를 보장하기 위해 사용 - 100% 최적해를 보장하지 ..
그래프란? 그래프는 정점(vertex)와 간선(edge)의 집합으로 구성된다. 정점은 노드, 간선은 엣지를 말 하며 정점과 정점을 잇는 선을 간선이라고 한다. 그래프는 리스트와 행렬 구조 중의 하나로 구분 가능하지만 실제로는 두 구조의 조합된 형태를 나타낸다. 일반적으로 알고 있는 수학에서의 그래프와는 다른 모양이다. 그래프 종류로는 무방향 그래프, 방향 그래프, 완전 그래프, 부분 그래프, 가중 그래프, 유향 비순환 그래프, 연결 그래프, 단절 그래프 등이 있다. 그래프의 표현 방식 인접 행렬(Adjacency Matrix) 그래프를 행렬로 표현하는 방식 → 정방 행렬을 사용하여 그래프의 정점 간의 연결 관계를 나타냄 인접 행렬은 그래프의 정점(Vertex) 수를 n이라고 할 때, n x n 크기의 행..
Tree구조 Tree의 정의 그래프의 일종으로 비선형 계층적 자료 구조(Hierachical Data Structure)이다. 하나의 루트(root) 노드와 이를 기준으로 한 개 또는 여러 개의 서브트리(subtree)로 구성되어 있다. → 부모 노드와 자식 노드로 구분된다. ✅ 비선형 자료구조란? 한 노드가 여러 개의 노드와 연결되어 있는 형태를 가지는 자료 구조로 각 노드가 선형적인 순서가 아닌 여러 경로를 통해 연결될 수 있음을 의미한다. 대표적으로 트리(Tree), 그래프(Graph), 힙(Heap), 해시테이블(Hash table) 등이 있다. 한 노드에서 시작하여 다른 노드들을 순회하고 자기 자신에게 돌아오는 연결 그래프이다. 아래로 뻗어나가는 구조이기 때문에 사이클이 없다. 트리는 그래프의 ..
재귀함수 / 자기자신을 호출하는 함수 - Base case : 간단히 결과를 반환 - Recursive case : 자기 자신을 호출 int factorial(int i) { if(n == 0) return 1; return n * factorial(n-1); } 함수 실행을 위한 stack 메모리가 추가로 잡힘 void main(String[] args) ... factorial(3) --- factorial(3) ... return 3 * factorial(2); --- factorial(2) ... return 2 * factorial(1); --- factorial(1) ... return 1 * factorial(0); --- factorial(0) ... return 1; --- factori..
💭 목표 상기하기현재 ‘내'가 학습을 통해 이루고자 하는 것은 무엇인가요?여러분이 현재 바라는 목표를 모두 이루었다면 ‘나'는 어떻게 변해 있을까요?‘나'에게서 어떤 모습을 보았을 때, 목표를 이루었다고 말할 수 있을까요? 1. 현재 내가 학습을 통해 이루고자 하는 것?첫 번째 목표는 아무래도 취업이다. 취업을 위해 새로운 것에 도전하고 잘 하기 위해 매일 꾸준히 연습하고 있으니까 말이다. 두 번째는 끈기(의지)기르기. 끈기있게 꾸준히 학습하고자 하는 습관을 들이는 것이 매우 중요하다 생각한다. 내가 개발자를 꿈꾸게 된 이상 책임감을 가지고 열심히 하는 나의 의지를 기르는 것이 나의 목표이다. 이렇게 매일 학습하고 블로깅함으로써 내 습관을 하나 만든 것 같아 좋다. (🔒물론 저번 주는..음..ㅜ) 개발자..
프로세스와 스레드 * 실행중인 어플리케이션(프로그램)을 프로세스 * 실행되는 소스 코드의 흐름을 스레드 프로세스(Process) 실행 중인 application 으로 application을 실행하면 운영체제로부터 실행에 필요한 만큼의 메모리를 할당 받아 프로세스가 됨 프로세스 = 데이터 + 스레드 + 컴퓨터 자원(CPU, RAM, 보조기억장치 등 연산을 위해 필요한 장치) 스레드(Thread) 실행되는 소스 코드의 흐름 스레드 = data + application 자원 → source code 실행 (code 실행흐름) 메인 스레드(main thread) java 에서 가장 먼저 실행되는 메서드는 main 메서드이며 main thread 가 main 메서드를 실행시켜준다. main thread는 main..