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

목차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을 재발급하는 방법이다. ..

목차1. 문제점2. 해결하는 과정3.해결 후 결과 1. 문제점 기존의 Coffies 프로젝트를 하면서 회원가입시 이메일인증을 하는 기능을 만들었는데 구글이메일이 외부 api다 보니깐 인증버튼을 누르면 2~3초간 있다가 인증메일이 보내져서 속도를 좀 더 개선을 하는 방법을 보다가 @Async를 활용해서 비동기 처리를 통해서 속도를 개선하는 방법으로 하기로 했다. 2. 해결하는 과정해결하는 과정은 지극히 간단했다. 2-1.우선은 비동기 관련 클래스를 작성한다.@EnableAsync@Configurationpublic class AsyncConfig extends AsyncConfigurerSupport { public Executor getAsyncExecutor() { ThreadPool..
목차1. Mybatis는 무엇이고 기존의 장점 및 단점?2. JPA의 장단점 1. Mybatis는 무엇이고 기존의 장점 및 단점?Mybatis는 Java 언어를 사요하는 개발자들이 SQL 쿼리를 관리하고 데이터 베이스와 상호작용하는데도움을 주는 ORM프레임워크 중 하나입니다. 장점: 1. 접근이 쉽고 간결하다.(배우기가 쉽다) 2.SQL문과 프로그래밍 코드가 분리가 되어있어서 SQL문에 변경이 있을 때마다 자바 코드를 수정하거나 컴파일을 하지 않아도 된다. 3.다양한 언어로 구현이 가능하다.(이식성이 뛰어나다) 단점: 1.스키마 변경시 SQL 퀴리를 직접 수정해야 한다. 2.반복된 퀴리가 발생하여 반복 작업이 있다. 3.쿼리를 직접 작성하기 때문에 데이터베이스에 종속된 쿼리문이 발생할 수 있다. 4.데이..

목차1.문제상황2.원인3.해결책 1.문제상황자유게시판에서 상세조회 페이지에서 이전글/다음글을 보여주는 기능을 만드는 중에서 repository에 만들어 놓은 쿼리에서 실행을 할 때 데이터 베이스 상에서 쿼리를 작성해서 실행을 하면 사진과 같이 정상적으로 작동이 되었지만 막상 실행을 하면 아래와 같은 에러가 발생.No converter found capable of converting from type [org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap] to type [com.example.coffies_vol_02.board.domain.dto.response.BoardNextPrevio..