반응형

IT 98

[Spring] ORM, JPA, Hibernate, Spring Data JPA 개념

🌱 ORM 이란?ORM이란 Object-Relational Mapping의 약자로, 객체(Object)와 관계형 데이터(Relational data)를 매핑하기 위한 기술이다.과거 관계형 데이터를 조회하기 위하여 사용했던 SQL Mapper와의 차이점을 간략하게 알아보자.SQL Mapper- Object와 SQL의 필드를 매핑하여 데이터를 객체화하는 기술이다.- SQL 문으로 직접 디비를 조작한다.- DBMS에 종속적이다.- 관련기술 : Mybatis, jdbcTemplateORM- Object와 DB테이블을 매핑하여 데이터를 객체화하는 기술이다.- SQL 문을 직접 작성하지 않아도 메서드로 데이터를 조작할 수 있다. (객체 간 관계를 바탕으로 SQL문을 자동으로 생성한다.)- DBMS에 종속적이지 않..

IT 2025.01.24

[Spring] @Transactional

🌱 트랜잭션이란?트랜잭션은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 수행되어야 할 일련의 연산을 의미하며, 다음과 같은 4가지 특징(ACID)을 갖는다. 원자성 (Atomicity)- 트랜잭션의 연산은 데이터베이스에 모두 반영되던지 아니면 모두 반영되지 않아야 한다.- 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 한다.일관성 (Consistency)- 트랜잭션 처리 전과 처리 후 데이터 모순이 없는 상태를 유지하는 것을 의미한다.- 예를 들어서 티스토리 게시판에 글을 쓰는데 제목의 글자 제한이 255 자라고 하자. 트랜잭션이 일어나면 이러한 조건을 만족해야 하는 것이다. 만약 이를 위..

IT 2025.01.24

[Java] Checked Exception과 Unchecked Exception

☕️ Error와 Exception체크 예외와 언체크 예외를 알아보기 전에 앞서 오류와 예외에 대한 차이를 먼저 알아보도록 하자.자바 프로그래밍에서는 실행 시(runtime) 발생할 수 있는 오류는 크게  'Error'와 'Exception'이 존재한다.Error는 프로그램 코드에 의해서 수습될 수 없는 심각한 오류를 말하며,Exception은 프로그램 코드에 의해서 수습될 수 있는 오류를 뜻한다. 이번 포스팅에서는 Exception을 Checked Exception과 Unchecked Exception으로 분류하여 다뤄볼 예정이다.   ☕️ Checked Exception과 Unchecked Exception위에서 간단하게 살펴본 상속관계를 조금 더 구체적인 그림으로 알아보자.Error와 Runtime..

IT 2025.01.22

[Java] java.time 패키지

☕️ java.time 패키지java.time 패키지는 자바8 버전에서 공개된 패키지로 날짜와 시간을 표현하는 클래스를 제공한다.   ☕️ java.time 패키지 사용 이유기존 날짜와 시간을 위해 사용하던 클래스인 Calendar와 Date 클래스 다양한 문제점이 존재하였다.불변객체가 아니다- 변하기 쉬운(mutable) 클래스이기 때문에 스레드 안전( thread safe ) 하지 않다.헷갈리는 월 지정- Calendar 월의 상수값은 0부터 시작이기 때문에 2023.09.01로 셋팅을 하고 싶다면, 'cal.set(2023, 8, 1);' 과 같은 형태로 사용해야 한다.일관성 없는 요일 상수- Calendar의 일요일은 상수값 1을, Date의 일요일은 상수값 0을 가진다.오류에 둔감한 TimeZo..

IT 2025.01.22

[Java] Optional

☕️ Optional이란?Optional은 NULL이 올 수 있는 값을 감싸는 Wrapper 클래스로, Java 8에서 추가되었으며 NULL을 보다 편리하게 핸들링하여 NPE을 발생하지 않도록 도와준다.  ☕️ Optional 생성Optional은 아래와 같은 방법으로 생성할 수 있다.Optional.of(T value)- value를 Optional로 감싼 객체를 생성한다. 이때 주의할 점은 만약 value가 null이라면 NPE가 발생한다.Optional.ofNullable(T value)- value를 Optional로 감싼 객체를 생성한다. Optional.of()와의 차이점은 value가 null이라도 NPE가 발생하지 않는다.Optional.empty()- 빈 객체를 생성한다.import ja..

IT 2025.01.22

[Java] 스트림 API(Stream API)

☕️ 스트림 API(Stream API) 란?Stream API는 Java 8에서 추가된 기능으로써 배열 또는 컬렉션 등을 함수형 프로그래밍 기법으로 처리할 수 있도록 도와주는 API이다.   ☕️ 스트림 API(Stream API)의 특징원본 데이터를 변경하지 않는다.원본 데이터를 토대로 Stream을 생성하고 가공하기 때문에 정렬, 필터링 등의 가공이 있어도 원본 데이터는 훼손되지 않는다.컬렉션과 달리 재사용이 불가하여 단 1번만 사용할 수 있다.Stream의 연산이 모두 끝나면 재사용이 불가능하다. 만일 재사용을 하게 될 경우, IllegalStateException이 발생하게 된다. 그러므로 Stream 연산이 다시 필요한 경우에는 Stream을 새로 생성해줘야 한다.내부 반복을 통해 작업을 처리..

IT 2025.01.22

[Java] 진법 변환(10진수 <-> N진수)

🔐 10진수 -> N진수10진수를 N진수로 변경하고 싶을 때는 java.lang패키지의 Integer클래스를 사용하면 된다.Integer클래스의 toString()를 통해서 10진수를 N진수로 변환 가능하다.public class DecimalConversion { public static void main(String[] args) { // 10진수 -> N진수 변환 int num = 11; System.out.println("10진수 -> 2진수 : " + Integer.toBinaryString(num)); // 1011 System.out.println("10진수 -> 2진수 : " + Integer.toString(num,2)); // 1..

IT 2025.01.22

[Java] 메서드 참조(Method Reference)

☕️ 메서드 참조(Method reference)란?메서드 참조(method reference)란 람다 표현식이 단 하나의 메서드만을 호출하는 경우에 이중 콜론(::) 기호를 사용하여 메서드를 참조하는 방식을 일컫는다. 메서드 참조 문법은 다음과 같다.클래스이름::메서드이름또는참조변수이름::메서드이름   ☕️ 람다식과 메서드 참조의 문법 차이이전 포스팅에서 알아보았던 함수형 인터페이스를 토대로 람다식과 메서드 참조는 문법적으로 어떤 차이가 있는지 알아보도록 하자.아래 코드는 문자열 형태의 숫자를 입력받아 숫자로 반환하는 코드이다.import java.util.function.Function;public class MethodReferenceEx { public static void main(Stri..

IT 2025.01.22

[Java] 람다식(Lambda Expressions)

☕️ 람다식(Lambda Expressions) 이란?람다식이란 프로그래밍 언어에서 사용되는 개념으로 익명 함수를 지칭하는 용어이다. 함수를 람다식으로 표현하면 메서드의 이름 없이 사용할 수 있게 되는데, 이 때문에 익명 함수라고도 불린다.람다식은 자바 8부터 사용 가능하며 이로 인하여 자바에서도 함수형 프로그래밍이 가능하게 되었다.   ☕️ 람다식(Lambda Expressions)의 장단점람다식(Lambda Expressions)의 장점- 코드를 간결하게 만들 수 있다.- 식에 개발자의 의도가 명확히 드러나 가독성이 높아진다.- 함수를 만드는 과정없이 한번에 처리할 수 있어 생산성이 높아진다.- 병렬프로그래밍이 용이하다.람다식(Lambda Expressions)의 단점- 람다를 사용하면서 만든 무명함..

IT 2025.01.22

[Java] 함수형 인터페이스(Functional Interface)

이전 포스팅에서 람다식(Lambda Expressions)에 대해서 간략하게 알아보았다.이번 포스팅에서는 람다식과 밀접한 관련이 있는 함수형 인터페이스에 대해서 알아보도록 하자.   ☕️ 함수형 인터페이스(Functional Interface)란?함수형 인터페이스란 오로지 1개의 추상 메서드만을 갖는 인터페이스를 말한다.(* Default Method와 Static Method의 개수는 상관이 없다.)   ☕️ 함수형 인터페이스의 선언과 활용함수형 인터페이스는 아래와 같은 형태로 만들 수 있다.@FunctionalInterfaceinterface SquareIF { int square(int num);}이때, 함수형 인터페이스를 나타내기 위해 @FunctionalInterface 어노테이션을 사용할..

IT 2025.01.22
반응형