묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 기본편
키보드 뭐쓰는지 궁금해요ㅠㅠ
학습과 관련은 없지만, 키보드 소리가 너무 좋아서요..
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
인텔리제이 자바버전 17버전..
스프링 공부떄매 17버전을 쓰고있는데 17버전에서는 해당 강의들으면서 실습 불가능한가요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
섹션8_문제와풀이3
범위가 아닌 값이 딱딱 떨어지는거면 switch문을 사용하는게 좋다고 강의시간에 들었습니다. 그래서 저는 switch 문으로 풀어봤습니다. Q1 : switch 문에서 break는 이렇게 사용하는게 맞을까요? continue는 굳이 사용할 필요가 없을까요? switch 문에서 break랑 continue 적절히 쓰는법 알려주시면 감사합니다 !Q2 : 가독성면에서는 어떤지도 피드백 부탁드립니다 !package array.ex; import java.util.Scanner; public class ArrayEx10 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[] productPrices = new int[10]; String[] productNames = new String[10]; int productCount = 0; while (true) { System.out.println("1. 상품 등록 | 2. 상품 목록 | 3. 종료"); System.out.print("메뉴를 선택하세요 : "); int option = scanner.nextInt(); scanner.nextLine(); switch (option) { case 1 -> { if (productCount < 10) { System.out.print("상품 이름을 입력하세요 : "); productNames[productCount] = scanner.nextLine(); System.out.print("상품 가격을 입력하세요 : "); productPrices[productCount] = scanner.nextInt(); productCount++; } else { System.out.println("더 이상 상품을 등록할 수 없습니다."); } break; } case 2 -> { if (productCount == 0) { System.out.println("등록된 상품이 없습니다."); } else { for (int i = 0; i < productCount; i++) { System.out.println(productNames[i] + " : " + productPrices[i] + "원"); } } break; } case 3 -> { System.out.println("프로그램을 종료합니다."); System.exit(0); } default -> { System.out.println("올바른 메뉴가 아닙니다."); break; } } } } }
-
미해결스프링 핵심 원리 - 기본편
특정 타입으로 조회 시 빈 이름을 지정하는 테스트 코드 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]수업 내용 중에서 스프링 빈 조회 테스트 코드를 짤 때,동일한 타입이 둘 이상인 경우에는public class ApplicationContextSameBeanFindTest { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(SameBeanConfig.class); @Test @DisplayName("타입으로 조회 시 같은 타입이 둘 이상 있으면, 빈 이름을 지정하면 된다.") void findBeanByName() { MemberRepository memberRepository = ac.getBean("memberRepository1", MemberRepository.class); assertThat(memberRepository).isInstanceOf(MemberRepository.class); } }인스턴스를 비교할 때 인터페이스인 MemberRepository.class를 사용해줬는데,상속 관계 설명 시에는public class ApplicationContextExtendsFindTest { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(TestConfig.class); @Test @DisplayName("부모 타입으로 조회 시 자식이 둘 이상 있으면, 빈 이름을 지정하면 된다.") void findBeanByParentTypeBeanName() { DiscountPolicy rateDiscountPolicy = ac.getBean("rateDiscountPolicy", DiscountPolicy.class); assertThat(rateDiscountPolicy).isInstanceOf(RateDiscountPolicy.class); } }구체화 타입인 RateDiscountPolicy.class로 인스턴스를 확인한 이유가 뭔지 궁금합니다.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
If else
안녕하세요 선생님...else가 ㅈㅏ꾸 없는 단어라고 뜨고 else sout 이후 부터 sout도 없는 단어라고 떠요어떻게 해결하나요 감사합니다
-
해결됨김영한의 실전 자바 - 기본편
static 메서드 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. findPay 메서드가 static이면 이 안에서 호출되는 메서드는static이어야 하는것 아닌가요? equals 메서드는 String 메서드로 단지 option에만 쓰여서 해당되지 않는 건가용
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
개념이 잘 이해가 안가요 ㅠ 도와주세요
고민.1 chap 12 부터 이해가 안갔는데 threadA.start(),threadB.start(); 이부분에서 그냥 출력하면 되지 굳이 왜 try catch를 써서 해주는지 궁금합니다. try catch는 예외 처리를 할떄 쓰는 것인데 예외 처리 할게 있는게 아닌데 왜쓰는건가요?고민 2.Runnable 인터페이스를 가져오려면 무조건 추상메소드 run을 정의해줘야하는게 아닌가요? ㅠㅠ 고민 3. Thread는 클래스고 Runnable은 인터페이스인데이런식으로 쓰레드 객체를(?) 만들 떄 runnableA를 괄호안에 넣는 이유가 runnableA를 쓰레드화를 할려고 그런건 가요? 질문을 조금 두서 없이했지만 도와주시면 감사하겠습니다.
-
미해결스프링 핵심 원리 - 기본편
인터페이스를 처음에 깔고 가야하나요?
안녕하세요 강의 잘보고 있습니다! 해당 강좌에서 회원 데이터는 자체 DB를 구축할 수도 있고, 외부 시스템과 연동할 수도 있어서 변경이 용이하도록 인터페이스로 설계하는것은 이해됐습니다.근데 만약 회원 데이터를 DB로 구축한다고 하면(미확정이 아닌 확정 사항) 인터페이스를 생략하고 바로 구현하는것이 좋나요 아니면 추후에 변동될 가능성을 생각해 인터페이스를 이용하는것이 좋을까요?
-
미해결김영한의 실전 자바 - 기본편
다형성과 메서드오버라이딩에 관한 질문있습니다!
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]김영한님, 안녕하세요. 양질의 강의 덕분에 열심히 공부하고 있습니다. 감사합니다. ^^ 다형성과 메서드 오버라이딩 내용에서 헷갈리는 부분이 있어 질문드리고 싶어요. Parent parent = new Child();parent.childMethod();가 불가능한 이유에 대해, 강의를 통해 다음과 같이 이해했습니다.1. Parent 클래스 코드에는 Child와 관련된 코드가 없다. 따라서 Parent는 Child가 본인을 상속했는지 모르기에 .을 통해 객체를 찾아가도 childMethod는 호출할 수 없다..을 통해 객체를 찾아가서 메서드를 호출할 때, 상속 관계는 부모로만 찾아서 올라갈 수 있다.이 때 상속 관계가 부모로만 찾아서 올라갈 수 있는 이유가 무엇이냐? 묻는다면, 결국 1번 설명이 답이 될 수 있으므로 1번 설명이 중요하다고 생각했습니다. 그런데 메서드 오버라이딩을 생각하면 1번 설명에 문제가 생깁니다.Parent 클래스 코드에 Child와 관련된 코드가 없음에도 불구하고, Child 클래스의 메서드를 찾아갈 수 있기 때문입니다. 혼자 고민해보다가 내린 결론은 다음과 같습니다.컴파일 시점에서는 Parent 클래스 입장에서 본인의 메서드가 오버라이딩 됐는지 여부를 모르지만, 자바의 어떤 원리에 의해 런타임 시점에서는 알 수 있기 때문에 Child타입 객체를 Parent타입의 참조변수가 가리키고 있을지라도, Child 클래스에 오버라이딩 된 메서드를 찾아갈 수 있다. 혹시 제가 이해한 내용이 맞는지, 틀렸다면 어떻게 메서드 오버라이딩만 특별히 상속 관계임에도 자식쪽으로 찾아서 내려갈 수 있는지 알고 싶습니다! 오늘도 좋은 하루 되세요. 감사합니다! :)
-
미해결스프링 핵심 원리 - 기본편
[IntelliJ] java.lang.ClassNotFoundException:문제 해결
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Build and run using과 Run tests using을 IntelliJ로 바꿔준다 그래도 해결이 안되면 project structure를 들어간다.modules에서 중복된 main과 test를 제거 한다.문제 해결 됐다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
7분쯤에 Bytecode 관련 질문드립니다.
안녕하세요! 제가 Bytecode에 대해서 혼자 찾아보다가 이해가 안되는 부분이 있어서 질문드립니다. Bytecode는 이진법으로 되어있는걸로 알고 있는데 왜 예시로 보여주신거는 16진법 형식으로 되어있나요?저는 Bytecode 명령어 에서 binary 부분으로 표기되어있는걸로 나열되어있을거라고 상상했는데 (0010 1010..) 위에 사진의 예시는 '이진법을 그대로 보여주면 너무 길기 때문에 나름 보기 쉽게 16진법으로 바꿔서 보여준것이다' 정도로 이해하면 되는걸까요?인텔레제이 -> view -> show bytecode 메뉴로 보여주는 결과값은 *.class 파일을 역어셈블해서 보여준걸로 이해하면 될까요?*.class 파일을 직접 뜯었을 때 실제로 바이너리형태의 결과값을 볼 수 있는 방법은 아예 없는걸까요? 구글링해보면 모두 다 "Bytecode는 바이너리이다~" 라고 말만하지 실제로 증거가될만한 이미지가 없어서.. 그냥 머리속으로 상상하고 넘어가야하는건가 궁금합니다.
-
미해결김영한의 실전 자바 - 기본편
클래스 강의 중, 주어진 코드를 배열로 구현해보는 예제에 대한 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. 자바 기본편 수강을 막 시작한 수강생입니다. 섹션 1. 클래스 - 클래스가 필요한 이유' 강의 내 첫번째 예제가 주어진 코드를 배열을 통하여 구현하는 것이었는데요,선생님께서는 배열의 변수를 선언하실 때 배열의 값을 적으셨는데,저는 배열의 값을 Scanner를 통해 직접 입력하고 싶어서 아래의 코드를 만들어보았습니다. (코드 중 일부입니다.)배열의 변수는 앞에서 선언하였고, for문을 통해 배열의 값을 채우며 배열을 완성시켰습니다. 문제는 코드를 실행해보니 일어났는데요, 학생의 이름만 아예 출력되지 않습니다. null로 출력되는 것도 아니고, 입력값이 읽히지 않은 것처럼 아래와 같이 빈 상태로 실행 됩니다. 학생의 점수와 나이는 올바르게 출력됩니다. 다른 에러는 없습니다.출력 예시) 이름: 나이: 22 성적: 2 중간의 input.nextLine(); 을 혹시나 해서 지워보고 실행해봤지만 결과는 아래와 같이 출력되었고, 이름의 값 입력이 불가능해졌습니다.출력 예시) 학생 이름을 입력하세요: 학생 나이를 입력하세요: 해결 방법을 알고 싶습니다. 감사합니다. public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("학생 수를 입력하세요: "); int students = input.nextInt(); String[] studentsNames = new String[students]; int[] studentsAges = new int[students]; int[] studentsGrades = new int[students]; for (int i = 0; i < students; i++) { System.out.print("학생 이름을 입력하세요: "); studentsNames[i] = input.nextLine(); System.out.print("학생 나이를 입력하세요: "); studentsAges[i] = input.nextInt(); System.out.print("학생 점수를 입력하세요: "); studentsGrades[i] = input.nextInt();
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
배열 리펙토링
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]배열 리팩토링에서 9분34초에 자막 오타 있습니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
섹션 8. 배열 - 문제와풀이3
안녕하세요 강사님 productAdminEx 문제에 관련해서 질문이 있습니다.productNames[productCount] = scanner.nextLine(); 이게원래 배우던 형식으로는 두번째 사진처럼 for문 안에서productNames[i] = scanner.nextLine(); 이런식이어서 예를들어 i = 0인경우 productNames 배열의 0번째 인덱스에 scanner.nextLine();으로 사용자가 입력한 값이 들어가는건 이해가 가는데 productNames[productCount] = scanner.nextLine(); 면 productNames배열 안에 있는 productCount에 scanner.nextLine();로 사용자가 입력한 값을 넣는건가요..? 그리고 그 사용자가 입력한 값이 들어가있는 productCount를 productNames배열이 위치를 참조하고 있는걸까요?? 이해가 잘 안가서 질문드립니다. (첫번째 사진) (두번째 사진) productNames[productCount] = scanner.nextLine(); 이게productNames의 배열 자리에 productCount의 값을 넣는다는 의미인가요? 이해가 안갑니다..ㅜ
-
미해결스프링 핵심 원리 - 기본편
타입이 아닌 "prototypeBean" 이름으로 빈 조회시 에러
@Test void prototypeFind() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(PrototypeBean.class); PrototypeBean prototypeBean1 = ac.getBean("prototypeBean", PrototypeBean.class); prototypeBean1.addCount(); Assertions.assertThat(prototypeBean1.getCount()).isEqualTo(1); PrototypeBean prototypeBean2 = ac.getBean("prototypeBean", PrototypeBean.class); prototypeBean2.addCount(); Assertions.assertThat(prototypeBean2.getCount()).isEqualTo(1); } @Scope("prototype") static class PrototypeBean { private int count = 0; ... }강의에서는 PrototypeBean.class만 사용하여 타입으로 조회를 했습니다. PrototypeBean 클래스가 컴포넌트스캔되므로, 해당 클래스의 이름은 PrototypeBean을 이름으로 넣어서 조회했으나 org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'prototypeBean' available빈을 찾을수 없다고 합니다. prototypeBean으로 첫 글자를 소문자로 변경하여도 동일합니다.해당 클래스의 객체가 빈으로 등록될 때 빈 이름을 지정하는 방식을 제가 잘못 이해하고 있는건지, 이름으로 조회를 하고싶은데 어떻게 히면 좋을지 궁금합니다.
-
미해결김영한의 실전 자바 - 기본편
실습2 질문
2번 잔액문제에서void deposit(int amount){}에서 int amount를 int balance아래에 선언하면 각 void()소괄호안에 amount를 선언안하고 대괄호에 쓸수있지않나요??질문2 int balance는 Account클래스안에 멤버변수인가요??amount는 파라미터인가요?? 명칭이 헷갈려서 질문합니다항상 좋은 강의 감사합니다.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결스프링 핵심 원리 - 기본편
System.out.println("new member = " + member.getName()); System.out.println("findMember = " + findMember.getName()); 콘솔에 출력안되고 Gradle로만 출력되는 현상
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) 안녕하세요!"회원도메인 실행과 테스트" 부분을 듣고 있습니다. 강사님의 코드를 똑같이 따라 작성하고 MemberApp의 테스트를 위해 Run 을 누르니 강사님께서는 System.out.println의 결과가 콘솔에 찍히는데저는 Gradle에서만 확인되더라구요..저는 콘솔창이 아예 없습니다. ㅠ 강사님의 결과 화면저의 결과 화면일단 다음강의로 넘어가지만 그래도 뭔가 찝찝해서검색도 해보고 Chatgpt한테도 물어봤는데 도저히이유를 모르겠어서 질문하게 되었습니다. 저는 spring 3.2.1 버전, java 17버전을 사용중이며 IntelliJ는 유료버전을 쓰고있습니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
강의 설명 관련 자료 문의 입니다.
안녕하세요 강의 잘보고 있습니다. 설명하실때 보여주시는 노션자료는 어디서 봐야할께요 처음에 올려주신거 같았는데 찾아봐도 없어서요~ 자바 중급 고급 기다리고 있습니다.감사합니다.^^
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
설치가 안됩니다. ㅠ
Mac에서 JDK 설치하기 중# 신규 방법 (입력 및 실행하세요)brew tap homebrew/cask_versions입력하면 자꾸 github 얘기만 나옵니다 ㅠ어떻게하면 좋을지 문의드립니다.
-
해결됨스프링 핵심 원리 - 기본편
Component 타입 조회
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]17:10 쯤 생성자안에 Autowired로 통해 타입이 맞게 들어간다라고 강사님이 설명해주셨는데, 이해가 잘 가지 않아 문의합니다.현 시점에 MemberServiceImpl 메서드의 생성자 타입은 MemberRepository 의 타입으로 되어있고 DI 되는 객체( MemoryMemberRepository )도 상속으로 MemberRepository를 상속하고 있다고 하여 타입이 같다고 설명을 하는건가요?