Java

Cloud-DevLog
[Spring] POJO(Plain Old Java Object)란?
·Spring
POJO(Plain Old Java Object)란? 이전 포스팅에서 스프링의 삼각형으로 이루어진 스프링의 3대 요소 IoC/DI, AOP, PSA에 대해 알아보았다. 그럼 중앙에 있는 POJO는 무엇일까? 위 그림처럼 POJO는 3대 요소를 통해 POJO를 달성할 수 있다는 의미이다. POJO는 Plain Old Java Object의 약자이며, 말 그대로 오래된 방식의 간단한 자바 객체이다. 즉, 자바로 만드는 순수한 객체를 말한다. 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 종속된 "무거운" 객체를 만들게 된 것에 반발하여 사용되었으며, 2009년 9월, 마틴 파울러 등이 사용하기 시작하였고, 아래와 같이 기원을 밝히고 있다.  우리는 사람들이 자기네 시스템에 보통의 객체를 사용하는 것을..
[Spring] 스프링 프레임워크(Spring Framework)란?
·Spring
스프링 유래 및 어원 과거 EJB라는 기술을 통해 웹 애플리케이션을 개발하였다.EJB(Enterprise Java Bean) : 엔터프라이즈급 애플리케이션 개발을 단순화하기 위해 발표한 스펙이다. Java bean이라는 자바 객체를 재사용할 수 있도록 컴포넌트화 시킬 수 있는 코딩 방식을 활용하였으며, 비즈니스 객체들을 관리하는 컨테이너를 만들어 컨테이너로부터 객체를 받는 식으로 관리한다.하지만, 서비스는 실제 비즈니스 로직보다 EJB 컨테이너를 사용하기 위한 상속, 구현할 클래스 등이 많아 불편하다. 즉, 비즈니스 로직에 특정 기술이 종속된다는 문제점이 있었다. 2002년 로드 존슨(Rod Johnson)에 의해 처음 개발되었으며, 그의 책 "Expert One-on-One J2EE Design and..
[Java] Persistence Framework : SQL Mapper VS ORM
·Java
영속성(Persistence)이란?영속성(Persistence)은 프로그램이 종료되거나 재시작 되더라도 데이터가 지속적으로 유지되는 특성을 말한다. 쉽게 말해, 데이터를 영구 저장소인 파일 시스템, 데이터베이스 등에 저장하는 것이다.JDBC VS Persistence FrameworkJDBC (Java Database Connectivity)JDBC는 Java Database Connectivity로 Java에서 데이터베이스와 연결하여 데이터 저장 및 수정, 저장된 데이터를 사용할 수 있게 해주는 Java API이다. SQL 쿼리를 직접 작성하고 실행할 수 있는 기능을 제공한다.JDBC 예제 코드import java.sql.*;public class SelectExample { public stat..
[Java] 박싱(Boxing), 언박싱(UnBoxing), 오토박싱(AutoBoxing), 오토언박싱(AutoUnBoxing), 래퍼 클래스(Wrapper Class)
·Java
Java 데이터 타입Java의 데이터 타입은 크게 2가지로 나뉜다. 원시 타입(Primitive Type)과 참조 타입(Reference Type)으로 존재하며, 종종 원시 타입으로 사용하는 데이터를 객체로 표현해야 하는 경우가 있다. 원시 타입은 int, char, boolean, float, double 등의 기본 데이터 타입이다. 이 타입들은 래퍼 클래스(Wrapper Class)를 활용해서 객체로 사용할 수 있다.래퍼 클래스(Wrapper Class)래퍼 클래스(Wrapper Class)는 원시 타입을 객체로 사용하기 위해 사용하는 클래스이다.Java는 모든 원시 타입을 객체로 만들 수 있다.래퍼 클래스는 값을 포장해서 객체로 만드는 것이다.래퍼 클래스는 java.lang package에서 제공된..
[Java] 변수 원시 타입(Primitive Type) VS 참조 타입(Reference Type)
·Java
Java에서는 데이터 타입이 2가지로 나뉜다.Java 변수 원시 타입(Primitive Type)원시 타입(Primitive Type)은 정수, 실수, 문자, 논리 리터럴 등의 실제 데이터 값을 저장하는 타입이다.JVM의 정적 메모리 Stack 영역에 변수 이름의 메모리 공간이 생성되고 실제 값이 데이터 값이 들어간다.원시 타입은 Null을 담을 수 없으며, 값이 없으면 default 값을 반환한다. (예를 들어, int는 0, boolean은 false)원시 타입은 제네릭(generic) 타입에서 사용할 수 없다.종류데이터형크기(byte/bit)표현 범위논리형boolean1/8true or false문자형char2/16'\u0000' ~ \uFFFF' 16bit 유니코드 문자 데이터정수형byte1/8-..
[Java] JUnit이란? Assert(단정 메서드), Lifecycle(라이프사이클 메서드)
·Java
JUnit이란?JUnit은 Java 로 단위 테스트를 할 수 있는 라이브러리이다. 개발자들은 개별 코드 단위(메서드, 클래스 등)를 테스트 하고 그 동작이 기대한 대로 수행되는지 확인할 수 있다.단정 메서드(assert~~)로 테스트 케이스의 수행 결과를 판별할 수 있다.테스트 메서드를 정의하고 관리하기 위해 다양한 어노테이션을 제공한다.테스트 결과로 성공 or 실패를 확인하고 오류를 확인하고 저장할 수 있다.Unit Test 단위 테스트단위 테스트는 소프트웨어 개발에서 개별 단위(주로 메서드, 클래스)를 테스트하는 것이다. 각 단위가 올바르게 작동하는지 확인하고 의도대로 정확히 동작하는지 테스트한다.JUnit 어노테이션@Test해당 메서드가 테스트 메서드임을 나타낸다.@Test(expected=예외)해..
[Java] try-with-resources로 자원 반납하기
·Java
Java ResourceJava에서 외부 데이터를 활용해서 코드를 작성할 때는 마지막에 꼭 자원을 닫으면서 정리를 해야한다. 주로 Resource로는 외부 데이터로 쓰이는 Database, Network, File들이 있다. 이를 활용하려면 항상 예외가 발생할 가능성이 존재한다.try-catch-finally 자원 반납 처리아래와 같이 example.txt 파일을 읽기 위해 BufferedReader를 사용하는 예시이다.가장 먼저 이 파일을 읽는데 예상치 못한 오류가 생길 수 있고, Checked Exception인 IOException 예외 처리를 해준다.그 다음, 외부 Resource인 txt 파일을 사용하고 반드시 닫아야 하기 때문에 finally 문으로 close()를 해준다.close()를 할 ..
[Java] DAO, DTO, VO, Entity란?
·Java
DAO(Data Access Object)DAO는 실제 데이터베이스의 데이터에 접근하기 위한 객체이다.Database 접근 로직과 비즈니스 로직을 분리하기 위해 DAO를 사용한다.DB에 접근하여 CRUD 작업을 수행한다.코드의 재사용성과 유지보수성을 높인다.DAO 예제 코드(JDBC)JDBC는 Java에서 데이터베이스와 연결하고 SQL 쿼리를 실행할 수 있는 API이다.JDBC는 SQL을 직접 사용하여 데이터베이스와 상호작용한다.JDBC에서 DAO 역할은 Connection, PreparedStatement, ResultSet 등을 사용하여 직접 SQL 쿼리를 실행하고 결과를 처리한다.package bookshop.dao;import java.sql.Connection;import java.sql.Dri..
cloud-grace
'Java' 태그의 글 목록