묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! Querydsl
JPAQueryFactory 에러
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]김영한님 강의대로 spring 3.x.x버전으로 제대로 실행을 했는데 사진처럼 에러가 발생하네요... 인텔리제이에서 file->invalidate cache-> invalidate and restart했는데도 안되네요. 제 jdk는 17입니다. 추가로 저는 Q클래스가 build/calssess안에서 생성이되고 강의와 달리 generated에는 Q클래스가 아닌 QHello.java로 생성이됩니다.plugins {id 'java'id 'org.springframework.boot' version '3.2.2'id 'io.spring.dependency-management' version '1.1.4'}group = 'midas'version = '0.0.1-SNAPSHOT'java {sourceCompatibility = '17'}configurations {compileOnly {extendsFrom annotationProcessor}}repositories {mavenCentral()}dependencies {implementation 'org.springframework.boot:spring-boot-starter-data-jpa'implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'implementation 'org.springframework.boot:spring-boot-starter-security'implementation 'org.springframework.boot:spring-boot-starter-validation'implementation 'org.springframework.boot:spring-boot-starter-data-redis'implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'implementation 'org.springframework.boot:spring-boot-starter-mail'implementation 'io.jsonwebtoken:jjwt-api:0.12.5'implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'implementation 'org.jetbrains:annotations:24.0.0'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"runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.12.5'runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.12.5'implementation 'org.springframework.boot:spring-boot-starter-web'compileOnly 'org.projectlombok:lombok'runtimeOnly 'com.mysql:mysql-connector-j'annotationProcessor 'org.projectlombok:lombok'testImplementation 'org.springframework.boot:spring-boot-starter-test'testImplementation 'org.springframework.security:spring-security-test'}tasks.named('test') {useJUnitPlatform()}clean {delete file('src/main/generated')}
-
해결됨김영한의 실전 자바 - 중급 1편
catch 문
catch 블록에서 예외를 처리할 때, 하위 클래스의 예외를 먼저 잡고, 그 다음에 상위 클래스의 예외를 잡는 순서는 체크 예외(checked exception)뿐만 아니라 언체크 예외(unchecked exception)에도 마찬가지로 적용되나요? 심지어 두개의 catch 블록이 실제 catch 를 못한다고 하더라도 애당초 compile error 가 발생하는 문제이기 때문에 항상 예외없이 클래스의 예외를 먼저 잡고, 그 다음에 상위 클래스의 예외를 잡는 순서로 진행해야 하나요 ?
-
미해결김영한의 실전 자바 - 중급 1편
catch 문 질문
제가 알기로는 catch 문이 2개가 있다면 하위 클래스의 캐치문을 먼저 잡고 그 뒤 superclass 의 catch 문을 잡아야한다고 들었습니다. 예로 catch(Exception e)catch( FileNotFoundException e) 이렇게 하면 무조건 100 프로 컴파일 에러가 나는데, 왜 이거는 에러가 발생하지 않는건가요? 제가 알기로는 ArithmeticException 이 IllegalArgumentException 의 상위 클래스로 알고 있거든요
-
미해결김영한의 실전 자바 - 중급 1편
Catch 문
package Practice; import java.util.Scanner; public class dd { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int num = 10; int input = scanner.nextInt(); // 0을 입력 try { num = num / input; // 예외 발생 System.out.println("예외 발생 후"); } catch (NullPointerException e) { System.out.println("catch문 실행"); } catch (Exception e ){ System.out.println("Exception 예외 "); } System.out.println("try-catch 바깥 호출"); } }만약 이 코드에서 Scanner 로 0 을 입력했다고 하면 첫번째 catch 는 실패하고 두번째 캐치로 가는 구조인가요? 그리고 만약 첫번째 catch 에서 잡게 된다면 2번째 catch 는 실행될 가능성이 아예 없나요? 즉 2번째 catch 는 첫번째 catch 를 못 잡았다는 가정 하에서만 실행이 되나요?
-
미해결김영한의 실전 자바 - 기본편
reference values
이 배열 객체의 경우에는 해당 빨간줄을 실행하고나서는 객체값이 아직은 생성되지 않나요? 이 질문의 의도를 파악 못한거 같은데, 제대로된 질문이 되기 위해서는 book object references 가 아니라 temp의 모든 인덱스의 값들을 물어봐야하는거 아닌가요 ?
-
미해결김영한의 실전 자바 - 기본편
실무에서 상수 사용
1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]여기에 질문 내용을 남겨주세요.실무에서 상수를 사용하는 경우 예를 들어 상수만 모아놓고 필요할 때 사용할 클래스를 만들 경우 일반 클래스에 상수들을 정의해서 사용하나요 아니면 인터페이스의 멤버 변수로 사용하나요?인터페이스로 할 경우 인스턴스 생성을 막을 수 있어 괜찮을거 같은데 실무에서는 주로 어떤 방법을 사용하나요?
-
미해결김영한의 실전 자바 - 기본편
인스턴스 이해
안녕하세요. 애당초 static int x 는 변수 일뿐, instances 가 아니라 저 질문 자체가 잘못된거 아닌가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2에서 회원 조회가 안 됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]실행은 되는데 h2에서 select * from member; 했을 때 조회되는 게 없다면 어디 부분이 문제일까요..? 원래는 됐었는데 갑자기 인텔리제이에서 회원가입부분 실행하다 오류가 나면서 이것저것 수정해보다가 이 상황이 되었습니다..그리고 Hibernate: select m1_0.id,m1_0.name from member m1_0 where m1_0.name=?Hibernate: insert into member (name,id) values (?,default)Hibernate: select m1_0.id,m1_0.name from member m1_0 where m1_0.name=?Hibernate: select m1_0.id,m1_0.name from member m1_0 where m1_0.name=?Hibernate: insert into member (name,id) values (?,default) 이렇게 강사님 화면과 다르게 id와 name의 자리가 바뀌어 나오는데 잘못된 걸까요..?섹션 6까지는 들은 상태입니다.
-
미해결김영한의 실전 자바 - 중급 1편
instanceof 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요! 질문이 있어서 글 남깁니다.자바 기본편에서는 만약에 parent instanceof Child 라고 하면 Child child = new Parent() 이기 때문에 자식은 부모를 담을 수 없어 컴파일 오류가 발생했는데, 5분 06초 부분에서는 왜 obj instanceof Dog 는 dog.sound가 가능한 건가요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
리포지토리를 다른것으로 변경시 어노테이션만 다른곳으로 옮기면 되나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]의존관계 자동 주입을 위해 @Repository를 사용하였는데 메모리멤버맃포지토리가 아닌 데이타베이스멤버리포지토리를 사용하려면 메모리멤버리포지토리에 있는 @Repository어노테이션을 지우고 실제 사용할 데이타베이스멤버리포지토리에 @Repository어노테이션을 사용하면 되나요?
-
미해결
java scanner 오류
txt파일에는 아래와 같이 저장되어 있습니다. 점수가 가장 높은 학생의 이름을 출력해야하고 점수가 동일할 경우 모두 출력하는 프로그램입니다.김일번 64김이번 83김삼번 26김사번 36김오번 78김육번 54김칠번 60김팔번 85김구번 45김십번 85프로그램을 실행했을 때Exception in thread "main" java.util.InputMismatchExceptionat java.base/java.util.Scanner.throwFor(Scanner.java:947)at java.base/java.util.Scanner.next(Scanner.java:1602)at java.base/java.util.Scanner.nextInt(Scanner.java:2267)at java.base/java.util.Scanner.nextInt(Scanner.java:2221)이렇게 오류가 발생합니다. 해결방법 아시는 분 가르쳐주세요!!ㅜㅜpackage kh; import java.io.*; import java.util.Scanner; class Student { //int id; String name; int grade; Student(String name, int grade) { //this.id=id; this.name=name; this.grade=grade; } } class StudentTable{ Student[] st; StudentTable(int size) { st=new Student[size]; } void maxStudent() { int maxGrade=0; for(Student student : st) { if(student.grade > maxGrade) { maxGrade = student.grade; } } System.out.println("최고 점수를 가진 학생:"); for(Student student : st) { if(student.grade == maxGrade) { System.out.println(" " + student.name + " " + student.grade); } } } } public class homework05{ public static void main(String[] args) { StudentTable stable; try { FileInputStream fin=new FileInputStream("C:\\Users\\user\\Desktop\\student_score.txt"); Scanner scanner = new Scanner(fin); int size=scanner.nextInt(); stable=new StudentTable(size); for(int i=0; i<stable.st.length; i++) { //int id=scanner.nextInt(); String name=scanner.next(); int grade=scanner.nextInt(); stable.st[i]=new Student(name,grade); System.out.println(" "+name+" "+grade); } scanner.close(); stable.maxStudent(); } catch(FileNotFoundException e) { System.out.println("file not exist"); } } }
-
해결됨김영한의 실전 자바 - 기본편
오타있어요.
caw -> cow로 바꿔야할 것 같습니다. 교재랑 예제 파일 다 caw로 되어있어요.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Mvc방식에서 메서드의 파라미터에 Model model을 사용하는 이유가 무엇인가요? 그리고 api방식에서의 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]뒷 내용이 어려워서 다시 복습하는중인데 파라미터에 Model model을 사용하는 이유가 궁금합니다. 파라미터로 받지 않고 메서드 내부에서 Model model;model.addAttribute(모델데이타, value); 이렇게 사용할 수 는 없는건가요? 그리고 api통신에서 어노테이션에 @ResponseBody를 확인하면 html로 반환하지 않는다고 인식 후 return이 스트링인지 객체인지 확인 후 어떤 형식으로 반환할지 정해지는것인가요?객체를 반환할 때 서버에 반환하던 웹 브라우저에 반환하던 스프링은 누구에게 반환을 하는건지 몰라도 되는것인가요? 예를 들면 현 강의에서는 웹 브라우저에 반환을 하였지만 리액트를 이용할 때는 노드환경(노드환경을 서버로 이해하였습니다.)에 반환을 하는 방식인데 스프링은 요청한 주체와 반환되는 값이 어디로 가는지는 알 필요가 없는건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
현재 1강 테스트중 오류내용입니다.
MemberRepositoryTest를 작성하고 실행하면 자꾸 이 오류가 뜨는데 이유를 모르겠습니다..
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
섹션 7. 문제와 풀이 4 마지막 문제
상품 구매와 총 결제 금액 나타내는 마지막 문제를 switch로 풀어봤는데 프로그램 종료가 되지 않습니다.뭐가 문제인지 봐주실 수 있나요?case 1~2, 4에서 break; 를 거는 게 맞는 건가요?ㅠ 사실 break;를 걸어도 계속해서 돌아가요ㅠㅠif문으로 풀었을 때는 break;를 만나면 제대로 나가지는데 swtich는 왜 이런 건가요ㅠㅠpublic static void main(String[] args) { Scanner scanner = new Scanner(System.in); int totalCost = 0; while (true) { System.out.println("1 : 상품 입력, 2 : 결제, 3 : 프로그램 종료"); int option = scanner.nextInt(); switch (option) { case 1 : scanner.nextLine(); System.out.print("상품명 : "); String name = scanner.nextLine(); System.out.print("가격 : "); int price = scanner.nextInt(); System.out.print("수량 : "); int quantity = scanner.nextInt(); int cost = price * quantity; totalCost += cost; System.out.println("상품명 : " + name + " 가격 : " + price + " 수량 : " + quantity + " 합계 : " + cost); continue; case 2 : System.out.println("총 비용 : " + totalCost); totalCost = 0; continue; case 3 : System.out.println("프로그램을 종료합니다."); break; default : System.out.println("올바른 옵션을 선택해주세요."); continue; } } }
-
미해결실전! Querydsl
Q클래스 안보여요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]plugins { id 'java' id 'org.springframework.boot' version '3.2.4' id 'io.spring.dependency-management' version '1.1.4'}group = 'com.example'version = '0.0.1-SNAPSHOT'java { sourceCompatibility = '17'}configurations { compileOnly { extendsFrom annotationProcessor}}repositories { mavenCentral()}dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' testImplementation 'org.projectlombok:lombok:1.18.26' annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test'}tasks.named('test') { useJUnitPlatform()}clean { delete file('src/main/generated')}clean 이후 build를 누르니 사진처럼 main패키지까지만 나오네요
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
mysql 실행 질문
국비 수료 후 선생님 강의 듣고 있습니다.저는 오라클을 db로 사용했었고 그 땐 sql디벨로퍼를 주로 사용했었는데요전 인텔리제이 무료버전이라 mysql command line client를사용해야 할텐데 제가 궁금한건오라클에서 sql디벨로퍼를 사용했더라면 그에 대응되는게인텔리제이의 mysql command line client라 보면 될까요? sql디벨로퍼에선 테이블도 가시적으로 보이고 셀렉트 해서 조회하는 결과도 보였는데 mysql command line client 같은 경우 리눅스형식같고 뭔가 좀 어색해서용
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2접속 test.mv.db 파일 생성
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.접속까지는 되는데 test.db.mv 파일이 만들어지지가 않아서 jdbc:h2:tcp://localhost/~./test 접속이 안됩니다 이걸로
-
해결됨스프링 시큐리티 OAuth2
apply 대체
최신버전에서 apply가 deprecated되어서 자료를 좀 찾아봤습니다만, 확신이 없어서 질문드립니다.@EnableWebSecurity @Configuration public class SecurityConfig { @Bean SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .authorizeHttpRequests(authorize -> authorize .anyRequest().authenticated() ) .formLogin(withDefaults()) .with(new CustomSecurityConfigurer().setFlag(true), withDefaults()); return http.build(); } }대체로 with을 사용한다고 하는데, Customizer.withDefaults를 두번째 인자로 주었습니다.이렇게 사용하는 것이 맞나요?Customizer의 역할도 조금만 알려주시면 감사하겠습니다. 기존 프로젝트에 대입하려니 최신 관련 자료가 너무나 없네요... ㅠㅠ
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
문득 ArrayList 에 대해 궁금해졌습니다.
[질문 내용]안녕하세요! ArrayList 에 대해 이것저것 찾아보던 중 이런 내용이 있었습니다. ArrayList,Map 은 동시성 이슈가 있어 ArrayList 대신 CopyOnWriteArrayList를 Map 대신 ConCurrentHashMap 을 쓰라는 내용이었습니다. 이에 대해 실제 스프링으로 개발할 때 위 내용이 어떻게 응용되는지 이해가 안되고 찾지 못해서 질문드립니다. 뭐 단순히 ArrayList 에 정수 넣고 실험해서 동시성 이슈가 있다라고 파악을 한다고 치더라도 뭐 어느 경우에 적용해야 하는지 이해가 안갑니다. 질문 요약 1) ArrayList 대신 CopyOnWriteArrayList 를 써야 하는 실무적인 실제 예를 들어주세요! 지금까지 영한님한테 배웠던 대로 양방향 관계에서 List = new ArrayList<>로 초기화 해줬는데 그러면 이는 유저가 많은 멀티스레드 환경에서 위험한 것 아닌가요?? public PostResponseDto showDetailsPost(final Long postId){ //Post + PostImage + Post 게시글 작성자 함께 영속화 Post post = findPostWithFetchMemberAndImage(postId); //첫 댓글 Reply (대댓글 X) + 부모댓글 작성자 함께 영속화 List<Reply> parentReply = replyRepository.findParentReplyByPostIdWithFetchMember(postId); List<ReplyResponseDto> replyResponseDtoList = new ArrayList<>(); //부모-> 자식 순으로 DTO 순서 저장. for(Reply parent: parentReply){ replyResponseDtoList.add(ReplyResponseDto.of(parent,makeNickNameForReply(parent),makeContentsForReply(parent)));위 코드는 List<ReplyResponseDto> 를 new ArrayList<>() 로 초기화 해서 add 로 넣어주는 부분이 있습니다. 이런 부분도 다 CopyOnWriteArrayList를 써야 하는 것인가요? 2) Map 도 마찬가지입니다. 실제 Map 대신 ConcurrentHashMap 을 써야 했던 실무적인 예를 들어주시면 감사하겠습니다.