본문 바로가기
반응형

분류 전체보기135

Comparable 인터페이스 Java의 Comparable 인터페이스는 객체들의 정렬(sorting)을 위해 사용됩니다. - Comparable 인터페이스는 compareTo() 메서드 하나만 정의되어 있습니다. - 이 인터페이스를 구현한 클래스는 서로 그 객체들을 비교할 수 있습니다. - compareTo() 메서드는 인자로 전달된 객체와 자신을 비교해서 정수 값을 리턴합니다. - 반환값이 0이면 두 객체가 같다는 것이고, 음수이면 자신이 앞에 오고, 양수이면 인자로 받은 객체가 앞에 오는 것입니다. - 이를 통해 객체들을 정렬할 수 있습니다. - 주로 Wrapper 클래스(Integer, Double 등), String, Date와 같은 클래스가 Comparable을 구현하고 있습니다. - Collections.sort()를 사.. 2023. 11. 16.
PriorityQueue (우선순위 큐) PriorityQueue는 우선순위 큐(priority queue)를 구현한 자료구조입니다. 이는 우선순위(priority)를 가진 항목들을 저장하는 큐로, 항목의 우선순위에 따라 항목들이 저장/제거됩니다. PriorityQueue는 내부적으로 배열이나 힙(heap)등의 자료구조를 사용하여 구현될 수 있습니다. 대표적으로는 최소 힙(min heap)을 기반으로 구현되어, 저장된 항목 중 우선순위가 가장 높은(값이 가장 낮은) 항목이 가장 먼저 제거됩니다. PriorityQueue의 주요 메서드는 다음과 같습니다: - add(E e): 큐에 항목 e를 삽입합니다. - peek(): 큐의 제일 앞, 즉 우선순위가 가장 높은 항목을 반환합니다. - poll(): 큐의 제일 앞 항목을 제거하고 반환합니다. - .. 2023. 11. 14.
웹 애플리케이션의 이해 1. 웹 서버, 웹 애플리케이션 서버 1) 웹 서버(Web Server) HTTP 기반으로 동작 정적 리소스 제공, 기타 부가 기능 정적(파일) HTML, CSS, JS, 이미지, 영상 NGNIX, APACHE 등 2) 웹 애플리케이션 서버(WAS - Web Application Server) HTTP 기반으로 동작 웹 서버 기능 포함 프로그램 코드를 실행해서 애플리케이션 로직 수행 동적 HTML, HTTP API(JSON) 서블릿, JSP, 스프링 MVC 톰캣, Jetty, Underetow 3) 웹 서버, 웹 애플리케이션 서버 차이 웹 서버는 정적 리소스(파일), WAS는 애플리케이션 로직 자바는 서블릿 컨테이너 기능을 제공하면 WAS WAS는 애플리케이션 코드를 실행하는데 더 특화 4) 웹 시스템 .. 2023. 11. 7.
캐시와 조건부 요청 1. 캐시 기본 동작 1) 캐시가 없을 때 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. 인터넷 네트워크는 매우 느리고 비싸다 브라우저 로딩 속도가 느리다 느린 사용자 경험 2) 캐시 적용 캐시 덕분에 캐시 가능 시간 동안 네트워크를 사용하지 않아도 된다. cache-control: max-age=60 (캐시가 유효한 시간) 비싼 네트워크 사용량을 줄일 수 있다. 브라우저 로딩 속도가 매우 빠르다. 빠른 사용자 경험 3) 캐시 시간 초과 캐시 유효 시간이 초과하면, 서버를 통해 데이터를 다시 조회하고, 캐시를 갱신한다. 이때 다시 네트워크 다운로드가 발생한다. 2. 검증 헤더와 조건부 요청 캐시 유효 시간이 초과해서 서버에 다시 요청하면 다음 두 가지 상황이 나타난다. .. 2023. 11. 3.
Doubly Linked List 이중 연결 리스트 * 이중 연결 리스트는 순차적으로 연결된 노드 집합으로 구성된 데이터 구조 * 각 노드가 이전 노드와 다음 노드를 가리킨다. * 노드는 이전 노드와 다음 노드를 가리키는 두 개의 포인터로 '이중 링크'되어 있다. public class DoublyLinkedList { Node head; // 첫번째 노드 Node tail; // 마지막 노드 int size; // 이중 연결 리스트 요소 수 //constructor public DoublyLinkedList(){ head = null; tail = null; size = 0; } //node class private static class Node { int data; Node prev; Node next; //constructor public Node.. 2023. 10. 24.
반응형