분류 전체보기 (48) 썸네일형 리스트형 [백엔드]SQL 이해하기 Structured Query Language: SQL데이터베이스 시스템에서 자료를 처리하는 용도로 사용되는 구조적 데이터 질의 언어. 에스큐엘, 혹은 시퀄이라고 읽는다.[2]로고는 SQL을 사용하는 회사별로 색상을 다르게 해 표현한다. 그러나 심볼 자체는 두꺼운 원반을 원통 모양으로 쌓은 모양이 공용으로 쓰인다. 여기서 두꺼운 원반은 하드 디스크의 플래터를 의미한다. 특징이 직관적인 언어는 어느 데이터베이스에서나 기본으로 제공하기 때문에 배워두면 여러 곳에서 쓸데가 많다. 다만, NoSQL 계열에서는 SQL 문을 사용하지 않는다.그러나 DBMS[3] 벤더[4]에 따라 사용하는 SQL에는 다소 차이가 있다. 그래서 ANSI SQL이라고 하는 표준 SQL 구문이 있으나 DBMS 시장을 독식하고 있는 오라클.. [백엔드]자바 스프링부트 이해하기 == 상세 ==로드 존슨(Rod Johnson)이 2002년에 출판한 저서 Expert One-on-One J2EE Design and Development에서 선보인 소스 코드를 시작으로 점점 발전하게 되었다. 2003년 6월에 최초로 공개되었다. 스프링 프레임워크 프로젝트를 간편하게 설정할 수 있도록 도와주는 서브 프로젝트 스프링 부트가 있으며, 현재는 스프링 부트 위주로 기능이 추가되고 있다.'스프링'이라는 이름의 유래는 이전에 Java EE(엔터프라이즈 에디션)의 스펙을 구현한 EJB가 기술의 복잡도가 증가해서 성능이 느렸던 것을 탈피하여, EJB 시절을 '겨울'에 빗대어 겨울 후의 '봄'으로 새로운 시작한다는 것을 의미하는 스프링(봄)이 되었다. --그러나 아직 춥다-- [[Java Virtua.. [알고리즘] 그리디 알고리즘(탐욕법, Greedy Algorithm) 이해하기 [ 목차 ]1. 정의 2. 그리디 알고리즘 작동 방식(그림 예시) 3. 그리디 알고리즘 채택의 조건 4. 코드구현 예제풀이 : 행렬 5. 정리▶그리디 알고리즘(탐욕법, Greedy Algorithm)최적값 탐색 알고리즘말 그대로 탐욕적 알고리즘, 최적값을 탐색하는 상황에서 당장 눈앞에 주어진 선택지 중 가장 최적의 값을 선택하는 알고리즘DP가 단순한 문제 상황에서 지나치게 많은 수행시간을 가지는 단점을 해결부분문제의 최적값이 전체문제의 최적값이 아닐 수 있음 ◈ 그리디 알고리즘 작동 방식(그림 예시)위 그림의 트리에서 최댓값 탐색을 한다고 할 때, 실제 최적값은 2 - 10 선택을 통한 12이지만, 그리디 알고리즘은 각 단계별 근시안적인 선택을 하기 때문에, 5 - 6 선택으로 11의 값을 도출한다. .. [알고리즘] 다익스트라 (데이크스트라, Dijkstra) 이해하기 [ 목차 ]1. 정의2. 다익스트라가 DP를 사용하는 이유 3. 코드 구현 예제 풀이 : 최소비용 구하기 4. 다익스트라의 탐색 방법 5. 정리▶ 다익스트라 (데이크스트라, Dijkstra)최단경로 탐색 알고리즘인공위성 GPS 소프트웨어에서 사용한다. (최단경로 네비게이션)특정 정점에서 모든 다른 정점까지 가는 최단경로를 탐색위 작동 방식 때문에 이전에 알아본 DP를 이용한 탐색이 선호됨 (다이나믹 프로그래밍) ◈ 다익스트라가 DP를 사용하는 이유최단거리는 최단거리들의 모임이기 때문이다.즉, 이전까지의 최단거리 정보를 그대로 사용한다. ( = DP 배열에 저장한다) 한 정점에서 다른 정점으로의 최단거리는 탐색을 계속 진행할 때마다 새로 갱신된다.이해를 돕기 위해 사진을 가져왔다. 알파벳은 정점이고, 숫자.. [알고리즘] 백트래킹(Back Tracking) 이해하기 [ 목차 ]1. 정의2. 한정조건(예시) 3. 코드 구현 4. 정리▶ 백트래킹(Back Tracking) : 퇴각 검색한정조건에서의 모든 경우의 수를 탐색하는 알고리즘전체 조건에서 모든 경우의수를 탐색하는 완전탐색 (≒ 브루트 포스) 알고리즘보다 빠른 탐색이 가능하다.어떤 지점이 한정조건에 부합하지 않음이 명백할 경우, 이전 지점으로 돌아가며 다른 지점을 다시 탐색하는 방식으로 작동.위 작동 방식 때문에 이전에 알아본 DFS를 이용한 탐색이 선호됨 (깊이 우선 탐색) ◈ 한정조건 (예시)백트래킹과 한정조건에 대한 이해를 돕기 위해 백준 9663번 N-Queen 문제를 들고왔다. 문제 힌트에 있는 Queen - The show must go on을 들으며 풀어보자(...) 우선, 이 문제의 한정조건은 N.. [알고리즘] 브루트 포스(Brute Force) 이해하기 [ 목차 ]1. 정의 2. 예시 3. 정리▶ 브루트포스(Brute Force) : 무식한 힘영어 단어 그대로 무식하게 모든 경우를 탐색하는 완전탐색 알고리즘 (브루트포스 ≒ 완전탐색)완전탐색은 보통 반복문과 조건문을 이용하여 진행무식하게 하나씩 다 찾으니까 당연히 시간복잡도가 매우 큼이전에 알아본 DFS, BFS 및 순차탐색을 이용하여 브루트포스 알고리즘을 구현할 수 있다. ◈ 순차탐색을 이용한 브루트포스 (예시)순차탐색을 이용하기 위해서는 데이터가 선형구조를 이루어야한다. 선형구조로 이루어진 데이터를 순차탐색하며 계산을 수행하고 결과값을 도출한다.예시로 백준의 1198번 : 삼각형으로 자르기 문제를 가지고 와보았다. 2차원 좌표평면에서 다각형의 점의 좌표들을 입력받아, 도형을 잘랐을때 제일 커다란 .. [알고리즘] 다이나믹 프로그래밍(Dynamic Programming) 이해하기 [ 목차 ]1. 정의 2.재귀와의 차이점 3. DP를 사용할 수 있는 문제인지에 대한 판별 4. DP 사용 예시 5. 정리▶ 다이나믹 프로그래밍 (Dynamic Programming)동적 계획법이라고도 한다. (줄여서 DP)복잡한 문제를 더 작은 하위 문제로 나누어 해결알고리즘 자체가 아닌 알고리즘 설계기법 (그래서 동적 "계획법") ◈ 재귀(Recursion)와의 차이점재귀는 대개 Top-Down 방식 DP는 대개 Bottom-Up 방식 (작은 문제들을 해결하며 큰 문제들로 다가감)DP는 Memoization 방식을 사용※ Memoization -중복되는 계산 결과를 저장하는 메모리 기법 ex) 피보나치 수열 f(n) = f(n-1) + f(n-2)를 계산할때 메모이제이션을 사용하면 f(n-.. [알고리즘] DFS(깊이 우선 탐색)와 BFS(넓이 우선 탐색) 이해하기 [ 목차 ]1.정의 1-1.DFS (Depth-First Search) 1-2.BFS (Breadth-First Serch)2.구현 2-1.DFS의 구현 방법 2-2.BFS의 구현 방법3.DFS의 재귀4.코드 구현(전체 코드 미리보기) 4-1.Stack으로 구현한 DFS 4-2.Queue로 구현한 BFS 4-3.재귀로 구현한 DFS 4-4.출력 결과 5.정리▶ DFS (Depth-First Search)그래프 검색에 사용된다.이진트리에서 사용했던 PreOrder, InOrder, PostOrder 순회방법Stack 자료구조를 이용하여 구현한다. ▶ BFS (Breadth-First Search)마찬가지로 그래프 검색에 사용.이진트리에서 사용했던 LevelOrder 순회 방.. 이전 1 ··· 3 4 5 6 다음