Java(13)
-
@Transactional
@Transactional 스프링 프레임워크에서 트랜잭션을 처리하는데 사용되는 중요한 어노테이션입니다. 이 어노테이션은 메서드나 클래스에 적용할 수 있으며, 해당 메서드나 클래스가 하나의 트랜잭션 단위로 실행되어야 함을 스프링에게 알려줍니다.트랜잭션이란?데이터베이스 트랜잭션은 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위이다.데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산을 의미한다. 트랜잭션 경계 설정:@Transactional 어노테이션이 적용된 메서드가 실행될 때, 스프링은 트랜잭션을 시작하고 메서드 실행이 완료될 때까지 트랜잭션을 유지합니다. 이를 통해 데이터베이스 작업이 원자적(Atomic)으로 처리될 수 있습니다.예외 처..
2024.06.24 -
Entity 맵핑 @어노테이션
@Entity속성기능name데이터 배이스나 JPA에서 사용할 이름 설정 예시@Entitypublic class User { 주의 사항기본 생성자가 꼭 필요final, enum, interface, innter class에서는 사용 불가필드(변수)를 final로 선언 불가 @Table속성기능name데이터 배이스나 JPA에서 사용할 이름 설정catalogcatalog 기능이 있는 DB에서 catalog 매핑schemaschema기능이 있는 DB에서 schema 매핑uniqueContraintsDDL 생성시 유니크 제약조건 생성※ 스키마 자동 생성 기능을 사용해 DDL을 만들 때만 사용 예시@Entity@Table(name = "users")public class User { @Id속성기능@Generat..
2024.06.19 -
BLOB 이용한 멀티미디어 저장
BLOB (Binary Large Object)BLOB(대용량 바이너리 객체, Binary Large Object)은 대량의 이진 데이터를 저장하고 처리하는 데 사용되는 데이터 유형입니다.데이터베이스에서 사용되며, 이미지, 비디오, 오디오 파일, 문서, 애플리케이션 데이터 등 다양한 형태의 대용량 바이너리 데이터를 포함할 수 있습니다. BLOB의 특징 대용량 데이터 저장:텍스트, 이미지, 비디오, 오디오 파일 등 다양한 유형의 대용량 데이터를 저장할 수 있습니다.데이터베이스에서 BLOB 필드는 수백 메가바이트에서 기가바이트에 이르는 데이터를 저장할 수 있습니다.이진 데이터 지원:BLOB은 순수한 이진 데이터를 저장하므로, 데이터의 형식을 유지하면서 손실 없이 저장할 수 있습니다.텍스트 데이터뿐만 아니라 ..
2024.06.19 -
싱글톤(Singleton) 패턴의 개념 및 사용
싱글톤(Singleton) 패턴이란?Singleton 패턴은 소프트웨어 디자인 패턴 중 하나로, 특정 클래스의 인스턴스가 단 하나만 생성되도록 보장하는 패턴입니다.이 패턴은 클래스 자체에서 인스턴스를 생성하고 관리하는 방식으로, 전역 상태를 관리하거나 공통 자원을 효율적으로 사용하고자 할 때 사용됩니다 싱글톤의 사용 이유싱글톤 패턴을 사용함으로써 얻을 수 있는 이점 중 하나는 메모리 낭비를 방지할 수 있다. 인스턴스의 유일성 보장클래스 내에 유일한 인스턴스를 저장할 정적 변수를 선언합니다.인스턴스를 생성하는 메서드는 해당 정적 변수에 접근하여 이미 생성된 인스턴스가 있는지 확인하고, 없으면 새로 생성하여 저장합니다.전역 접근점 제공인스턴스에 접근할 수 있는 정적 메서드를 제공합니다. 이 메서드는 클래스..
2024.06.18 -
AOP의 계념 및 사용법
AOP 관점 지향 프로그래밍(Aspect Oriented Programming)란?스프링 프레임워크의 핵심 기능 중 하나로, 애플리케이션의 핵심 비즈니스 로직과 공통적인 부가 기능을 분리하여 모듈화할 수 있게 합니다. 이를 통해 코드의 재사용성을 높이고, 비즈니스 로직을 더 간결하고 유지보수하기 쉽게 만듭니다.스프링 AOP는 애플리케이션의 공통 관심사를 모듈화하는 강력한 도구로, 올바르게 사용하면 코드의 가독성과 유지보수성을 크게 향상시킬 수 있습니다.AOP 의 적용 전 후AOP 적용 전AOP 적용 후Spring이 프록시(가짜 혹은 대리) 객체를 중간에 삽입해줍니다.DispatcherServlet 과 ProductController 입장에서는 변화가 전혀 없습니다.호출되는 함수의 input, output..
2024.06.18 -
Refresh Token, Access Token의 개념 및 동작
▶ 두 토큰의 차이점Refresh Token사용자가 서버에 인증하려 만든 토큰이 아니라 데이터 배이스와 연동해 Access Token을 제작할 때 쓰인다.대체로 만료기간이 매우 길게 설정하며 사용자가 확인할 수 없어 보안에 용의 하다.사용자가 서버를 이용할 때마다 로그인해야 하나는 수고를 줄이고 보안성을 높이기 위해 만들었다.AccessToken사용자가 서버에 인증하기 위해 만든 토큰으로 서버를 이용하기 위해 쓰인다.만료기간이 Refresh Token보다 짧고 사용자가 확인하려면 할 수 있기에 보안에 취약하다. ▶ 만료기간 때문에 분리했는데 만료기간?만료기간은 왜 있을까?사용자 PC가 해킹당해 토큰이 털릴 위험성이 있기에 토큰에 만료기간을 정해 토큰이 털려도 시간이 지나면 쓸데없는 데이터 쪼가리가 돼서 ..
2024.06.03