본문 바로가기

🧑🏻‍💻 Dev

(60)
[자바 알고리즘] Greedy Algorithm (그리디 알고리즘) 📘 Greedy Algorithm (그리디 알고리즘) 📖 그리디 알고리즘이란? 미리 정한 기준에 따라서 매번 가장 좋아보이는 답을 선택하는 알고리즘을 말한다. 즉, 다시 말해 백트래킹을 하여 내가 선택한 결과에 대해서 검증하지 않고, 이미 어떤 선택을 했다면 다른 선택의 가능성을 전혀 고려하지 않는다. 그래서 그리디 알고리즘은 속도가 빠르다는 장점이 있지만, 다른 선택의 가능성을 고려하지 않기 때문에 생기는 문제점이 존재한다. 그 문제점은 바로 그리디 알고리즘을 통해 나오는 결과 값이 항상 최적의 값이 될 수 없다는 것이다. 📖 그리디 알고리즘의 문제점 예를 들어 노드 1번에서 노드 5번까지 가는 길이 아래 그림 처럼 존재한다고 가정하고, 우리는 가장 최적의 값(가까운 거리)을 선택하면서 직진해 나갈 것..
[자바 알고리즘] DFS와 BFS 📘 DFS (Depth First Search) 📖 DFS란? 깊이 우선 탐색이라고 하며, 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘입니다. 📖 DFS 동작 방식 스택(Stack) 자료구조를 사용합니다. 탐색을 시작할 노드를 스택에 넣고, 방문 처리를 진행합니다. 방문하지 않은 근접 노드가 존재한다면 스택에 넣고, 방문 처리를 진행합니다. 만약 근접 노드가 모두 방문처리가 되어있다면 해당 노드를 스택에서 제거합니다. 위 과정을 반복해서 진행하고, 더이상 진행할 수 없을 때 탐색을 종료합니다. (스택이 비어있을 때 종료) 📖 DFS 그림으로 이해하기 위와 같은 그래프가 존재한다고 생각해봅시다. 우리는 1번 부터 탐색을 시작할 것 입니다. 먼저 사용할 Stack과 방문처리용 Visit를 하나 만들어..
[SpringBoot] Annotation(@) 기능 정리 스프링부트로 웹 서비스 출시하기 1, 2, 3편을 보면서 실습하고 정리해둔 내용 입니다. 틀린 내용이 있다면 피드백 주시면 감사할 거 같습니다. 🙂 3번째 글까지 모두 완주했고, SpringBoot는 2.7.7 버전을 사용해서 진행했습니다. 자세한 소스코드는 깃허브 주소에 가시면 볼 수 있습니다. 📘 JPA/Javax 에서 제공하는 Annotation @Entity 데이터베이스 테이블과 연결되는 객체임을 나타내줍니다. 테이블의 이름은 ‘_’ 언더바를 이용하여 매칭합니다. 예를 들어 파일이름이 MyPage.java라면 테이블 이름은 my_page로 매핑됩니다. @Id 해당 테이블의 primary key임을 나타냅니다. @GeneratedValue PK 생성 규칙을 결정할 수 있습니다. springboot ..
[SpringBoot] data-h2.sql 파일 작동 안되는 오류 (version 2.7.7) 🫤 문제 발생 메모리 데이터베이스인 H2에서 서버를 열고 닫을 때 마다 데이터가 없어지기 때문에 별도의 data-h2.sql 파일을 만들어 서버를 열 때마다 초기 데이터를 저장하도록 하려는 도중 모든 설정을 끝내고 확인해봤는데 데이터가 초기화되지 않는 문제가 발생 data-h2.sql INSERT INTO posts (id, created_date, modified_date, title, content, author) VALUES (1, now(), now(), '제목1', '본문1', '작성자1'); INSERT INTO posts (id, created_date, modified_date, title, content, author) VALUES (2, now(), now(), '제목2', '본문2',..