일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 연습문제
- Kafka
- 일정관리프로젝트
- 이것이 자바다
- SQL
- Join
- GIT
- spring boot
- 디자인 패턴
- 프로그래머스
- Lv.0
- 코테
- docker
- LV0
- JPA
- Java
- LV1
- 알고리즘
- CoffiesVol.02
- 포트폴리오
- LV02
- LV03
- S3
- LV.02
- CI/CD
- mysql
- LV01
- Redis
- 데이터 베이스
- 일정관리 프로젝트
- Today
- Total
목록포폴/JPABlog (8)
코드 저장소.

목차1.SSE?2.프로젝트에 적용 1.SSE?SSE 는 Server Sent Events 로 서버에서 클라이언트로 실시간 데이터를 비동기적으로 전송하는 웹 애플리케이션 통신 기술 중 하나입니다. SSE의 특징으로는 다음 몇가지로 볼 수 있습니다.단방향 통신: 클라이언트는 서버에게 요청을 보내고, 서버는 클라이언트에게 데이터를 주기적으로 보냅니다. 이는 HTTP 기반의 통신 프로토콜을 사용하며, 클라이언트에서 서버로의 요청만 있고, 서버에서 클라이언트로의 응답만 있습니다.폴링 대신 이벤트 기반: 일반적인 웹 애플리케이션에서는 폴링(Polling)이나 웹소켓(WebSockets)과 같은 방법을 사용하여 실시간 데이터를 처리합니다. 하지만 SSE는 클라이언트가 서버에게 한 번 연결되면, 서버는 필요할 때마다 ..

목차1.문제 상황2.AOP?3.프로젝트에 적용4.AOP의 주의점 1.문제 상황 블로그 프로젝트에서 모든 페이지에 사이드바가 적용이 되는데 로그인과 회원가입 페이지를 제외하면 7페이지이고 이 페이지마다 컨트롤러에서 쿼리를 모델에 담아야 하는데 이렇게 되면 단순반복이고 코드가 길어지는 상황이어서 AOP를 사용해서 코드의 양을 줄이고 좀 더 간결하게 코드를 리팩토링을 해야 되는 상황입니다.2.AOP?AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이다. 여기에서 관점지향은 어떤 로직을 기준으로 해서 핵심적인 관점,부가적인 관점으로 나누어서 보고 그 관점을 기준으로 해서 하나의 단위로 묶는 것을 말한다.대표적으로는 로깅,유효성 검사,파일 입출력 등이 있다.3.프로젝트에 적..

목차1.문제상황 2.동시성 이슈?3.비관적 락 VS 낙관적 락 4.프로젝트 적용1.문제상황 프로젝트를 진행하면서 게시글 조회수 증가기능을 확인해보는 도중에 포스트맨으로 동시요청을 해보았는데 조회수의 결과가 원하는 만큼 증가하지 않는 문제가 발생을 해서 무슨 문제인지를 검색해 보았더니 동시성이슈에 관련된 문제임을 알았고 앞으로도 필요한 문제이기에 이 문제를 해결해 보기로 했다.2.동시성 이슈?동시성이라는것은 두개 이상의 세션이 공통된 자원에 대해서 읽고 쓰는 작업을 할 때 발생하는 문제를 동시성 이슈라고 합니다. 3.비관적 락 VS 낙관적 락데이터베이스는 여러 사용자들이 같은 데이터를 동시에 접근 상황에서, 데이터의 무결성, 일관성을 지키기 위해 LOCK을 사용한다. Lock은 트랜잭션의 순차성을 보장하며..

목차1.QueryDSL? 2.JPQL과의 차이점?3.프로젝트의 적용 1.QueryDSL?QueryDSL은 자바 기반의 동적 쿼리를 작성하는 데 사용되는 라이브러리입니다. 주로 JPA(Java Persistence API)와 함께 사용되며, 데이터베이스에 대한 쿼리를 자바 코드로 작성할 수 있도록 도와주는 라이브러리 입니다. 2.JPQL과의 차이점?QueryDSL과 JPQL(JPA Query Language)은 둘 다 자바 표준인 JPA(Java Persistence API)를 사용하여 데이터베이스 쿼리를 작성하는 데에 사용되는 라이브러리입니다. 하지만 두 라이브러리 간에는 몇 가지 차이가 있습니다. 2-1.문법 및 표현 방법JPQL: 문자열 기반의 쿼리 언어로, SQL과 유사하지만 엔터티와 필드를 대상으..

목차1.캐시는 무엇인가?2.왜 캐시를 사용했는가?3.프로젝트 적용 1.캐시는 무엇인가?캐시는 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용한다. 데이터를 미리 복사를 해 놓으면 계산이나 접근 시간없이 더 빠른 속도로 데이터에 접근할 수 있다.2.왜 캐시를 사용했는가?프로젝트를 진행하다보니 메인페이지에서 있는 카테고리나 로그인 공지사항 글 등 빈번하게 접근하면서 데이터 갱신이 잘 되지 않은 부분이 있는데 매번 페이지로 이동을 할 때마다 반복적으로 쿼리가 작동이 되면 디비에 부담이 가기 때문에 반복적인 쿼리를 줄이는 방법으로 캐시를 선택하게 되었다. 2-1.LocalCac..

목차1.Jwt를 프로젝트에 적용한 이유2.프로젝트에서 사용된 인증 로직3.구현 결과물 1.Jwt를 프로젝트에 적용한 이유Jwt로그인을 프로젝트에 적용을 하게된 이유는 크게 다음과 같다.Jwt방식을 사용하면 서버는 비밀키만 알고 있으면 되기 때문에 세션 방식과 같이 별도의 인증 저장소가 필요하지 않으므로 서버의 부담이 감소무상태 인증, 간편한 클라이언트-서버 분리, 분산 시스템으로 확장 가능성 등의 장점위와 같은 이유로 Jwt를 적용하고자 한다. 2.프로젝트에서 사용된 인증 로직보통 jwt로그인에서 사용되는 재발급의 로직은 로그인시 발급되는 accessToken의 유효기간이 만료가 되면 서버에서 만료가 된지 확인을 한 뒤에 refreshToken을 활용해서 accessToken을 재발급하는 방법이다. ..