📌 정의Spring Data JPA는 JPA를 더 간편하게 사용할 수 있도록 도와주는 Spring 프로젝트이다.기존 JPA에서는 EntityManager를 직접 사용했지만, Spring Data JPA는 인터페이스만 정의하면 구현 없이도 CRUD 기능을 자동 제공한다.public interface UserRepository extends JpaRepository { List findByName(String name); // 자동으로 구현됨}JpaRepository를 상속하면 save(), findAll(), deleteById() 등 기본 메서드들을 제공받는다.✅ 장점코드가 간결해지고쿼리 메서드로 자동 SQL 생성커스텀 쿼리는 @Query로 처리 가능[ JPA Entity 생명주기 ]JPA의 En..
🔶 ORM(Object-Relational Mapping)이란?ORM은 객체(Object)와 관계형 데이터베이스(Relational Database)의 데이터를 자동으로 매핑해주는 기술이다.즉, 개발자는 SQL문을 직접 작성하지 않고도 자바 클래스만으로 DB 데이터에 접근하고 조작할 수 있다.// Java 객체public class User { private Long id; private String name; private String email;}이 User 클래스는 ORM에 의해 USER 테이블과 자동으로 매핑된다. 🔷 Hibernate란?Hibernate는 가장 널리 사용되는 ORM 프레임워크 중 하나로, Java 진영에서 객체와 테이블을 매핑하는 일을 담당한다.주요 특징SQL..
1. 스프링 빈(Bean)이란?스프링 프레임워크에서 빈(Bean) 은 스프링 컨테이너가 관리하는 객체를 의미합니다. 일반적인 Java 객체와 동일하지만, 스프링의 IoC(Inversion of Control) 컨테이너에 의해 생성 및 관리됩니다.🔹 스프링 빈의 특징스프링 컨테이너가 직접 객체를 생성 및 관리싱글톤(Singleton)으로 관리 (기본 설정 시)DI(Dependency Injection, 의존성 주입) 지원필요할 때 스프링 컨테이너에서 빈을 가져와 사용 가능2. @Bean 어노테이션@Bean은 개발자가 직접 제어할 수 있는 방법으로 스프링 빈을 등록할 때 사용됩니다. 주로 @Configuration과 함께 사용되며, 메서드에 붙여서 해당 메서드가 반환하는 객체를 스프링 컨테이너가 관리하는 ..
1. @Controller란?@Controller는 Spring MVC에서 사용되는 애너테이션으로, 주로 HTML 페이지를 반환하는 경우에 사용됩니다. 뷰(View) 템플릿과 함께 사용되며, ModelAndView 또는 Model 객체를 활용하여 데이터를 전달할 수 있습니다.@Controller 예제아래는 @Controller를 사용하여 뷰를 반환하는 예제입니다.@Controllerpublic class HomeController { @GetMapping("/home") public String home(Model model) { model.addAttribute("message", "Welcome to Spring Boot!"); return "home"; /..
해싱이란?해싱(Hashing)은 입력 데이터를 고정된 크기의 값이나 키로 변환하는 과정입니다. 주로 해시 함수(Hash Function)를 사용하여 데이터를 변환하며, 변환된 결과 값을 해시 값(Hash Value) 또는 해시 코드(Hash Code)라고 합니다. 1. 비밀번호를 평문으로 저장하면 안 되는 이유데이터 유출 시 보안 위협: 만약 데이터베이스가 해킹당하면, 저장된 평문 비밀번호가 그대로 노출됩니다.다른 서비스 계정 탈취 가능성: 많은 사용자가 같은 비밀번호를 여러 서비스에서 사용하기 때문에, 하나의 비밀번호가 유출되면 다른 계정도 쉽게 해킹될 수 있습니다.법적 문제: GDPR과 같은 데이터 보호법에서는 사용자 정보를 안전하게 보호하도록 요구합니다. 2. 해싱과 암호화의 차이해싱(Hashing..
1. 프록시 패턴이란?프록시 패턴(Proxy Pattern)은 특정 객체에 대한 접근을 제어하기 위해 대리인(프록시) 역할을 하는 객체를 제공하는 디자인 패턴입니다. 클라이언트가 직접 객체에 접근하는 것이 아니라, 프록시를 통해 접근하도록 하여 다양한 기능을 추가할 수 있습니다.프록시 패턴은 다음과 같은 경우에 유용합니다:접근 제어 (예: 인증 및 권한 확인)리소스 최적화 (예: 지연 초기화, 캐싱)로깅 및 모니터링원격 객체 호출 (예: RMI, gRPC)2. 프록시 패턴의 구조프록시 패턴은 다음과 같은 주요 요소로 구성됩니다:Subject (주체): 실제 객체(RealSubject)와 프록시(Proxy)의 공통 인터페이스RealSubject (실제 객체): 클라이언트가 요청하는 실제 객체Proxy (프..