묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 중급 2편
인텔리제이 먹통
인텔리제이 무료버전이 다 끝나서 다시 지우고 무료료 쓸 수있는 학생버전으로 깔았는데 그 다음부터 김영한님의 파일들이 잘 작동이 안됩니다. 일텔리제이 버전은 아래와 같습니다:IntelliJ IDEA 2024.2.1 (Ultimate Edition)Build #IU-242.21829.142, built on August 29, 2024Licensed to xxSubscription is active until September 2, 2025.For educational use only.Runtime version: 21.0.3+13-b509.11 aarch64 (JCEF 122.1.9)VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. 김영한님의 폴더를 오픈하면 소스 파일이 안뜨고 이런식으로 뜹니다 또 어쩔때는 소스파일이 다 뜨지만 run을 하면 run이 실행되고 다시 프로젝트 목록의 소스파일들이 다 사라집니다
-
해결됨스프링 핵심 원리 - 기본편
RESTful API에 대해 설명해주는 강의가 있을까요?
HTTP강의에서 HTTP API 설계 방법에 대해서 배운다고 되어있는데HTTP API가 RESTful API를 의미하는 걸까요?사람인 같은 곳을 둘러보니까 RESTful API 설계 및 구현이 지원 자격이나 우대 사항에 많이 쓰여 있더라고요.궁금해서 인터넷에서 검색을 해봤는데, "Restful API는 HTTP URI를 통해 자원(resource)을 명시하고, HTTP 메소드를 활용해서 해당 자원에 대한 CRUD 기능을 수행하도록 도와주는 웹 서비스 디자인 패턴이다" 라고 되어있는데 이해가 잘 안 되네요.제가 학원에서 프로젝트를 할 때 Riot API를 사용해서 게임 전적 검색 사이트를 만들었는데, API 키를 발급 받고 특정 uri로 요청을 해서 JSON 같은 데이터를 받아 사용했거든요. 이런 API가 RESTful API인 걸까요?
-
해결됨스프링 핵심 원리 - 기본편
isInstanceOf가 왜 여러개로 되나영?
@Test @DisplayName("부모 타입으로 조회시,자식이 둘 이상 있으면,빈이름을 지정하면 된다.") void findBeanByParentTypeBeanName(){ DiscountPolicy rateDiscountPolicy=ac.getBean("rateDiscountPolicy",DiscountPolicy.class); assertThat(rateDiscountPolicy).isInstanceOf(RateDiscountPolicy.class); 이럴경우 //rateDiscountPolicy로 부터 반환된 실제 객체는 RateDiscountPolicy타입이고rateDiscountPolicy변수내에 담긴 실제객체가 RateDiscountPolicy타입의 인스턴트인지 비교한다고 커뮤니티에 설명을 해주셧엇는데 assertThat(rateDiscountPolicy).isInstanceOf(DiscountPolicy.class);왜 이런 경우에도 테스트가 성공되는걸까요? rateDiscountPolicy로 부터 반환된 실제 객체는 RateDiscountPolicy타입이지 DiscountPolicy타입은 아니지 않나요?
-
미해결김영한의 실전 자바 - 중급 2편
어떻게 오버라이딩된 toString()의 형식으로 출력되는지 헷갈립니다ㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예)[질문 내용]위의 코드에서 WildCardEx.printGenericV1(dogBox); 의 결과로 T = Animal{name='멍멍이', size=100} 이렇게 Animal에 오버라이딩한 toString의 형태가 출력되는지 궁금합니다...ㅠㅠ printGenericV1() 메서드에서는 box.get()을 사용하고 있지만, get() 메서드는 return 으로 그저 Dog 객체를 반환하는데 어떻게 오버라이딩 된 toString()의 형식으로 출력될 수 있는지 헷갈립니다ㅠ 기본적인 질문을 드려 죄송합니다...
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
synchronized lock 획득 질문, 스프링에서 synchronized 질문
이해 확인에 대한 질문입니다. synchronized는 메서드에서 현재 getBalance()랑 withdraw()에서 선언되었는데, lock은 객체가 가지고있다고 이해하고있습니다. synchronized 메서드가 실행시 lock을 가지고 간다면 synchronized가 선언되지 않은 메서드(동일 클래스)는 자유롭게 실행이 가능한거고,만약 synchronized withdraw가 스레드1에서 실행중이라면 스레드2가 synchronized getBalance()시 락을 획득할 수 없어서 대기해야하는 것이 맞나요? 2. 제가 스프링 DB2까지 강의를 듣고있는데, 스프링에서는 실제로 WAS의 스레드 풀에서 기본적으로 많은 스레드를 확보해두고 있는 것으로 알고있습니다. 해당 강의들에서 synchronized를 사용해본 기억은 없는 것 같아요. 기본적으로 스프링은 synchronized가 필요한 부분에 구현이 되어있는 걸까요?(싱글톤 빈에 대한 질문입니다!) 아니면 멀티스레드의 측면도 개발자가 직접 테스트하면서 최적화가 필요할까요?(아마 제 예상으로는 개발자가 직접하는 부분도, 스프링이 해주는 부분도 있을 것 같은데...) 스프링 고급편, 부트편이나 JPA 학습 시점에 알 수 있는 부분일까요?
-
미해결김영한의 실전 자바 - 기본편
학습 방법에 대한 고민
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]현재 기본편 접근제어자를 학습하고 있는데 예제에서 이전에 공부했던 배열이나 생성자에 대한 내용에서 헤메이곤 하는데요.. 이런 상황에서 강의를 계속해서 수강하고 마지막까지 수강한 후에 다시 전체적으로 빠르게 수강하는것이 좋나요 아니면 헷갈릴때마다 다음 강의 보다는 전에 봤던 강의를 복습하는 방식이 좋을까요?
-
미해결김영한의 실전 자바 - 기본편
다형성 - 역할과 구현예제2 강의만 재생이 안돼요
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]새로고참도 해보고 여러가지 다 해봤는데 이 강의만 재생이 안됩니다. 오류 확인 부탁드립니다.
-
미해결김영한의 실전 자바 - 기본편
부모클래스나 두개 이상의 인터페이스가 있을 때 다른 부모에 있는 메서드가 실행되는 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]클래스와 인터페이스 활용 강의를 듣고 문득 하위클래스는 상위의 AbstractAnimal과 Fly인터페이스와 관련이 있다는 느낌을 받아서 다음과 같이 코드를 작성했습니다.public static void main(String[] args) { Dog dog = new Dog(); Chicken chicken = new Chicken(); Bird bird = new Bird(); AbstractAnimal bird2 = new Bird(); soundTest(dog); soundTest(chicken); soundTest(bird); flyAnimalTest(chicken); flyAnimalTest(bird); soundTest(bird2); flyAnimalTest((Fly)bird2); } private static void flyAnimalTest(Fly fly) { System.out.println("날기테스트시작"); fly.fly(); System.out.println("날기테스트종료"); } 그런데 마지막 줄 flyAnimalTest에서 bird2는 인스턴스는 Bird2지만 호출타입은 AbstractAnimal이라서 AbstractAnimal을 Fly타입에 대입할 수 있나라는 의문도 들었고 무엇보다 AbstractAnimal에는 fly()라는 메서드가 없어서 이걸 AbstractAnimal에서 찾으면 당연히 없고 상위 클래스에서 fly를 찾으려고 해도 AbstractAnimal이 최상위니까 실행이 안되겠지? 라는 생각이 들었는데 이게 맞을까요? 그리고 한가지 더 궁금한게 있습니다. (Fly) bird2를 flyAnimalTest에 넣었는데 실행이 잘 됐습니다. bird2의 호출 타입은 Abstract이고 인스턴스는 Bird인데 (Fly)를 해주면 캐스팅 되는 과정이나 메모리상에서 fly함수를 어떻게 찾아가는지 과정을 알고싶습니다. bird2를 (Bird)로 다운캐스팅한 다음 flyAnimalTest메서드의 매개변수 Fly fly에 대입된 후에 작동하는 것은 이해가 가는데 (Fly)로 캐스팅했을 때 되는 이유는 무엇인가요?
-
해결됨스프링 핵심 원리 - 기본편
MemberApp오류
> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.> Get more help at https://help.gradle.org.Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.For more on this, please refer to https://docs.gradle.org/8.8/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.BUILD FAILED in 3s3 actionable tasks: 1 executed, 2 up-to-date================================Unsupported Java. Your build is currently configured to use Java 21.0.4 and Gradle 8.8.Possible solution: - Use Java 20 as Gradle JVM: Open Gradle settings - Open Gradle wrapper settings, change distributionUrl property to use compatible Gradle version and reload the project 두개의 오류가뜨고 있습니다 ㅠ
-
해결됨스프링 핵심 원리 - 기본편
클라이언트코드라는게 멀까요?
ocp에서 클라이언트 코드는 변경하지 않아도된다고 하셧는데 클라이언트쪽은 프론트쪽이아닌가요?클라이언트는 요청이고서버는 요청을 받는거라고 생각해서 백엔드코드는 다 서버아닌가요? 해당 코드에서도 클라이언트코드와 서버코드가 나눠져있다면 serviceimpl쪽만 클라이언트코드고 appconfig,order,discount쪽은 서버가 되는건가요?
-
해결됨김영한의 실전 자바 - 중급 1편
실무에서 try - catch로 예외를 잡는 경우는 어떤 경우인지 궁금합니다.
실무에서 공통으로 예외를 처리하는 부분 말고 try - catch로 예외를 잡아 처리하는 경우는 보통 어떤 경우인지 궁금합니다.
-
해결됨김영한의 실전 자바 - 중급 1편
정적 중첩 클래스, 정적 변수에 대한 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요.정적클래스를 복습하면서 공부하다가 정적 메서드를 만들게 되엇고,바깥 클래스에서 안쪽 클래스 변수를 접근하면 어떻게 해야 할까? 하다가 이런코드가 나왔습니다.(print()는 지움-내용을 보이기 위해서)결과 값바깥 클래스 에서 정적 메서드를 만들고 나서 든 생각이,안쪽 정적 클래스(static class)의 정적 클래스 변수를 갖고 와서 사용하는 경우가 있는지 궁금해지더라고요 .이런 경우가 있는지 알고 싶습니다.추가1오늘(9.3) 영한님 영상이나, 글을 보면서 실무에 필요한 코드들만 나온다고 했었는데, 만약에 있어도 안보여 주신 이유가 거의 안써서 안보여 주신건가요?답변 부탁 드립니다.
-
미해결김영한의 실전 자바 - 기본편
프로젝트가 제대로 생성되지 않습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]New Project로 프로젝트를 생성할 때 좌측에 그냥 New Project가 없고 자바, 코틀린 등등 중에 선택하게 뜹니다. 디폴트 자바로 프로젝트 생성을 진행하면이렇게 오류가 발생하고요. 강사님은 다른 선택사항 없이 그냥 New Project로 프로젝트를 생성하시던데 제가 어떤 부분을 놓친 걸까요?
-
미해결김영한의 실전 자바 - 기본편
Driver 클래스의 존재
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.Driver 클래스랑 CarMain 클래스가 하나로 이루어져도 되는거 아닌가요..?driver 클래스는 어떤 포지션인지.. 이해가 잘 가지 않습니다..
-
미해결김영한의 실전 자바 - 중급 2편
강의가 너무재밌습니다.
강의가 머리에 쏙쏙들어와서 너무 재밌습니다. 혹시 디자인패턴 강의 내실 생각있으신가요? 다른 디자인패턴강의를 들어본적이 있는데 뭔가 이해하기가 너무힘들더라구요 ㅎㅎ
-
미해결스프링 핵심 원리 - 기본편
주입할 스프링 빈이 없어도 동작해야 할 때
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 주입할 스프링 빈이 없어도 동작해야 할 때가 있다. 라고 하는데 예를 어떤 상황이 있는지 궁금합니다.
-
해결됨김영한의 실전 자바 - 기본편
page 중복도 지울 수 있지 않나요?
실습 코드에 있는 기본 생성자인Book() { this("", "", 0); }에서Book() { this("", ""); } 으로 바꾸면 중복으로 되어있는 0도 지울 수 있나요?물론 함수를 두 번 호출 하겠지만 문제에 있는 중복이 없는 조건을 맞추려면 이게 가능한지 궁금합니다.
-
해결됨오브젝트 - 기초편
[6-2] 응집도의 변경 관점에서, [속도] 관련
응집도의 높고 낮음이, [동일 시점에 동일한 속도] 여부에 따라 정해진다고 하셨는데,이때,[시점]은 '할인 정책의 종류나 금액 계산 방법이 변경' 과 같이, [특정 요구사항의 변경이 일어날 때] 를 의미하는것으로 이해했는데, [속도] 는 무엇을 의미하는지 잘 이해가 되지 않아서 질문 남겨보아요.
-
미해결김영한의 실전 자바 - 중급 1편
함수 안에 같은 부분을 포함하는데
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]함수 안에 같은 부분을 포함하는데 중간에bool 값을 true 해주거나 false 해주는건 어떻게 리팩토리할까요? 예를들어public static void main(String[] args) { kim(); -> holy=true 한번은 true가 되 kim(); -> 한번은 holy=true가 안되게static void kim(){ System.out.println("wow"); holy = true; System.out.println("hello"); } } println은 다같이 중첩되는데 한번은 holy 부분이 작동안되게하고 다른 한번은 true값을 변경하고싶어요 함수를 2개만들순없고 저건 예시를 든거고 만약 kim() 함수가 길면 함수2개를 만드는 의미가 없다고생각합니다
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
JDK 설치 질문 (Oracle JDK/OpenJDK)
Adoptium대신에 Oracle의 JDK 나 OpenJDK를 설치해도 상관은 없나요?