본문 바로가기
728x90

분류 전체보기188

웹 애플리케이션의 이해 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.
ArrayList 1. 생성 ArrayList arrayList = new ArrayList(); 2. 요소 추가 arrayList.add("apple"); arrayList.add(2,"banana"); 3. 요소 검색 arrayList.get(1); 4. 요소 업데이트 arrayList.set(1, 'grape'); 5. 요소 제거 arrayList.remove(2); 6. 크기 출력 System.out.print(arrayList.size()); 7. 요소 포함 여부 if(fruits.contains("banana")) { System.out.print("true"); }else { System.out.print("false"); } 8. 정렬 오름차순 정렬 : Collections.sort() ArrayList l.. 2023. 10. 23.
배열 인덱스 범위 초과 예외 처리 int[] numbers = {1,2,3,4,5}; try { int value = numbers[5]; }catch(ArrayIndexOutOfBoundsException e) { System.out.println("invalid index specified"); } 2023. 10. 18.
728x90