분류 전체보기(1092)
-
DB
2020.11.23
[DB] MySQL 다운로드 / 설치 방법 (for Windows)
MySQL이란? MySQL은 전세계에서 많이 사용하는 빠른 작동과 경쾌함이 장점인 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)입니다. MySQL은 오픈소스로 이루어져있고 여러 운영체제에서 동작이 가능하며 많은 프로그램 언어를 지원한다는 장점이 있습니다. 유료버전도 따로 있으나 대부분은 무료버전을 사용하셔도 큰 무리가 없습니다. MySQL 설치 / 다운로드 방법 1. 오늘은 윈도우 10에서 MySql을 한번 설치해보려고 합니다. 아래에 링크된 사이트로 접속하여 최신버전의 MySql Install 파일을 다운 받습니다. 최소용량으로 설치하려면 2.5M의 installer를 설치해주세요. dev.mysql.com/downloads/installer/ 2. 오라클 계정에 로그인 하라고 하는데 로그인 ..
-
ETC./Spring
2020.11.22
2
[Spring] Spring Tools 4 (Spring Boot) 설치 및 환경설정 방법
스프링 부트(Spring Boot)란? 스프링 부트는 스프링 설정에서 반복되는 코드를 싹 빼고 간편하게 이용할 수 있도록 확장된 버전입니다 스프링은 스프링부트와 비교하여 여러가지 장점이 있습니다. 개발을 하며 가장 와닿는 장점은 설정이 매우 간편해졌다는 점입니다. 스프링의 경우 많은 XML설정 파일등을 작성하는 등 설정하기도 힘들고 웹을 구축하기 위해 많은 Dependency 설정을 추가해주는 등 설정을 위한 코드의 양도 굉장히 많았지만 스프링부트에서는 starter 라이브러리 사용으로 많이 간소화 되었습니다. 이렇게 스프링 부트는 반복되는 개발환경 구축을 위한 코드작성등의 노력을 줄여주고 쉽고 빠르게 프로젝트를 설정할 수 있도록 도와줍니다. 또한 Maven보다 강력한 Gradle이라는 빌드배포 툴을 제..
-
ETC./Algorithm
2020.11.21
7
[Algorithm] 각 정렬의 특징 및 장단점 & 시간복잡도
정렬 별 특징 선택정렬 (Selection Sort) 선택정렬은 앞에서부터 차례대로 정렬하는 방법입니다. 먼저 주어진 리스트 중에 최소값을 찾고 그 값을 맨 앞에 위치한 값과 교체하는 방식으로 진행하는 정렬방법입니다. 코드가 직관적이기에 구현도 비교적 간단합니다. n개 원소에 대해 n개의 메모리를 사용하기에 데이터를 하나씩 정밀 비교가 가능하며 정렬을 위한 비교 횟수는 많으나 교환 횟수는 상당히 적다는 것이 장점인 정렬 방식입니다. 따라서 교환이 많이 이루어져야하는 자료 상태에서 가장 효율적으로 적용될 수 있는 정렬 방식입니다. 선택 정렬이 가장 적합한 자료 상태는 역순 정렬입니다. 즉, 내림차순으로 정렬되어 있는 자료를 오름차순으로 재정렬할 때 최적의 효율을 보여줍니다. 반대로 이미 정렬된 상태에서 소..
-
Web/Web Programming
2020.11.14
8
[Network] TCP / UDP의 개념과 특징, 차이점
전송 계층에서 사용되는 프로토콜 (TCP / UDP) TCP와 UDP는 OSI 표준모델과 TCP/IP 모델의 전송계층에서 사용되는 프로토콜입니다. 전송계층은 송신자와 수신자를 연결하는 통신 서비스를 제공하고 IP에 의해 전달되는 패킷의 오류를 검사하며 재전송 요구 제어등을 담당하는 계층입니다. 쉽게 말해 데이터의 전달을 담당한다고 생각하시면 됩니다. TCP와 UDP는 포트 번호를 이용하여 주소를 지정하는것과 데이터 오류검사를 위한 체크섬 존재하는 두가지 공통점을 가지고 있지만 정확성(TCP)을 추구할지 신속성(UDP)을 추구할지를 구분하여 나뉩니다. 데이터를 중요하게 생각하여 확실히 주고받고 싶을 때는 ‘TCP(Transmission Control Protocol)’를 사용합니다. TCP는 통신할 컴퓨터..
-
Web/Web Programming
2020.11.13
5
[Network] TCP / IP란 무엇인가?
TCP / IP란? TCP/IP(Transmission Control Protocol/Internet Protocol)는 데이터가 의도된 목적지에 닿을 수 있도록 보장해주는 통신 규약입니다. TCP / IP는 이름에서 알 수 있듯 TCP / IP에는 두가지 프로토콜로 이루어져 있으며 인터넷으로 디바이스를 연결하는 네트워크 프로토콜의 집합이며 개별적인 네트워크 프로토콜로 사용될 수도 있습니다. TCP / IP는 인터넷의 기본 통신 언어입니다. 기본적으로 TCP / IP를 사용하면 한 컴퓨터가 데이터 패킷을 컴파일하고 올바른 위치로 전송하여 인터넷을 통해 다른 컴퓨터와 통신 할 수 있습니다. 프로토콜이란? 컴퓨터와 네트워크 기기가 상호간에 통신하기 위해서는 서로 같은 방법으로 통신하지 않으면 안됩니다. 어떻..
-
ETC./Algorithm
2020.10.09
2
[Algorithm] BFS 알고리즘 (Breadth-First Search)
너비 우선탐색 (BFS)란? BFS는 그래프 전체를 탐색하는 방법 중 하나로써 루트 노드(혹은 다른 임의의 노드)에서 시작해서 인접한 노드를 먼저 탐색하는 방법입니다. 시작 정점으로부터 가까운 정점을 먼저 방문하고 멀리 떨어져 있는 정점을 나중에 방문하는 순회함으로써 노드를 넓게(wide) 탐색합니다. 주로 두 노드 사이의 최단 경로 혹은 임의의 경로를 찾고 싶을 때 이 방법을 사용합니다. 주로 구현은 큐라는 자료에 이웃하는 정점을 다 담아놓고 차례대로 POP을 하는 방식으로 구현합니다. [Algorithm] 자료구조 그래프(Graph)란 무엇인가? BFS의 장점 1. 노드의 수가 적고 깊이가 얕은 경우 빠르게 동작할 수 있다. 2. 단순 검색 속도가 깊이 우선 탐색(DFS)보다 빠름 3.너비를 우선 탐..
-
ETC./Algorithm
2020.10.08
3
[Algorithm] DFS 알고리즘 (Depth First Search)
깊이 우선탐색 (DFS)란? DFS는 그래프 전체를 탐색하는 방법중 하나로써 시작점 부터 다음 분기로 넘어가기 전에 해당 분기를 완벽하게 탐색하고 넘어가는 방법입니다. 스택이나 재귀함수를 통해서 구현할 수 있는데 재귀함수가 구현이 간편하기에 대부분 재귀함수로 구현하는것 같습니다. 구현시 주의할점은 노드를 방문시 방문 여부를 반드시 검사해야합니다. 그렇지 않다면 무한루프에 빠질 수 있습니다. [Algorithm] 자료구조 그래프(Graph)란 무엇인가? DFS의 장점 1. 현재 경로상의 노드들만 기억하면 되므로, 저장 공간의 수요가 비교적 적음 2. 목표 노드가 깊은 단계에 있는 경우 해를 빨리 구할 수 있음 3. 구현이 너비 우선 탐색(BFS) 보다 간단함 DFS의 단점 1. 단순 검색 속도는 너비 우선..
-
ETC./Algorithm
2020.10.07
5
[Algorithm] 자료구조 그래프(Graph)란 무엇인가?
그래프란? 그래프는 정점과 간선으로 이루어진 자료구조입니다. 정확히는 정점(Vertex)간의 관계를 표현하는 조직도라고 볼수도 있겠습니다. 그런면에서 트리는 그래프의 일종인 셈입니다. 다만 트리와는 달리 그래프는 정점마다 간선이 없을수도 있고 있을수도 있으며 루트 노드, 부모와 자식이라는 개념이 존재하지 않습니다. 또한 그래프는 네트워크 모델 즉, 객체와 이에 대한 관계를 나타내는 유연한 방식으로 이해할 수 있습니다. 실생활에서 다양한 예를 그래프로 표현할 수 있습니다. 대표적으로 지하철 노선도, 도심의 도로등이 있습니다. 이런식으로 활용할 수 있는 방법이 많기에 문제도 다양하게 출제를 할 수 있습니다. 그래프는 알고리즘에서 굉장히 많이 사용됩니다. 특히 그래프를 순회하는 방식인 DFS와 BFS를 잘 알..
-
ETC./Algorithm
2020.09.15
[Algorithm] 알고리즘 공간복잡도에 대하여
공간복잡도란? 공간복잡도(Space Complexity)란 프로그램의 성능을 분석하는 방법 중 하나로, 작성한 프로그램이 얼마나 많은 공간(메모리)을 차지하느냐를 분석하는 방법입니다. 하지만 최근에는 컴퓨터 성능의 발달로 인해 메모리의 여유 공간이 충분하다못해 넘치기 때문에 공간복잡도의 중요성이 예전에 비해서 많이 낮아졌습니다. 시간복잡도의 경우 알고리즘을 잘못 구성하였을 경우 결과값이 나오지 않거나 현저하게 느린속도가 나오기에 최근에는 공간복잡도보다는 시간복잡도를 우선시하여 프로그램을 작성합니다. [Algorithm] 알고리즘 시간복잡도에 대하여 공간복잡도 계산법 (빅-오) int a = 10; 일반적으로 공간이 하나씩 생성되는것을 1이라고 표현합니다. 위의 공간복잡도는 O(1)입니다. int get_..
-
ETC./Algorithm
2020.09.14
4
[Algorithm] 알고리즘 시간복잡도에 대하여
시간복잡도란? 시간 복잡도란 특정 알고리즘이 어떤 문제를 해결하는데 걸리는 시간을 의미합니다. 같은 결과를 가져오는 프로그래밍 소스도 어떻게 작성하느냐에 따라 걸리는 시간이 달라질 수 있습니다. 같은 결과를 나타내는 소스라면 최대한 시간이 적게 걸리는 좋은 소스입니다. 그렇기에 더 효율적인 알고리즘을 구성하기 위해서 시간 복잡도의 측면을 고려하고 중요하게 봅니다. 특히 최근 알고리즘 문제 해결에서 대부분 실행시간을 정해놓고 그 시간안에 소스가 돌아가야 정답으로 체크하기에 시간복잡도의 중요성이 더더욱 커졌다고 볼 수 있습니다. [Algorithm] 알고리즘 공간복잡도에 대하여 빅-오 표기법 시간 복잡도에는 여러 개념이 있지만 그중에서 ‘아무리 많이 걸려도 이 시간 안에는 끝날 것‘의 개념이 제일 중요합니다..
-
DB 2020.11.23[DB] MySQL 다운로드 / 설치 방법 (for Windows) MySQL이란? MySQL은 전세계에서 많이 사용하는 빠른 작동과 경쾌함이 장점인 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)입니다. MySQL은 오픈소스로 이루어져있고 여러 운영체제에서 동작이 가능하며 많은 프로그램 언어를 지원한다는 장점이 있습니다. 유료버전도 따로 있으나 대부분은 무료버전을 사용하셔도 큰 무리가 없습니다. MySQL 설치 / 다운로드 방법 1. 오늘은 윈도우 10에서 MySql을 한번 설치해보려고 합니다. 아래에 링크된 사이트로 접속하여 최신버전의 MySql Install 파일을 다운 받습니다. 최소용량으로 설치하려면 2.5M의 installer를 설치해주세요. dev.mysql.com/downloads/installer/ 2. 오라클 계정에 로그인 하라고 하는데 로그인 .. -
ETC./Spring 2020.11.22 2[Spring] Spring Tools 4 (Spring Boot) 설치 및 환경설정 방법 스프링 부트(Spring Boot)란? 스프링 부트는 스프링 설정에서 반복되는 코드를 싹 빼고 간편하게 이용할 수 있도록 확장된 버전입니다 스프링은 스프링부트와 비교하여 여러가지 장점이 있습니다. 개발을 하며 가장 와닿는 장점은 설정이 매우 간편해졌다는 점입니다. 스프링의 경우 많은 XML설정 파일등을 작성하는 등 설정하기도 힘들고 웹을 구축하기 위해 많은 Dependency 설정을 추가해주는 등 설정을 위한 코드의 양도 굉장히 많았지만 스프링부트에서는 starter 라이브러리 사용으로 많이 간소화 되었습니다. 이렇게 스프링 부트는 반복되는 개발환경 구축을 위한 코드작성등의 노력을 줄여주고 쉽고 빠르게 프로젝트를 설정할 수 있도록 도와줍니다. 또한 Maven보다 강력한 Gradle이라는 빌드배포 툴을 제.. -
ETC./Algorithm 2020.11.21 7[Algorithm] 각 정렬의 특징 및 장단점 & 시간복잡도 정렬 별 특징 선택정렬 (Selection Sort) 선택정렬은 앞에서부터 차례대로 정렬하는 방법입니다. 먼저 주어진 리스트 중에 최소값을 찾고 그 값을 맨 앞에 위치한 값과 교체하는 방식으로 진행하는 정렬방법입니다. 코드가 직관적이기에 구현도 비교적 간단합니다. n개 원소에 대해 n개의 메모리를 사용하기에 데이터를 하나씩 정밀 비교가 가능하며 정렬을 위한 비교 횟수는 많으나 교환 횟수는 상당히 적다는 것이 장점인 정렬 방식입니다. 따라서 교환이 많이 이루어져야하는 자료 상태에서 가장 효율적으로 적용될 수 있는 정렬 방식입니다. 선택 정렬이 가장 적합한 자료 상태는 역순 정렬입니다. 즉, 내림차순으로 정렬되어 있는 자료를 오름차순으로 재정렬할 때 최적의 효율을 보여줍니다. 반대로 이미 정렬된 상태에서 소.. -
Web/Web Programming 2020.11.14 8[Network] TCP / UDP의 개념과 특징, 차이점 전송 계층에서 사용되는 프로토콜 (TCP / UDP) TCP와 UDP는 OSI 표준모델과 TCP/IP 모델의 전송계층에서 사용되는 프로토콜입니다. 전송계층은 송신자와 수신자를 연결하는 통신 서비스를 제공하고 IP에 의해 전달되는 패킷의 오류를 검사하며 재전송 요구 제어등을 담당하는 계층입니다. 쉽게 말해 데이터의 전달을 담당한다고 생각하시면 됩니다. TCP와 UDP는 포트 번호를 이용하여 주소를 지정하는것과 데이터 오류검사를 위한 체크섬 존재하는 두가지 공통점을 가지고 있지만 정확성(TCP)을 추구할지 신속성(UDP)을 추구할지를 구분하여 나뉩니다. 데이터를 중요하게 생각하여 확실히 주고받고 싶을 때는 ‘TCP(Transmission Control Protocol)’를 사용합니다. TCP는 통신할 컴퓨터.. -
Web/Web Programming 2020.11.13 5[Network] TCP / IP란 무엇인가? TCP / IP란? TCP/IP(Transmission Control Protocol/Internet Protocol)는 데이터가 의도된 목적지에 닿을 수 있도록 보장해주는 통신 규약입니다. TCP / IP는 이름에서 알 수 있듯 TCP / IP에는 두가지 프로토콜로 이루어져 있으며 인터넷으로 디바이스를 연결하는 네트워크 프로토콜의 집합이며 개별적인 네트워크 프로토콜로 사용될 수도 있습니다. TCP / IP는 인터넷의 기본 통신 언어입니다. 기본적으로 TCP / IP를 사용하면 한 컴퓨터가 데이터 패킷을 컴파일하고 올바른 위치로 전송하여 인터넷을 통해 다른 컴퓨터와 통신 할 수 있습니다. 프로토콜이란? 컴퓨터와 네트워크 기기가 상호간에 통신하기 위해서는 서로 같은 방법으로 통신하지 않으면 안됩니다. 어떻.. -
ETC./Algorithm 2020.10.09 2[Algorithm] BFS 알고리즘 (Breadth-First Search) 너비 우선탐색 (BFS)란? BFS는 그래프 전체를 탐색하는 방법 중 하나로써 루트 노드(혹은 다른 임의의 노드)에서 시작해서 인접한 노드를 먼저 탐색하는 방법입니다. 시작 정점으로부터 가까운 정점을 먼저 방문하고 멀리 떨어져 있는 정점을 나중에 방문하는 순회함으로써 노드를 넓게(wide) 탐색합니다. 주로 두 노드 사이의 최단 경로 혹은 임의의 경로를 찾고 싶을 때 이 방법을 사용합니다. 주로 구현은 큐라는 자료에 이웃하는 정점을 다 담아놓고 차례대로 POP을 하는 방식으로 구현합니다. [Algorithm] 자료구조 그래프(Graph)란 무엇인가? BFS의 장점 1. 노드의 수가 적고 깊이가 얕은 경우 빠르게 동작할 수 있다. 2. 단순 검색 속도가 깊이 우선 탐색(DFS)보다 빠름 3.너비를 우선 탐.. -
ETC./Algorithm 2020.10.08 3[Algorithm] DFS 알고리즘 (Depth First Search) 깊이 우선탐색 (DFS)란? DFS는 그래프 전체를 탐색하는 방법중 하나로써 시작점 부터 다음 분기로 넘어가기 전에 해당 분기를 완벽하게 탐색하고 넘어가는 방법입니다. 스택이나 재귀함수를 통해서 구현할 수 있는데 재귀함수가 구현이 간편하기에 대부분 재귀함수로 구현하는것 같습니다. 구현시 주의할점은 노드를 방문시 방문 여부를 반드시 검사해야합니다. 그렇지 않다면 무한루프에 빠질 수 있습니다. [Algorithm] 자료구조 그래프(Graph)란 무엇인가? DFS의 장점 1. 현재 경로상의 노드들만 기억하면 되므로, 저장 공간의 수요가 비교적 적음 2. 목표 노드가 깊은 단계에 있는 경우 해를 빨리 구할 수 있음 3. 구현이 너비 우선 탐색(BFS) 보다 간단함 DFS의 단점 1. 단순 검색 속도는 너비 우선.. -
ETC./Algorithm 2020.10.07 5[Algorithm] 자료구조 그래프(Graph)란 무엇인가? 그래프란? 그래프는 정점과 간선으로 이루어진 자료구조입니다. 정확히는 정점(Vertex)간의 관계를 표현하는 조직도라고 볼수도 있겠습니다. 그런면에서 트리는 그래프의 일종인 셈입니다. 다만 트리와는 달리 그래프는 정점마다 간선이 없을수도 있고 있을수도 있으며 루트 노드, 부모와 자식이라는 개념이 존재하지 않습니다. 또한 그래프는 네트워크 모델 즉, 객체와 이에 대한 관계를 나타내는 유연한 방식으로 이해할 수 있습니다. 실생활에서 다양한 예를 그래프로 표현할 수 있습니다. 대표적으로 지하철 노선도, 도심의 도로등이 있습니다. 이런식으로 활용할 수 있는 방법이 많기에 문제도 다양하게 출제를 할 수 있습니다. 그래프는 알고리즘에서 굉장히 많이 사용됩니다. 특히 그래프를 순회하는 방식인 DFS와 BFS를 잘 알.. -
ETC./Algorithm 2020.09.15[Algorithm] 알고리즘 공간복잡도에 대하여 공간복잡도란? 공간복잡도(Space Complexity)란 프로그램의 성능을 분석하는 방법 중 하나로, 작성한 프로그램이 얼마나 많은 공간(메모리)을 차지하느냐를 분석하는 방법입니다. 하지만 최근에는 컴퓨터 성능의 발달로 인해 메모리의 여유 공간이 충분하다못해 넘치기 때문에 공간복잡도의 중요성이 예전에 비해서 많이 낮아졌습니다. 시간복잡도의 경우 알고리즘을 잘못 구성하였을 경우 결과값이 나오지 않거나 현저하게 느린속도가 나오기에 최근에는 공간복잡도보다는 시간복잡도를 우선시하여 프로그램을 작성합니다. [Algorithm] 알고리즘 시간복잡도에 대하여 공간복잡도 계산법 (빅-오) int a = 10; 일반적으로 공간이 하나씩 생성되는것을 1이라고 표현합니다. 위의 공간복잡도는 O(1)입니다. int get_.. -
ETC./Algorithm 2020.09.14 4[Algorithm] 알고리즘 시간복잡도에 대하여 시간복잡도란? 시간 복잡도란 특정 알고리즘이 어떤 문제를 해결하는데 걸리는 시간을 의미합니다. 같은 결과를 가져오는 프로그래밍 소스도 어떻게 작성하느냐에 따라 걸리는 시간이 달라질 수 있습니다. 같은 결과를 나타내는 소스라면 최대한 시간이 적게 걸리는 좋은 소스입니다. 그렇기에 더 효율적인 알고리즘을 구성하기 위해서 시간 복잡도의 측면을 고려하고 중요하게 봅니다. 특히 최근 알고리즘 문제 해결에서 대부분 실행시간을 정해놓고 그 시간안에 소스가 돌아가야 정답으로 체크하기에 시간복잡도의 중요성이 더더욱 커졌다고 볼 수 있습니다. [Algorithm] 알고리즘 공간복잡도에 대하여 빅-오 표기법 시간 복잡도에는 여러 개념이 있지만 그중에서 ‘아무리 많이 걸려도 이 시간 안에는 끝날 것‘의 개념이 제일 중요합니다..