[Spring] 하이버네이트와 영속성 개념 완벽 이해 및 적용 방법
·
Framework/SpringBoot
웹 애플리케이션에서는 데이터가 정말 중요합니다.데이터를 효율적으로 관리하고 저장하는 것은 개발 과정에서 아주 종요한 요소입니다. Java 애플리케이션에서 이를 더욱 쉽게 구현하기 위해 하이버네이트(Hibernate)가 사용됩니다.이 글에서는 영속성(Persistence)의 기본 개념부터 하이버네이트의 작동원리와 실전 예제까지 알아보겠습니다.      영속성(Persistence)의 기본 개념 영속성은 데이터를 영구적으로 저장해 어플리케이션이 종료되더라도 해당 데이터를 유지할 수 있게 하는 개념입니다.따라서 데이터의 지속성을 보장하기 위해 데이터를 데이터베이스, 파일시스템, 클라우드 저장소와 같은 영구 저장소에 저장하는 것이 필요하며, 이를 영속성이라고 합니다. 🔍 자바 애플리케이션에서의 영속성자바 애플..
[Java] 숫자 문자열과 영단어
·
CodingTest/[프로그래머스] 자바
문제 설명네오와 프로도가 숫자놀이를 하고 있습니다.네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.1478 → "one4seveneight"234567 → "23four5six7"10203 → "1zerotwozero3"이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 `s`가 매개변수로 주어집니다.`s`가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다.숫자영단어0zero1one2two3three4four5five6six7seven8eight9nine 제한사항1 ..
[Spring] JPA로 일정 시간 후 데이터 삭제 구현하기
·
Framework/SpringBoot
데이터를 삭제할 때, 즉시 데이터베이스에서 제거하는 방식(DELETE)은 간단하지만, 데이터 복구가 어렵고, 감사(audit) 및 트랜잭션 이력을 유지할 수 없다는 단점이 있다.  이에 따라, 많은 애플리케이션에서는 논리 삭제(Soft Delete)를 적용하고, 일정 시간이 지난 후 배치 작업을 통해 데이터베이스에서 실제로 삭제하는 방법을 사용한다. 이번 글에서는 JPA를 활용하여 논리 삭제 후 배치 작업으로 데이터를 완전 삭제하는 구현 방법을 설명한다. 논리 삭제 (Soft Delete) 란?데이터 베이스에서 데이터를 즉시 제거하지 않고, 삭제된 상태를 나태는 플래그(컬럼)을 추가한다.위 방식을 이용한다면, 데이터를 유지하면서 삭제된 것처럼 처리할 수 있다.     1️⃣ 논리 삭제 구현 (@SQLDe..
[Spring] 동적 쿼리를 활용한 사용자 조회 기능 구현 및 트러블슈팅
·
Framework/SpringBoot
스프링 부트(Spring Boot)와 JPA를 사용하여 특정 조건에 따라 사용자를 조회하는 기능을 구현할 때, 경우에 따라 동적으로 쿼리를 생성해야 하는 요구사항이 발생할 수 있습니다. 현재 진행중인 스케쥴 관리 애플리케이션 개발 프로젝트에서 사용자 정보를 효율적으로 조회하기 위해@Query를 활용하여 아이디, 이름, 이메일을 기반으로 사용자를 조회하는 기능을 구현하고, 개발 중 발생하였던 문제와 해결 방법을 설명하겠습니다. 🔍 요구사항1️⃣ 검색 조건을 입력하지 않으면 전체 사용자 조회2️⃣ 아이디(pk)를 입력하면 해당 사용자 조회3️⃣ 이름을 입력하면 동일한 이름을 가진 사용자 조회4️⃣ 이메일을 입력하면 동일한 이메일을 가진 사용자 조회       🔷 동적 쿼리 구현하기이번 스케줄 관리 어플리..
[Java] 시저 암호
·
CodingTest/[프로그래머스] 자바
문제 설명어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요. 제한조건공백은 아무리 밀어도 공백입니다.s는 알파벳 소문자, 대문자, 공백으로만 이루어져 있습니다.s의 길이는 8000이하입니다.n은 1 이상, 25이하인 자연수입니다. snresult"AB"1"BC""z"1"a""a B z"4"e F d"      🔨 전체 코드 개요아래는 주어진 문자열을 시저 암호 방식으로 변환하는 Java 코드입니다. 이 코드는 대소문자를 ..