묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 기본편
추상 클래스, 인터페이스
인터페이스가 추상 클래스보다 더 제약이 있다고 강의 내용에서 배웠습니다.그러나 구성에는 인터페이스가 더 많은 것을 포함하고 있는 것 같아 궁금합니다!강의 내용에서는 interface에 일반 메서드가 올 수 없다고 배웠던 것 같습니다.
-
해결됨C개발자를 위한 최소한의 C++
인스턴스의 개념에 대해 int a(3), int(5) 예시를 바탕으로한 질문입니다.
안녕하세요, 강사님.int a(3)은 인트형식(혹은 클래스)의 인스턴스 a를 3으로 초기화 한것이고, 상수 5가 int(5) 인트형식(클래스)의 인스턴스 5라고 한다면,Q1 인트형식의 상수들은 다 인스턴스인 것인가요?Q2 int(5)라는건 식별자가 없는 인스턴스 인거고 가령, int(5) + int(3) == int(7) 이렇게 기술했을때 참이 되나요?
-
해결됨얄코의 떠먹여주는 객체지향 디자인 패턴
빌더패턴 질문있습니다!
2분대에 나오는 PizzaBuilder static내부 클래스에 기본 생성자가 없으면 뒤에 나오는 main문에서 new Pizza.PizzaBuilder()가 가능한가요??
-
미해결김영한의 실전 자바 - 기본편
soundAnimal메서드 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 강의를 듣다가 궁금한게 생겨서 질문 드립니다. 앞에 수업에서는 부모 클래스는 자식 클래스가 누군지 모른다고 했었고 부모가 자식의 기능을 사용하려면 다운 캐스팅을 해서 사용 가능하다고 하셨는데, 이 코드의 메서드 파라미터 부분 (Animal animal)에서 Dog, Cat, Caw가 어떻게 상속 받은 자식 클래스인 걸 알고 작동하는지 궁금합니다ㅠㅠㅠㅠpackage poly.ex2;public class AnimalPolyMain1 {public static void main(String[] args) {Dog dog = new Dog();Cat cat = new Cat();Caw caw = new Caw();soundAnimal(dog);soundAnimal(cat);soundAnimal(caw);}//동물이 추가 되어도 변하지 않는 코드private static void soundAnimal(Animal animal) {System.out.println("동물 소리 테스트 시작");animal.sound();System.out.println("동물 소리 테스트 종료");}}
-
해결됨남박사의 파이썬으로 봇 만들기 with ChatGPT
<InlineQuery 활용 주변 맛집 검색 봇 만들기>에 맛집 링크 접속 시 403 에러가 뜹니다
https://map.naver.com/p/api/smart-around/places?searchCoord=127.108519%3B36.817412&boundary=127.09854112852958%3B36.807207632892144%3B127.1187113403231%3B36.82744325030478&code=01&limit=20&sortType=RECOMMEND&timeCode=AFTERNOON위 링크인데, 아무래도 현재 막힌 것 같습니다ㅠㅠ영상 재촬영이 어렵다면 보충 설명이라도 추가 가능할까요?
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
오타 제보입니다.
수강하고 있는 좋은 강의의 내용이 명확히 전달되기를 바라는 마음으로 오타 제보 드립니다. 생산자 소비자 문제1.pdf[오타]소비자 스레드는 데이터를 소비자 고,[변경]소비자 스레드는 데이터를 소비하고,
-
미해결김영한의 실전 자바 - 중급 2편
제네릭 코드에서 new 키워드를 사용할 수 없다면 불변 객체를 어떻게 활용할 수 있나요?
불변 객체는 내부 필드에 변경이 생길 경우 새로운 객체를 반환해줘야 한다고 배웠습니다.제네릭 타입은 타입 소거 문제 때문에 new 키워드를 사용할 수 없는데... 이 경우 제네릭과 불변 객체는 공존할 수 없는 건가요?아래 코드와 같이 실습을 해봤는데 주석 처리한 부분을 어떻게 해결해야 할지 잘 모르겠습니다 ㅠㅠ public class Box<T extends Animal> { private final T value; public Box(T value) { this.value = value; } public T get() { return value; } public Box<T> withName(String name) { //이 부분을 어떻게 처리해야할까요..? } }public class Animal { private final String name; private final int size; public Animal(String name, int size) { this.name = name; this.size = size; } public Animal withName(String name) { return new Animal(name, size); } public class Dog extends Animal { public Dog(String name, int size) { super(name, size); } @Override public Dog withName(String name) { return new Dog(name, getSize()); } }
-
해결됨Readable Code: 읽기 좋은 코드를 작성하는 사고법
강의 배운 거를 프로젝트에 적용하고 있는데 궁금한 게 있어요!
public class MetricService { // 생략 private Map<String, Double> parseNetworkUsage(String line) { Map<String, Double> networkUsageMap = new HashMap<>(); Matcher matcher = NETWORK_PATTERN.matcher(line); if (matcher.find()) { String[] parts = line.split("\\s+"); if (parts.length >= 10) { long receivedBytes = parseLongSafely(parts[RECEIVED_BYTES_INDEX]); // 수신된 바이트 long transmittedBytes = parseLongSafely(parts[TRANSMITTED_BYTES_INDEX]); // 송신된 바이트 networkUsageMap.put(METRIC_MAP_NETWORK_REC, convertBytesToMB(receivedBytes)); networkUsageMap.put(METRIC_MAP_NETWORK_SENT, convertBytesToMB(transmittedBytes)); } } return networkUsageMap; } private double convertBytesToMB(long bytes) { return bytes / BYTES_TO_MB_DIVISOR; } private long parseLongSafely(String value) { try { return Long.parseLong(value); } catch (NumberFormatException e) { return 0L; } } }위는 MetricService 클래스고, 여기에 명령어 결과값을 파라미터로 받아서 네트워크 사용량을 파싱하는 parseNetworkUsage()가 있어요. 그리고 가독성을 위해 추출한 유틸성 메서드인 convertBytesToMB과 parseLongSafely 메서드가 있습니다. 제가 궁금한 거는 convertBytesToMB, parseLongSafely와 같은 유틸성 메서드는 MetricService 클래스 안에 둬야할지 아니면 무조건 유틸 클래스로 빼야하는지 궁금합니다! 재활용이 여러 번 되면 뺄 거 같은데.. 단 한 번만 사용이 되서 유틸 클래스로 빼기도 애매하고, 그렇다고 MetricService 클래스와는 관심사가 다르다고 생각해서 여기둬도 괜찮을까라는 생각이 자꾸 드네요.
-
미해결스프링 핵심 원리 - 기본편
만약 할인 정책 변경 시
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.7분쯤부터 말씀해주신 객체 지향 설계가 잘 돼있다라는 말이 만약 할인 정책이 정률로 바뀌는 경우 RateDiscountPolicy라는 구현체를 구현해서 OrderService에서 생성하기만 하면 다른 것들을 바꿀 필요가 없다는 말씀이신가요?? 제가 이해한게 맞는지 궁금해요
-
미해결스프링 핵심 원리 - 기본편
좋은 객체 지향 프로그래밍이란?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요! 좋은 강의 감사드립니다 !공부를 하면 할 수록, 왜? 에대해 의문을 품게 되니 질문이 끝도 없는 것 같습니다 ㅠㅠㅋㅋㅋ하지만 알아가는 재미가 있네요 ! 왜?에 대한 질문을 해보면서, 면접 때 어떻게 간결하고 임팩트 있게 말할 수 있을까? 하며 고민을 해보게 됩니다. "좋은 객체 지향 프로그래밍이란?"이라는 주제가 흥미로웠습니다. 이걸 의식의 흐름대로 생각해보았을 때 아래와 같은 답을 내보았어요. 좋은 객체 지향 프로그래밍이란 우선 객체지향의 특징을 살릴 수 있어야 한다.추상화, 캡슐화, 상속, 다형성 이 네가지가 프로그램을 유연하고 변경이 용이하게 만든다. 변경이 용이하다는 것은, 레고 블럭을 조립하듯이 컴포넌트를 쉽고 유연하게 변경하면서 개발하는 것을 말하는데이것은 다형성의 본질에 해당한다. 다형성의 본질은 역할과 구현으로 구분한다는 것이다.역할과 구현으로 구분을 하게 되면 실행 시점에 유연하게 변경할 수 있고, 클라이언트를 변경하지 않고 서버의 구현 기능을 유연하게 변경할 수 있다. 이 장점을 극대화 할 수 있도록 도와주는 것이 스프링이다.스프링에서 제공해주는 IoC, DI 기술로 다형성을 활용해서 역할과 구현을 편리하게 다룰 수 있도록 도와준다.스프링을 사용하지 않았을 때, OCP, DIP 원칙에 위배되었던 코드들을 해결할 수 있도록 도와준다. 결론: 객체지향의 특징을 살리고, 스프링을 사용해서 OCP, DIP 원칙도 지켜서 프로그램을 유연하고 변경이 용이하게 만드는 것이 좋은 객체지향 프로그래밍이라고 할 수 있다. 면접에서는 결론을 말하고 이전의 내용을 말하는 방식으로 설명한다면 충분한 답이 될지 궁금합니다. 혹은 "좋은 객체 지향 프로그래밍이란 무엇인가요?"에 좋은 답변이 될 수 있는, 3문장으로 간결하게 말할 수 있는 문장이 있다면 조언 부탁드리겠습니다 !
-
미해결김영한의 실전 자바 - 기본편
OCP에서 궁금한게 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]OCP를 공부하면서 궁금한점이 있습니다.Car 인터페이스를 implements 하는 GoodCar이라는 클래스에 Nav() 라는 네비게이션 기능을 추가하려면 Car 인터페이스에도 Nav()라는 함수를 추가해야 Driver가 사용가능할거 같습니다. 이러면 기존의 Car을 implements하는 클래스들이 매서드 미구현으로 에러가 발생합니다. 그래서 Car 인터페이스를 안바꾸려면 앞서 배운 fly 인터페이스처럼 따로 인터페이스를 만들면 구현은 가능할거 같은데, 이런 경우 OCP를 지킨다고 할 수 있나요? 아니면 다른 방법이 있을까요?
-
미해결스프링 핵심 원리 - 기본편
스프링 기술을 만든 이유와 핵심 컨셉
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 !스프링이란? 챕터를 공부하고 있습니다 !이 강의를 듣고 스프링이 무엇인지이 기술을 왜 만들었는지이 기술의 핵심 컨셉이 무엇인지 이 3가지에 대한 답을 정의하고 싶었는데, 제가 잘 이해한것인지 확인하고 싶어서 글을 남깁니다 ! 스프링이란?객체지향 언어가 가진 강력한 특징을 살려내는 프레임워크다. 이 기술을 왜 만들었는지.좋은 객체지향 애플리케이션을 개발할 수 있게 도와주기 위해서. 이 기술의 핵심 컨셉이 무엇인지이 부분에 대한 해답을 얻지 못해서 검색을 통해 찾아보았는데, DI(DependencyInjection)과 AOP라고 합니다.의존성 주입: 객체 간의 관계를 외부에서 주입하여, 코드 간 결합을 줄이는 방식으로, 이로 인해 테스트가 용이해지고 유지보수가 쉬워집니다.AOP: 공통적인 기능(예: 로깅, 보안)을 특정 코드에서 분리하여, 여러 클래스에서 사용 가능한 방식으로 적용할 수 있습니다. 제가 이해한 게 맞는지 궁금합니다.부족한 답변이었다면, 추가적인 조언 부탁드리겠습니다 !
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
고급1편 안 듣고 고급2편 들어도 되나요?
고급2편 내용 먼저 들으려는데 멀티스레드 동시성 이거 무조건 들어야 고급 2편 들을 수 잇을까요?
-
미해결김영한의 실전 자바 - 기본편
@Override
[질문 내용]자식 클래스에서 부모 클래스를 상속받아 변수를 새로 재정의 할 때 왜 변수에는 @Override 어노테이션을 사용 할 수 없는 건가요? 생각해보니까 메소드 오버라이딩은 있어도 자식클래스에서 부모클래스의 동일한 변수는 왜 재정의가 안되는 거죠?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
재생이 안됩니다ㅠㅠ
갑자기 모든 강의가 재생이 안됩니다ㅠㅠ
-
미해결김영한의 실전 자바 - 중급 2편
인텔리제이 SDK 오류
인텔리제이에서 java-mid2 폴더를 열면 파일들이 안보이는데 SDK 오류 같습니다. 어떤 버전의 SDK 써야 오류 안나나요? 지금은 Eclipse Termurin 21.0.4 -aarch64 설정되어 있네요
-
미해결스프링 핵심 원리 - 기본편
스프링관련 로그가 뜨지않습니다
강의에서는 스프링관련 로그 (Bean)들이 뜨던데저는 뜨지않습니다 뭐가 잘못된 걸까요?? 물론 코드는 오류없이 동작합니다
-
미해결김영한의 실전 자바 - 중급 1편
engine = new Engine(this) 는 어떤 식으로 인스턴스화가 이루어지나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. private String model; private int chargeLevel; private Engine engine; public Car(String model, int chargeLevel) { this.model = model; this.chargeLevel = chargeLevel; engine = new Engine(this); }Car 를 생성하는 도중에 Engine 객체를 생성하기 위해 this 로 자기 자신을 넘겨주게 되면 어떤 순서로 객체가 만들어지는 건가요?- 초기화가 제대로 이루어지지 않은 Car 객체를 Engine에 넘겨주는 건가요?- 아니면 객체의 필드를 초기화하고 생성하기 이전에 참조 값만 생성해서 넘겨주는 건가요?
-
해결됨김영한의 실전 자바 - 기본편
final 참조형 변수
[질문 내용]섹션9 final 변수와 참조 에서 final을 참조형 변수에 붙었을 때 참조 대상 자체를 다른 대상으로 변경하지 못한다는 점에서 이 참조형 변수는 싱글톤(singleton) 패턴이라고 동일시해도 되는 것인가요?
-
해결됨김영한의 실전 자바 - 기본편
메소드 영역, 힙 영역
[질문 내용]섹션8. 자바 메모리 구조와 static 강의 1분 42초 쯤에 김영한 강사님께서 static영역에서 변수 데이터, 변수 선언해서 스태틱을 해버리면 힙 영역의 참조값을 참조할 수 있다고 그러셨는데,이 말인 즉슨, static 메소드에서 매개변수로 변수 데이터를 선언해서 그 매개변수를 통해 참조값을 참조할 수 있다고 얘기하신게 같은 의미인지 궁금해서 질문합니다.