전체 글

이번 방학동안 프로젝트를 하면서 AWS에 대해 공부를 했습니다. 하지만 공부를 하면 할 수록 AWS는 많은 기능을 지원해준다는 것을 알았습니다. 그래서 확실하게 공부해보고 새로운 프로젝트에 더 많은 기능들을 사용해볼려고 합니다. https://product.kyobobook.co.kr/detail/S000200882352 AWS 구조와 서비스 | 우에노 후미아키 - 교보문고 AWS 구조와 서비스 | product.kyobobook.co.kr 제가 공부할 때 본 책은 이 책입니다. 클라우드란 무엇인가? 클라우드를 한 줄로 설명하자면 인터넷을 통해 데이터와 컴퓨팅 리소스에 접근할 수 있는 온라인 기반의 서비스와 저장 공간입니다. 온프레머스란? 클라우드를 쉽게 이해하기 위해 클라우드의 반대 개념인 온프레머스를..
조인 - 기본 조인 기본 조인 조인의 기본 문법은 첫 번째 파라미터에 조인 대상을 지정하고, 두 번째 파라미터에 별칭으로 사용할 Q타입을 지정하면 됩니다. join(조인 대상, 별칭으로 사용할 Q타입) /** * 팀 A에 소속된 모든 회원 */ @Test public void join() throws Exception { // given QMember member = QMember.member; QTeam team = QTeam.team; // when List result = queryFactory .selectFrom(member) .join(member.team, team) .where(team.name.eq("teamA")) .fetch(); //then assertThat(result) .ext..
정렬 인프런 강의에서 나온 예시는 회원 정렬 순서 1. 회원 나이 내림차순(desc) 2. 회원 이름 올림차순(asc) 단 2에서 회원 이름이 없으면 마지막에 출력(nulls last) 이 예시를 Querydsl로 짜 볼 것이다. @Test public void sort() throws Exception { em.persist(new Member(null, 100)); em.persist(new Member("member5", 100)); em.persist(new Member("member6", 100)); // when List result = queryFactory .selectFrom(member) .where(member.age.eq(100)) .orderBy(member.age.desc(), ..
기본 Q-Type 활용 Q클래스 인스턴스를 사용하는 2가지 방법 QMember qMember = new QMember("m"); //별칭 직접 지정 QMember qMember = QMember.member; //기본 인스턴스 사용 이렇게 2가지 방법이 있습니다. 하지만 이것보다 더 간편하게 사용할 수 있는 방법은 static import를 사용하는 것 입니다. 이렇게 static imprort로 사용할 수 있습니다. 쿼리를 보면 별칭으로 member1으로 되어있습니다. 이것은 default 값으로 Qmember에 설정되어 있습니다!! Querydsl을 실행하다가 JPQL 형식을 보고 싶으면 spring.jpa.properties.hibernate.use_sql_comments: true 이걸 appli..
JPQL JPQL은 지금까지 제가 사용한 형식입니다. 쿼리를 짜서 직접 실행하는 스타일입니다. @Test public void startJPQL() throws Exception { //member1을 찾아라. String qlString = "select m from Member m " + "where m.username = :username"; // when Member findMember = em.createQuery(qlString, Member.class) .setParameter("username", "member1") .getSingleResult(); //then assertThat(findMember.getUsername()).isEqualTo("member1"); } 이렇게 jpql로 ..
이번에 방학동안 프로젝트를 하면서 제일 큰 문제가 동적쿼리를 처리하는 부분이었습니다. 동적 쿼리는 주로 조건에 따라 WHERE 절의 일부가 필요한 경우나 정렬 순서를 동적으로 결정해야 하는 경우 등에 사용됩니다. 예를 들어, 사용자가 웹 애플리케이션에서 검색 조건을 입력한 경우, 그 조건에 따라 데이터베이스에 쿼리를 보내야 합니다. 이때 동적 쿼리를 사용하여 해당 조건을 반영한 쿼리를 생성하고 실행할 수 있습니다. 이 부분을 손쉽게 해결해 줄 수 있는게 Querydsl이라고 합니다. 그래서 김영한 강사님의 실전! Querydsl을 듣고 공부해보기로 했습니다!! Querydsl 세팅 저는 스프링부트 3.1.3 을 사용하였고 자바는 17을 사용했습니다. 스프링부트 3 이후는 Querydsl 세팅하는 법이 달..
https://school.programmers.co.kr/learn/courses/30/lessons/60060 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 이 문제는 words가 주어지면 이 words에 맞는 queries가 몇 개 있는지 찾는 문제입니다. fro??은 frodo, front, frost 이렇게 3개가 존재합니다. 문제에 대한 아이디어 제일 처음에는 queries 하나 당 words를 돌면서 똑같은 것이 있는지 체크를 할려고 했습니다. 하지만 이 문제는 효율성 테스트도 있는 문제입니다. 단어 개수를 W, 단어 길이를 L, ..
·JAVA 공부
클래스가 여러 클래스와 관계를 맺는 경우에는 독립적으로 선언하는 것이 좋으나, 특정 클래스만 관계를 맺을 경우에는 중첩 클래스로 선언하는 것이 유지보수에 도움이 되는 경우가 많습니다. 중첩 클래스란? 중첩 클래스(nested class)란 클래스 내부에 선언한 클래스를 말합니다. 중첩 클래스를 사용하면 클래스의 멤버를 쉽게 사용할 수 있습니다. 그리고 외부에는 중첩 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있습니다. 중첩 클래스의 종류 멤버 클래스 인스턴스 멤버 클래스 class A { class B { ... } } A 객체를 생성해야만 B 객체를 생성할 수 있습니다. 정적 멤버 클래스 class A { static class B { ... } } A 객체를 생성하지 않아도 B 객체를 생성할 ..
Wooooong!!
취준생의 공부