묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 중급 1편
Book class 를 static으로 만드는 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]Book class 를 static 으로 만들었는데...Book class 에서 Library class 의 멤버변수에 접근 할 있이 없는 경우는 무조건 static 으로 만드면 되는건가요...?
-
해결됨김영한의 실전 자바 - 중급 1편
Object 최상위 부모 클래스에 대해서 질문.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 공부하다가 뭔가 생각이 들어서 질문합니다."자바 - 기본편" 에서 interface라는(완전한 추상) 이란 것을 배웠습니다.여기서 의문점이 생깁니다. Object는 최상위 부모 클래스 라고 했고, 클래스는 묵시적으로 Object클래스를 상속 받는다고 하였는데, interface는 클래스 가 아닌 interface 이니까(만들 때 보니까 class가 없고,extends object를 붙일려니까 오류만 나더라고요) interface는 Object의 정보가 없다고 이해 해도 되나요?답변 부탁 드립니다.
-
미해결김영한의 실전 자바 - 기본편
Caw(X) Cow(O) 오타 수정할 곳이 많은데 어떡하죠?
제곧내
-
해결됨스프링 핵심 원리 - 기본편
만약 Client A가 여러번 http request를 보낼경우
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]ClientA가 요청을 보내는경우 처음 MyLogger 인스턴스 생성후 (uuid-1가정) 비즈니스 로직 처리한 후에 return을 한뒤,만약게 ClientA가 다시 요청을 보내면, MyLogger인스턴스가 새로 생성되어서 uuid-2이런식으로 동일한 ClientA임에도 불구하고 uuid가 변경되는것 아닌가요?
-
미해결김영한의 실전 자바 - 기본편
Arrays.sort
우리는 만약 int[] a = {1,3,2} ; 라고 주어졌다면 Arrays.sort(a) ; 를 하면 되는 것으로 알고 있습니다. 그런데 AudioBook 의 경우에는 사용자가 정의한 객체이기 때문에 sort 의 기준이 명확하지 않아 compareTo 메서드를 사용해야하는 것으로 알고 있어요. 그런데 여기서 AudioBook 객체가 Comparable class 를 반드시 implements 해야하는 이유는 그래야 Arrays.sort() 를 이용할 수 있기 때문인가요? 만약 implements 없이 그냥 사용하면 Arrays.sort() 에서는 compareTo 를 활용해야한다는 인식 자체를 못하는 건가요? 아래에는 제가 질문을 하게끔 만든 코드입니다. public class Books { //----------------------------------------------------------------- // Creates a AudioBookCollection object and adds some books to it. Prints // reports on the status of the collection. //----------------------------------------------------------------- public static void main (String[] args) { AudioBookCollection library = new AudioBookCollection(); library.addBook("The Kaiju Preservation Society", "John Scalzi", "Will Wheaton", 25.99, 482); library.addBook("Revenger", "Alastair Reynolds", "Clare Corbett", 22.94, 880); library.addBook("Klara and the Sun:A Novel", "Kazuo Ishiguro", "Sura Siu", 24.50, 616); library.addBook("Endurance: Shackleton's Incredible Voyage", "Alfred Lansing", "Simon Prebble", 21.83, 620); library.addBook("Barbarian Days: A Surfing Life", "William Finnegan", "William Finnegan", 21.99, 1088); System.out.println(library); library.sort(); System.out.println(library); } } import java.text.NumberFormat; import java.util.Locale; import java.util.Arrays; public class AudioBookCollection { private AudioBook[] collection; private int count; private double totalCost; /*----------------------------------------------------------------- * Constructor: Creates an initially empty collection. *----------------------------------------------------------------*/ public AudioBookCollection () { collection = new AudioBook[100]; count = 0; totalCost = 0.0; } /*----------------------------------------------------------------- * Adds an audio book to the collection, increasing the size of the * collection if necessary. *----------------------------------------------------------------*/ public void addBook (String title, String author, String readBy, double cost, int minutes) { if (count == collection.length) this.increaseSize(); collection[count] = new AudioBook(title, author, readBy, cost, minutes); totalCost += cost; count++; } /*----------------------------------------------------------------- * Returns a report describing the Book collection. *----------------------------------------------------------------*/ public String toString() { Locale usa = new Locale("en", "US"); NumberFormat fmt= NumberFormat.getCurrencyInstance(usa); String report = "~~~~~~~~~~~~~~Wow Cool~~~~~~~~~~~~~~~~~~~~~~~\n"; report += "My Audio Book Collection\n\n"; report += "Number of Books: " + count + "\n"; report += "Total cost: " + fmt.format(totalCost) + "\n"; report += "Average cost: " + fmt.format(totalCost/count); report += "\n\nBook List:\n\n"; for (int i = 0; i < count; i++) report += collection[i] + "\n"; return report; } public void sort() { Arrays.sort(collection,0,count); } //----------------------------------------------------------------- // Increases the capacity of the collection by creating a // larger array and copying the existing collection into it. //----------------------------------------------------------------- private void increaseSize () { AudioBook[] temp = new AudioBook[collection.length*2]; for (int i = 0; i < collection.length; i++) temp[i] = collection[i]; collection = temp; } } import java.text.NumberFormat; import java.util.Locale; public class AudioBook implements Comparable<AudioBook> { private String title, author, readBy; private double cost; private int minutes; //----------------------------------------------------------------- // Creates a new audio book with the specified information. //----------------------------------------------------------------- public AudioBook (String title, String author, String readBy, double cost, int minutes) { this.title = title; this.author = author; this.readBy = readBy; this.cost = cost; this.minutes = minutes; } //----------------------------------------------------------------- // Returns a string description of this audio book. //----------------------------------------------------------------- public String toString() { // for formatting money NumberFormat fmt= NumberFormat.getCurrencyInstance(Locale.US); // instead of using the ready-made Locale.US we could also create our own // Locale usa = new Locale("en","US") // try looking up country locale codes on the web! // for formatting strings String description; description = String.format(fmt.format(cost) + "\t" + minutes + "\t" + "%-20s" + "\t" + "%-50s",author,title); return description; } // compare based on book length public int compareTo(AudioBook other) { int answer = 0; if (this.minutes<other.minutes){ answer = -1; } if (this.minutes>other.minutes){ answer = 1; } return answer; } }
-
해결됨스프링 핵심 원리 - 기본편
Provider에서 에러가 납니다
강의 9분 쯤에서 jakarta.inject:jakarta.inject-api:2.0.1 ` 라이브러리를 gradle에 추가한다고 하는데추가하면오류가 나요구글 드라이브 첨부합니다https://drive.google.com/file/d/1Ace92-jSQRpEjtPMts_enWCT98bkbZ_4/view?usp=sharing
-
미해결김영한의 실전 자바 - 기본편
Static instance
이 강의를 보면 Data3 type 의 인스턴스가 3개 만들어지는 동안 count 는 단 하나의 인스턴스를 만든 것인가요?
-
미해결김영한의 실전 자바 - 중급 1편
예외 처리 catch
만약 c.txt 라는 파일이 있다고 가정하고 command line 인자로 java mola c.txt 만 terminal 에서 적었다고 가정해보겠습니다.그러면 ArrayIndexOutOfBoundsException 이 위 catch 블록에 잡혀 있으니까 그게 실행되어야하는거 아닌가요?(원래 java mola c.txt d.txt 같이 "d.txt" 도 해줘야 인덱스가 올바른 것이라고 생각해서 그렇게 생각했습니다.)
-
미해결김영한의 실전 자바 - 중급 1편
동일 파일 입력시
만약 File inFile = new File("test.txt") ;PrintWriter out = new PrintWriter("test.txt") ; 즉 , 파일명이 같으면 어떤 일이 발생하나요?
-
미해결김영한의 실전 자바 - 중급 1편
extends implements
1.Public class Child extends Parent implements MyInterface 2.Public class Child implements MyInterface extends Parent 1번 방식은 가능한거 아는데, 2번 방식도 가능한가요 ?
-
미해결스프링 핵심 원리 - 기본편
싱글톤 컨테이너
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 질문이 있어서 글을 남김니다!싱글톤 패턴의 문제점에서private 생성자로 자식 클래스를 만들기 어렵다라는 문제점이 있는데싱글톤 컨테이너는 싱글톤 패턴의 문제점들을 다 보완해준다고 말씀해주셨는데 어떻게 보완을 하는지 원리가 궁금해서 글을 남김니다.항상 좋은 강의해주셔서 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
컨테이너에 등록된 빈 조회 시 import 오류가 발생합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]https://drive.google.com/file/d/1gYS9IE_QZsnszjgmiBCS5jwuC-zjiEIh/view?usp=sharing 교안 그대로 스프링 빈 조회를 해봤는데 import junit 부분에서 오류가 발생 하고 있습니다. 어떡해야 할까요 ? 또한 프로젝트 실행 시 로그가 제대로 작동하지 않습니다.
-
미해결김영한의 실전 자바 - 중급 1편
재밋게 잘보고있습니다 ! 간단한 질문하나만 부탁드려요
모바일로 시청은 언제부터 가능할까요?
-
해결됨코틀린 고급편
by lazy 블럭 안에서 suspend 함수의 결과값을 받는게 가능한가요?
강의에서 Thread.sleep 한것 처럼 runblocking으로 Thread를 blocking 해야만 값을 기다렸다가 받을 수 있는지 아니면CoroutineScope의 async나 launch로도 가능한지궁금합니다 ㅠ
-
미해결김영한의 실전 자바 - 중급 1편
String 이 불변객체라고 하셨는데 궁금한게 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요.위와 같이 a 를 hello 로 초기화했고 그 이후에 hello java 로 변경하니깐 변경이 됐습니다. 불변객체라고 하셔서 변경이 되지않을거라 생각했는데변경이 되는걸 보고 의아했습니다. 근데 강의를 보니 값이 변경되면 새로운 객체를 생성한다고 하시던데 그럼 제일처음 a 를 생성했을땐 a에 x001 번지가 저장됐었다면 a 의 값을 hello java 로 변경했을땐 새로운 String 객체 메모리 주소를(x002) a 에 넣어주게 되는건가요?
-
미해결김영한의 실전 자바 - 중급 1편
6.날짜와 시간 isEqual 오타 있네요
isEquals(): 다른 날짜시간과 시간적으로 동일한지 비교한다. 시간이 같으면 true 를 반환한다. isEquals() vs equals() isEquals() 는 단순히 비교 대상이 시간적으로 같으면 true 를 반환한다. 객체가 다르고, 타임존이 달라도 시 간적으로 같으면 true 를 반환한다. 쉽게 이야기해서 시간을 계산해서 시간으로만 둘을 비교한다. isEqual 이 맞는 거 아닌가요?
-
미해결김영한의 실전 자바 - 중급 1편
예제 코드 수정이용
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요~!아래 설명에는 맞게 써주셨는데 예제 코드는 그대로라 글 남겼어요!Shdowing -> Shadowing 좋은 강의 감사합니다 (_ _ )
-
미해결김영한의 실전 자바 - 기본편
접근제어자와 this
public class Ant { private int age ; public Ant(int age){ this.age = age ; // this 는 Ant 메서드를 부른 객체의 참조값 인데, x001.age 로 private 접근 제어자에 접근 불가 아닌가 ? } }this 는 Ant 메서드를 부른 객체의 참조값 이라고 알고 있습니다. 그렇다면 예를 들어 x001.age 와 같이 나타날텐데 private 접근 제어자라 필드 변수에 사실 접근할 수 없지 않나요 ? 생성자에서의 접근은 예외로 인정해주는 건가요 ?
-
미해결김영한의 실전 자바 - 기본편
super
만약 child 가 parent 를 상속받았을때 constructor 에서 super() ; 를 언급해줘야 하는데. 만약 child 가 기본 생성자이고, 부모의 생성자 역시 기본 생성자이면 굳이 명시적으로 적지 않아도 상관 없나요 ? Public class Parent{private int age ; } public class Child extends Parent{private int age ; } 이런 식으로만 작성해도 상관없나요 ?
-
미해결김영한의 실전 자바 - 기본편
Static
public class PrintWritterr { public static void main(String[] args) { int x = 5 ; int y = change(x) ; System.out.println(x); System.out.println(y); } public static int change(int x){ x= x + 5 ; return x ; } }여기에서 왜 x 의 값은 변하지 않나요 ? 저는 x 역시 10 이 출력될거라 생각했는데, 5가 출력되는 이유를 모르겠습니다. 제가 추측키로는 아래 public static int change(int x){ x= x + 5 ; return x ; } } 이거는 메서드 영역에서 관리되는데에 반해 메인 메서드의 x 는 다른 곳에서 관리되기 때문인가요 ? 예를 들면 우리는 public class Account { private int balance ; public void deposit(int amt ){ balance += amt ; } public void withdraw(int amt){ if(balance >=amt) { balance -= amt; } else{ System.out.println("잔액 부족"); } } public void getBalance(){ System.out.println("잔고: "+balance); } } 이 클래스에서는 메서드에 저장된 값이 balance 에 계속 영향을 준다는 것을 알고 있습니다.근데 윗 케이스는 아래 메서드가 영향을 주지 못하는 이유를 모르겠습니다