Home
hyeonda02
Cancel

[실전 스프링부트] 스프링부트 시작하기

실전 스프링부트 ch1. 스프링 부트 시작하기 다음은 실전 스프링 부트 책을 공부하고 난 후 정리한 포스트 입니다. 스프링 부트 공부를 시작하면서… 막상 인터넷 강의를 보고 공부를 하려니까 왜 스프링 부트를 사용해야 하는지, 정확하게 어떤 기능이 있는지도 잘 모른다는 것을 깨달았다.. 아무래도 나는 지금까지 자바 공부만 했었고, 스프링부트는...

[자바의 정석] 14장 람다와 스트림(Lambda & Stream)

Java의 정석 - 14장 람다와 스트림 새로운것을 막 공부하는 것보다 기초부터 튼튼하게 하는것이 중요하다는 것을 뼈아프게 느낀 나… 1년전에 돌렸던 자바의 정석을 다시 호로록 돌리기로 결심하다..! 람다식(Lambda Expression) 람다식(Lambda Expression) : 람다식은 간단하게 말해서 메서드를 하나의 '식'으로 표현한 것이다...

[모던 자바 인 액션 ch2] 동작 파라미터화 코드 전달하기

[Modern Java In Action] ch2. 동작 파라미터화 코드 전달하기 Modern Java In Action 공부를 한 후 정리한 내용입니다. 동작 파라미터화를 이용하면 자주 바뀌는 요구사항에 효과적으로 대응할 수 있다. 동작 파라미터화란 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록을 의미한다. 이 코드블록은 나중에 프...

[모던 자바 인 액션 ch1] 자바 8,9,10,11 : 무슨 일이 일어나고 있는가?

[Modern Java In Action] ch1. 자바 8,9,10,11 무슨 일이 일어나고 있는가? Modern Java In Action 공부를 한 후 정리한 내용입니다. 자바 8은 자바 역사를 통틀어 가장 큰 변화가 일어났다. 자바 8에서는 병렬 실행을 새롭고 단순한 방식으로 접근할 수 있는 방법을 제공한다. 자바 5는 스레드 풀, ...

[Design Pattern] 싱글턴 패턴 (Singleton Pattern)

[DesignPattern] 싱글턴 패턴 (Singleton pattern) 학교 수업 중 하나인 설계 패턴을 수강하며 ‘JAVA 객체 지향 디자인 패턴’ 책을 정리한 포스트 이다. 정의 인스턴스가 오직 하나만 생성되는 것을 보장하고 어디에서든 이 인스턴스에 접근할 수 있도록 하는 디자인 패턴이다. 원래 싱글턴이라는 단어는 ‘단 하나...

[Algorithm] 트라이(trie) / 백준 14425번 문자열 집합

[Algorithm] 트라이(trie) 트라이는 문자열 검색을 빠르게 실행할 수 있도록 설계한 트리 형태의 자료구조이다. 트라이의 핵심 이론 트라이는 일반적으로 단어들을 사전의 형태로 생성한 후 트리의 부모 자식 노드 관계를 이용해 검색을 수행한다. 트리의 루트에서부터 자식을 따라가면서 생성된 문자열들이 트라이 자료구조에 저장되어 있다고 볼 수 있...

[Algorithm] 트리 알아보기

[Algorithm] 트리(tree) 트리는 노드와 에지로 연결된 그래프의 특수한 형태로, 주요 특징은 다음과 같다. 순환 구조를 지니고 있지 않고, 1개의 루트 노드가 존재한다. 루트 노드를 제외한 노드는 단 1개의 부모 노드를 가진다. 트리의 부분 트리 역시 트리의 모든 특징을 가진다. 트리의 핵심 이론 ...

[Algorithm] 최소 신장 트리

[Algorithm] 최소 신장 트리 (Minimum Spanning Tree) 최소 신장 트리란 그래프에서 모든 노드를 연결할 때 사용된 에지들의 가중치의 합을 최소로 하는 트리이다. (Spanning Tree란, 그래프 내의 모든 정점을 포함하는 트리이다.) 즉, MST는 Spanning Tree 중에서 사용된 간선들의 가중치 합이 최소인 트리를 ...

[Algorithm] 플로이드-워셜 알고리즘

[Algorithm] 플로이드-워셜 알고리즘 플로이드-워셜 알고리즘은 모든 최단 경로를 구하는 알고리즘이다. 또한 알고리즘은 한 번 실행하면 모든 노드 간의 최단 경로를 구할 수 있다. 벨만 포드와 같이 음의 가중치를 허용한다. 그리고 모든 노드 간의 최단 거리를 구해야하므로 2차원 인접행렬을 구성한다. 플로이드-워셜 알고리즘 (floyd-warsh...

[Algorithm] 벨만-포드 알고리즘

[Algorithm] 벨만포드 알고리즘 벨만 포드 알고리즘는 최소 비용을 구하는 알고리즘이다. 하나의 출발점에서 모든 도착지까지의 걸리는 최소 비용을 구한다는 점에서 다익스트라와 비슷하다. 다익스트라 알고리즘은 음의 가중치를 허용하지 않는다. 그러나 벨만포드에서는 음의 가중치를 허용한다. 그렇지만 음의 사이클이 존재할 경우, 알고리즘은 제대로 동작하...

[Algorithm] 다익스트라 알고리즘

[Algorithm] 다익스트라 알고리즘 사실 다익스트라 알고리즘은 최단 경로 알고리즘 정리 편에서 다루었으나, 구현 방법에 대해서는 다루지 않았기 때문에 정리하면 좋을 것 같아 따로 포스트를 올리게 되었다. 다익스트라 알고리즘 (Dijkstra) 특징 특정 노드에서 출발하여 다른 모든 노드로 가는 최단 경로를 계산한다. 음의 간선이 존재하지 ...

[Algorithm] 최단 경로 알고리즘 정리 ( 다익스트라, 플로이드 워셜, 벨만 포드 )

[Algorithm] 최단 경로 알고리즘 (다익스트라, 플로이드 워셜, 벨만 포드 ) 최단 경로 알고리즘 최단 거리 알고리즘이란, 그래프 상에서 노드 간의 탐색 비용을 최소화하는 알고리즘이다. 즉, 가중 그래프에서 간선의 가중치 합이 최소가 되는 경로를 찾는 문제이다. 최단 경로 문제 최단 경로 문제는 다음과 같이 다양한 문제 상황이 주어진...

[Design Pattern] 싱글턴 패턴 (Singleton Pattern)

[DesignPattern] 싱글턴 패턴 (Singleton pattern) 정의 인스턴스가 단 하나만 생성되는 것을 보장하고 어디서나 그 인스턴스에 접근 가능하도록 하기 위한 패턴이다. 따라서 싱글턴 패턴을 사용하면 객체의 유일성을 보장할 수 있다. 또한 일반적으로 싱글턴 객체에 대한 참조를 public static 필드나 public sta...

[Design Pattern] 디자인 패턴의 목적

[DesignPattern] 디자인 패턴 디자인 패턴을 왜 사용해야 하는가? 디자인 패턴은 딱딱한 프로그래밍 언어를 현실 세계에서 사람이 일을 처리하는 방식을 이입시켜서 이해하기 쉽게 한다. 이터레이터 패턴은 학교에서 줄서있는 아이들에게 차례로 배식하기, 미디에이터 패턴은 법원, 퍼사드패턴은 안내데스크, 옵저버 패턴은 119신고에 대비할 수 있다. ...