전체 글

· 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..
Java 배열로 큐(Queue) 구현하기 Java의 배열을 이용하여 큐(Queue)를 구현하는 방법에 대해 알아보겠습니다. 1. 큐(Queue) 큐는 먼저 들어간 데이터가 먼저 나오는선입선출(FIFO: First In First Out)의 자료구조이며, 대기열 이라고도 합니다. (Queue라는 단어 자체가 표를 구매하기 위해 일렬로 늘어선 줄을 의미합니다.) 데이터가 삽입되는 위치는 Rear 또는 Back 이라고 하며 가장 뒤에 있고, 데이터가 추출되는 위치는 Front라고 하며 가장 앞에 있습니다. 큐는 일반적으로 데이터가 입력된 순서대로 처리되어야 할 경우에 사용합니다. 큐의 variation 으로는 우선순위 큐, 원형 큐, 데크(deque) 등이 존재하며 일반적으로 입력은 enqueue, 출력은 d..
Java 배열로 스택(Stack) 구현하기 Java의 배열을 이용하여 스택(Stack)을 구현하는 방법에 대해 알아보겠습니다. 1. 스택(Stack) 스택은 제한적으로 접근할 수 있는 나열된 구조입니다. 후입선출(LIFO: Last In First Out)의 자료구조이며, 접근이 목록의 끝(Top 또는 Top Pointer)에서만 일어나기 때문에 Pushdown List 라고도 합니다. 스택에서 입력은 push, 출력은 pop, Top 위치의 데이터 확인은 peek 를 사용합니다. 스택은 추상자료형(Abstract Data Type)으로 수학적 모델을 가졌으며 구현 방법을 따로 명시하고 있지 않다는 점에서 자료구조와 차이를 보입니다. 이러한 특징은 다양한 방법으로 구현될 수 있음을 의미합니다. 다음은 스..
스프링 프레임워크(Spring Framework) MyBatis와 MySQL의 설정 스프링 프레임워크와 MyBatis 연동 및 MySQL의 설정에 대해 알아보겠습니다. MyBatis는 Java Persistence Framework의 한 종류로 XML 또는 애너테이션을 통해 SQL문 또는 저장 프로시저로 객체들을 매핑해줍니다. MyBatis는 스프링을 이용한 개발 중 국내에서 가장 많이 쓰이는 형태로 SQL 처리에 대한 개발 생산성을 높이는 형태로 사용됩니다. ※ 퍼시스턴스 프레임워크(Persistence Framework)데이터의 저장, 조회, 변경, 삭제를 다루는 클래스 및 설정 파일들의 집합입니다. JDBC의 복잡함이나 번거로움 없이 간단한 작업만으로 데이터베이스와 연동되는 시스템을 빠르게 개발할 ..
스프링 프레임워크(Spring Framework) MySQL 설정과 스프링 테스트 스프링과 데이터베이스가 어떻게 연동되는지 이해하고 실습을 통해 확인해보도록 하겠습니다. 데이터베이스는 MySQL 5.7 버전을 사용했으면 window 기준 설치 방법은 아래 링크를 참고해주시면 됩니다. * MySQL 5.7 Downloadhttps://dev.mysql.com/downloads/windows/installer/5.7.html * MySQL 5.7 설치https://limkydev.tistory.com/86 1. DB 테스트 MySQL 설치가 완료되면 간단한 스키마와 테이블을 작성하고 연동 테스트를 진행합니다. 실습을 진행하기 전에 설치한 DB의 설정을 확인하고 문자열이 UTF-8로 세팅되어 있는지 확인합니다..
스프링 프레임워크(Spring Framework)에 대한 간단한 소개 이번 포스팅에서는 스프링 프레임워크가 현재와 같이 많은 인기를 얻게 된 이유와 중요한 특징들에 대해 간단하게 알아보겠습니다. 1. 스프링 프레임워크가 개발의 대세가 된 이유 프레임워크(Framework)는 말 그대로 뼈대나 근간을 이루는 코드들의 묶음이라고 볼 수 있습니다. 여기서 우리는 프레임워크가 왜 필요한지에 대해 생각해볼 필요가 있습니다. 개발자는 개개인의 능력 차이가 큰 직종인데 이러한 개발자들이 모여서 만들어내는 프로젝트의 결과 역시 차이가 클 수밖에 없습니다. 따라서 프레임워크는 이러한 상황을 극복하기 위해 만들어졌으며, 프레임워크는 프로그램의 기본 흐름이나 구조를 정하고 모든 팀원이 이 구조에 자신의 코드를 추가하는 방식..
freestrokes
FREESTROKES DEVLOG