Java

Spring Boot Properties 클래스 사용하기 Spring Boot에서 Properties 설정값들을 클래스에 매핑하여 사용하는 방법에 대해 정리한 내용입니다. 1. Properties 클래스 사용하기 Spring Boot에서 설정값을 사용하기 위해서 application.properties 또는 application.yml 파일에 key value 형식의 데이터를 저장하고 다음과 같이 @Value 어노테이션으로 읽어와서 사용하는 경우가 있습니다. public class ApplicationProperties { @Value("${property.name}") private String propertyName; @Value("${property.age}") private String prope..
Spring Boot JPA 알아보기 Spring Boot에서 JPA를 사용하는 방법에 대해 정리한 내용입니다. 1. Spring Boot JPA 1.1. JPA (Java Persistence API) JPA는 EJB(Enterprise Java Beans) 3.0 스펙에서 Hibernate를 기반으로 JavaSE, JavaEE를 위한 영속성 관리와 ORM을 위한 기술 표준입니다. 즉, ORM을 사용하기 위한 표준 API 인터페이스를 정의한 것입니다. JPA를 사용하기 위해서는 Hibernate, OpenJPA, EclipseLink, DataNucleus 등과 같이 JPA를 구현한 ORM 프레임워크를 사용해야합니다. Spring의 Spring Data JPA를 사용하면 JPA를 더 편리하게 사용할 수..
MySQL SQLException: Zero date value prohibited 해결하기 MySQL에서 datetime 타입의 컬럼의 값을 조회할 때 다음과 같은 exception이 발생하는 경우가 있습니다. ERROR o.h.e.jdbc.spi.SqlExceptionHelper - Zero date value prohibitedERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.orm.jpa.J..
· Algorithm
Java DFS를 이용한 미로 탐색 Java로 DFS(Depth First Search)를 이용하여 간단한 미로 탐색을 구현하는 방법에 대해 알아보겠습니다. 1. 미로의 탐색 위와 같은 미로가 있다고 했을 때 탐색을 위해서는 출발 정점과 도착 정점의 설정이 필요합니다. S를 출발 정점, F를 도착 정점이라고 했을 때 S부터 F까지 도달 가능한 모든 경로를 구하고 이 중에서 최단 경로의 값을 구하는 방법에 대해 알아보겠습니다. 2. DFS를 이용한 미로 탐색 구현 이전에 깊이 우선 탐색(DFS)에 대해서 정리한 내용을 간단히 설명하면, DFS는 출발 정점부터 시작하여 최대한 깊숙히 탐색 후 원점으로 돌아가서 다른 정점을 탐색하는 방식입니다. 미로 탐색에 사용하는 DFS의 조건은 다음과 같습니다. 미로 탐색..
· Algorithm
Java DFS(Depth First Search) 구현하기 Java로 DFS(Depth First Search)를 구현하는 방법에 대해 알아보겠습니다. 1. 그래프의 탐색 그래프의 탐색은 하나의 정점으로부터 시작하여 모든 정점을 차례대로 한 번씩 방문하는 것을 의미합니다. 예를 들어 특정 도시에서 다른 도시로의 이동 여부 판별이나 회로에서 단자와 단자의 연결 여부 확인 등에 사용됩니다. 그래프 탐색에서 대중적으로 많이 알려진 알고리즘은 DFS와 BFS가 있는데 이번 포스팅에서는 DFS에 대해서 알아보도록 하겠습니다. 2. 깊이 우선 탐색(DFS, Depth First Search) 깊이 우선 탐색(DFS)는 루트 노드나 임의의 노드에서 시작하여 최대한 깊숙히 들어가서 탐색한 후 다시 원점으로 돌아가 다..
· Algorithm
Java 인접행렬과 인접리스트를 이용하여 그래프 구현하기 Java로 인접행렬과 인접리스트를 만들어 그래프를 구현하는 방법에 대해 알아보겠습니다. 1. 그래프 (Graph) 수학적 정의로 그래프는 객체들의 쌍들이 서로 연관되어 객체의 집합을 이루는 구조를 의미합니다. 쉽게 설명하면 사물이나 추상적인 개념간의 연결 관계를 표현한 것이라고 할 수 있습니다. 도시를 연결하는 도로망이나 사람들 간의 관계, 웹 사이트의 링크 관계 등이 이에 해당하는 예시 입니다. 그래프에 대해서는 많은 내용들이 있지만 이번 포스팅에서는 간단하게 정리하여 알아보겠습니다. 1.1 그래프의 구성요소 그래프의 구성요소를 간단하게 정리하면 다음과 같습니다. 정점 (Vertex / Node) 그래프에서 위치를 나타냅니다.간선 (Edge / ..
Java 연결 리스트로 큐(Queue) 구현하기 Java의 연결 리스트를 사용하여 큐를 구현하는 방법에 대해 알아보겠습니다. 1. 연결 리스트를 이용한 큐 구현 큐 또한 추상 자료형이기 때문에 구현 방법을 따로 명시하지 않아 다양한 방법으로 구현이 가능합니다. 다음은 이전에 알아봤던 연결리스트를 사용하여 구현한 큐의 소스코드입니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061..
Java 연결 리스트로 스택(Stack) 구현하기 Java의 연결 리스트를 사용하여 스택을 구현하는 방법에 대해 알아보겠습니다. 1. 연결 리스트를 이용한 스택 구현 스택은 추상 자료형이기 때문에 구현 방법을 따로 명시하지 않아 다양한 방법으로 구현이 가능합니다. 다음은 이전에 알아봤던 연결리스트를 사용하여 구현한 스택의 소스코드입니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051..
Java로 연결 리스트(Linked List) 구현하기 Java로 연결 리스트(Linked List)를 구현하는 방법에 대해 알아보겠습니다. 1. 연결 리스트(Linked List) 연결리스트는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식의 자료구조입니다. 데이터를 담고 있는 노드들이 연결되어 있고, 노드의 포인터가 이전, 다음 노드와의 연결을 담당합니다. 배열에 비해서 데이터의 추가/삭제가 용이하나, 인덱스가 없는 리스트의 특징으로 인하여 특정 요소에 접근하기 위해서는 순차 탐색을 필요로 하므로 일반적으로 탐색 속도가 떨어집니다. 즉, 탐색 또는 정렬을 자주하는 경우엔 배열을 사용하고 데이터의 추가/삭제가 많은 경우 연결 리스트를 사용하는 것을 권장합니다. (자바 LinkedList..
freestrokes
'Java' 태그의 글 목록