| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- mysql
- 일정관리프로젝트
- Join
- Kafka
- 연습문제
- LV01
- 일정관리 프로젝트
- Lv.0
- S3
- 알고리즘
- 디자인 패턴
- 프로그래머스
- JPA
- CI/CD
- LV03
- 코테
- LV02
- GIT
- 이것이 자바다
- spring boot
- LV0
- CoffiesVol.02
- Redis
- docker
- jvm
- LV.02
- 데이터 베이스
- SQL
- 포트폴리오
- Java
- Today
- Total
목록전체 글 (205)
코드 저장소.
목차1.캐시는 무엇인가?2.왜 캐시를 사용했는가?3.프로젝트 적용 1.캐시는 무엇인가?캐시는 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용한다. 데이터를 미리 복사를 해 놓으면 계산이나 접근 시간없이 더 빠른 속도로 데이터에 접근할 수 있다.2.왜 캐시를 사용했는가?프로젝트를 진행하다보니 메인페이지에서 있는 카테고리나 로그인 공지사항 글 등 빈번하게 접근하면서 데이터 갱신이 잘 되지 않은 부분이 있는데 매번 페이지로 이동을 할 때마다 반복적으로 쿼리가 작동이 되면 디비에 부담이 가기 때문에 반복적인 쿼리를 줄이는 방법으로 캐시를 선택하게 되었다. 2-1.LocalCac..
목차1.Jwt를 프로젝트에 적용한 이유2.프로젝트에서 사용된 인증 로직3.구현 결과물 1.Jwt를 프로젝트에 적용한 이유Jwt로그인을 프로젝트에 적용을 하게된 이유는 크게 다음과 같다.Jwt방식을 사용하면 서버는 비밀키만 알고 있으면 되기 때문에 세션 방식과 같이 별도의 인증 저장소가 필요하지 않으므로 서버의 부담이 감소무상태 인증, 간편한 클라이언트-서버 분리, 분산 시스템으로 확장 가능성 등의 장점위와 같은 이유로 Jwt를 적용하고자 한다. 2.프로젝트에서 사용된 인증 로직보통 jwt로그인에서 사용되는 재발급의 로직은 로그인시 발급되는 accessToken의 유효기간이 만료가 되면 서버에서 만료가 된지 확인을 한 뒤에 refreshToken을 활용해서 accessToken을 재발급하는 방법이다. ..
목차1.프록시2.로딩전략 1.프록시JPA에서의 프록시는 엔티티의 지연 로딩(Lazy Loading)을 지원하기 위해 사용됩니다. JPA 구현체(예: Hibernate)는 엔티티 대신 프록시 객체를 반환하여 실제 데이터베이스 액세스를 지연할 수 있습니다. 프록시 객체는 실제 엔티티의 서브 클래스 또는 동적 프록시로서, 엔티티의 실제 데이터가 필요한 시점까지 데이터베이스 쿼리를 연기합니다. 프록시의 동작 원리지연 로딩 설정: 엔티티 관계(예: @OneToMany, @ManyToOne)에 fetch = FetchType.LAZY를 설정합니다.프록시 생성: JPA 구현체는 엔티티를 로드할 때 실제 엔티티 대신 프록시 객체를 반환합니다. 초기화: 프록시 객체의 메서드가 호출되면, JPA 구현체는 실제 엔티티 데이..
목차1.JPA의 데이터 타입2.기본값 타입3.임베디드 타입4.컬렉션 값 타입 1.JPA의 데이터 타입JPA에서의 데이터 타입은 크게 엔티티타입과 값 타입으로 되어있습니다. 엔티티 타입 엔티티 타입은 @Entity로 정의를 할 수 있는 객체를 의미합니다. 값타입 값타입은 크게 3가지로 분류를 할 수 있습니다. 1.기본 값 2.임베디드 타입3.컬렉션 타입2.기본값 타입기본 값 타입은 자바에서 기본 타입, 래퍼 클래스, String을 예로 들 수 있습니다.@Entity@Getter@NoArgsConstructor@AllArgsConstructorpublic class testEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) ..
목차1.JWT는 무엇인가?2.JWT와Session의 차이점 1.JWT는 무엇인가?jwt는 json web token의 약자로써 웹에서 정보를 안전하게 전송하기 위한 토큰 기반의 인증 방식 중 하나로 jwt는 json을 활용해서 사용자의 정보를 일부 담습니다. jwt의 구조는 header. payload. verify signature 로 이렇게 3가지로 구성이 되어있고 하나씩 설명을 해보도록 하겠습니다. 1-1.헤더(Header)jwt의 헤더는 typ와 alg로 구성이 되어 있습니다.typ : 토큰의 타입을 지정합니다. alg : 해싱 알고리즘을 말합니다. 이 알고리즘은 토큰을 검증을 할때 사용되는 signature 부분에서 사용됩니다. 자주 사용하는 해싱 알고리즘은 HMAC와 SHA256입니다.1-2..
목차1.JPA의 연관관계2.1대1관계3.1대다관계4.다대다관계 1.JPA의 연관관계JPA(Java Persistence API)에서 연관관계는 단방향과 양방향으로 설정할 수 있습니다. 연관관계는 크게 1대1,1대다,다대다의 세 가지 유형으로 나뉘며, 각각을 단방향과 양방향으로 구현할 수 있습니다. 2.1대1관계단방향: 한쪽 엔티티가 다른 한쪽 엔티티를 참조합니다. 예를 들어, User가 UserProfile을 참조하지만 UserProfile은 User를 참조하지 않습니다.@Entitypublic class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name..