구분JPAHibernateSpring Data JPA개념Java Persistence API의 약자로, 자바 표준 ORM (인터페이스)JPA의 구현체 중 하나 (가장 많이 사용됨)JPA/Hibernate를 더 쉽게 사용하도록 도와주는 스프링 모듈역할ORM(Object Relational Mapping) 표준을 정의하는 인터페이스JPA의 표준을 구현한 프레임워크 (구현체)JPA/Hibernate를 추상화하여 개발 생산성을 높이는 스프링 프레임워크사용 방식직접 EntityManager 사용하여 쿼리 실행JPA의 기능을 제공하고, 추가적인 캐싱, 성능 최적화 기능 제공Repository 인터페이스만 정의하면 자동으로 CRUD 메서드 제공코드 복잡도비교적 많음 (직접 EntityManager 사용)JPA와 비슷..
1. 개요WAR(WEB Application Archive)와 JAR(Java Archive)는 Java 기반 애플리케이션을 패키징하는 두 가지 방식입니다.JAR (Java Archive): 일반적인 Java 애플리케이션을 실행 가능한 파일로 패키징하는 방식.WAR (Web Application Archive): 웹 애플리케이션을 패키징하여 웹 서버(WAS, Tomcat 등)에 배포하는 방식.2. WAR vs JAR 개념구분WAR (Web Application Archive)JAR (Java Archive)설명웹 애플리케이션을 위한 패키징 방식 (Servlet, JSP, Spring MVC)일반적인 Java 애플리케이션 패키징 방식 (Spring Boot, Java 프로그램)사용 대상전통적인 Sprin..
정적 팩토리 메서드(Static Factory Method)정적 팩토리 메서드(Static Factory Method)는 클래스의 인스턴스를 생성하는 정적(static) 메서드입니다. 일반적인 new 키워드를 사용한 생성자 호출보다 더 유연하고 가독성이 좋은 객체 생성 방법을 제공합니다. 정적 팩토리 메서드는 객체 생성을 캡슐화하는 static 메서드입니다. 이 패턴은 생성자 대신 또는 생성자와 함께 사용되어 객체 생성 과정을 더 유연하게 의미있게 만듭니다.-> 쉽게 말해 생성자로 인스턴스를 생성하지 않고, static Method를 사용해 인스턴스를 생성하는 방식1. 정적 팩토리 메서드의 특징이름을 가질 수 있다.생성자와 달리 메서드 이름을 지정할 수 있어, 반환될 객체의 의미를 명확하게 표현할 수 있..
1. 개념 설명: 단방향 vs 양방향 암호화단방향 암호화란 한 번 암호화하면 복호화(원래대로 되돌리는 것)가 불가능한 방식입니다대표적으로 해시(hash) 함수가 이에 해당하며, 임의 길이의 입력 데이터를 고정된 길이의 해시 값으로 변환합니다. 해시 값만으로는 원본 데이터를 추측하거나 복원할 수 없으며, 이러한 특성 때문에 주로 데이터의 무결성(integrity) 확인에 사용됩니다예를 들어, 파일 다운로드 후 제공된 해시값과 다운로드한 파일의 해시값을 비교하여 데이터 위변조 여부를 검사할 수 있습니다 양방향 암호화는 암호화된 데이터를 키(Key)를 사용해 다시 복호화할 수 있는 방식입니다 즉, 암호화와 복호화를 모두 지원하며 데이터의 기밀성(confidentiality) 보호에 초점을 둡니다.양방향..
마이크로서비스 아키텍처(MSA)는 여러 독립적인 서비스들로 구성되어 있어, 하나의 서비스 장애가 전체 시스템에 미치는 영향을 최소화하는 것이 매우 중요합니다. 회복성 패턴(Resilient patterns)은 이러한 MSA 구조에서 시스템의 안정성과 복원력을 높이는 핵심 전략으로 작용합니다. 회복성 패턴(Resilient patterns)은 시스템이 일부 구성 요소의 장애나 오류에도 불구하고 정상적인 기능을 유지하고, 신속하게 복구할 수 있도록 돕는 설계 방법 또는 모범 사례를 말합니다. 특히 마이크로서비스와 같이 분산된 시스템 아키텍처에서 매우 중요한 역할을 합니다.예를 들어, 소프트웨어 아키텍처에서 흔히 사용되는 회복성 패턴에는 다음과 같은 것들이 있습니다:회로 차단기(Circuit Breaker):..
1. 개요Oracle과 MySQL에서 페이징 처리 또는 데이터를 제한하여 조회할 때 사용하는 방법이 다름.DBMS사용하는 키워드설명OracleROWNUM 또는 ROW_NUMBER()데이터에 순차적인 행 번호를 부여하여 제한MySQLLIMIT특정 개수만큼 데이터 출력 (시작 위치 지정 가능)2. Oracle에서 ROWNUM 사용 기본 사용법SELECT * FROM employees WHERE ROWNUM 설명: ROWNUM을 사용하여 상위 10개 행만 가져오기.OWNUM과 ORDER BY 주의점SELECT *FROM employeesWHERE ROWNUM 오류 발생 가능: ROWNUM은 ORDER BY보다 먼저 적용됨.즉, 먼저 10개의 데이터를 선택한 후 정렬되므로 원하는 결과가 아닐 수 있음. 올바..
Spring MVC와 Spring Webflux의 차이점blocking / non-blockingSpring MVC 공식문서에 따르면, Spring Webflux 대부분의 구조 및 설정은 Spring MVC와 동일하다고 명시되어 있다.그러나 동시성 모델과 블로킹/쓰레드 기본 전략이 다르다.MVC에서는 애플리케이션이 스레드를 차단(blocking)할 수 있다는 가정 하에 큰 스레드풀을 가지고 있고,WebFlux에서는 스레드가 차단되지 않아(non-blocking) 적은 스레드풀을 사용하여 request들을 처리한다는 점이다. 더 자세히 살펴보자면 두 프레임워크의 차이는 다음과 같다.Spring MVC 어플리케이션은 Imperative logic(명령형 로직)이다.명령형 프로그래밍은 작성하기도, 이해하기도,..