전체 글

전체 글

    스프링 MVC

    웹 서버, 웹 애플리케이션 서버 웹 서버는 정적 리소스, WAS는 애플리케이션 로직 웹 시스템 구성 - WEB, WAS, DB 정적 리소스는 웹 서버가 처리 웹 서버는 동적인 처리가 필요하면 WAS에 이를 위임 WAS는 중요한 애플리케이션 로직 담당 서블릿 HTTP 요청 시 WAS는 Request, Response 객체를 새로 만들어서 서블릿 객체 호출 개발자는 Request 객체에서 HTTP 요청 정보를 편리하게 꺼내서 사용 개발자는 Response 객체에 HTTP 응답 정보를 편리하게 입력 WAS는 Response 객체에 담겨있는 내용으로 HTTP 응답 정보를 생성 서블릿 컨테이너 톰캣처럼 서블릿을 지원하는 WAS를 서블릿 컨테이너라고 함 서블릿 컨테이너는 서블릿 객체를 생성, 초기화, 호출, 종료하..

    4. heap, priority queue, union find

    Heap 자료구조의 일종으로 Tree의 형식을 하고 있으며, Tree 중에서도 배열에 기반한 Complete Binary Tree 이다. 배열에 트리의 값들을 넣어줄 때, 1번 index 부터 루트노드가 시작된다. 힙에는 Max heap과 Min heap 두 종류가 있다. Max Heap 이란, 각 노드의 값이 해당 children의 값보다 크거나 같은 complete binary tree를 말한다. Max Heap 에서 최대값을 찾는데 필요한 시간복잡도는 O(1)이다. 하지만 heap의 구조를 계속 유지하기 위해서는 제거된 루트 노드를 대체할 다른 노드가 필요하다. 여기서 heap은 맨 마지막 노드를 루트 노드로 대체한 후, 다시 heapify 과정을 거쳐 heap 구조를 유지한다. 이런 경우엔 O(l..

    4. 상속

    상속 부모 클래스의 멤버를 자식 클래스에게 물려주는 것 class 자식클래스 extends 부모클래스 { ... } 조상 클래스 : 상속 해주는 클래스 (부모 클래스, 상위 클래스, 기반 클래스) 자손 클래스 : 상속 받는 클래스 (자식 클래스, 하위 클래스, 파생된 클래스) 상속의 장점 1. 코드의 중복을 줄여줌 2. 개발 시간 줄여줌 3. 수정을 최소화 -> 유지 보수 시간 최소화 상속의 특징 1. 생성자와 초기화 블럭은 상속되지 않는다. 멤버만 상속된다. 2. 자손 클래스의 멤버 개수는 조상 클래스보다 항상 같거나 많다. 3. 자손 클래스의 인스턴스를 생성하면 조상 클래스의 멤버와 자손 클래스의 멤버가 합쳐진 하나의 인스턴스로 생성된다. 4. 부모 클래스에서 private 접근 제한을 갖는 필드와 ..

    3. 클래스

    클래스와 객체, 인스턴스 클래스 : 객체를 정의해 놓은 것, 객체의 설계도 또는 틀 객체 : 클래스에 정의된 내용대로 메모리에 생성된 것(실제로 존재하는 것) 인스턴스 : 클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화 라고 하며, 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 한다. 객체와 인스턴스의 차이점 인스턴스와 객체는 같은 의미이지만, 객체는 모든 인스턴스를 대표하는 포괄적인 의미를 갖고 있으며, 인스턴스는 어떤 클래스로부터 만들어진 것인지를 강조하는 보다 구체적인 의미를 갖고 있다. ex) 책상은 인스턴스다라고 하기 보다는 책상은 객체다라는 쪽이, 책상은 책상 클래스의 객체이다라고 하기 보다는 책상은 책상 클래스의 인스턴스다 라는 쪽이 자연스럽다. 객체의 구성 속성 : 멤버 ..

    3. Tree

    Tree 트리는 스택이나 큐와 같은 선형구조가 아닌 비선형 자료구조이다. 트리는 계층적 관계를 표현하는 자료구조이다. 트리의 구성 요소 Node(노드) : 트리를 구성하고 있는 각각의 요소 Edge(간선) : 트리를 구성하기 위해 노드와 노드를 연겨하는 선 Root(루트) : 트리 구조에서 최상위에 있는 노드 Terminal or Leaf Node(단말 노드) : 하위에 다른 노드가 연결되어 있지 않은 노드 Internal Node(비단말 노드) : 단말 노드를 제외한 모든 노드로 루트 노드를 포함 이진 트리(Binary Tree) 루트를 중심으로 두 개의 서브 트리로 나뉜 트리이다. 또한 나뉜 두 서브 트리도 모두 이진 트리어야 한다. 재귀적인 성질을 가지고 있다. 추가로 공집합도 이진 트리로 포함시켜..

    1. JVM 이란?

    JVM (Java Virtual Machine) - OS를 대신해 자바 프로그램을 실행하는 가상의 OS 역할 운영체제는 자바 프로그램을 바로 실행할 수 없고, 자바 프로그램은 완전한 기계어가 아닌 중간 단계의 바이트 코드이기 때문에 이를 해석하고 실행할 수 있는 가상의 운영체제가 필요하다. 이를 가능하게 해주는 것이 JVM -> JVM은 JAVA와 OS 사이에서 자바 프로그램을 실행하는 중계자 역할을 한다. JVM은 왜 있는가? => OS에 독립적은 JAVA 프로그램을 위하여 - 운영체제별로 프로그램을 실행하고 관리하는 방법이 달라 운영체제별로 자바를 따로 개발하는 것 보단, 운영체제와 자바 프로그램을 중계하는 JVM을 둔다. - 그 결과, JVM을 통해 하나의 자바프로그램을 여러 운영체제에서 실행하더라..

    2. 데이터 타입, 변수

    데이터 타입 1. Primitve type : 정수, 실수, 문자, 논리 리터럴을 직접 저장하는 타입 2. Non-Primitive type Reference Type 참조형 타입(Reference Type) 기본형 타입을 제외한 타입들이 모두 참조형 타입이다. null 값이 존재한다 주소값을 저장하는 공간으로 Heap에 저장된다. ReferenceType 자료형 보다 기본형 자료형을 선호하는 이유 산술 연산이 가능하다. 매개변수로 객체가 요구되지 않을 때 기본값을 주어져서 저장할 때 객체간의 비교가 없을 때 참조 타입 변수들 간의 !=, == 연산은 동일한 객체를 참조하는지, 다른 객체를 참조하는지 알아볼 때 사용 참조 타입 변수의 값 -> 힙 영역의 객체 주소(값을 비교하려면 equals) 문자열 저..

    2. Stack and Queue

    Stack Stack은 나중에 들어간 원소가 먼저 나오는 Last In First Out(LIFO) 자료구조이다. 차곡차곡 쌓이는 구조로 먼저 Stack에 들어간 원소는 바닥에 깔리게 된다. 후에 들어간 원소는 그 위에 쌓이고 호출 시 가장 위에 있는 원소가 호출된다. Queue Queue는 먼저 들어간 원소가 먼저 나오는 First In First Out(FIFO) 자료구조이다. Stack과 반대로 먼저 들어간 원소가 맨 앞에 대기하고 있다 호출 시 먼저 호출되는 구조이다.