묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
평점에 따른 영화 추천하기 정답 오류인가요?!
평점에 따른 영화 추천하기 질문 남깁니다..!요청한 평점 이상의 영화를 추천해주는 건데, 아래 출력 값은 틀린 것이 아닌가요,,?? rating: 7.1• 출력:• '어바웃타임'을 추천합니다.• '토이 스토리'를 추천합니다. 그리고 모범 답안에도 부등호가 반대로 되어있는 것 같습니다...!!
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
수업 소스 다운로드를 받았는데
사진과 같이 다른 src는 뜨지를 않아요어떤 게 문제일까요?아예 인텔리제이를 삭제했다가 재설치 하는 것부터 시작해야 할까요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
문제 - 2차원 배열1 질문 (ArrayEx7)
안녕하세요.int total = 0; 을 마지막 for 문 안에 작성을 하는것과처음 시작할때 Int total = 0; 을 선언하고 결과값을 뽑았을때 왜 다르게 결과가 나오는지 궁굼합니다!
-
해결됨김영한의 실전 자바 - 기본편
자바 입문,기초 다 수강하면
김영한 선생님 스프링입문으로 들어가도 될까요?
-
미해결김영한의 실전 자바 - 기본편
main이 아닌 다른 메서드에서 Scanner를 사용해도 크게 상관없나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]package ref.ex; import java.util.Scanner; public class ProductOrderMain1 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("입력할 주문의 개수를 입력하세요: "); int n = input.nextInt(); ProductOrder[] orders = new ProductOrder[n]; for (int i = 0; i < n; i++) { System.out.println((i + 1) + "번째 주문 정보를 입력하세요."); orders[i] = createOrder(); } printOrders(orders); int totalPrice = getTotalAmount(orders); System.out.println("총 결제 금액: " + totalPrice); } static ProductOrder createOrder() { Scanner input = new Scanner(System.in); ProductOrder order = new ProductOrder(); System.out.print("상품명: "); order.productName = input.nextLine(); System.out.print("가격: "); order.price = input.nextInt(); System.out.print("수량: "); order.quantity =input.nextInt(); return order; } static void printOrders(ProductOrder[] orders) { for (ProductOrder order : orders) { System.out.println("상품명: " + order.productName + ", 가격: " + order.price + ", 수량: " + order.quantity); } } static int getTotalAmount(ProductOrder[] orders) { int totalPrice = 0; for (int i = 0; i < orders.length; i++) { totalPrice += (orders[i].price * orders[i].quantity); } return totalPrice; } }강의에서는 main 메서드에서 입력을 받는데 저는 creatOrder에서 입력을 받도록 하여 만들었습니다. 결과는 똑같았는데 main 메서드에서 Scanner를 통해서 입력을 받는게 좋은지 아니면 그냥 다른 메서드에서 입력을 받는게 상관없는 방식인지 궁금합니다.
-
해결됨김영한의 실전 자바 - 기본편
static class
안녕하세요 강사님!static class는 후속강의에서 다뤄주시나요?
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
퀴즈 12번 질문있습니다.
퀴즈 12번에서 아래와 같이 코드를 작성했는데,실행 결과가 계속 해도 순차적으로 나옵니다..public static void main(String[] args) { Runnable product1 = () -> { for (int i = 1; i <= 5 ; i++) { System.out.println("A 상품 준비 " + i + "/5"); } System.out.println("-- A 상품 준비 완료 --"); }; Runnable product2 = () -> { for (int i = 1; i <= 5 ; i++) { System.out.println("B 상품 준비 " + i + "/5"); } System.out.println("-- B 상품 준비 완료 --"); }; Thread ProductThread1 = new Thread(product1); Thread ProductThread2 = new Thread(product2); ProductThread1.start(); ProductThread2.start(); while(ProductThread1.isAlive() || ProductThread2.isAlive()){ } /*try { ProductThread1.join(); ProductThread2.join(); } catch (InterruptedException e) { throw new RuntimeException(e); }*/ Runnable packing = () -> { System.out.println(" == 상품 준비 시작 == "); for (int i = 1; i <= 5; i++) { System.out.println("세트 상품 포장" + i + "/5"); } System.out.println(" == 상품 준비 끝 == "); }; Thread ProductPacking = new Thread(packing); ProductPacking.start(); }A실행이 끝나고 B로 넘어가는데,, 왜 그런걸까요.. 뭐가 문제일까요.. 강의와 똑같이 작성했는데.. A 상품 준비 1/5A 상품 준비 2/5A 상품 준비 3/5A 상품 준비 4/5A 상품 준비 5/5-- A 상품 준비 완료 --B 상품 준비 1/5B 상품 준비 2/5B 상품 준비 3/5B 상품 준비 4/5B 상품 준비 5/5-- B 상품 준비 완료 --== 상품 준비 시작 ==세트 상품 포장1/5세트 상품 포장2/5세트 상품 포장3/5세트 상품 포장4/5세트 상품 포장5/5== 상품 준비 끝 == 이런 식으로 나오거나 A와 B의 순서만 바뀔 뿐 숫자가 ABABAAB 이런식으로 섞이지가 않습니다..AAAAABBBBB 또는 BBBBBAAAAA이런식으로 나와요.. 아니면 AAAAAB(A준비완료)BBBB 이런식으로도 안나옵니다.. 무조건 한 상품 5개 모두 실행완료 후 다음 상품 실행해요..
-
해결됨김영한의 실전 자바 - 기본편
문제풀이 응용버전
안녕하세요. 문제풀이를 보다보니 접근제어자 강의가 접근제어자에 관한 강의인 것인지 아님 만든 클래스를 바탕으로 접근제어자를 통해서 불러 들이는 것에 관한 내용인지 헷갈리지만 계속 강의를 들으면서 이해하려고 노력 중입니다. 회원의 닉네임과 주소를 받아 저장하는 형식의 로직과 주문할 음식 그리고 해당 음식의 가격과 수량을 받아서 출력문을 만들었습니다.닉네임과 주소를 입력하지 않고 enter를 했을 때 다시 입력하라는 구문과 함께 재입력을 받게 하고 싶은데 아래의 결과처럼 나오게 됩니다. 어떤 부분에서 오류가 있는지 잘 모르겠습니다. return; 도 사용해봤지만 동일하게 나오더군요.
-
미해결스프링 핵심 원리 - 기본편
필드 주입 질문있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]필드 주입은 외부에서 변경이 불가능해서 테스트하기 힘들다는 치명적인 단점이 있다고 하셨는데, 외부에서 변경이 불가능하다는게 정확히 무슨 의미인가요? 생성자 주입도 변경이 불가능하지 않나요?
-
미해결스프링 핵심 원리 - 기본편
섹션6. 필터에서 beanA를 찾을 수 없음
@MyIncludeComponent public class BeanA { }@MyExcludeComponent public class BeanB { }package hello.core.scan.filter; import org.junit.jupiter.api.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.FilterType; import static org.assertj.core.api.Assertions.*; import static org.springframework.context.annotation.ComponentScan.*; public class ComponentFilterAppConfigTest { @Test void filterScan() { ApplicationContext ac = new AnnotationConfigApplicationContext(ComponentFilterAppConfig.class); BeanA beanA = ac.getBean("beanA", BeanA.class); assertThat(beanA).isNotNull(); } @Configuration @ComponentScan( includeFilters = @Filter(type = FilterType.ANNOTATION, classes = MyIncludeComponent.class), excludeFilters = @Filter(type = FilterType.ANNOTATION, classes = MyExcludeComponent.class) ) static class ComponentFilterAppConfig { } }강의와 똑같이 따라친 해당 코드에서 org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'beanA' available 에러가 계속 발생합니다. 그래서 아래 코드처럼 BeanA 클래스와 BeanB클래스에 @Component 애노테이션을 추가하였더니 잘 작동합니다. @MyIncludeComponent @Component public class BeanA { } @MyExcludeComponent @Component public class BeanB { } 그런데 이 경우에는 또 하단의 Assertions.thorws 검증 코드가 제대로 작동하지 않습니다. ㅠ .... assertThrows( NoSuchBeanDefinitionException.class, () -> ac.getBean("beanB", BeanB.class)); 그래서 하단 코드처럼 BeanA에만 @Component를 붙이고 BeanB에는 @Component를 붙이지 않으면 테스트 코드가 올바르게 작동합니다... 원인을 알 수 있을까요? @MyIncludeComponent @Component public class BeanA { }@MyExcludeComponent public class BeanB { } BeanA, BeanB, MyExcludeComponent, MyIncludeComponent, ComponentFilterAppConfigTest 모두 테스트의 filter 패키지에 있습니다.
-
해결됨김영한의 실전 자바 - 기본편
다형성과 캐스팅 질문입니다
처음엔 자식타입이 부모타입보다 더 큰 범위라서 부모 인스턴스는 자식 인스턴스를 참조할 수 있다고 이해했습니다. 또한 강의자료에도 자식 클래스를 참조할 때 자식 인스턴스 안에 부모 인스턴스의 부분과 자식인스턴스의 부분이 나뉘어져있는거라고 나와 있어 그대로 이해했었는데요. 강의에선부모가 자식을 담을 수 있다 (O)자식은 부모를 담을 수 없다(O)이렇게 되어있어 헷갈려서 질문드립니다...(+ 그리고 다운캐스팅은 복사한 값을 캐스팅하는 것이므로 일시적으로만 실행되는게 맞나요?)=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
scanner 문제와 풀이 첫 번째 문제 질문
import java.util.Scanner; public class ScannerEx1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (true) { System.out.print("당신의 이름을 입력하세요: "); String str= sc.nextLine(); System.out.print("당신의 나이를 입력하세요: "); int Z1= sc.nextInt(); System.out.println("당신의 이름은 "+str+"이고, 나이는"+Z1+"입니다"); } } }이런 식으로 코드를 짜고 실행하면 처음 할 때는 잘 작동하는데 두 번째부터 재입력 할 때 이름은 입력 안 되고 나이만 입력이 되니까당신의 이름을 입력하세요: 존당신의 나이를 입력하세요: 12당신의 이름은 존이고, 나이는12입니다당신의 이름을 입력하세요: 당신의 나이를 입력하세요: 234당신의 이름은 이고, 나이는234입니다당신의 이름을 입력하세요: 당신의 나이를 입력하세요: 23당신의 이름은 이고, 나이는23입니다당신의 이름을 입력하세요: 당신의 나이를 입력하세요: 존존Exception in thread "main" java.util.InputMismatchException at 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) at day16.ScannerEx1.main(ScannerEx1.java:15)Process finished with exit code 1이런 식으로 뜨네요 이름입력이 건너 뛰게 되는 이상한 현상이 있는데 어떻게 된 걸까요?
-
미해결김영한의 실전 자바 - 기본편
안녕하세요 강사님 혹시 추후강의내용에 대해서 질문드립니다
[질문 내용]강사님 혹시 추후에 Java8신규문법인 람다식이나 스트림 필터 맵 과 같은문법들을 강의할계획이 있으신지알고싶습니다
-
해결됨스프링 핵심 원리 - 기본편
@test 자동완성이 안될 때
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]인텔리제이에서 테스트 코드를 작성하기 위해 @Test를 쓸 때, 자동완성이 나오지 않습니다.이렇게만 나오고 @Test에 해당하는 것은 나오지 않습니다. build.gradle에 dependencies도dependencies { implementation 'org.springframework.boot:spring-boot-starter' testImplementation 'org.springframework.boot:spring-boot-starter-test' }위처럼 설정되어 있습니다. 따로 테스트 코드 위에 import org.junit.jupiter.api.Test; 를 작성하면 오류없이 사용 가능하긴한데 자동으로 할 수 있는 방법은 없을까요?Build and run 과 test 모두 Gradle로 설정되어있고 JAVA 17 을 사용하고 있습니다.
-
해결됨김영한의 실전 자바 - 기본편
메서드 영역과 힙 영역에서의 객체 저장
객체 (인스턴스)가 생성되는 영역이 힙 영역이라고 하셨고메서드 영역에서는 클래스 안에서의 필드 값이 존재한다고 하셨는데 그렇다면 객체 안에서의 멤버 변수들을 저장하는 값은 메서드 영역에서 생성된다는 건가요? 아니면 객체가 생성되는 힙 영역 안에서 객체 멤버 변수 값들도 다 같이 저장이 되는건가요? 헷갈려요..ㅠㅠ
-
해결됨C개발자를 위한 최소한의 C++
일반 참조형과 const 참조형에 따라 컴파일 오류가 발생하거나 발생하지 않는 이유가 궁금합니다.
안녕하세요. 강의 잘 보고 있습니다.강의 내용 중 하나 이해 안되는 것이 있어 질문 남깁니다.// 위 코드 생략 TestData testFunc(TestData& rhs) { // 생략 } int main() { TestData result = testFunc( 10 ); // 생략 } testFunc의 매개변수로 10이 넘어갔기 때문에 묵시적으로 변환 생성자 TestData(int)가 호출된 것으로 보입니다.따라서 testFunc은 생성된 TestData를 참조로 받고 있는 것 같은데, 왜 위처럼 코드를 작성하면 오류가 발생하는지 이해가 되지 않습니다.// 위 코드 생략 TestData testFunc(const TestData& rhs) { // 생략 } int main() { TestData result = testFunc( 10 ); // 생략 } 위처럼 const 키워드를 붙였을 땐 오류가 안 발생하는데 이유가 무엇인가요?
-
미해결코틀린 고급편
SynchronizedLazyImpl 함수관련 질문
태현님, 안녕하세요, 강의 잘듣고 있습니다! 9강 11분 35초 부분에서 질문이 있는데요. by Lazy안에 타고 들어가면 SynchronizedLazyImpl 함수가 스레드 세이프해서 위험할 수 있다고 말씀하셨는데 .. 어떤 의미인지 궁금해서 질문 글 올립니다. 시간되실 때 답변 부탁드려요 감사합니다!
-
해결됨스프링 핵심 원리 - 기본편
강의 프로토타입 질문입니다
public class SingletonTest { @Test void singletonBeanFind() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(SingletonBean.class); SingletonBean singletonBean1 = ac.getBean(SingletonBean.class); SingletonBean singletonBean2 = ac.getBean(SingletonBean.class); System.out.println("singletonBean1 = " + singletonBean1); System.out.println("singletonBean2 = " + singletonBean2); Assertions.assertThat(singletonBean1).isSameAs(singletonBean2); ac.close(); } @Scope("singleton") static class SingletonBean { @PostConstruct public void init() { System.out.println("SingletonBean.init"); } @PreDestroy public void destroy() { System.out.println("SingletonBean.destroy"); } } } 영한님이 AnnotationConfigApplicationContext(SingletonBean.class); 여기에 SingletonBean.class를 넣으면 componentscan이 된다고하셨는데 AnnotationConfigApplicationContext는 @Component 혹은 @Bean으로 등록이 되어있는걸 스프링컨테이너로 만들어서 라이프사이클을 관리한다는건데 여기서는 자동으로 빈이나 수동으로 빈을 등록하는게 없는데 어떻게 컴포넌트 스캔으로 관리가되는거죠? 두번째, 컴포넌트스캔이 @SpringBootApplication에 내장되어있어서 자동으로 진행되는건알고있는데 @Test에도 영향을미치나요? 저는 test는 별도로 component를 해줘야하는지 생각했는데 아닌거같아서요
-
미해결스프링 핵심 원리 - 기본편
request scope 관련 질문
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 내용]request scope 관련해서 실행 과정에서 궁금한게 생겨서 질문드립니다. 제가 이해한 과정이 맞을까요?1. 먼저 CoreApplication을 실행시키면 스프링 컨테이너가 생성이 되고, MyLogger라는 빈을 스프링 컨테이너에 등록시킨다MyLogger라는 빈은 scope이 request 이기때문에http 요청이 오기전까지, 빈 인스턴스를 생성하지 않아서 @PostConstruct가 붙은 초기화 메서드 init()이 실행되지 않는다따라서 uuid를 생성해서 저장하지 못 하기 때문에 "Scope 'request' is not active ... " 와 같은 오류가 발생한다위 과정이 맞다면, 고객의 요청이 오기전까지 Mylogger 빈 인스턴스가 생성되지 않은 상태일텐데 provider가 어떻게 빈을 찾아서 가져오고 @PostContsruct가 실행되는지 궁금합니다. 또한 myLogger.setRequestURL() 메서드가 어느 시점에 실행되는지 궁금합니다.. (빈 생성 전인지 후 인지)그리고 "빈 등록" 과 "빈 생성"은 다른 개념인건가요? 조금 혼동되네요
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
단축키 질문
안녕하세요.라인 여러 줄 복사할 때 범위 지정 후 ctrl d 하는 거는 이해했는데 라인 맨 앞으로 이동 후 범위 지정할 때는 어떻게 쓰나요?이전 영상에서 설명해 주셨는데 따로 필기 안 하고 지나가서 찾아보려니까 못 찾겠네요ㅜㅜ윈도우 기준 home 키 써서 라인 맨 앞으로 간 다음에 ctrl w 하신 건가요? 영상 보니 라인 전체 복사가 한 번에 이루어지는 것 같아 궁금해서 질문 남겨 봅니다. 미리 답변 감사합니다!