묻고 답해요
150만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
순위 정보를
불러오고 있어요
-
미해결파이썬 알고리즘 트레이딩 파트1: 알고리즘 트레이딩을 위한 파이썬 데이터 분석
Region을 왜 Korea Central로 하셨나요?
가장 빠르게 미국 주식 주문하기 위해선, East US가 가장 좋지 않나 싶어서 질문드립니다.
-
미해결김영한의 실전 자바 - 중급 1편
접근제어자 여부
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]package nested.test; public class OuterClass3 { public void myMethod(){ class LocalClass{ void hello(){ System.out.println("LocalClass.hello"); } } new LocalClass().hello(); } } hello() 메서드가 내부에서만 사용될 때도 public으로 선언하는 경우가 많은데, private이나 default로 선언하는 것이 더 나은 선택일까요? 어떤 기준으로 접근 제어자를 선택하는 게 좋을까요?class OuterClass3와 myMethod가 public이기 때문에 통일해준걸까요?우선 저는 지역클래스 안에서만 사용하기 때문에 defalut로 선언해서 문제를 풀었습니다만 의문이 생겨 질문남깁니다.
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
네트워크에 관련되서 질문 드려봅니다 선생님!
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예[질문 내용]언제나 강의를 잘 듣고 있습니다 감사합니다! 다름이 아니라 제가 개념이 좀 흔들려서 이렇게 문의 드려봅니다..! 네트워크를 통해 TCP/IP로 통신을 하는 상황에서 MAC주소가 없어도 IP의 주소만 가지고 통신을 할 수 있는게 ARP를 사용해서 서버의 MAC 주소를 찾아낼 수 있어서라는데 이게 맞는건가요? 확실하게 알고자 질문드려봅니다!
-
미해결김영한의 실전 자바 - 중급 1편
바깥 클래스의 인스턴스의 멤버에 접근
1. 강의 내용과 관련된 질문인가요?예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요, 강의 수강 중 궁금한 것이 생겨 여쭤보게 되었습니다. 내부 클래스가 바깥 클래스의 인스턴스의 멤버에 접근, 지역 변수는 내부 클래스 특징 + 지역 변수에 접근 이라는 것에 대해 여쭤보고 싶습니다. 강의 자료 중 '바깥 클래스의 인스턴스의 멤버에 접근' 이라는 것이 바깥 클래스에 있는 '바깥 클래스 자기 자신'에 대한 객체나 '다른 클래스 타입으로 선언한 객체'를 사용할 수 있다는 말일까요 ? 그리고 지역변수 접근이라는 말도 여쭤보고 싶은데, 예시 코드 void process()를 보면 메서드 내부에 지금 지역 클래스가 있습니다. 지역 변수 접근이라는 말은 바깥 클래스의 메서드 내부에서 존재한다는 말일까요 ?
-
해결됨김영한의 실전 자바 - 기본편
final int value를 생성자를 통해 초기화하는 경우
[질문 내용]final이 붙은 int value를 생성자를 통해 초기화하는 법을 배웠습니다. 그런데, final이 변수 앞에 붙은 경우, 생성자를 통해서 한번만 초기화 될 수 있다고 했는데, 아래 ConstructInit 메서드를 두 번 사용하여 초기화를 두 번 진행한 것을 볼 수 있습니다. 한번만 초기화 할 수 있다고 했는데, 왜 객체를 두개나 생성해서 final int value를 두번 초기화한 것일까요?final int value; public ConstructInit(int value) { this.value = value; } package final1; public class FinalFieldMain { public static void main(String[] args) { //final 필드 - 생성자 초기화 System.out.println("생성자 초기화"); ConstructInit constructInit1 = new ConstructInit(10); ConstructInit constructInit2 = new ConstructInit(20); //한번만 초기화 된다며 System.out.println(constructInit1.value); System.out.println(constructInit2.value); } }
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
인텔리제이
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.인텔리제이 설치하고 설치옵션이 뜨는데 뭘 선택해야되나요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
javac에 대해서 궁금한 점이 있습니다
안녕하세요 강의를 보고 javac에 대해서 궁금한 점이 있어서 질문 드립니다..class로 컴파일 된 파일을 각각 os에 맞는 자바가 각자의 os에 맞게 바꿔서 실행을 한다고 하셨는데javac도 java이지 않나요?. 정확한지 모르겠지만 linux에서 컴파일한 .class와 window에서 컴파일한 .class의 값이 다르다면window에서 컴파일한 .class 파일이 linux에서 실행이 되는 건가요? 모든 os에서 실행이 되려면 .class 파일의 내용은 같아야 될 것 같은데궁금합니다.
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
문제와 풀이 invokeAll()로 풀때 예외처리
안녕하세요 해당 문제를 invokeAll()로 풀었는데 예외처리 부분을 어떻게 처리해야할지 궁금해 질문 올렸습니다. 저는 예외를 main메서드에서 잡았지만 , NewOrderService에 try-catch문을 써서 예외를 잡는게 뭔가 응집도가 높아보인다 해야하나? 관련있는 코드끼리 모여있어서 더 유지보수 하기 좋은 코드라고 생각합니다. 그럴려면 order 메서드 안에 이중 try문을 써야하는게 최선인가요? (invokeAll, future.get() 2번) public class NewOrderService { private final ExecutorService es = Executors.newFixedThreadPool(10); public void order(String orderNo) throws InterruptedException, ExecutionException { InventoryWork inventoryWork = new InventoryWork(orderNo); ShippingWork shippingWork = new ShippingWork(orderNo); AccountingWork accountingWork = new AccountingWork(orderNo); List<Callable<Boolean>> works = List.of(inventoryWork, shippingWork, accountingWork); //작업 요청 try { List<Future<Boolean>> futures = es.invokeAll(works); for (Future<Boolean> future : futures) { Boolean result = future.get(); } } finally { es.close(); } } .........InventoryWork,ShippingWork,AccountingWork 클래스 } public class OrderServiceTestMain { public static void main(String[] args) { String orderNo = "Order#1234"; NewOrderService orderService = new NewOrderService(); try { orderService.order(orderNo); log("모든 주문 처리가 성공적으로 완료되었습니다."); } catch (ExecutionException e) { log("일부 작업이 실패했습니다."); throw new RuntimeException(e); } catch (InterruptedException e) { throw new RuntimeException(e); } } }
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
FutureTask 객체의 사용후 GC 유무
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 Future 관련 공부를 하다가 궁금증이 생겨 질문 남겼습니다. ThreadPoolExecutor 객체 안에 FutureTask 객체를 만들고 그 안에 task(Callable 구현 객체)를 보관한다고 알고 있습니다. 그러면 스레드풀에 있는 스레드가 해당 Future 작업을 완료한 후에 main 스레드에서 future.get()으로 값을 반환 받고 난 후에 해당 future 객체는 GC가 알아서 처리해주는건가요?
-
미해결김영한의 실전 자바 - 중급 2편
LinkedList의 for-each 동작 방식이 궁금합니다.
본 강의 약 10분 쯤에 나오는 코드private static boolean contains(LinkedList<Integer>[] buckets, int searchValue) { int hashIndex = hashIndex(searchValue); LinkedList<Integer> bucket = buckets[hashIndex]; for (Integer integer : bucket) { if (integer == searchValue) { return true; } } return false; }이 부분에서 배열은 각 인덱스의 요소를 하나씩 꺼내는데 LinkedList는 어떤식으로 for-each문을 사용하는지 궁금합니다.
-
미해결김영한의 실전 자바 - 중급 1편
중급2편 수강 전 문의
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 아니오2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예중급2편 수강 전 문의 한번만 확인 부탁드려요 ㅠㅠ[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
응용이 어렵습니다.
강의를 꾸준히 보고 따라하면서 여기까지 왔는데요아직 제대로 된 복습보다는 이해가 잘 안되는 부분은 나중에 한번 더 보고 일단 한 바퀴 돌아보자 생각 하며 왔습니다.반복문에서 도저히 응용이 안돼서 여기까지 넘어왔는데요.. 일단 다 보고 나서 다시 복습 해보는 것이 나을까요?아니면 반복문으로 돌아가서 이해할 때 까지 복습을 하고 다시 오는 방법이 좋을까요?자바 공부 하면서 꼭 이해하고 넘어가고 싶었는데 도저히 진도가 안나가다 보니까 방법을 여쭙고 싶습니다.
-
미해결스프링 핵심 원리 - 기본편
의존성 주입 AnnotationConfigApplicationContext에 파라미터로 넘긴 후에는 Autowired를 사용할 필요가없나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] package hello.core.scope; import jakarta.annotation.PostConstruct; import jakarta.annotation.PreDestroy; import lombok.Getter; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import static org.assertj.core.api.Assertions.*; public class SingletonWithPrototypeTest { @Test void SingletonClientUsePrototype() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(ClientBean.class, PrototypeBean.class); ClientBean ClientBean1 = ac.getBean(ClientBean.class); int count1 = ClientBean1.logic(); assertThat(count1).isEqualTo(1); ClientBean ClientBean2 = ac.getBean(ClientBean.class); int count2 = ClientBean2.logic(); assertThat(count2).isEqualTo(1); } @Scope("singleton") static class ClientBean { @Autowired private ObjectProvider<PrototypeBean> prototypeBeanProvider; public int logic() { PrototypeBean prototypeBean = prototypeBeanProvider.getObject(); prototypeBean.addCount(); return prototypeBean.getCount(); } } @Getter @Scope("prototype") @Component static class PrototypeBean { private int count = 0; public void addCount() { count++; } @PostConstruct public void init() { System.out.println("PrototypeBean.init" + this); } @PreDestroy public void destroy() { System.out.println("PrototypeBean.destroy"); } } } 강의에서는 AnnotationConfigApplicaionContext를 new로 생성하면서 파라미터로 ClientBean클래스를 넘겨주면서 빈에 등록한 후에 아래 ClientBean 클래스에 Provider를 사용하면서 @Autowired 를 사용 하시더군요마찬가지로 Provider사용하기 전에 생성자 주입을 할때도 Autowired를 사용하시길래 저도 코드에 Autowired를 추가했는데, 저는 오류가 나더라구요 제가 궁금한점은 @Component어노테이션을 ClientBean클래스에 붙여주면 해결되긴 했는데 강의에선 @Component 어노테이션을 사용하지 않아도 오류가 나지 않길래 저랑 뭐가 다른건지 모르겠어서 질문 합니다. 이미 파라미터로 넘기면서 빈에 등록이 되서 다시 등록하려는거때문에 충돌이나서 그런건가요? 그렇다면 강사님 강의에서 보인 코드는 왜 오류가 나지 않는건가요? 궁금합니다 ㅠㅠ정리하자면 강사님 강의에선 ClientBean클래스에 @Componenet를 사용하지 않고도 @Autowired를 사용했을때 오류가 나지 않지만 저는 @Autowired만 사용하면 오류가 뜹니다. 어떤 차이가 있는건지 궁금합니다.
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
synchronized와 메모리 가시성
각각의 CPU 코어에는 각각의 캐시 메모리가 있고 여기에 임의의 쓰레드가 할당되어 실행된다고 하셨습니다.RAM에서 캐시 메모리를 가져올 때 primitive type은 직접 값을 가져오므로 메모리 가시성 문제가 발생할 수 있지만 참조값을 가져오는 경우에는 캐시 메모리에서도 참조를 하게되므로 가시성 문제가 존재할 수 없는 구조인가요?synchronized 메서드 안에서 사용된 멤버 변수의 경우 자동적으로 volatile로 처리된다고 이해하면 될까요?항상 감사합니다!
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
플래그를 exit 조건문에 함께 사용하면 try-with-resources 를 사용해도 되지 않나요?
질문드립니다.SessionV6 코드의 try 구문 안에 클라이언트가 exit을 입력하면 try 구문을 탈출하게끔 하는 조건문이 있잖아요.if (received.equals("exit")) { break; }이 조건문에 closed 플래그를 다음과 같이 함께 적어주면,if (received.equals("exit") || closed) { break; }어자피 ShutdownHook 에서도 Session의 close() 메서드를 호출하고, closed를 true로 바꿔주니까 try 구문에서도 break가 실행될 수 있지 않나요?그렇다면 I/O 스트림을 try-with-resources 로 설정해도 괜찮지 않나요?제가 놓치는게 있다면 알려주시길 부탁드립니다.
-
미해결스프링 핵심 원리 - 기본편
콘솔로그 여러개가 안뜹니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이 코드문 실행시 그냥 테스트 통과만 될뿐 콘솔에 메시지 여러줄 뜨진 않습니다.package hello.core.xml; import hello.core.member.MemberService; import org.junit.jupiter.api.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.GenericXmlApplicationContext; import static org.assertj.core.api.Assertions.assertThat; public class XmlAppContext { @Test void xmlAppContext() { ApplicationContext ac = new GenericXmlApplicationContext("appConfig.xml"); MemberService memberService = ac.getBean("memberService", MemberService.class); assertThat(memberService).isInstanceOf(MemberService.class); } } <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="memberService" class="hello.core.member.MemberServiceImpl"> <constructor-arg name="memberRepository" ref="memberRepository" /> </bean> <bean id="memberRepository" class="hello.core.member.MemoryMemberRepository" /> <bean id="orderService" class="hello.core.order.OrderServiceImpl"> <constructor-arg name="memberRepository" ref="memberRepository" /> <constructor-arg name="discountPolicy" ref="discountPolicy" /> </bean> <bean id="discountPolicy" class="hello.core.discount.RateDiscountPolicy" /> </beans>
-
미해결스프링 핵심 원리 - 기본편
38줄 자동완성 어떻게 하나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]07:29 38번째 줄 어떻게 자동완성 하나요 안되는데
-
미해결스프링 핵심 원리 - 기본편
롬복과 최신 트렌드 build.gradle
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]build.gradle 에 롬복 디펜던시 복사해서 붙여넣기 하고싶은데 어디서 복사할수있는지 강의자료가 안보여서요... 어디서 복사할수있을까요???
-
미해결김영한의 실전 자바 - 기본편
OCP원리 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]12. 다형성과 설계 강의 자료에서 OCP원리를 보면 코드 수정은 닫혀 있다는 의미에서 "새로운 차를 추가하게 되면 기능이 추가되기 때문에 기존 코드의 수정은 불가피하다. 당연히 어딘가의 코드는 수정해야 한다."라고 되어 있습니다. 기존 코드의 수정이 불가피하다고 하는데 왜 코드 수정은 닫혀 있다고 표현하는 건가요?
-
미해결김영한의 실전 자바 - 기본편
접근제어자, 클래스 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.class의 접근제어자를 private으로 설정시 외부 호출을 막는 것은 이해를 합니다.class의 volume 변수에 대해 실제 수정 해야 상황일 경우 (volume 200이 가능하게 되었을 때) privat로 설정된 volume 변수 수정 권한을 setting하는 것은 어떤 조직 구성과 방법으로 하는지 실제 경험을 사례로 설명을 요망합니다.
주간 인기글
순위 정보를
불러오고 있어요