묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결코틀린 문법부터 실무까지 (실전 자바->코틀린 변환)
IntelliJ IDEA 문의
안녕하세요. 강의전 IntelliJ IDEA Ultimate 학생 라이센스 가능하다고 해서 수강신청을 하게 되었는데요. 해당 툴에 대한 설치 가이드가 보이지 않습니다. 학생신분이 아니기에 웹메일 인증이 어려울꺼 같은데요. 무료라이센스 사용가능한 방법을 알려주시면 감사하겠습니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
객체지향 코드
안녕하세요, 강사님 덕분에 자바를 공부하는데 조금 수월해진 수강생입니다.객체지향을 공부하면서 자신이 작성한 코드가 정말 좋은 코드인지 항상 보는데 어떤건 바로 눈에 띄는데 어떤건 바로 눈에 안 띄어 작성한 코드가 좋은 코드인지 잘 판단하기 어려운 단계에서는 어떻게 스스로 리뷰를 해야 좋은지 여쭙고싶습니다
-
해결됨김영한의 실전 자바 - 기본편
중급편 완강 후 스프링
방금 중급편 오픈 예정 글을 보고 왔습니다!혹시 중급편에서 예외처리와 제네릭 컬렉션에 관해서 공부 후에 고급편 듣지 않고 바로 스프링으로 넘어가도 되나요?!
-
미해결스프링 핵심 원리 - 기본편
인텔리제이 코드창 및 core패키지 초기화 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]첫 번째 사진의 화면에서 강의에 나와있는대로 CoreApplication 클래스의 코드를 실행 할 겨우 밑에 있는 사진 처럼 콘솔창은 정상적으로 작동하는거 같지만 코드 창이 초기화면 으로 돌아가는 오류가 발생합니다. 또한 command+tab을 하여 다른 창을 보고 다시 인텔리제이로 돌아 올 경우 밑에 사진처럼 core 패키지가 사라졌다 조금 기다려야 다시 나옵니다.인텔리제이를 삭제 후 재설치 해보기도 하였고 인텔리제이 파일 창에서 캐시삭제와 설정 초기화도 해보았지만 해결되지가 않습니다 ㅠㅠ 제발 해결방법 좀 알려주시면 감사하겠습니다.추가로 그냥 코드창을 띄어놓고 알트탭하여 인터넷창을 보고 돌아와도 코드창이 위 화면처럼 사라지며 core패키지가 사라졌다 다시 생깁니다. 참고로 스프링은 Gradle-groovy 프로젝트spring boot : 3.2.3 버전packaging : jarjava : 21로 ppt 와 강의 내용 그대로 설정하였습니다.제발 부탁드리겠습니다.
-
미해결김영한의 실전 자바 - 기본편
클래스와 인스턴스
클래스와 데이터 챕터에서클래스를 커스텀 데이터 구조, 그리고 인스턴스를 데이터 구조를 메모리에 올려 놓은 실체라고 이해해도 괜찮을까요? 제 표현에 제가 이해하지 못한 부분이 있지 않을까해서 질문드립니다.
-
해결됨스프링 핵심 원리 - 기본편
예제의 라이프사이클 질문있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]LifeCycleTest에서 networkClient가 빈으로 등록되는 순서가1. new NetworkClient()로 NetworkClient 인스턴스 생성 (ulr=null)2. setUrl을 통해 1에서 생성된 인스턴스의 url 설정3. 스프링 컨테이너에 빈 등록이 순서로 이해했습니다. 스프링 빈의 라이프사이클이스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸전 콜백 이 순서인데 이 강의의 예제에서 의존관계 주입은 없으니까 바로 초기화 콜백인 init()이 실행되고, 사용 또한 하지 않으니 바로 소멸전 콜백인 close()가 실행 되는 것으로 이해하면 될까요? 정리하면 networkClient 빈 생성 -> x -> init() -> x -> close()이 순서가 맞는지 확인 부탁드립니다!
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
안녕하세요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]sdkman 를 사용하긴 합니다만. Vendor 가 Corretto 여도 상관 없을까요?Oracle 도 있고 해서요
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
실행시 오류가 뜹니다.
안녕하세요. 현재 8강 까지 잘 따라오고 있는 학생입니다.방학동안 수강을 하다가 이번에 대학교에서 자바프로그래밍 수업도 같이 듣게 되었습니다.오늘 첫 수업에서 교수님은 이클립스를 사용하셨습니다. 그래서 저 또한 이클립스를 설치했습니다.문제는 이클립스 설치 이 후 김영한님 강의를 공부할려고 인텔리제이를 실행한 결과, 오류가 뜨면서 실행이 되지않습니다.아래는 문제가 되는 코드입니다. /Users/hyungkey/Library/Java/JavaVirtualMachines/openjdk-21.0.2/Contents/Home/bin/java -javaagent:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar=50023:/Applications/IntelliJ IDEA CE.app/Contents/bin -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -p /Users/hyungkey/Desktop/JavaStudy/java-start/out/production/java-start -m test/scanner.ex.ScannerWhileEx4Error occurred during initialization of boot layerjava.lang.module.FindException: Error reading module: /Users/hyungkey/Desktop/JavaStudy/java-start/out/production/java-startCaused by: java.lang.module.InvalidModuleDescriptorException: CommentJava.class found in top-level directory (unnamed package not allowed in module)Process finished with exit code 1 어떠한 문제인지 파악되지 않습니다.
-
미해결김영한의 실전 자바 - 기본편
질문이요 ㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]해당 Data2 클래스에서 Counter.count를 써줬는데Counter.count를 사용하기 전에 Counter counter = new Counter(); 를 작성해야 Counter의 멤버변수를 사용할수있는 것 아닌가요?
-
미해결김영한의 실전 자바 - 기본편
인터페이스 질문입니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]인터페이스를 사용하는 이유는 알겠는데InterfaceA a = new Child(); 라고하는거랑Child a = new Child(); 라고 하는거랑 똑같은 결과를 얻는데명시적으로 InterfaceA a = new Child(); 라고 기재하는 버릇을 들이는게 나은건가요?
-
해결됨스프링 핵심 원리 - 기본편
@Configuration 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이전 싱글톤 방식의 주의점 강의 질문 답변 중에TestConfig에서 @Configuration이 빠져도 싱글톤으로 관리되는 이유가 AnnotationConfigApplicationContext(TestConfig.class)로 스프링 컨테이너에 빈을 직접 등록해서라고 하셨는데 이번 강의에서도 AnnotationConfigApplicationContext(AppConfig.class)로 직점 등록하는데 AppConfig에서 @Configuration을 빼고 테스트 코드를 돌리면 memberRepository가 세 번 호출되는 이유가 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요.출력은 나오는 것 같은데 다음과 같은 오류가 발생합니다.policyMap = {fixDiscountPolicy=hello.core.discount.FixDiscountPolicy@6995bf68, rateDiscountPolicy=hello.core.discount.RateDiscountPolicy@5143c662}policies = [hello.core.discount.FixDiscountPolicy@6995bf68, hello.core.discount.RateDiscountPolicy@5143c662]20:43:46.722 [main] WARN org.springframework.context.annotation.AnnotationConfigApplicationContext -- Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderServiceImpl' defined in file [C:\spring project\core\core\out\production\classes\hello\core\order\OrderServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 1: No qualifying bean of type 'hello.core.discount.DiscountPolicy' available: expected single matching bean but found 2: fixDiscountPolicy,rateDiscountPolicyorg.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderServiceImpl' defined in file [C:\spring project\core\core\out\production\classes\hello\core\order\OrderServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 1: No qualifying bean of type 'hello.core.discount.DiscountPolicy' available: expected single matching bean but found 2: fixDiscountPolicy,rateDiscountPolicyat org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:798)at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:237)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1355)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1192)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975)at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:959)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624)at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:93)at hello.core.Autowired.allbean.AllBeanTest.findAllBean(AllBeanTest.java:17)at java.base/java.lang.reflect.Method.invoke(Method.java:578)at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'hello.core.discount.DiscountPolicy' available: expected single matching bean but found 2: fixDiscountPolicy,rateDiscountPolicyat org.springframework.beans.factory.config.DependencyDescriptor.resolveNotUnique(DependencyDescriptor.java:218)at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1420)at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:907)at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:785)
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
Scanner 훈련 문제와 풀이3
사용자로부터 이름과 나이를 반복해서 입력받고, 입력받은 이름과 나이를 출력하는 프로그램 작성사용자가 종료를 입력하면 종료package scanner.ex; import java.util.Scanner; public class ScannerWhileEx1 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while(true) { System.out.print("이름을 입력하세요 (종료를 입력하면 종료): "); String name = scanner.nextLine(); System.out.print("나이를 입력하세요: "); int age = scanner.nextInt(); System.out.println("입력한 이름: " + name + ", 나이: " + age); if(name.equals("종료")) { System.out.println("프로그램을 종료합니다."); break; } } } }첫번째는 잘 실행되는데 2번째 실행될 때 종료를 입력하면 오류가 발생하는데 왜 오류가 발생하는지 모르겠어요
-
해결됨김영한의 실전 자바 - 기본편
강의듣다가 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요?예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요.질문1.method2(Data data2)를 해주셨는데 괄호 안에 의미가Data라는 클래스의 변수값 data2를 임의로 지정해준건가요? 질문2.method1 에서 Data data1 = new Data(10) 해서 data1이라는 인스턴스를 생성해서 method2를 만들떄 method2(Data data2)를 만들 수 있는건가요?
-
해결됨스프링 핵심 원리 - 기본편
gradle dependencies library 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]build.gradel에 web 라이브러리 추가하고 External Libraries에도 web관련 라이브러리들이 잘 추가가 되었는데 오른쪽 Gradle에 dependencies library에 빨간줄은 왜 생기는 걸까요??
-
미해결김영한의 실전 자바 - 기본편
선생님 질문있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]ShoppingCart 클래스에서 Item[] 배열 items를 만들어도Item 클래스의 멤버변수를 사용할수있나요?보통 ITEM item = new Item(); 을 사용해야 해당 ITEM클래스의 멤버변수를 사용할수있는 것 아닌가요?
-
미해결스프링 핵심 원리 - 기본편
컴포넌트 스캔 대상인 @Configuration에 대해서
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. @Configuration도 컴포넌트 스캔 대상인데 , 제가 궁금한건 교재에 @Configuration 부가기능으로 스프링 빈이 싱글톤을 유지하도록 추가 처리를 한다. 이 부분입니다. 싱글톤은 모든 애노테이션에서 보장하는거 아닌가요? 교재만 보면 Configuration만 싱글톤은 지원하는 것 처럼 적혀져 있어서요. 싱글톤은 @Controller , @Repository , @Component , @Configuration , @Service 등 모든 애노테이션에서 보장하는건줄알았습니다.
-
해결됨김영한의 실전 자바 - 기본편
다형성 다운캐스팅은 왜 하는건가요?
10강 다형성에서 다운캐스팅에 대해 배웠습니다.강의에서도 왜 이렇게 번거롭게 써야되는지는 다음에 다형성 활용에 들어가면 알게된다고 하셔서 일단 그렇구나 하고 학습을 했습니다.그런데 다형성 활용에 들어가서도 다형성 참조를 이용한 방법과 인터페이스를 활용한 방법등은 나오지만 "그래서 캐스팅은 대체 왜 하는건데?" 에 대한 해답을 모르겠습니다.활용편에서도 캐스팅을 사용하는 내용은 없었구요.다운 캐스팅은 대체 어떤 상황에서 사용하는건지가 궁금합니다.
-
해결됨스프링 핵심 원리 - 기본편
LogeDemoController 클래스의 @RequestMapping 어노테이션의 기능이 무엇인가요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@RequestMapping어노테이션의 기능과 안에 파라미터로 적용한 log-demo가 무엇인지 궁금합니다.
-
해결됨김영한의 실전 자바 - 기본편
인터페이스 관련하여 질문있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 인터페이스와 관련해서 궁금한 게 있어 질문드립니다.Eatable(인터페이스)Fruit(Eatable의 구현체)Apple과 Grape(Fruit 자손)다음과 같은 경우에서 Apple과 Grape는 Eatable을 구현하지 않아도 되나요??