전체 글 (17) 썸네일형 리스트형 JVM heap 과 steak JVM JVM 메모리 구조를 설명하기 전에 JVM이 무엇인지 알아야 한다. JVM은 Java Virtual Machine의 약자로, 자바 가상 머신이라고 부른다. 그리고 자바와 운영체제 사이에서 중개자 역할을 수행하며, 자바가 운영체제에 구애 받지 않고 프로그램을 실행할 수 있도록 도와준다. 출저: https://steady-coding.tistory.com/305 먼저, 자바 컴파일러에 의해 자바 소스 파일은 바이트 코드로 변환된다. 그리고 이러한 바이트 코드를 JVM에서 읽어 들인 다음에, 이것저것 복잡한 과정을 거쳐서 어떤 운영체제든간에 프로그램을 실행할 수 있도록 만드는 것이다. 자바 소스 파일은 리눅스에서 만들었고 윈도우에서 이 파일을 실행하고 싶다면, 윈도우용 JVM을 설치만 하면 된다. 여기.. LomBok Lombok java 라이브러리로 반복되는 getter, setter, toString 등의 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리다. Lombok은 여러가지 어노테이션을 제공하고 이를 기반으로 코드를 컴파일과정에서 생성해 주는 방식으로 동작하는 라이브러리다. 즉 코딩 과정에서는 롬복과 관련된 어노테이션만 보이고 getter와 setter 메서드 등은 보이지 않지만 실제로 컴파일된 결과물(.class)에는 코드가 생성되어 있다는 뜻입니다. 일반 JAVA 코드 VS Lombok 적용 일반 java 코드 public class CategoryModel { private String id; private String parentId; private String name; private Long .. Apache Commons - CLI 윈도우를 쓰다보니 명령줄은 잘 안쓰지만 시스템을 연동할때는 명령줄 인터페이스가 필요할때가 많다. Ant와 같은 명령줄 인터페이스를 쉽게 만들 수 있게 해주는 오픈소스가 Commons CLI(command line interface)이다 이렇게 공식 홈페이지에 있는 정보를 pom.xml에 적용 시킨다. 그런다음 Maven Build를 실행하고 업데이트 하면 더 이상 변수를 직접 넣어주지 않고 값을 입력받아서 실행할수 있게된다. 이렇게 소스 구성부터 변수를 직접 넣어주는것이 아닌 프로그램 파라미터로 값을 받아 실행을 할수 있게된다. 먼저 로컬에서 실행을 할때는 여기에 들어가면 Argiments에 값을 넣으면 소스 부분에서는 이 값이 args[0]에 들어가서 변수가 할당이 되는것이다. 그러면 이제 window.. Logback 사용하기 Log, Logging이란? 로깅(logging)이란 시스템 동작시 시스템의 상태와 작동 정보를 시간의 경과에 따라 기록하는 것을 말한다. 그리고 그 기록을 로그라고 한다. 로깅을 하는 이유는 소프트웨어의 동작 상태를 파악하고 문제가 발생했을 때, 그 동작을 파악해 소프트웨어의 문재를 찾아내고 해결하기 위해서다. 즉, 소프트웨어의 디버깅이나 모니터링을 위하여 정보를 기록하는 곳에 사용되는데 기존의 Debugger나 println에 비해 로그가 가지는 장점은 아래와 같다. 상황별 Level 지정하여 Level별 메시지를 선택 가능 응용 프로그램의 실행에 대한 흐름과 에러 확인 가능 프레임워크를 이용하여 간단하고 쉬운 사용 환경 조성 기능 모듈 별로 유연하게 메세지 출력 가능 자유로운 출력 위치 및 다양한 .. 자바 프로젝트 생성 자바 프로젝트 생성 - JDK 1.8 버전 이상 자바 프로젝트 -> Maven 프로젝트로 변환 근데 왜 Maven 프로젝트로 변경할까?? Maven이란 프로젝트에서 외부 라이브러리를 쉽게 연결하기 위해 사용하는 빌드 도구다. 원래는 라이브러리 파일들을 직접 찾아서 다운로드하여 연결해 주었지만 Maven을 이용하여 pom.xml파일에 dependency태그를 추가하면 라이브러리에 필요한 jar파일들을 자동으로 다운 받아서 사용할 수 있다. 그럼 Maven 프로젝트로 변환해 보자 이것을 선택하면 위와 같이 POM.xml 파일을 만드는 과정이 나온다. POM.xml을 통해 프로젝트 설정, 빌드 설정을 할 수 있다. Group Id는 프로젝트의 그룹의 식별자를 나타내며 보통 자바 패키지 처럼 URL을 거꾸로 써.. Java 8장 예외처리 1. 오류(error)와 예외(exception) 자바 프로그램을 작성할 때 자바 문법에 맞지 않게 코드를 작성하고 컴파일하려고 하면, 자바 컴파일러는 문법 오류(syntax error)를 발생시킨다. 또한, 자바 문법에는 맞게 작성되었다 하더라도 프로그램이 실행되면서 예상하지 못한 오류가 발생할 수 있다. 이렇게 컴퓨터 시스템이 동작하는 도중에 예상하지 못한 사태가 발생하여 실행 중인 프로그램이 영향을 받는 것을 오류(error)와 예외(exception) 두 가지로 구분할 수 있다. 오류(error)는 시스템 레벨에서 프로그램에 심각한 문제를 야기하여 실행 중인 프로그램을 종료시킨다. 이러한 오류는 개발자가 미리 예측하여 처리할 수 없는 것이 대부분이므로, 오류에 대한 처리는 할 수 없다. 하지만 예.. Java 7장-2 객체지향 프로그래밍 1. 상속(inheritance) 기존의 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것을 의미한다. 이러한 상속은 캡슐화, 추상화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나다. 상속을 이용하면 기존에 정의되어 있는 클래스의 모든 필드와 메소드를 물려받아, 새로운 클래스를 생성할 수 있다. 이때 기존에 정의되어 있던 클래스를 부모 클래스(parent class) 또는 상위 클래스(super class), 기초 클래스(base class)라고도한다. 그리고 상속을 통해 새롭게 작성되는 클래스를 자식 클래스(child class) 또는 하위 클래스(sub class), 파생 클래스(derived class)라고도 합니다. class Parent { .... } class.. Java 7장-1 객체지향 프로그래밍 1. 패키지(package) 자바에서 패키지(package)란 클래스와 인터페이스의 집합을 의미한다. 이렇게 서로 관련이 있는 클래스나 인터페이스를 함께 묶음으로써 파일을 효율적으로 관리할 수 있게 된다. 자바에서 패키지는 물리적으로 하나의 디렉터리를 의미한다. 따라서 하나의 패키지에 속한 클래스나 인터페이스 파일은 모두 해당 패키지 이름의 디렉터리에 포함되어 있다. 이러한 패키지는 다른 패키지를 포함할 수 있으며, 이때 디렉터리의 계층 구조는 점(.)으로 구분됩니다. 자바의 모든 클래스는 반드시 하나 이상의 패키지에 포함되어야 한다. 패키지의 선언 package 패키지이름; 하나의 소스파일에 단 한번만 선언될 수 있습니다. 위와 같은 명령문을 클래스나 인터페이스의 소스 파일에 추가하기만 하면 된다. 이.. 이전 1 2 3 다음