Goal Servlet에 대해 설명할 수 있다. Servlet의 동작 과정을 설명할 수 있다. Servlet Container 역할에 대해 설명할 수 있다. Servlet Life Cycle에 대해 설명할 수 있다. Servlet이란? 자바 플랫폼에서 컴포넌트를 기반으로 하는 웹 애플리케이션의 핵심 기술 입니다. 좀 더 풀어쓰자면 웹 프로그래밍에서 클라이언트의 요청을 처리하고, 그 결과를 다시 클라이언트에게 전송하는 Servlet 클래스의 구현 규칙을 지킨 자바 프로그래밍 기술입니다. Servlet 특징 클라이언트의 요청에 대해 동적으로 작동하는 웹 애플리케이션 컴포넌트입니다. Java Thread를 이용합니다. HTTP 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 ..
Dependency Injection(의존성 주입)이란? 아주 극단적인 설명을 드리자면, 스스로의 의존성을 능동적으로 설정하지 않고, 외부의 도움을 받아서 의존성을 설정한다는 말입니다. 일정 이상의 프로그램을 개발할때는 어떤 형태로든 객체들이 의존성을 맺어, 객체들간에 협력하면서 프로그램이 동작하게 마련인데, 이 의존성을 스스로 설정하지 않고 내가 의존해야(=사용해야) 하는 객체를 외부에서 할당(=주입)해주는 것을 의존성 주입이라고 합니다. 간단한 예를 들기 위해서, 어딘가에서 데이터를 읽어와서 화면에 출력하는 프로그램을 만든다고 해봅시다. 이 클래스는 데이터를 읽어오는 Reader 클래스를 필드로 갖고, 이 Reader 클래스의 인스턴스를 통해 데이터를 화면에 출력합니다. class ContentWri..
Goal JVM의 특징에 대해 이해할 수 있다. JVM의 구조에 대해 이해할 수 있다. JVM의 메모리 구조를 알 수 있다. Introduction JVM 은 Java Virtual Machine 으로 Java를 OS에 독립적으로 실행될 수 있게 하는 주체입니다. 이번 자료에서는 JVM의 특징과 구조에 대해서 파악할 것입니다. What is JVM JVM 의 특징 컴파일된 바이트 코드를 기계가 이해할 수 있는 기계어로 변환 스택 기반의 가상머신 메모리 관리와 GC를 수행 JVM 의 구성 Class Loader .java 파일은 컴파일 되어 .class 의 바이트 코드로 전환됩니다. 이러한 바이트 코드는 JVM의 Class Loader로 진입하게 됩니다. 그 후, 링크를 통해 배치하는 작업을 수행합니다. ..
JAR, WAR, EAR 정의 ※ J2EE 애플리케이션에서 모듈은 기능에 따라 EAR, JAR 및 WAR로 패키지됩니다. JAR (Java Archive) 엔터프라이즈 Java Bean (클래스 파일) 및 EJB 배치 디스크립터를 포함하는 EJB 모듈은 .jar 확장을 갖는 JAR 파일로 압축됩니다. WAR (Web Application Archive) 서블릿 클래스 파일, JSP 파일, 지원 파일, GIF 및 HTML 파일을 포함하는 웹 모듈은 확장자가 .war (웹 아카이브) 인 JAR 파일로 패키지됩니다. EAR (Enterprise Archive) 위의 모든 파일 (.jar 및 .war)은 확장자가 .ear (enterprise archive) 인 JAR 파일로 패키지되어 Application S..
Goal Garbage Collection의 역할에 대해 설명할 수 있다. Garbage Collection의 메모리 해제 과정을 3단계로 설명할 수 있다. Generational Gabage Collection에 대해 설명할 수 있다. Generational Garbage Collection 과정에 대해 설명할 수 있다. Minor GC와 Major GC의 차이점에 대해 설명할 수 있다. Abstract C/C++ 프로그래밍을 할 때 메모리 누수(Memory Leak)를 막기 위해 객체를 생성한 후 사용자하지 않는 객체의 메모리를 프로그래머가 직접 해제 해주어야 했습니다. 하지만, JAVA에서는 JVM(Java Virtual Machine)이 구성된 JRE(Java Runtime Environment)..
Goal JAVA의 동작 원리에 대해 설명할 수 있다. JVM의 역할에 대해 설명할 수 있다. JIT 컴파일러에 대해 설명할 수 있다. Introduction 자바는 OS에 독립적인 특징을 가지고 있는데, 그것이 가능한 이유는 JVM(Java Vitual Machine) 상에서 실행되기 때문입니다. JVM에 대해 간략하게 설명하자면, 자바 소스코드 컴파일 후 생성된 파일이 해석(Interpret)과 Link없이 바로 JVM에 적재되고, OS로 부터 메모리를 할당받아 GC(Garbage Collection)를 통해 스스로 메모리 관리를 한다는 특징이 있습니다. 이제 본격적으로 JAVA의 동작원리에 대해 학습해보겠습니다. Process 우선 위의 그림을 토대로 간략하게 동작원리에 대해 짚고 넘어가보겠습니다...
원래 자바 1.8 버전을 사용하다가 자바 10으로 업그레이드한 후 몇 달전에 만들었던 jsp 프로그램을 오랜만에 실행시키려하다가 갑자기 이런 에러가 나는 것을 발견했다 could not create the Java Virtual Machine 이라는 에러는 예전에 봤던 기억이 있지만 콘솔창에 나오는 endorsed is not supported. Endorsed standards and standalone APIs in modular form will be supported via the concept of upgradeable modules. 라는 에러는 처음 보는 에러라서 조금 당황스러웠다. 그래도 해결할 수 있다는 생각으로 구글링을 하기 시작했다. 몇 가지 해결법이 나와 있었는데 eclipse.in..
개요 이클립스(Eclipse software) 를 Oxygen 버전에서 Photon 버전으로 업데이트 를 하는 과정을 기록해두었습니다. 업데이트 과정 전체 과정 요약 1. Available Software Sites 에 '새로운 릴리즈 링크' 추가 2. 'Check for Updates' 를 눌러서 업데이트 진행 (1) Available Software Sites 설정에 들어가는 과정 1. [Windows] > [Preferences] 2. [Install/Update] > [Available Software Sites] 선택 3. [Add] 클릭 후 링크 값을 추가함. 추가할 Link : https://download.eclipse.org/releases/photon/ (2) Check for Upda..
ArrayList를 정렬하는 방법은 Collections.sort() 함수를 통해 가능합니다. Collections.sort() 함수는 두 가지 형태에 대해서 오버라이딩이 되어 있습니다. 첫 번째 함수 형태는 하나의 인자 정보를 넘겨주는 형태로 ArrayList 객체를 넘겨줍니다. 이때 ArrayList에 담기는 요소의 Type 클래스에서 Comparable 인터페이스를 구현하여 compareTo() 함수를 오버라이딩 해줘야합니다. 두 번째 함수 형태는 첫 번째 인자를 ArrayList 객체를 넘겨주게 되고 두 번째 인자는 Comparator 인터페이스를 상속받아 compare() 함수를 오버라이딩한 구현체를 넘겨주게 됩니다. 1. Integer Type Data를 요소로 가지는 ArrayList imp..
람다함수란? 람다 함수는 프로그래밍 언어에서 사용되는 개념으로 익명 함수(Anonymous functions)를 지칭하는 용어입니다. 현재 사용되고 있는 람다의 근간은 수학과 기초 컴퓨터과학 분야에서의 람다 대수이다. 람다 대수는 간단히 말하자면 수학에서 사용하는 함수를 보다 단순하게 표현하는 방법입니다. 람다의 특징 람다 대수는 이름을 가질 필요가 없다. - 익명 함수 (Anonymous functions) 두 개 이상의 입력이 있는 함수는 최종적으로 1개의 입력만 받는 람다 대수로 단순화 될 수 있다. - 커링 (Curring) 익명함수? 익명함수란 말그대로 함수의 이름이 없는 함수입니다. 익명함수들은 공통으로 일급객체(First Class citizen)라는 특징을 가지고 있습니다. 이 일급 객체란..
- Total
- Today
- Yesterday