묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 기본편
선생님 혹시 자바스크립트 강의는 만드실 계획이 없나요??
다른질문입니다만,....김영한 선생님께 자바스크립트 배울수있다면 너무 좋을것같아서요..ㅠㅠ
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
저는 왜 EOFException이 아니라 SocketException이 발생할까요 ?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요.강의를 쭉 들으면서 ServerV3, V4를 키고 ClientV3,4 를 강제 종료시키면 영한님은 EOF 오류가 뜨는데 저는 Socket 오류가 발생합니다. 제가 잘못한건지 아니면 상황에 따라 다른건지 궁금합니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
EX1번문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]영한쌤이랑 다르게 int sum= a + b + c; 을 생각못하고리턴값으로 결과는 똑같이 얻었는데 영한쌤과 과정이 다르니 틀렸다고 봐야겠죠?..가능하다면 쌤이랑 다르게 int sum = a + b + c;를 작성하지 않은 것에 대한 단점도 알고 싶습니다ㅠㅠ 어렵네요..
-
미해결스프링 핵심 원리 - 기본편
2개의 MemoryMemberRepository 인스턴스 생성?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]복습을 하면서 궁금한 점이 생겼습니다. AppConfig에서 memberService메서드와, orderService 메서드에서 동일하게 memberRepository()메서드를 호출하게 되는데요, public class AppConfig { // 생성자 주입(DI) public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } private MemberRepository memberRepository() { return new MemoryMemberRepository(); } // 생성자 주입(DI) public OrderService orderService() { return new OrderServiceImpl(memberRepository(), discountPolicy()); } private DiscountPolicy discountPolicy() { // return new FixDiscountPolicy(); return new RateDiscountPolicy(); } }이렇게 되면 힙 영역에서 각각 다른 참조 주소를 가진 MemoryMemberRepository 인스턴스를 생성하는게 맞나요..? 동일하게 사용이 되는데 같은 인스턴스를 사용하게 하는 방법은 없는지 궁금합니다 !
-
미해결스프링 핵심 원리 - 기본편
AppConfig에서 작성한 메서드의 반환타입을 인터페이스로 정한 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 좋은 강의 감사드립니다 ! AppConfig 클래스에서 만든 메서드를 보면public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } private MemberRepository memberRepository() { return new MemoryMemberRepository(); }memberRepository의 메서드의 반환타입이 MemberRepository로 인터페이스를 반환하고 있습니다. 이때 생각해볼 수 있는 점은MemberServiceImpl의 생성자에서 요구하는 파라미터가 인터페이스이기 때문이다라고 볼 수 있는데요, 만약 인터페이스를 반환하지 않고 구현체(MemberServiceImpl)을 반환한다면 어떤 아쉬움이 남을지 고민해보았는데 답이 나오지 않습니다 ㅠㅠ 혹시 인터페이스로 반환하게 되었을 때의 장점과 구현체를 반환하게 되었을 때의 단점을 알 수 있을까요..!?
-
해결됨오브젝트 - 기초편
도메인 추출 방법
안녕하세요. 먼저, '객체지향의 사실과 오해'와 '오브젝트' 책과 더불어 이 강의까지 수강하게 되었습니다. 정말 좋은 지식을 전달해주셔서 감사합니다! 창피하지만 제가 어려워하고 있는 부분은 요구사항에서 도메인을 추출하는 것입니다. 예를 들어, 영화 예매 시스템같은 경우 제가 혼자 생각했을 때는 단순히 '영화', '할인' 정도로밖에 도메인을 추출을 못했습니다. 책과 강의를 통해 '상영'이라는 도메인을 추출할 수 있다는 사실은 생각지도 못했습니다.혹시, 이렇게 여러 도메인들을 추출하기 위한 기준이라던가 방법이 따로 있을지 궁금하여 질문드립니다. 아니면 역시 많이 생각해보고 구현해보는 방법밖에 없는 걸까요? ㅜㅜ
-
미해결김영한의 실전 자바 - 기본편
추상 클래스, 인터페이스
인터페이스가 추상 클래스보다 더 제약이 있다고 강의 내용에서 배웠습니다.그러나 구성에는 인터페이스가 더 많은 것을 포함하고 있는 것 같아 궁금합니다!강의 내용에서는 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 어노테이션을 사용 할 수 없는 건가요? 생각해보니까 메소드 오버라이딩은 있어도 자식클래스에서 부모클래스의 동일한 변수는 왜 재정의가 안되는 거죠?