묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
인텔리제이 설정 문제로 빌드가 안됩니다.
수동으로 빌드하면 잘 실행되는데 인텔리제이의 빌드 기능을 사용하면 첨부한 사진처럼 찾을 수 없다고 뜹니다.소스 경로와 컴파일 경로 설정 해주었고, configurations도 확인해봤는데 뭐가 문제인지 모르겠습니다.아예 삭제하고 다시 프로젝트를 만들어도 계속 같은 에러가 발생하는데 뭐가 문제인걸까요??
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
ReadFileV2 클래스 실행시 무한 루프 현상
public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream(FILE_NAME); long startTime = System.currentTimeMillis(); byte[] buffer = new byte[BUFFER_SIZE]; int fileSize = 0; int size; while ((size = fis.read(buffer)) != 1) { fileSize += size; } fis.close(); long endTime = System.currentTimeMillis(); System.out.println("File name: " + FILE_NAME); System.out.println("File size: " + fileSize / 1024 / 1024 + "MB"); System.out.println("Time token: " + (endTime - startTime) + "ms"); } } CreateFIleV1, 2, readFileV1 까지는 결과가 나오는데readFileV2는 결과가 나오지 않습니다 인텔리J에서 뭐 설정 해야 할게 있을까요? 추가로 BUFFER_SIZE를 8192 -> 100으로 줄여봐도 결과는 결과가 나오지 않네요..ㅠpublic static final int BUFFER_SIZE = 100;buffered.dat 파일에 에디터에서 설정 해라 라는거 같은데 인텔리제이 초기설정이 따로 있을까요..?This document contains very long lines Soft wraps were enabled to improve editor performance.This file explicitly re-assigned ot plain text
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
오타 제보드립니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]단순 오타 제보드립니다.IO 기본1 pdf 에 HDD, SSD 인데, HDD, SDD 라고 되어있습니다.
-
미해결김영한의 실전 자바 - 기본편
static 파트의 MathArrayUtil 문제에 대해 질문있습니다
밑에 동일한 질문이 있긴한데 이해를 못하겠어서요저는 이런식으로 sum이라는 private static으로 선언된 변수를 만들고 해당 변수를 사용해서 sum,average 메소드에 사용 했는데요 이렇게 비슷하게 사용하신분의 질문글의 답글을 보니까 클래스 변수를 쓰면 안되고 이유는 여러곳에서 해당 클래스를 사용하게 될 경우 sum의 값이 손상될 수 있다는 이유였는데요 private static을 쓰는데 어떻게 여러곳에서 sum 변수에 접근할 수 있는지 궁금합니다 private은 해당 클래스 내에서만 사용할 수 있는거 아닌가요? 만약 사용할 수 있다고 해도 private 이라는 접근제어자가 다른 곳에서 사용 하지 못하게 하려는 목적이라고 알고있는데 그럼 private을 이용하여야 하는 이유를 모르겠습니다package static2.ex; public class MathArrayUtils { private MathArrayUtils(){} private static int sum; static int sum(int[] values){ for (int v : values) { sum += v; } return sum; } static double average(int[] values) { return (double)sum / values.length; }
-
미해결스프링 핵심 원리 - 기본편
관심사의 분리 테스트 코드 수정 - BeforeEach 사용 이유
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]관심사의 분리 강의 24분 20초대에 MemberServiceTest 테스트 코드 수정 부분입니다. 강사님께서 AppCofig를 바로 사용하시는게 애매하다고 말씀하시고 "BeforeEach"를 통하여, 각 테스트 진행 전 memberService를 새롭게 정의하는 방식으로 알려주셨습니다궁금한점이, 생성된 memberService 인스턴스가 일부 테스트 함수에서, 멤버 변수로 값을 대입 받는다거나 그런 로직이 있는 경우들 때문에 애매하다고 말씀을 해주신 것일까요? (좀 더 상세하게 알려주시면 감사드리겠습니다)현재 강의에서 사용되는 MemberServiceImpl 클래스에서 정의되어있는 메서드들은 재활용 되어도 별 문제 없다는 생각이 들어, MemberServiceTest-테스트 클래스 상단에 AppConfig 정의해주고 memberService도 초기화하지 않은 이유에 대해 좀 더 상세하게 알고 싶어 질문 드리게 되었습니다
-
해결됨Readable Code: 읽기 좋은 코드를 작성하는 사고법
질문 제목을 뭐라 적어야할지 모르겠습니다. 죄송합니다
우선 강의 너무 재밌게 잘 보고있단 말씀 드리고 싶습니다. 일단 새로운 도메인에서 혼자 리팩토링을 하고있었는데요, List<StudyCafeLockerPass> 를 일급 컬렉션으로 감싸 StudyCafeLockerPasses 를 만들었습니다. 여기서 StudyCafeLockerPass 에게 type 과 duration 이 같은지 비교하는 질문을던질 때 StudyCafePass 자체를 인자로 넘길지, 아니면 StudyCafePass 로부터 type 과 duration 을 꺼내서 넘길지 고민입니다. public class StudyCafeLockerPasses { private final List<StudyCafeLockerPass> lockerPasses; public StudyCafeLockerPasses(List<StudyCafeLockerPass> lockerPasses) { this.lockerPasses = lockerPasses; } public static StudyCafeLockerPasses of(List<StudyCafeLockerPass> lockerPasses) { return new StudyCafeLockerPasses(lockerPasses); } // TODO V1. 여기 (StudyCafeLockerPass 에게 질문을 던질때 StudyCafePass 자체를 넘길지) public StudyCafeLockerPass findOneBy(StudyCafePass selectedPass) { return lockerPasses.stream() .filter(option -> option.isEqualWith(selectedPass)) .findFirst() .orElse(null); } // TODO V2. 여기 (StudyCafeLockerPass 에게 질문을 던질때 StudyCafePass 에서 type 와 duration 을 getter 로 꺼내서 넘길지) public StudyCafeLockerPass findOneBy2(StudyCafePass selectedPass) { return lockerPasses.stream() .filter(option -> option.isEqualWithV2(selectedPass.getPassType(), selectedPass.getDuration())) .findFirst() .orElse(null); } } V1 같은 경우의 StudyCafeLockerPass 메서드는 아래와 같습니다.public class StudyCafeLockerPass { private final StudyCafePassType passType; private final int duration; private final int price; public boolean isEqualWith(StudyCafePass studyCafePass) { return isSamePassType(studyCafePass.getPassType()) && isSameDuration(studyCafePass.getDuration()); } public boolean isSamePassType(StudyCafePassType passType) { return this.passType == passType; } public boolean isSameDuration(int duration) { return this.duration == duration; } } V2 경우의 StudyCafeLockerPass 메서드는 아래와 같습니다.public class StudyCafeLockerPass { private final StudyCafePassType passType; private final int duration; private final int price; public boolean isEqualWithV2(StudyCafePassType passType, int duration) { return isSamePassType(passType) && isSameDuration(duration); } public boolean isSamePassType(StudyCafePassType passType) { return this.passType == passType; } public boolean isSameDuration(int duration) { return this.duration == duration; } }제가 느끼기에는 Getter 를 사용하지 않으려면 V1 이 맞는거같고.., 의존성을 생각한다면 V2 가 맞는거같은데 강사님의 기준이 있으실까요 (질문이 제가 봐도 이상한것같은데.. 죄송합니다)
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
백로그에 대한 질문이 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]서버에서는 서버 소켓으로 PORT 번호 지정해서 열어놓고클라이언트가 TCP 연결을 완료하면 서버에서 백로그큐에 연결 정보를 저장하고, 서버에서 accept()를 하면 큐에서 꺼내 소켓을 생성한다고 설명하셨습니다. 근데 GPT나 다른 사람의 내용을 종합하면 클라이언트의 TCP 연결이 요청되면 해당 연결 정보를 syn 큐에 저장하고 연결이 완료되면 os에서 백로그에 저장한 뒤, 서버에서는 accept()를 하면 단순히 백로그에 대한 정보를 꺼내서 소켓을 만든다고 합니다. 내용을 정리하던 중 헷갈려서 어떤 것이 정확히 맞을지 궁금해서 질문드립니다!
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
[16강] 확장함수 관련 질문입니다!
안녕하세요 강사님 확장함수 관련하여 질문이 있습니다. 강의 중에 확장함수는 원본 클래스의 private, protected 멤버 접근이 안된다.라고 말씀해주신 부분이 있습니다. 제가 확장함수를 이해하기로는 특정 클래스에 내가 사용할 특정 로직을 심는 함수라고 이해를 했습니다. 이렇게 이해를 하고 나니어짜피 외부에서는 확장함수로 추가할 원본 클래스의 private 혹은 protected 멤버에 접근이 불가능할텐데,확장함수는 원본 클래스의 private, protected 멤버 접근이 안된다. 내용은 어디에 어떻게 적용이 되는 것인지 이해가 잘 가지 않습니다. 혹시 어떠한 경우에 적용이 되는 내용인지 조금 더 구체적인 예시를 들어주실 수 있으실까요 ?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
스캐너 사용하는 문제풀이중 에러코드
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]스캐너 사용한 여러 문제풀이시 전부 같은 에러코드로 컴파일이 되지 않는데요.강사님이 쓰신 코드와 완전히 같은데도 말이죠.어떻게 해결 하나요?
-
해결됨김영한의 실전 자바 - 기본편
this 사용에 관한 질문 드립니다.
[질문 내용]안녕하세요 항상 좋은 강의 감사드립니다.영한님께서는 this를 무조건 붙이는 방법론에 대해서 추천하시지 않는다고 하셨는데, 그럼 this의 사용을 피하기 위해 의도적으로 변수명을 다르게 지으시는지 여쭤보고 싶습니다. 코드는 깔끔해지겠지만 오히려 헷갈리는 상황이 발생할수도 있겠다는 생각이 들어 여쭤봅니다! 감사합니다!
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
선생님 감성적이시네요 MBTI 가 뭔가요 궁금합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
스레드 대기 집합에는 대기 목록의 개수 제한이 따로 없나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]스레드 대기 집합에는 대기 목록의 개수는 제한이 따로 없나요?
-
해결됨진짜! 자바스크립트(Javascript) - 기초부터 고급까지
Global 스코프 질문
브라우저 환경에서 window객체가 Global 스코프 역할까지 한다고 이해했습니다.그런데 let,const로 정의한 함수들을 this, window를 명시하지 않고 실행하면 잘 실행되는 이유를 말씀하시면서 'let,const로 정의하면 Global스코프라고 볼 수 있는 Script스코프에 올라간다' 라고 하셨는데여기서 말하는 Global 스코프는 window객체를 말하는 Global스코프와 다른건가요?그럼 Global스코프(브라우저의 window보다 포괄적인 범위)는 내부에서 또 Script스코프와 Global스코프(브라우저환경에선 window객체)로 나눠지는거라고 이해하면 되는게 맞을까요...?
-
해결됨iOS Clean Architecture & MVVM: RxSwift 완전 정복
강의 질문있습니다.
질문강의 중 스냅킷을 사용하여 이미지 뷰의 제약을 설정하셨는데make.leading.top.bottom.equalToSuperview().inset(20) make.width.height.equalTo(80).top과 bottom을 상위 뷰에 걸어 상대적 높이를 설정했으나, 절대적 높이 height도 별도로 걸어주신 이유가 있을까요?
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
write(int b) 인 이유는 무엇일까요?
3장의 초반 내용중에 read() 의 반환값이 byte가 아닌 int 인 이유를 설명해주셨는데요. (EOF 을 알기위해서...) 그렇다면 write(byte b) 가 아니라 write(int b) 인 이유는 뭘까요? 어차피 4byte 중에 하위 1byte만 write될 건데 write(int b) 로 한 이유가 궁금하네요. write(-1) 이렇게 한다고 해서 read()에서 -1로 읽혀서 EOF 라고 판단되지도 않을거 같아요.
-
미해결김영한의 실전 자바 - 기본편
객체 생성에 관해 제가 이해한게 맞나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]헷갈리는 부분이 있어서요. 예시에 나온 Student 클래스를 예로 들면student1 객체를 만들었을때 student1.name = "익명" 이라고한다면 name이라는 멤버변수에 접근을 해서 "익명"이라는 값을 할당하는게 실제 Student 클래스의 name에다가 해당 값을 할당하는게 아니라 Student 클래스를 바탕으로 만들어진 메모리 x001에 있는 name 변수에다가 값을 할당한다는거 같은데 제가 이해한게 맞나요?
-
미해결김영한의 실전 자바 - 기본편
프로젝트 생성 질문 드립니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의처럼 src 패키지에 main 클래스만 있는게 아니라 이상한 패키지가 다수 생성되는데 어떻게 하나요?
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
ScannerWhileEx4 Switch()
[질문 내용]Scanner scanner = new Scanner(System.in); int total = 0; while (true) { System.out.println("1 : 상품 입력, 2 : 결제, 3 : 프로그램 종료"); int option = scanner.nextInt(); scanner.nextLine(); // 이전에 입력된 개행문자 제거 switch (option) { case 1: System.out.print("상품명을 입력하세요. : "); String pName = scanner.nextLine(); System.out.print("상품의 가격을 입력하세요. : "); int pPrice = scanner.nextInt(); System.out.print("구매 수량을 입력하세요. : "); int pQuantity = scanner.nextInt(); total += pPrice * pQuantity; System.out.println("상품명 : " + pName + " 가격 : " + pPrice + "원 수량 : " + pQuantity + " 합계 : " + (pPrice * pQuantity)); break; case 2: System.out.println("총 비용 : " + total); total = 0; // // 결제 후 총 비용 초기화 break; case 3: System.out.println("프로그램을 종료합니다."); break; default: System.out.println("잘못된 접근입니다."); } }김영한 강사님께서 마지막쯤에 switch() 로 활용해서 풀어봐도 좋다고 하셔서 해보았습니다.그런데 switch문은 각 case마다 break; 를 넣어야지 해당 case 값에 속한 코드마다 수행을 할 수있는데 문제는 이게 while(true)로 무한반복중이라 3. 프로그램 종료 를 눌러봐도 콘솔에 계속 무한로딩이 끝나지 않고 있습니다. 어떻게 하면 좋을까요?
-
해결됨파이썬 알고리즘 트레이딩 파트2: Interactive Brokers API를 활용한 실시간 알고리즘 트레이딩
interactive brokers 로그인할 때 에러가 발생합니다.
Trader Workstation을 offline으로 설치한 이후에 로그인이 안되어서요 ㅠㅠ이상한게 아래와 같이 포탈로는 새로 만든 아이디로 접속이 되는데 동일한 아이디 패스워드로 Trader Workstation > Paper trading 접속하면 아래과 같은 메세지가 나옵니다. (조심스럽게 패스워드를 여러번 입력해 봐서 제 타이핑 실수는 아닌 거 같아요, 말씀드렸듯이 인터넷 포탈 페이지 접속은 되구요)혹시 몰라 다른 아이디를 만들어서 해 보았고가상머신에서도 시도했는데동일한 증상이 발생하네요.시간이 좀 지나면 되는지 확인하려고 3일째 이러고 있는데 역시 같은 문제입니다. 혹시 이런 문제 생기는 분 계실까요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
문제와 풀이2 제 풀이에 오류를 알고 싶습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]풀이를 보니 풀이가 훨씬좋은 방법인건 인지가 되지만 제가 생각했을때 제 코드도 실행은 되어야 맞는데 자꾸 출금을 할때 출금 후 while문 처음으로 되돌아가지 않고 다시 출금액을 입력하라고 나옵니다 이유가 뭘까요..? 입금 시에는 정상적으로 while문 처음으로 돌아갑니다.