์ ์ฒด ๊ธ90 [ Java / querydsl ] Queryds์์์ ํ์ด์ง๋ค์ด์ ๊ฐ๋จํ ํ์ด์ง๋ค์ด์ - fetchResults()offset() ๋ฉ์๋์ limit() ๋ฉ์๋๋ฅผ ํตํด์ querydsl๋ก ํ์ด์ง๋ค์ด์ ์ ํ ์ ์๋ค.offset์ ๋ช๋ฒ์งธ ํ์ด์ง๋ฅผ ๊ฐ์ ธ์ฌ์ง, limit์ ํ ํ์ด์ง์ ๋ช๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ์ง๋ฅผ ์๋ฏธํ๋ค.package study.querydsl.repository;import com.querydsl.core.types.dsl.BooleanExpression;import com.querydsl.jpa.impl.JPAQueryFactory;import jakarta.persistence.EntityManager;import org.springframework.data.domain.Pageable;import org.springframework.util.Strin.. 2025. 3. 29. [Spring / Jpa / querydsl ] ์ปค์คํ ๋ฆฌํฌ์งํ ๋ฆฌ ๊ตฌ์กฐ ์คํ๋ง ๋ฐ์ดํฐ JPA์ querydslCustom Repository๋ฅผ ์ฌ์ฉํ๊ธฐSpring Data Jpa์ Querydsl์ ํ์ฉํ custom repository(์ฌ์ฉ์ ์ ์ ๋ฆฌํฌ์งํ ๋ฆฌ)๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์๋์ ๊ฐ์ ์์ ๊ตฌ์กฐ๋ก ๊ตฌํํด์ฃผ๋ฉด ๋๋ค.์ ์ฌ์ง๋ณด๋ค ๋ ์ง๊ด์ ์ผ๋ก ์ดํด๊ฐ ์๊ฐ๋ ์ฌ์ง์ด ์์ด์ ๊ฐ์ ธ์๋ค.์ฌ์ง ์ถ์ฒ: https://wildeveloperetrain.tistory.com/322MemberRepositoryCustom (์ธํฐํ์ด์ค)์ฌ์ฉ์ ์ ์ ๋ฉ์๋๋ฅผ ์ ์ํ๋ค.package study.querydsl.repository;import org.springframework.data.jpa.repository.JpaRepository;import study.querydsl.entity.Membe.. 2025. 3. 23. [Redis / Docker/ Error] ๋จ์ผ ๋ ๋์ค์์ "Connecting to MASTER [ip]:[port]" ๋ก๊ทธ docker container๋ก ๋์ด redis์ ์ ์ํด๋ณด๋, ์๋์ ๊ฐ์ ๋ก๊ทธ๊ฐ ์ฐํ ์์๋ค. ๋ญ๊ฐ ์ด redis๊ฐ slave ๋ ธ๋์ด๊ณ , master์ ์ ์ํ๋ ค๊ณ ํ์ง๋ง ์๋๊ณ ์๋ค๋ ๋ป์ธ๊ฑฐ ๊ฐ์๋ฐ๋ ๋์ค ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ฑํ์ง ์๊ณ ํ ๋ ์ฐ๊ณ ์์๊ธฐ์ ์ ๋ฐ๊ฒ ๋จ๋๊ฒ ๋๋ฌด ์ด์ํ๋ค ์ด์ฌํ ์๋ฃ๋ฅผ ์ฐพ์๋ด๋ ๋ ๋์ค ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ฑํ๋ ๊ณผ์ ์์ ์ ๋ฐ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค๋ ๊ธ๋ฐ์ ์ฐพ์ ์ ์์๋๋ฐ,๊ฐ์ฅ ์์ธ ๊ฐ์ ๋ณด์ด๋ stackoverflow ํ์ด์ง๋ฅผ ํ๋ ์ฐพ์ ์ ์์๋ค. https://stackoverflow.com/questions/57738563/redis-running-on-docker-shuts-down-after-some-time Redis running on Docker shuts down afte.. 2025. 3. 23. [Java / querydsl] querydsl๋ก ๋์ ์ฟผ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ๋์ ์ฟผ๋ฆฌ๋ฅผ ํด๊ฒฐํ๋ 2๊ฐ์ง ๋ฐฉ๋ฒBooleanBuilderWhere ๋ค์ค ํ๋ผ๋ฏธํฐ ์ฌ์ฉ (1) BooleanBuilder ๋ฐฉ์BooleanBuilder๋ฅผ ๋ง๋ค์ด์ querydsl์ where์ ์ ๋ฃ์ด์ฃผ๊ธฐ๋ง ํ๋ฉด๋๋ค.BooleanBuilder๋ฅผ ๋ง๋ค ๋, ํ ์กฐ๊ฑด์ด null์ด๋ฉด ํด๋น ์กฐ๊ฑด์ ๋นผ๋๋ก ๊ตฌํํ๋ค.๋ฐ๋ผ์ usernameParam์ null๋ก ๋์์ ๋๋, JPQL์ where์ ์ age๋ง ์กด์ฌํ๊ณ , @Test public void dynamicQuery_boolean_builder() { String usernameParam = null; Integer ageParam = 10; List result = searchMember1(usernamePar.. 2025. 3. 18. [Java / querydsl] ์ฌ๋ฌ Projection ๋ฐฉ๋ฒ ํ๋ก์ ์ ๊ธฐ๋ณธํ๋ก์ ์ ๋์์ด ํ๋์ธ ๊ฒฝ์ฐ // ํ๋ก์ ์ ๋์์ด ํ๋์ธ ๊ฒฝ์ฐ @DisplayName("๋ชจ๋ ํ์์ ์ด๋ฆ ์กฐํ") @Test void simpleProjection() { List result = queryFactory .select(member.username) .from(member) .fetch(); for (String s : result) { System.out.println("result = " + s); } }ํ๋ก์ ์ ๋์์ด ์ฌ๋ฌ ๊ฐ์ธ ๊ฒฝ์ฐ @DisplayName("๋ชจ๋ ํ์์ ์ด๋ฆ๊ณผ ๋์ด๋ฅผ ๋ฐํ") @Te.. 2025. 3. 16. ํฌ์คํธ๋งจ์ผ๋ก Mock Server ๋ง๋ค๊ธฐ(API mocking) MSA ํ๋ก์ ํธ๋ฅผ ๊ฐ๋ฐํ ๋ ๋ด๊ฐ ๊ฐ๋ฐํ๊ณ ์๋ API๊ฐ ๋ค๋ฅธ ์๋ฒ๋ฅผ ํธ์ถํด์ผํ๋ค๋ฉด ๊ฐ๋ฐ์ด๋ ํ ์คํธ ๊ณผ์ ์ด ๋ณต์กํด์ง ์ ์๋ค.๊ทธ๋ด ๋ ๋ค๋ฅธ ๋ง์ดํฌ๋ก์๋ฒ๋ฅผ ๋ก์ปฌ์์ ๋์๋๋ ๋ฐฉ๋ฒ๋ ์๊ฒ ์ง๋ง, ํฌ์คํธ๋งจ์ผ๋ก ํ์ํ API๋ง mockingํ mock ์๋ฒ๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ ์ ์๋ค. ์๋ก์ด ์ปฌ๋ ์ ๋ง๋ค๊ธฐ์ฐ์ ์ํฌ์คํ์ด์ค ์ข์ธก ์๋จ + ๋ฒํผ์ ๋๋ฌ ์๋ก์ด ์ปฌ๋ ์ ์ ๋ง๋ค์ด์ฃผ์ Mock Server ๋ง๋ค๊ธฐ์ฐ์ Mock Servers ์์ด์ฝ์ด ๋ณด์ด์ง ์๋๋ค๋ฉด, ํ๋ฉด ์ข์ธก ๋ฉ๋ด์ถ๊ฐ ๋ฒํผ์ ๋๋ฅด๊ณ Mock servers๋ฅผ ๋๋ฌ์ ๋ฉ๋ด์ ๋ณด์ด๊ฒ ํด์ฃผ์ด์ผํ๋ค. ์ฌ๊ธฐ๊น์ง ๋๋ค๋ฉด, create mock server ๋ฒํผ์ ๋๋ฌ์ ๋ชฉ์๋ฒ๋ฅผ ๋ง๋ค์ด์ฃผ์ ์ปฌ๋ ์ ์ ์์์ ๋ง๋ค์๋ ์ปฌ๋ ์ ์ ์ ํํด์ฃผ๊ณ ,ํ๋จ "Save the mock.. 2025. 3. 14. ์ด์ 1 2 3 4 ยทยทยท 15 ๋ค์