private List<OrderSpecifier> getOrderSpecifier() { List<OrderSpecifier> orderSpecifiers = new ArrayList<>(); //승인 안된 관리자 우선 조회 orderSpecifiers.add(new OrderSpecifier<>(Order.ASC, admin.isAuthorized)); orderSpecifiers.add(new OrderSpecifier( new CaseBuilder() .when(admin.isAuthorized.eq("FALSE")).then(admin.createdAt.asc()) .when(admin.isAuthorized.eq("TRUE")).then(admin.createdAt.desc()) )); return orderSpecifiers; } 아래와 같은 order 순서로 정렬하려 하는데 2,3 조건을 나누는 부분이 잘 되지 않아 질문 남깁니다. CaseBuilder 대신 다른 방법이 있나요? 승인 받지 못한 관리자(isAuthorized = 'FALSE') 먼저 조회 isAuthorized = 'FALSE' 인 경우에는 createdAt asc isAuthorized = 'TRUE' 인 경우에는 createdAt desc
이해가 어려운 섹션이나 영상 설명은 질문으로 꼭 남겨주세요. 기출문제를 풀다가 막힌 개념이 있나요? 질문으로 회차나 번호, 개념을 예시로 질문해주세요. 답변에 도움이 됩니다. 이론 문제는 통합본 PDF 파일로 제공될 예정입니다. (6월 중 업로드 예정) 합격을 가르는 것은 역시 코드해석문제. 이론을 외울 시간이 없다면 코드에 익숙해지고, 중요 개념을 몇 가지 외워가면 합격할 수 있습니다. 비전공자인데.. 쉬운것도 써주면서 해주시면 좋을것 같습니다... 아무리 쉽다고 해도 비전공자한테는 쉽지 않은것 같아요 계속 영상 돌려봐야되는 느낌입니다 조건 반복문 문제푸는 부분하는데 그냥 바로 하는거 같아요 처음에 원래 푸는 방식으로 풀고 빠르게 푸는방법이 아니라 바로 빠르게 푸는 부분이라서 이해가 안가요설명이 없어요
ServletApplication을 실행하면 Caused by: org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat 에러가 나옵니다. 어제까지만 해도 잘 실행이 되었는데 원인을 모르겠습니다. 캐시초기화를 해도 같은 오류가 발생하네요
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 에러를 다 찾아서 수정을 하였으나 마지막인 Test단계에서 계속 무시해버리네요 왜 그런건지 구글링을 해도 이해가 안됩니다. h2를 킨 상태에서도 이렇게 에러가 뜨는데 어떻게 해야할까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 컬렉션 페치 조인을 하면 페이징시 위험하기 때문에 지양해야 한다고 하셨는데 그러면 페이징을 하지 않을 때는 컬렉션도 페치 조인을 해서 성능을 올려도 괜찮을까요? 아니면 컬렉션은 항상 지연 로딩 하는 것이 안전한가요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/) [질문 내용] findByName()의 테스트 부분을 보면 아무리 봐도 member1의 밸류값과 result의 밸류값이 "spring1"로 동일한데 테스트에 실패했다고 뜹니다 근데 한 가지 의문인 건 테스트 값 결과를 보면 동등성이 아닌 동일성 비교를 하는 거 같은데, MemoryMemberRepository의 store가 HashMap을 사용하기 때문에 equals()와 HashCode()를 재정의 해줘야 하는 걸까요? 강의 내용엔 따로 기재되지 않아 질문합니다!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 제껏 스프링 버전이 3점대라서 자바 버전인 source를 쓰지를 못하고 toolchain만 가능 하더라고요 그래서 그런지 실행을 하려고 했으나 위에 경고문과 같이 18버전이상부터 실행을 할 수 있게 만들어 놓은것 같은데 이런 상황에서는 어떻게 처리해야 할까요?
이전에 정수형 설명하실 때에는 int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; printf("%d", arr[2]) 이런것처럼 선언하실 때 앞에 *(포인터) 가 없었는데 문자열을 설명하실때에는 char *arr[2][2] = {{"Hello", "World"},{"app",dev"}}; 이런식으로 선언하실 때 *(포인터) 가 있더라구요. 포인터를 붙이신 이유와 써야될 떄 안 쓸때 차이점을 알 수 있을까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 3.X 버전 설명처럼 dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' // QueryDSL 추가 implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" annotationProcessor 'jakarta.annotation:jakarta.annotation-api' annotationProcessor 'jakarta.persistence:jakarta.persistence-api' } tasks.named('test') { useJUnitPlatform() } clean { delete file('src/main/generated') } 위와 같이 코드를 넣어 빌드를 하면 저는 build 안에만 QHello가 생성되고 다른 분들과 같이 src/main에 generated는 전혀 생성되지 않습니다. 강의에서는 QHello를 임포트 할 때, src/main 쪽의 QHello를 사용하는것 같은데, 저는 build 경로에서 직접 사용해야 되는 문제가 있습니다. 실제 사용하려면 src/main를 이용해야 될 것 같은데 어떻게 해야 src/main에 generated의 QHello를 생성할 수 있을지 문의드립니다.
Scope 동의단계2, 즉 최종사용자의 동의가 이루어졌을 경우 이 요청은 POST /oauth2/authorize 로 보내지는데요 이 과정에서 내부구현의 차이가 강의 버전과 맞지 않아서 코드를 확인해봤습니다. 1. 0.4.0 버전부터 이때 작동하는 AuthenticationConverter 는 OAuth2AuthorizationConsentAuthenticationConverter 입니다. 여기서 OAuth2AuthorizationConsentAuthenticationToken 가 구성됩니다. 2.OAuth2AuthorizationConsentAuthenticationToken 의 처리는 OAuth2AuthorizationConsentAuthenticationProvider 가 맡게 됩니다. 여기서 code 생성 절차가 진행되는 차이가 있습니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 굳이 value에 더미값을 집어넣어서까지 가져와 쓰는 이유를 잘 모르겠네요 애초에 value가 없는 set을 구현 해서 쓰면 되는 거 아닌가요? 메모리적으로 낭비라고 생각되는데 어떤 이유 인지 궁금합니다 감사합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 똑같이 따라했는데 저는 5까지 정수를 입력한 후에 출력이 안나오고 그 후로 뭘 더 입력하면 오류가 나와버려요 ...ㅠㅠ.
원래는 장고 프레임워크를 주로 이용했었습니다. MTV와 MVC의 View가 장고는 비즈니스로직을 처리해서 Template에 주고, M은 스프링의 Repository와 비슷하다고 생각했습니다. 조금 헷갈리는게, MVC일 때 V는 확실히 랜더링 부분만 담당하는 것이 이해가 갑니다. 다만 Controller가 비즈니스 로직을 담당하는데, Service와 의미가 겹치지 않나 싶었고 보통 django에서는 view에서 처리한 데이터를 Model을 통해 넣는다던지 아니면 model을 통해 가져온 데이터를 view로 하여금 template에 전달한다는 느낌이었는데 오늘 강의의 그림을 보니 controller -> model -> view 인 것 처럼 보여서 그러면 MTV의 M과 MVC의 M은 또 많이 다른건가 싶었습니다. 심지어 이것을 더욱 헷갈리게 하는 것이 Repository인데... MVC인데 뭔가 MVC+Service+Repository인건가 싶기도 하고 헷갈리네요 ㅠㅠ Service - Controller : 프로젝트가 거대해지면 비즈니스로직은 서비스에서 처리하고 컨트롤러는 서블릿 형태의 역할로만 남는건가 싶기도 하고(추측) Model-Repository : 레포지토리가 아무리 봐도 후에 JPA ORM을 사용할 수 있는 영역일 것 같은데, 그렇다면 오늘 강의의 그림에서 보여진 Model은 단순히 컨트롤러에서 View로 데이터 전달을 위한 임시보관소인가 싶습니다. Model은 그림상 DB랑 연결되는 느낌은 없는데.. 아니면 Model은 껍데기고 Model이 리포지토리에 구축된 JPA ORM을 이용해서 DB랑 통신하는 개념일지... 질문이 장황한데... 헷갈려서 그렇네요 답변 주시면 감사하겠습니다:)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 선생님 학습 도중 이해가 되지 않아 질문 드립니다. 1. 스프링 부트는 자동으로 글로벌 Validator로 등록한다. 위 말은 즉, 글로벌 Validator가 Bean Validation인가요 ? 2. 필드 타입 오류의 발생유무의 상관없이 글로벌 Validator는 적용되고 Bean Validation(ex : itemValidator)는 적용이 되거나/안되거나 인가요?