Astar 알고리즘 최단거리 알고리즘의 종류 중 하나로 A* Astar 알고리즘이 있습니다.기본 이론은 현재 위치를 기준으로 startPoint까지의 거리, endPoint까지의 거리, 총거리를 구해서 총거리가 짧은 부분을 따라가는 것입니다. g : startPoint 시작점으로 부터의 거리h : endPoint 목적지 까지의 거리f : g+h 총 거리 주황색이 벽, 흰색이 길, 파란색이 경로입니다. int[][] position = {{0, -1}, {0, 1}, {-1, 0}, {1, 0}}; int[][] position = {{0, -1}, {0, 1}, {-1, 0}, {1, 0}, {-1, -1}, {1, 1}, {-1, 1}, {1, -1}}; position을 어떻게 주는가에 따라 직..
AVL Tree AVL Tree 란?이진 탐색 트리의 종류 중 하나로 한쪽으로 치우쳐 자라나는 현상을 방지하여 트리 높이의 균형을 유지하는 이진탐색트리입니다. 불균형 트리를 균형 트리로 만들게 되면 탐색 속도가 향상됩니다. AVL Tree 특성Balance AVL은 Node에 Balance(균형도)라는 값이 존재함 Node의 Balance의 절댓값이 2이상이면 불균형이라고 판단 하여 노드를 회전하여 균형 트리로 조정함 heightLeaf 노드의 높이는 항상 0 Leaf 노드로 부터 현재 노드까지의 높이 중 최댓값 Null 노드의 높이는 항상 -1 Tree 예시이진트리의 경우 한쪽으로 치우친 트리 형태가 나타날 수 있지만,AVL 트리는 좌우 균형도를 맞춰서 검색속도를 올릴 수 있습니..
DTO, DAO, VO 차이 DTO와 DAO차이DTO는 데이터 전송객체이고, DAO는 데이터 액세스 객체입니다. DTO와 VO의 차이DTO는 setter와 getter를 모두 가지고 있지만, VO는 주로 getter만을 가집니다. DTO(Data Transfer Object) : 데이터 전송 객체DTO는 데이터의 전송과 관련된 클래스로, 주로 여러 데이터 필드를 가지며, 데이터 전달을 위한 용도로 설계됩니다. 주로 비즈니스 로직과 데이터베이스 사이에서 데이터 교환을 위해 사용되며, 데이터베이스와의 통신을 최적화하는 데 도움이 됩니다. DTO 예제public class UserDTO { private int id; private String username; private Str..
Thread란 무엇인가요? 스레드란?프로그래밍에서 여러 작업을 동시에 실행하기 위한 작업의 단위 스레드를 사용하면 다른 작업들을 동시에 실행할 수 있어서 프로그램의 성능을 향상시킬 수 있습니다. 스레드(Thread) 간단한 예시 입니다. 동시에 3가지의 출력을 진행하였고, 3가지 출력이 동시에 진행되기 때문에 순서가 번갈아가며 출력되는 것을 볼 수 있습니다. MainThreadpackage thread;public class MainThread { public static void main(String[] args) throws InterruptedException { // 쓰레드를 만드는 방법 // 1.Thread 클래스를 상속받아서 만드는 방법 // 2..
인터페이스란 무엇인가요? 인터페이스란?인터페이스는 메서드의 집합을 정의하지만 구현하지 않은 추상 형태의 클래스 자바에서 인터페이스는 추상화된 클래스와 비슷한데, 메서드의 목록만을 정의하고 구현하지는 않습니다. 대신에 인터페이스를 구현한 클래스에서 그 메서드들을 구현합니다. 이렇게 함으로써 코드의 유연성과 재사용성을 높일 수 있습니다. 인터페이스는 다른 클래스 간의 통신을 위한 계약(contract)으로 사용되며, 서로 다른 클래스들이 동일한 동작을 보장하도록 합니다. 인터페이스 예시interface Animal { void makeSound();}동물을 나타내는 인터페이스인 Animal class Dog implements Animal { public void makeSound() { ..
스토어드 프로시저일련의 쿼리를 하나의 함수 처럼 실행하기 위한 쿼리의 집합. SQL 프로시저 쿼리 만드는 방법# 스토어드 프로시저 문법DELIMITER $$CREATE PROCEDURE SP이름 (IN 또는 OUT 속성)BEGIN 쿼리END $$DELIMITER ; $$시작부분~$$끝나는 부분 사이에서는 ;세미콜론이 종료의 역할을 안합니다.END $$ 이후 부분에서 세미콜론 사용시 쿼리의 종료 역할로 사용됩니다. 빨간부분은 프로시저 작동 시 호출되어 실행되는 쿼리입니다. 실제 프로시저를 사용하려면 'CALL 프로시저명();'으로 사용합니다. 속성 값 받아서 실행하는 프로시저 프로시저 생성 예제1 프로시저 이름 뒤의 괄호(IN 속성명 속성형태)에 형태순으로 값을 넣어준다.속성명을 조회하는 쿼리..