본문 바로가기

전체 글189

[프로세싱(Processing)] 프로세싱 프로그래밍에 대해서 프로세싱 프로그래밍에 대해서 프로세싱(Processing)은 주로 그래픽 및 상호 작용 디자인, 데이터 시각화, 애니메이션, 디지털 아트 등 창의적인 코딩을 지원하는 오픈 소스 프로그래밍 환경 및 라이브러리입니다. 이 용어는 일반적으로 프로세싱(Processing)이라고 불리며, Java 프로그래밍 언어를 기반으로 하기 때문에 자바 프로세싱이라고도 합니다. 프로세싱은 캐이시 리예와 벤 프라이가 2001년에 창립한 프로젝트로 시작되었습니다. 목적은 비 프로그래머, 예술가, 디자이너, 교육자들이 쉽게 코드를 사용하여 창의적인 작업을 수행할 수 있게 돕는 것이었습니다. 프로세싱은 사용자 친화적인 API(Application Programming Interface)를 제공하여 그래픽, 애니메이션, 사운드 등의 .. 2023. 4. 28.
[자바(JAVA)] 자바 네이티브 인터페이스 (JNI) 24. 자바 네이티브 인터페이스 (JNI) 24.1. JNI 개념 및 목적 자바 네이티브 인터페이스(JNI, Java Native Interface)는 자바 언어와 네이티브(C/C++) 언어 간의 상호 작용을 위한 인터페이스입니다. JNI를 사용하면 자바 애플리케이션에서 C/C++ 함수를 호출하거나 C/C++ 애플리케이션에서 자바 클래스 및 메서드를 호출할 수 있습니다. 이를 통해 자바의 플랫폼 독립성을 유지하면서도 하드웨어의 특성을 활용하는 네이티브 코드를 사용할 수 있습니다. 24.2. JNI 프로그래밍 방법 JNI를 사용하여 자바와 C/C++ 코드를 연동하는 과정은 크게 3단계로 구성됩니다. 자바에서 JNI를 사용할 수 있는 클래스를 작성합니다. C/C++ 코드에서 JNI 함수를 사용하여 자바 클래.. 2023. 4. 28.
[자바(JAVA)] 메모리 관리와 가비지 컬렉션 23. 메모리 관리와 가비지 컬렉션 23.1. 메모리 관리 개념 자바에서 메모리 관리는 JVM(Java Virtual Machine)이 담당합니다. JVM은 기본적으로 힙(Heap) 영역에서 객체를 관리합니다. 힙 영역은 크게 영구(Permanent) 영역, 노출(Young) 영역, 그리고 노출 영역의 서바이버(Survivor) 영역과 테넌트(Tenured) 영역으로 나눠집니다. 객체가 생성되면 노출 영역에 할당되고, 시간이 지남에 따라 서바이버와 테넌트 영역으로 이동하게 됩니다. 23.2. 가비지 컬렉션 동작 원리 가비지 컬렉션(GC)은 더 이상 사용되지 않는 객체를 자동으로 회수하여 메모리를 관리하는 프로세스입니다. GC는 JVM에 의해 실행되며, 객체가 더 이상 참조되지 않을 때 메모리를 회수합니다.. 2023. 4. 28.
[자바(JAVA)] 자바 어노테이션 22. 자바 어노테이션 22.1. 어노테이션 개념 어노테이션(Annotation)은 자바 소스 코드에 메타데이터를 추가하는 방법으로, 주석과 비슷한 역할을 합니다. 어노테이션은 컴파일러에게 정보를 제공하거나, 런타임에 코드 동작을 변경하거나, 프레임워크에서 코드를 처리하는 데 사용됩니다. 어노테이션은 '@' 기호와 함께 사용되며, 컴파일 또는 런타임에 처리할 수 있습니다. 22.2. 기본 어노테이션 자바에서는 몇 가지 기본 어노테이션을 제공합니다. @Override: 메소드가 부모 클래스의 메소드를 오버라이드 한다는 것을 나타냅니다. @Deprecated: 해당 요소가 더 이상 사용되지 않음을 나타냅니다. @SuppressWarnings: 특정 경고를 무시하도록 컴파일러에 지시합니다. @Functiona.. 2023. 4. 28.
[자바(JAVA)] Reflection API 21. Reflection API 21.1. 리플렉션 개념 자바 Reflection API는 실행 중인 자바 애플리케이션에서 클래스, 메서드, 필드 등의 정보를 분석하고 조작할 수 있는 기능을 제공합니다. 이는 컴파일 시간에는 알 수 없는 클래스와 그 클래스의 멤버들에 접근할 수 있는 방법을 제공합니다. Reflection API는 다양한 자바 라이브러리 및 프레임워크에서 사용되며, 특히 자바 프레임워크의 핵심 기능 중 하나인 스프링 프레임워크에서도 중요한 역할을 합니다 21.2. Class 클래스 Reflection API에서 핵심적인 클래스는 java.lang.Class입니다. Class 클래스는 JVM에서 로드된 클래스의 정보를 제공합니다. 즉, 클래스의 이름, 패키지, 메서드, 필드 등의 정보를 .. 2023. 4. 28.
[자바(JAVA)] 날짜와 시간 처리 20. 날짜와 시간 처리 자바에서 날짜와 시간을 처리하는 방법에는 여러가지가 있습니다. 이 강좌에서는 java.util.Date와 java.util.Calendar 클래스를 살펴보고, Java 8에서 도입된 java.time 패키지의 여러 클래스와 기능을 알아보겠습니다. 20.1. java.util.Date와 java.util.Calendar 클래스 Date 클래스는 1970년 1월 1일부터 현재까지의 시간을 밀리초 단위로 표현합니다. 이를 사용하여 현재 시간이나 특정 시간을 생성할 수 있습니다. Date currentDate = new Date(); Date specificDate = new Date(1633036800000L); Calendar 클래스는 날짜와 시간을 처리하는 데 더 많은 기능을 제공.. 2023. 4. 28.