개발용 노트북을 맥북 프로 외에 윈도우용으로 하나 더 장만하기 위해 Lenovo 제품을 구입했습니다.제품 비교 및 선택여러 제품을 비교한 끝에 선택한 모델은 다음과 같습니다:레노버 아이디어패드 Slim5 16AHP9 83DD0036KR (SSD 512GB)제품 정보 링크다양한 제품을 비교한 내용은 여기에서 확인할 수 있습니다:다나와 제품 비교 링크구매 이유저는 게임이나 인공지능 모델 학습이 아닌 웹 개발자이기 때문에 고사양의 노트북은 필요하지 않다고 판단했습니다. 게다가 이미 맥북 프로를 가지고 있기도 하고요.윈도우 설치 및 세팅이 제품은 프리도스(FreeDOS) 제품이라서 직접 윈도우 설치를 진행해야 했습니다.윈도우 프로 정품키 구매 및 인증아래 사이트에서 정품키를 단돈 9,900원에 구매하였습니다.인..
Developer.do.de.gee안녕하세요, 저는 문제 해결을 위해 끊임없이 움직이는 '두더지 개발자'입니다.제 이메일 주소인 developer.do.de.gee는 '개발자(developer)'와 '두더지(두(do) 더(de) 지(gee))'를 결합한 것입니다. 이는 마치 두더지 잡기 게임처럼 프로젝트 속에서 끊임없이 발생하는 문제를 해결하며 성장하는 개발자임을 의미합니다.블로그 운영 가치이 블로그는 다음과 같은 가치를 기반으로 운영하고 있습니다:모르거나 궁금한 것 위주로 학습하고 기록하기'하다보면 늘겠지'하는 꾸준함을 증명하기개발 여정에서 마주치는 다양한 도전과 해결 과정을 함께 나누며, 끊임없는 성장을 추구하는 공간이 되길 바랍니다.두더지처럼 문제가 있는 곳이라면 어디든 파고들어 해결책을 찾아내는 ..
구분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(명령형 로직)이다.명령형 프로그래밍은 작성하기도, 이해하기도,..