잡학개발공간
article thumbnail
[Java] 우선순위큐(Priority Queue) 개념 및 예제
알고리즘/개념, 팁 2023. 10. 24. 09:17

우선순위 큐(Priority Queue)란? 우선순위 큐는 큐(Queue)의 한 종류로, 원소들이 우선순위에 따라 정렬되어 있는 자료 구조입니다. 일반적인 큐와는 달리, 우선순위 큐는 데이터를 꺼낼 때 우선순위가 가장 높은 데이터부터 꺼내게 됩니다. 언제 사용하는가? 작은 값이나 큰 값을 빠르게 찾아야 할 때 데이터를 정렬된 상태로 유지하면서 삽입과 삭제가 자주 발생하는 경우 다익스트라(Dijkstra) 알고리즘, 힙 정렬(Heap Sort) 등 알고리즘에 자주 사용됩니다. 자료 구조와 시간 복잡도 자료 구조: 일반적으로 힙(Heap)을 사용합니다. 시간 복잡도: 삽입과 삭제 모두 O(log N)입니다. 주요 메소드 add(E e): 원소 추가 poll(): 가장 우선순위가 높은 원소 삭제 및 반환 pe..

article thumbnail
[Spring] Spring MVC 패턴
Web 백엔드/Spring 2023. 10. 23. 17:02

Spring MVC 구성요소 DispatcherServlet: 클라이언트의 요청을 최초로 받는 프론트 컨트롤러. 적절한 컨트롤러에 요청을 전달하며, 응답을 클라이언트에 반환 HandlerMapper: 클라이언트의 요청 URL을 기반으로 해당 요청을 처리할 컨트롤러를 찾아주는 컴포넌트 Controller: 실제 요청을 처리하는 로직이 들어있는 클래스. @Controller로 정의. Service: 비즈니스 로직을 수행하는 계층. @Service로 정의 Dao (Data Access Object): 데이터베이스와의 통신을 담당하는 계층 ModelAndView: 컨트롤러가 처리 결과(데이터)와 뷰 이름을 함께 반환하는 객체 ViewResolver: 컨트롤러에서 반환된 뷰 이름을 실제 뷰로 변환해주는 컴포넌트...

article thumbnail
[Spring] 스프링 프레임워크와 특징
Web 백엔드/Spring 2023. 10. 23. 14:35

프레임워크? 프레임워크는 어플리케이션 개발 시 반복적으로 사용되는 공통적인 부분을 미리 구성해 놓은 라이브러리의 집합. SW 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합. 프레임워크는 개발자가 특정 규약 또는 구조 내에서 개발을 진행하도록 도와, 빠르고 안정적인 개발을 지원한다. 웹 어플리케이션을 개발하기 위해서는 많은 기능을 설계 작성해야하지만, 공통으로 사용되는 기본기능들을 일관되게 사용할 수 있으면 개발자는 웹 어플리케이션 기능 자체 개발에만 신경을 쓰면 되기 때문에 생산성이 높아진다. Spring, Django, Ruby on Rails 모두 프레임워크의 예시다. Spring 프레임워크 특징 IoC (제어의 역전) 정의: 전통적으로 프로그램의 흐름을 개발자가 제어했으나, Spr..

검색 태그