java 7

POJO (Plain Old Java Object)

POJO는 "Plain Old Java Object"의 약자로 특별한 제한이나 규약 없이 순수하게 작성된 Java 객체를 의미한다. 이는 특정 라이브러리, 프레임워크,또는 기술에 종속되지 않고 간단한 구조로 설계된 객체이다. POJO의 특징프레임워크 독립성특정 프레임워크나 라이브러리(예: Spring, Hibernate 등)에 종속되지 않는다.POJO는 외부 종속성을 가지지 않으며 표준 Java 문법으로만 작성된다.심플한 설계간단한 필드(속성)와 getter/setter 메서드, 필요에 따라 생성자 및 기타 유틸리티 메서드로 구성된다.복잡한 기능을 포함하지 않으며 직관적이다.명시적인 동작 없음POJO는 일반적으로 동작(메서드)을 최소화하고 데이터 저장과 전달을 위한 객체로 사용된다.객체 지향 원칙 준수캡..

JVM Stack & Heap

자바와 C/C++의 차이점C/C++은 네이티브 코드로 컴파일되며, 운영체제(OS)와 CPU 아키텍처에 맞게 컴파일된 코드만 특정 플랫폼에서 실행된다. 예를 들어 리눅스에서 컴파일된 C/C++ 프로그램은 윈도우에서 바로 실행되지 않는다. 따라서 각 플랫폼에 맞는 컴파일 과정이 필요하며 이를 "타겟 플랫폼 컴파일"이라고 한다.반면, 자바는 자바 소스 코드를 자바 컴파일러(javac)로 컴파일하면 운영체제에 의존하지 않는 바이트코드(Bytecode)가 생성된다. 이 바이트코드는 다양한 운영체제에서 실행될 수 있다. 이처럼 자바는 JVM(Java Virtual Machine)을 통해 플랫폼 독립성을 갖추게 된다.  JVM(Java Virtual Machine)의 역할자바 바이트코드는 JVM이라는 가상 머신에서 ..

개발이론/JAVA 2024.10.14

JVM의 Garbage Collector 정리

JVM과 Garbage Collector (GC) 개요JVM (Java Virtual Machine)자바 애플리케이션이 실행되는 가상 머신 환경메모리 관리와 GC를 통해 프로그램의 효율적 메모리 사용을 보장Garbage Collector (GC):힙(Heap) 메모리에서 더 이상 참조되지 않는 객체(가비지)를 자동으로 식별하고 제거하여 메모리 누수를 방지하고 메모리 자원을 재사용 가능하게 함GC는 수동 메모리 관리의 번거로움과 오류 가능성을 줄여줌   JVM 메모리 구조Heap 메모리 : 프로그램에서 생성된 객체가 저장되는 영역으로 크게 Young Generation과 Old Generation으로 나뉨Young GenerationEden 영역 : 새로운 객체가 최초로 생성되는 영역Survivor 영역 ..

개발이론/JAVA 2024.09.24

JPA와 JDBC

JDBC와 JPA의 기본 개념 소개JDBC는 자바에서 데이터베이스에 접근하기 위한 표준 API이다. JDBC를 사용하면 SQL 쿼리를 직접 작성하고 데이터베이스와 수동으로 연결, 관리해야 한다. 이 과정에서 커넥션 객체의 생성, 관리, 그리고 쿼리 작성이 필요하며, 데이터베이스 종속적인 코드 작성이 필요하다는 단점이 있다JPA는 자바 객체와 데이터베이스 간의 매핑을 지원하는 API로, 객체 지향적으로 데이터베이스와 상호작용할 수 있도록 도와준다 SQL을 직접 작성할 필요가 없으며, 코드의 가독성과 유지보수성이 향상된다  JDBC 사용 시의 문제점과 해결 방안JDBC는 직접 SQL 쿼리를 작성해야 하므로, 코드 중복과 오류 발생 가능성이 높다커넥션을 수동으로 열고 닫아야 하기 때문에, 리소스 누수가 발생할..

개발이론/JAVA 2024.08.26

DTO, VO, Entity 개념과 차이

VO (Value Object), DTO (Data Transfer Object), 그리고 Entity는 소프트웨어 개발에서 자주 사용되는 개념으로, 각기 다른 역할을 수행한다.  DTO (Data Transfer Object)정의 : DTO는 계층 간 데이터 전송을 위한 객체로, 주로 네트워크를 통한 데이터 전송이나 애플리케이션의 여러 계층 간 데이터 전송에 사용된다. DTO는 로직을 포함하지 않으며, 단순히 데이터를 담고 있는 그릇의 역할을 한다.특징전송 용이성: DTO는 시스템 간 또는 애플리케이션 계층 간에 데이터를 효율적으로 전송하기 위해 설계되어있다.로직 없음: DTO는 데이터를 가지고 있지만, 비즈니스 로직을 포함하지 않는다. 이는 데이터를 직렬화하거나 다른 형태로 변환하는 데 주로 사용된다..

개발이론/Spring 2024.08.17

Java에서 Array와 List를 섞는 방법 (Shuffle)

자바에서 배열(Array)와 리스트(List)를 섞는(shuffle) 방법을 알아보겠습니다. 이 작업은 주로 컬렉션의 요소들을 무작위로 재배열하고 싶을 때 유용합니다. 자바에서는 이러한 작업을 쉽게 할 수 있는 방법을 제공합니다. 이번 포스트에서는 java.util.Collections 클래스를 이용하여 리스트를 섞는 방법과 배열을 리스트로 변환한 후 섞는 방법을 다루겠습니다.  List를 섞는 방법리스트를 섞는 방법은 매우 간단합니다. 자바에서는 java.util.Collections 클래스의 shuffle 메서드를 사용하면 됩니다.import java.util.ArrayList;import java.util.Collections;import java.util.List;public class ListS..

개발이론/JAVA 2024.07.25

String을 LocalDateTime으로 변환하는 방법

Java 프로그래밍에서 날짜와 시간을 다루는 일은 흔하지만, 가끔은 복잡할 수 있습니다. 특히 문자열(String)과 날짜/시간(LocalDateTime) 간의 변환은 매우 중요한 작업 중 하나입니다. 이 글에서는 Java에서 String을 LocalDateTime으로, 그리고 LocalDateTime을 String으로 변환하는 방법에 대해 자세히 설명하겠습니다. LocalDateTime이란?LocalDateTime 클래스는 Java 8에서 도입된 새로운 날짜 및 시간 API의 일부로, 날짜와 시간을 모두 표현할 수 있습니다. 이 클래스는 시간대 정보를 포함하지 않으므로, 순수한 날짜와 시간만 필요할 때 사용됩니다. 주요 메소드 및 사용법LocalDateTime 클래스는 다양한 메소드를 제공하여 날짜와 ..

개발이론/JAVA 2024.06.16
반응형