일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- @Repository
- set
- GA4
- JPA
- mergeattributes()
- Thymeleaf
- @Controller
- Login
- @Entity
- 인텔리제이
- linkedhastset
- post
- addallattributes()
- 데이터베이스
- HttpSession
- firebase
- Polylang
- 워드프레스
- useEffect
- 구글
- router
- 플러그인
- ChatGPT
- db
- 구글알고리즘
- 구글애널리틱스
- 리액트오류
- @Query
- SEO
- GET
- Today
- Total
목록전체 글 (142)
개발천재

@Transactional 이해하기@Transactional은 주로 데이터베이스 작업에서 일관성과 무결성을 보장하기 위해 사용되는 어노테이션이다. 이 어노테이션을 메서드나 클래스에 적용하면, 해당 메서드나 클래스 내에서 수행되는 데이터베이스 작업이 하나의 트랜잭션으로 묶인다. 트랜잭션은 여러 개의 데이터베이스 작업을 하나의 단위로 묶어서 실행되는데, 모든 작업이 성공적으로 완료되면 데이터베이스에 반영되고, 만약 하나라도 실패하면 모든 작업을 취소하고 원래 상태로 되돌리게 된다. @Transactional 핵심 개념 (ACID)트랜잭션은 ACID라는 네 가지 특성을 가진다.Atomicity (원자성)트랜잭션 내의 모든 작업은 하나의 단위로 처리된다. 모든 작업이 성공하면 커밋되고, 실패하면 모두 롤백된다..

Stream() 이해하기자바의 Stream은 데이터 컬렉션(예: List, Set, Map 등)을 효율적으로 처리할 수 있도록 도와주는 기능이다.보통 컬렉션을 반복하면서(for 문, foreach) 데이터를 처리하지만, Stream을 사용하면 for 루프를 사용하지 않아도 더 짧고 가독성 좋은 코드로 데이터를 다룰 수 있다. 데이터를 하나씩 처리하는 것이 아니라, 흐름(파이프라인)으로 처리for 문보다 코드가 간결중간 연산(변환)과 최종 연산(출력, 합산 등)을 분리해서 처리원본 데이터를 변경하지 않음(불변성 유지)public class IntArrayTest { public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5}..

H2 Database 사용하기H2 Database는 가볍고 빠른 인메모리(In-Memory) 기반의 관계형 데이터베이스이다. 테스트나 개발 환경에서 MySQL 같은 데이터베이스를 대신해서 많이 사용된다. H2 Database는 별도 설치 없이 JAR 파일 하나로 실행이 가능하고 In-Memory 모드 사용 시 성능이 뛰어나 속도가 빠르다. SQL을 지원하기 때문에 표준 SQL 사용 가능하고(MySQL, PostgreSQL과 유사), Spring Boot와 연동이 쉽기 때문에 spring-boot-starter-data-jpa와 함께 사용하면 자동 설정이 가능하다. Spring Boot에 의존성 추가하기build.gradle에 의존성 추가dependencies { implementation 'c..

@Buildeer 이해하기@Builder는 Lombok에서 제공하는 어노테이션으로, 객체를 보다 간편하게 생성할 수 있도록 도와주는 역할을 한다. 특히, 생성자 파라미터가 많을 때 가독성을 높이고, 유연하게 객체를 생성할 수 있다는 특징이 있다. [ @Builder 간단 정리 ]@Builder는 객체를 유연하고 가독성 있게 생성할 수 있도록 도와주는 Lombok 어노테이션생성자 매개변수 순서를 신경 쓰지 않고 명확하게 값 설정 가능@Builder.Default를 사용하면 기본값을 설정할 수도 있음특정 생성자만 @Builder에서 사용할 수도 있음 기본적인 사용법JPA에서 @Entity와 함께 사용할 때는 @NoArgsConstructor도 추가하는 게 좋다.import lombok.Builder;i..

HttpSession을 이용한 로그인 처리서버가 관리하는 사용자 상태 정보로, 클라이언트가 요청할 때마다 세션 ID를 전달하여 사용자 식별한다. 관리의 주체가 서버이기 때문에 로그인 처리 방식으로 가장 많이 사용되며, 권장되는 방식이다.세션을 이용해서 로그인하는 방식에서 클라이언트는 세션 ID만 전달하고 실제 로그인 정보는 서버에 저장된다. 서버에서 관리하므로 보안성이 높아 비교적 안전하다는 장점이 있다. 또한 다양한 사용자 상태 정보를 관리할 수 있고, 세션 타임아웃 설정으로 보안 기능을 강화할 수 있다.단, 서버 자원을 사용하므로 많은 사용자 관리 시 부하 발생 가능성이 있고, 클라이언트가 세션 ID를 분실하거나 만료되면 재로그인 필요하다.세션에는 유지 시간이 있기 때문에 일정 시간이 지나도 사용자의..

요소 추가하기, 변경하기before(), after(), append(), prepend()는 jQuery에서 DOM 요소를 추가하거나 변경할 때 사용하는 메서드이다. before()와 after()는 선택한 요소의 앞이나 뒤에 새로운 요소를 삽입하는 데 사용된다. 이 메서드들은 기존 요소의 위치를 기준으로 새 요소를 추가하므로, 그 요소가 어디에 위치할지를 정확히 설정할 수 있다.반면, append()와 prepend()는 선택한 요소의 자식 요소로 새로운 요소를 추가하는 데 사용된다. append()는 기존 자식 요소의 끝에 새로운 요소를 추가하고, prepend()는 기존 자식 요소의 처음에 새 요소를 삽입한다. 이 네 가지 메서드는 모두 DOM 요소의 위치와 구조를 동적으로 변경하는 데 유용하며,..

Set 이해하기Set은 중복을 허용하지 않는 데이터 구조이다. 같은 값을 여러 번 저장할 수 없고, 순서도 보장되지 않는다. Set은 중복된 값을 저장할 수 없기 때문에 동일한 값이 들어오게 되면 데이터가 하나 더 생기는 것이 아니라 기존 데이터가 유지된다. 또한 순서가 있는 List와 달리 Set은 순서를 보장하지 않고, null 값을 저장할 수 있다(단 한번). 또한 내부적으로 해싱(Hashing) 알고리즘을 사용하기 때문에 검색, 추가, 삭제가 빠르다는 장점이 있다. set은 중복 데이터를 허용하지 않아야 할 때 사용한다. 예를 들어 회원 ID나 이메일을 저장할 때 중복 데이터가 있으면 안되기 때문에 Set을 사용할 수 있다. ✔ 중복 값 저장 불가 ✔ 순서가 보장되지 않음 ✔ null 값 저장..

JpaRepository 이해하기JpaRepository는 Spring Data JPA에서 제공하는 인터페이스다. 이걸 사용하면 SQL을 직접 작성하지 않아도 기본적인 데이터베이스 작업(조회, 저장, 삭제 등)을 자동으로 처리할 수 있다. JpaRepository의 역할JpaRepository는 기본적으로 CRUD 기능을 제공하는데, 이걸 사용하면 INSERT, SELECT, UPDATE, DELETE 같은 SQL 쿼리를 직접 작성하지 않고 사용할 수 있다.public interface MemberRepository extends JpaRepository {} JpaRepository를 쓰면 @Repository를 선언하지 않아도 되는 이유Spring Data JPA에서 JpaRepository를 상속..

Entity와 DTO의 역할 차이EntityDB와 직접 연결되는 핵심 모델DTOView나 API를 위한 가공된 데이터 객체 Entity는 데이터베이스 테이블과 1:1 매핑되는 객체이다. Entity는 @Entity로 선언된 클래스를 말하며 데이터베이스의 구조(컬럼, 관계 등)를 그대로 반영한다. 비즈니스 로직을 직접 담지 않고, 순수한 데이터 구조만 가진다. DTO(Data Transfer Object)는 데이터를 전달하기 위한 객체이다. Controller ↔ Service ↔ View(프론트엔드) 간의 데이터 전송에 사용하며, Entity와 달리, 비즈니스 요구사항에 맞게 필요한 데이터만 담거나 가공할 수 있다. 주로 getter, setter 또는 spring에서는 @Data 등을 사용해 간단하게..

@Query 이해하기@Query는 Spring Data JPA에서 사용자 정의 쿼리를 작성할 때 사용하는 어노테이션으로, JPQL(엔티티 기반 쿼리)이나 Native SQL(DB 직접 쿼리)을 사용하여 복잡한 조건의 검색, JOIN, 서브쿼리 등을 자유롭게 구현할 수 있으며, 메서드 이름으로 작성하기 어려운 쿼리를 간결하게 표현하고 최적화할 때 유용하게 사용된다. @Query를 사용하는 이유복잡한 쿼리나 맞춤형 쿼리가 필요할 때, JPA 메서드 이름만으로는 부족할 때 사용한다. JPQL(Java Persistence Query Language)을 사용해서 엔티티 객체를 기반으로 쿼리를 작성할 수 있고, Native Query(순수 SQL)도 지원한다. JPA 메서드 이름으로 만들기 어려운 경우SQL 최..