묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 기본편
NextInt 후 NextLine 쓰기
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (아니오)[질문 내용]System.out.print(i+1+"번째 주문 정보 입력"); System.out.print("상품명 : "); String productName = scanner.nextLine(); System.out.print("가격 : "); int price = scanner.nextInt(); System.out.print("수량 : "); int quantity = scanner.nextInt(); scanner.nextLine(); //입력 버퍼를 비우기 위한 코드price 입력 받을 때와 quantity 입력 받을 때 둘다 int형으로 입력을 받는데 quantity 수량 받을 때는 nextLine을 해주는데,왜 price를 받을 때는 nextLine을 안해줘도 되는것일까요?
-
해결됨김영한의 실전 자바 - 기본편
부모의 부모 인스턴스
예를 들어 ElectricCar extends Car, Car extends Vehicle의 상속 관계를 가질 때 new ElectricCar()를 호출하면 부모 인스턴스인 Car도 같이 생성하는데 이 경우 Car는 Vehicle 의 상속을 받으니까 Vehicle 인스턴스도 함께 생성되나요?
-
미해결스프링 시큐리티 OAuth2
26:30 경에 userinfo 분기가 강사님과 다릅니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. OicdUserService의 아래 메서드에서 true를 반환해버리는데요. 우선 해당 함수의 if(authroization_code 이냐?) 분기를 타고, accessibleScopes가 empty 가 아닙니다. 아마 키클록에서 default 스코프가 있기 때문인거 같은데요. shouldRetrieveUserInfo 해당 영상에서는 키클록의 default 스코프가 빠진걸까요? 아니면 grant type 문제일까요? 참고로 grant type 은 별다른 옵션 없이도, registration repository에서 꺼내오는 순간 registration에는 authroization_code 입니다.
-
해결됨김영한의 실전 자바 - 기본편
static final 위치?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]예제를 하면서 보던 도중 static final 위치를 바꾸면 어떻게 될까 해서... 쳐보니이렇게 둘다 되었습니다.혹시( static final)로 하는 이유가 있나요?저가 생각해본게 첫째 : 관례둘째 : 지정 범위? (연산자의 우선순위처럼 이런게 정해져 있는가 생각함.)라고 생각해보았는데 답변 부탁드립니다.
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
컬렉션 fetch join
안녕하세요 강사님프로젝트 중 궁금한 점이 있어 질문드립니다..!6개의 엔티티를 조인해야 하는 상황인데 현업에서도 이렇게 조인을 하기도 하나요? 물론 성능에 따라 다르겠지만 몇개 정도의 테이블을 조인하는 것이 적당할까요?컬렉션 패치 조인은 1개까지만 하라고 하셨는데 현재 상황은 3개나 컬렉션이 존재합니다. 이런경우는 어떤식으로 해결하는게 좋을까요?? 강사님께서는 어떤식으로 해결하시는지 궁금합니다 ㅎㅎ감사합니다!
-
미해결김영한의 실전 자바 - 기본편
키보드 뭐쓰는지 궁금해요ㅠㅠ
학습과 관련은 없지만, 키보드 소리가 너무 좋아서요..
-
해결됨김영한의 실전 자바 - 기본편
static 메서드 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. findPay 메서드가 static이면 이 안에서 호출되는 메서드는static이어야 하는것 아닌가요? equals 메서드는 String 메서드로 단지 option에만 쓰여서 해당되지 않는 건가용
-
미해결실전! 스프링 데이터 JPA
2024년 1월 기준 p6spy dependency 추가
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0' 1.9.0으로 바꾸시면 나올겁니다!
-
해결됨
Cannot resolve symbol 'SpringBootApplication'
인터넷에서 찾아본 해결책을 다 시도해 봐도 해결이 안되네요 ㅠㅠ Try it “File ▸ Invalidate Caches/Restart ▸ Invalidate And Restart” 시도해 보아도 안됨. Gradle에서 Reload All Gradle Projects를 해보아도 안됨.File → Project Structure 를 클릭한 후에 "Project Settings" 에 Project SDK 가 제대로 설정되었는지 확인해 봐도 안됨.Settings → "Build, Execution, Deployment" → "Build Tools" → Gradle 에 들어가 버전 확인해 봐도 안됨.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
외래키 제약 조건
[질문 내용]강의 내용 중 "외래키를 꼭 사용해야할까?" 에 대한 물음에 두 가지 방안을 주셨는데요.빠른 처리가 중요하며 실시간 트래픽이 많은 시스템인 경우 -> "외래키를 사용하지 않는 쪽도 고려해볼만 함"돈이 왔다갔다 하는 등의 reliablity가 중요한 시스템인 경우 -> "외래키를 꼭 사용하라"그렇다면 질문이 있습니다.질문 1. 만약 외래키 제약조건이 관계형 DB에 이미 걸려있는 상태라면 Java 코드상에서는 아무런 설정 없이 비즈니스 로직을 개발해도 되나요?질문 2. 만약 외래키 제약조건이 관계형 DB에 걸려있지 않고 관계형 DB의 성능상의 이슈로 외래키 제약 조건을 애플리케이션에서 해결해야 한다면 해당 로직 또한 개발해야 하나요? 즉, JPA가 외래키 제약 조건을 체크해주는 기능이 있는지 궁금합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
hello와 hello-static.html 의 차이
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 주소창에 입력할 때static 폴더에 있는 hello-static과 index는 확장자 (.html)을 붙여야 하고templates 폴더에 있는 hello는 .html을 붙이면 안되는? 걸로 알고 있는데 이유가 궁금합니다! hello는 th: 문법을 사용해서 그런건가요? 확실하게 이유를 알고 싶습니다 ㅎㅎ
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
OSIV off인 아키텍쳐에서 궁금해서 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.영한쌤이 말씀해주신Controller -> Application Service -> Domain Service -> Repository에서Application Service: 트랜잭션의 시작, Domian Service에 있는 순수 도메인 로직들을 활용하여, 복잡한 애플리케이션 비즈니스 로직을 구성Domain Service : 도메인에 대한 순수한 로직으로 구성. Application Service의 도구로서 활용됨. OSIV를 off 상태이기 때문에 Controller에 반환시 Application Service에서는 응답 Dto로 넘겨줘야 하는데 여기서 한가지 고민이 있습니다. 아키텍쳐는 위에서 아래로 순방향으로 흘러야 하는데 (역행, 순환 참초 X). Application Service에서 Controller단에 종속적인 응답 Dto를 넘기게 된다면, Application Service와 Controller간에 순환 참조와 역류 참조가 일어나지 않아 문제이지 않나 싶습니다... 상관이 없는지 아니면 어떻게 해결해야 좋을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
category 엔티티에선 부모 객체가 왜 필요한건가요?
현재 실전 스프링부트와 jpa활용1편을 수강중입니다. 엔티티 클래스 개발2 에서 카테고리 클래스를 만들 때, 부모 객체는 왜 생성하는지 이해가 되지 않습니다..! 이미 카테고리 클래스 자체가 부모 클래스가 되는게 아닌가요..?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
assertThat을 사용할때 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]처음 강사님께서 save 메서드에서는 @Test public void save(){ Member member = new Member(); member.setName("Spring"); repository.save(member); Member result = repository.findById(member.getId()).get(); Assertions.assertThat(member).isEqualTo(result); }처럼 assertThat(member) 를 넣고 그 다음 isEqualTo(result)를 넣어 사용하셨는데,이후에 findByName 에서는@Test public void findByName(){ Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); Member result = repository.findByName("spring2").get(); Assertions.assertThat(result).isEqualTo(member1); }이처럼 result가 먼저 나오고 그 다음 member를 넣어 사용하십니다.혹시 무슨 차이일까요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
h2에 테이블 생성이 안돼요...ㅠ
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]프로젝트 환경설정을 마치고 프로젝트를 돌려봤습니다.똑같이 따라하면서요.그런데 사진과 같이 create문까지 잘 나오는데 h2에 테이블이 안보여요문제가 뭘까요? ㅠㅠ 주의 사항도 다 보면서 버전업 시켰는데도 안되네요..하루종일 구글링하고 찾아봐도 모르겠어요 도와주시면 감사하겠습니다
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
return;문과 boolean=false
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]배열 - 문제와 풀이3을 switch-case문으로 하던 와중에 종료 버튼이 break문으로 종료가 안되어서 검색해서 와일문을 false로 바꾸면 종료된다는 말을 듣고boolean proudctFile = true; while(proudctFile){ /* 나머지 내용 생략 */ case 3 : System.out.println("프로그램을 종료합니다."); proudctFile = false; }이런식으로 만들었습니다. 나중에 다른 강의를 보니while(true){ /* 나머지 내용 생략 */ case 3: System.out.println("시스템을 종료합니다."); return; }return문을 써서 바로 종료하던데 어떤게 더 좋은 프로그램인지 궁금합니다.
-
미해결김영한의 실전 자바 - 기본편
다운캐스팅에 대한 질
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)강의에서 다운캐스팅에 관해 이야기를 해주셨습니다.부모 클래스인 Parent 타입의 변수에 Parent 인스턴스를 생성해서 참조값을 해당 참조변수에 넣고Child 타입의 참조변수에 다운캐스팅을 하고 나서 해당 child 메서드를 호출하려고 했을 떄 오류가 발생했습니다. 여기서 영한님이 말씀해주신대로 생각해보면 Parent 인스턴스를 생성했을 때, 해당 메모리 안에 Parent 타입의 클래스 정보만을 저장했을테고 자식에 대한 정보가 해당 메모리 주소값 안에 없다. 따라서 다운캐스팅을 해도 자식클래스 메서드를 호출하지 못한다 -> 라고 생각하면 되는 건가요? 그렇지만 다시 생각해보면 메서드는 메서드 영역 내에서 가져다가 호출하는 방식인데, 그렇게 된다면 자식 클래스의 메서드 또한 메서드 영역내에서 불러오면 되니까 호출이 가능한 게 아닐까요..?궁금하네요
-
미해결실습으로 배우는 선착순 이벤트 시스템
카프카 토픽 생성이 안되요.
docker exec -it kafka kafka-topics.sh --bootstrap-server localhost:9092 --create --topic testTopic위와 같이 터미널에 토픽생성하는 명령어를 작성하면 아무것도 |움직이지 않고 터미널이 멈춥니다.도커는 정상적으로 실행하고 kafka,zookeeper도 정상적으로 실행되어있습니다.도커를 삭제하고 다시 다운로드해서 docker compose사용해서 kafka,zookeeper이미지 다시 작동시켜도 위와같이 토픽생성 명령어 입력하고 작동시 아무것도 안하고 멈춥니다..(p.s 카프카 컨테이너 cli들어가서도 토픽 생성 명령어 작동시켜도 작동안합니다.)혹시 해당 문제 해결법 아실까요..?
-
미해결실전! Querydsl
Querydsl 페이징, 정렬 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]페이징, 정렬에 대해서 질문이 있습니다. 1.이렇게 했을 때 페이지 처리와 정렬이 되었습니다.2.OrderSpecifier로 변환 3.Querydsl4RepositorySupport 질문 1 : 1~3의 차이점이 궁금합니다.질문 2 : 상황에 따라서 다르겠지만 1~3중 실무에서는 주로 어떤 것을 사용하나요?질문 3 : 1번과 3번의 차이는 1번으로 했을 때 루트 엔티티 범 위를 넘어가는 동적 정렬 기능이 필요할 때 orderBy에는 한계점이 있어서 Querydsl4RepositorySupport을 선택해서 사용하는 것인가요?질문 4 : Querydsl4RepositorySupport에서 fetchCount들이 있는데 곧 지원이 끊기는데 여기서는 어떻게 변화시켜야할지 잘 모르겠습니다...질문 5이렇게 사용했을 때 정렬을 사용하려고 하면 .orderBy를 사용하면 되는건가요? 아니면 다른 방법이 있나요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
회원가입 테스트 코드 관련해 질문 드립니다..ㅠ
7분 08초 정도에 회원가입 테스트 코드를 실행하는 부분에서요,,! MemberServiceTest 클래스에 @Transactional을 걸어서회원가입() 메소드를 하나의 트랜잭션으로 관리하는 것으로 이해했습니다... memberService.join(member); 으로 persistence context에 member를 영속화 시킨 상태인데,그 다음 코드인 memberRepository.findOne(savedId);에서, 왜 select 문이 나가는거죠?하나의 트랜잭션이고, member가 영속 상태라서 1차 캐시에서 관리되면, context에서 가져와야 하는게 아닌가요?... 트랜잭션을 롤백한다는 것의 의미가 DB의 트랜잭션을 롤백한다는 것 뿐만 아닌 영속성 컨텍스트도 롤백하는 것을 의미하나요?.. 만약 그렇다면, 저는 @Transactional을 메소드 단위로 걸었는데, 왜 회원가입() 메소드 중간에 롤백이 되는 건가요?..ㅠ아예 애초부터 스프링에서의 트랜잭션 롤백은 영속성 컨텍스트에 반영조차 하지 않는 거라고 봐야 하나요?.. 너무 헷갈립니다 ㅠ.ㅠ