묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬 알고리즘 트레이딩 파트1: 알고리즘 트레이딩을 위한 파이썬 데이터 분석
local 환경에서 수업을 진행해도 무리가 없을까요?
local 사양이 괜찮은 편이여서 그대로 진행하려고 합니다. 괜찮을련지요? 기존에 수업을 듣다가 프로그래밍에 관심이 생겨서, C언어 기본, C++ 자료구조 및 알고리즘을 제대로 학습한 후에 돌아왔습니다. 다시 수강해보겠습니다~
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
범위 비교 질문
안녕하세요.범위를 비교하는 방식의 성능차이에 대해서 궁금한데요.1번1<=x && 3>=x2번x in 1..31번방식에 비해 2번방식은 수열을 순회하면서 수열에 포함 여부를 확인하게 되는 방식일거 같은데, 제 예상이 맞을까요? 그렇다면 성능상 더 좋지 않을거 같아서요.감사합니다.
-
미해결김영한의 실전 자바 - 기본편
왜 변수는 오버라이딩 불가능하고, 메서드는 오버라이딩이 가능한가요?
[질문 내용]변수는 오버라이딩이 불가능한 반면, 메서드는 오버라이딩이 가능한 이유가 궁금합니다.메서드는 가상테이블(vtable)을 가지고서 실제 메서드 호출시 파라미터로 넘어온 주소값을 기준으로 동적으로 메서드를 찾아서이고,반면 변수는 가상테이블이 아닌 현재 참조 변수의 타입을 기준으로 값이 정해져있기 때문일까요?자바에서 모든 인스턴스 메서드가 vtable 을 통해 호출된다고 이해하면 될까요?
-
미해결Readable Code: 읽기 좋은 코드를 작성하는 사고법
오버 엔지니어링
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요. 우빈님인프런 워밍업 클럽 덕분에 우빈님 강의를 끝까지 수강 중에 있는 러너입니다! 오버 엔지니어링 강의에서 오버 엔지니어링을 경계하고 적재적소에 리팩토링 강의에서 배웠던 것들을 써야한다. 이건 '경험'의 차원이라고 말씀하셨는데 실무에서 객체지향으로 개발하지 않는 경우에는 따로 '경험'을 쌓아야하는데 우빈님 강의 외에 적절하고 정확한 경험을 쌓을 수 있는 방법이 따로 있을까요? 간접 경험이라도 충분히 쌓을 수 있을 만한 방법이 있다면 추천 부탁드립니다!
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
LoadData함수가 호출되지 않습니다.
UserGoodsData클래스와 UserSettingsData클래스에서 사운드, 골드, 젬의 값이 바뀌어도 다시 실행하면 Default값으로 계속 초기화됩니다. UserDataManager의 LoadData함수가 호출되지않는 이유를 잘 모르겠습니다.추가로 레지스트리 편집기에서 확인해봤을 때, 커스텀메뉴를 통해 젬과 골드를 늘리면 레지스트리값은 변화하지만, 실행하면 초기화되는 상황입니다.
-
해결됨오브젝트 - 설계 원칙편
9-6 순환참조인거 같은데..
이 코드에서 Game은 GameLoop만 알지만Cui, Gui는 GampLoop와 Game을 동시에 알죠.즉 Gamp과 Cui, Gui은 쌍방향 참조로 봐야하지 않을까요. 실제 Game을 수정하면(exe로 메소드명을 바꾼다던가) Gui, Cui도 수정해야하니까요.
-
해결됨오브젝트 - 설계 원칙편
8-5 오타
astractreader인데...
-
해결됨오브젝트 - 설계 원칙편
7-5 자막오타
parser..
-
해결됨오브젝트 - 설계 원칙편
7-5 자막오타
parser..
-
해결됨오브젝트 - 설계 원칙편
7-3 AbstractReader에 대해
이 그림 자체의 문제라기보다 도출되는 과정의 문제인데요.과정을 보면JsonReader와 CsvReader의 코드를 관찰한다.공통점을 발견한다.상위모듈에 그 공통점을 기술한다.이렇게 했단 말이죠.헌데 이건 하위모듈의 구현상의 공통점으로 xml리더나 html리더를 만들 때도 그 공통점이 일어난다고 보장할 수는 없을 거에요. 특히 이 코드는 전적으로 로컬파일시스템에서 읽을 때나 readLines가 일치하지 원격파일 리소스에서 읽어 들일 때는 그렇지도 않죠.즉 하위 구현에서 얼마든지 공통점은 달라질 수 있는데 그걸 단단한 상위모듈에 모아서 정의해도 되냐는 것입니다. 저는 인터페이스까지는 몰라도 추상클래스는 하위모듈에 있어야한다고 생각이 듭니다.
-
해결됨오브젝트 - 설계 원칙편
7-3 모듈의존성 역전에 대해
이걸 정말 실무에서 실현하시는지 궁금해요.이건 뭐랄까 정말 이론적인 얘기 같아요.이 예제가 아주 적절한데, 보통 저런 구조의 별도 모듈에 구현되는 하위수준의 기능은 라이브러리이거나 스탠드얼론 생태계를 갖는게 일반적이죠.이건 실무적으로 보면 잭슨이 우리회사 인터페이스에 따라서 만들어져야한다 라고 말하는 것에 가까운 느낌이랄까,저는 실무적에서 기능 모듈의 인터페이스가 도메인 모듈에 소속되게 만든 경험이 아예 없는 거 같아요. 소시적에 이론 따라 몇 번 해봤는데 완전 별로였거든요.
-
해결됨오브젝트 - 설계 원칙편
7-3 자막오타
-
미해결김영한의 실전 자바 - 중급 1편
equals - 구현(2)에서 자동 완성으로 코드 한줄이 없이 나오는데 제가 생각한게 맞나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]주석처리한 부분이 영상때와 지금 인텔리제 버전이 달라선지 저 코드는 없이 만들어지더라구요저코드는 '자기 자신이면 바로 true 리턴해줘' 라는 코드가 맞나요?(if 부분이 같은 참조값일때 return true)위 코드가 없어도 밑에 다운캐스팅한 부분에서 비교하면 true가 나올거니까 이젠 안쓰는거라 지운건지없어도 돌아갈 거 같은데 저부분이 제가 생각하는 것과 같은지 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
OrderServiceImpl 클래스에 의존성 주입이 되는 이유를 모르겠습니다
OrderServiceImplTest 코드에서OrderService orderService = new OrderServiceImpl(new MemoryRepository(), new FixDiscountPolicy()) 라는 코드를 작성하셨는데요이 테스트 코드에서OrderserviceImpl 내의 discountPolicy 에 의존관계가 주입되는 이유가 궁금합니다.new FixDiscountPolicy() 는 다음 강의에서 이 클래스에 @Component를 붙이므로 이번 강의에서는 @Component 가 작성이 안되어있는 것으로 아는데 이 말은 빈으로 등록이 안된다는 것으로 이해되는데요. 그러므로 OrderserviceImpl 는 @AutoWired를 이용한 자동주입을 사용하는데 것을 사용할 경우 이전강의인 다양한 의존관계 주입 방법 였던가요?빈에 등록되어있지 않으면 오류가 난다고 하셨습니다.그러니까 지금 현재 Test 코드에서 new FixDiscountPolicy() 이것은 빈이 등록되지 않은 없는 순수 자바 객체일것 같은데 OrderserviceImpl 에서 discountPolicy 를 자동주입 하려는데 어떻게 오류가 나지 않나요?
-
미해결스프링 핵심 원리 - 기본편
Test코드는 통과하는데 CoreApplication 에러가 난다면
강의에서 3분 20초 정도부터 나오는 내용에서 수동빈 등록 vs 자동 빈등록에 대해서 Test코드가 문제 없이 성공했잖아요? 같은 빈의 이름이 두개인데 등록 성공했다는 뜻이죠.그런데 스프링 부트로 실행하는, 그러니까 CoreApplication에서 실행하는 본 코드에서는에러가 나잖아요?여기서 제가 궁금한게Test 코드가 본코드 실행전에 말그대로 정상 동작하는지 Test 하기 위함인데 Test 코드에서는 성공했는데 본 코드에서는 에러가 난다? 그렇다면 이거는 Test 코드의 목적이 없어지는것 아닌가요?제가 뭘 잘못 이해하고 있는걸까요?
-
해결됨오브젝트 - 기초편
(질문 글) Movie와 Customer의 위치
5-1. 객체 구현하기 (2:16)질문: reserve 함수 구현 시 Movie가 아래 처럼 전달될 수 도 있다고 생각했습니다.생각 1 (함수 인자로 Movie 전달):public Reservation reserve (Movie movie...) { ... }생각 2 (Movie Id를 전달 받고, 함수 내부에서 Movie 검색) 설계 관점에서 이러한 구현과 기존 구현은 어떻게 다르다고 이해할 수 있을까요?감사합니다.참조 (기존 구현된 코드): public class Screening { private Movie movie; public Reservation reserve (Customer customer, int audienceCount) { Money fee = movie.calculateFee(this).times(audienceCount); return new Reservation(customer, this, audienceCount, fee); } }
-
해결됨기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM
GC의 age와 관련하여 질문 있습니다.
안녕하세요!JVM 파트를 복습하다가 궁금한 점이 생겨 질문드립니다. Young Generation(Eden → S0 ↔ S1) → Old Generation → Permanent 영역으로 객체가 이동하는 과정에서 객체의 age가 세대 간 이동(Eden → S0 ↔ S1 포함)을 거치며 증가한다고 설명해주셨습니다. 그런데 제가 알고 있기로 age는 Young Generation 내의 Survivor 영역(S0 ↔ S1)을 이동할 때에만 증가하는 것으로 알고 있습니다.age는 객체가 Minor GC를 거쳐 살아남은 횟수로 일반적으로 약 15회 생존하면 Old Generation으로 승격될 수 있는 조건이 되고, Old Generation으로 승격된 이후에는 더 이상 age가 증가하지 않는다고 알고 있습니다. 혹시 이 동작 방식이 JVM 구현체에 따라 달라질 수 있는 부분인지 아니면 제가 알고 있는 age는 다른 age인 것인지 궁금해서 질문드립니다:)
-
해결됨오브젝트 - 기초편
(오타 제보) 2-3 문서 내 문구 수정 제안
2-3. 데이터와 프로세스 통합하기 6페이지동영상 강의 1:25원문: Shift or Responsibility제안: Shift of Responsibility영상의 흐름과 내용에서 중요한 부분은 아니지만, 정말 훌륭한 강의 자료에 조금이나마 기여하고 싶은 마음에 제보 드립니다. 감사합니다.
-
미해결TS/JS 디자인 패턴 with Canvas: 제로초에게 제대로 배우기
type/interface 정의 파일분리
강의 내용과는 무관하지만 평소에 고민하던 점이 있어 문의드려 봅니다 평소에 type/interface 정의를 어디 둘지 고민하는 경우가 많은데요d.ts를 만들어 타입끼리 묶어둠 각자 가장 관련도 높은 파일에 둠제로초님은 강의 예제 정도 규모의 프로젝트에서 어떻게 하시는지 궁금합니다 저는 타입이 먼게 싫어서 2번을 선호하는데 '관련도 높다'는 기준이 주관적이어서 위치를 명확히 잡기 어렵고, 개발이 진행되며 관련도가 바뀌는 경우도 생기더라고요
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
objmemberrepository 예외 발생
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]package io.member.impl; import io.member.Member; import io.member.MemberRepository; import java.io.*; import java.util.ArrayList; import java.util.List; public class ObjectMemberRepository implements MemberRepository { private static final String FILE_PATH = "temp/members-obj.dat"; @Override public void add(Member member) { List<Member> members = findAll(); members.add(member); try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(FILE_PATH))){ oos.writeObject(members); } catch (IOException e) { throw new RuntimeException(e); } } @Override public List<Member> findAll() { try(ObjectInputStream ois = new ObjectInputStream(new FileInputStream(FILE_PATH))){ Object findObject = ois.readObject(); return (List<Member>) findObject; } catch (FileNotFoundException e) { return new ArrayList<>(); } catch (IOException | ClassNotFoundException e) { throw new RuntimeException(e); } } }코드 동일하게 작성했는데 콘솔 메인에서 마지막 나이를 작성하니Exception in thread "main" java.lang.RuntimeException: java.io.NotSerializableException: io.member.Member at io.member.impl.ObjectMemberRepository.add(ObjectMemberRepository.java:22) at io.member.MemberConsoleMain.registerMember(MemberConsoleMain.java:52) at io.member.MemberConsoleMain.main(MemberConsoleMain.java:26)Caused by: java.io.NotSerializableException: io.member.Member at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1121) at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:336) at java.base/java.util.ArrayList.writeObject(ArrayList.java:949) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:565) at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:946) at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1431) at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1353) at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1115) at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:336) at io.member.impl.ObjectMemberRepository.add(ObjectMemberRepository.java:20) ... 2 more이런 예외가 발생합니다