묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨오브젝트 - 설계 원칙편
인스턴스 증가에 대한 우려
안녕하세요!'오브젝트' 책으로 공부했었는데, 강의가 있다는 걸 최근에 알게 되어 강의까지 잘 보고 있습니다!몇 가지 궁금한 게 있어서 문의드립니다!5-1에서 소개해주신 Schedule과 ScheduleJson를 보았는데요제가 이전에 ScheduleJson과 비슷한 형식으로, schedule과 objectMapper를 인스턴스 변수로 가지고 json 결과를 응답하는 클래스를 만들었습니다하지만, 코드 리뷰에서 시니어 분이 objectMapper만 가지고, schedule은 파라미터로 받는 싱글톤(bean 또는 kotlin의 object)으로 만들면 되지 않느냐고 하시더라구요굳이 매번 인스턴스를 생성할 필요가 있냐고 하면서, 바꾸라는 식의 어조로 남기셨습니다결국에는 싱글톤 형태의 bean으로 바꾸게 되었습니다함수형으로 만드시길 바라시는 것 같기도 한데, 매번 인스턴스를 생성해야 한다는 것이 메모리 관련하여 크게 부담이 되는 행동인 것일까요?싱글톤(bean)으로 만드는 것이 더 나은 방향일까요?코드 리뷰 때로 다시 돌아간다면, ScheduleJson처럼 작성하는 방향으로 어떻게 설득시킬 수 있을까요?그리고 다른 얘기일 수도 있긴 한데, 단순한 내용을 처리하는 클래스를 만들 때 인스턴스 변수로 넣어야 할지, 파라미터로 넣어야 할지 고민이 되더라구요예를 들어, '요일별 메뉴가 제공된다' 라는 비즈니스 로직을 작성한다면,다음은 요일에 해당하는 dayOfWeek를 파라미터로 작성하는 방법입니다public class WeeklyMenu { public String getMenu(DayOfWeek dayOfWeek) { return switch (dayOfWeek) { case MONDAY -> "짜장면"; case TUESDAY -> "짬뽕"; case WEDNESDAY -> "제육덮밥"; case THURSDAY -> "볶음밥"; case FRIDAY -> "간짜장"; case SATURDAY -> "미니탕수육"; case SUNDAY -> "잡채밥"; }; } } 다음은 dayOfWeek를 인스턴스 변수로 작성하는 방법입니다public class WeeklyMenu { private final DayOfWeek dayOfWeek; public WeeklyMenu(DayOfWeek dayOfWeek) { this.dayOfWeek = dayOfWeek; } public String getMenu() { return switch (this.dayOfWeek) { case MONDAY -> "짜장면"; case TUESDAY -> "짬뽕"; case WEDNESDAY -> "제육덮밥"; case THURSDAY -> "볶음밥"; case FRIDAY -> "간짜장"; case SATURDAY -> "미니탕수육"; case SUNDAY -> "잡채밥"; }; } } 선호의 차이일지, 어떠한 원칙이 있을지도 궁금합니다!
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
섹션 14. 115번 강의 내용 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하십니까 선생님, 115번 강의 내용 중 질문이 있습니다.각각 작업의 크기를 1100, 1200, 1201번 경우로 나눠서 테스트를 하였는데 작업 처리 속도가 더 빨라서 max 스레드 개수까지 안 늘어날 수도 있지 않을까 하는 생각이 들었습니다. 즉, 작업 처리 속도가 빨라서 큐에 적재되는 작업이 줄어들어 큐에 담긴 작업이 1000개 되지 않아 스레드 긴급 투입이 발생하지 않을 수도 있지 않은가요?
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
교안에 있는 7페이지 데이터 영역
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]교안에 있는 7페이지에 운영체제와 프로세스, 스레드 그림에서 공유되는 부분에 코드, 힙, 기타가 있는데 데이터 영역도 공유되는게 맞는지 궁금해서 질문드립니다. 감사합니다.
-
해결됨스프링 핵심 원리 - 기본편
예외 테스트시에는 JUnit의 메서드를 사용한 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 맥락]영상: 06:35 ~pdf: 4. 스프링 컨테이너와 스프링 빈.pdf - p.7 제일 윗부분 - void findBeanByNameX()[질문 내용]안녕하세요, 영한님. 이전에 isEqualTo()와 isInstanceOf() 에서는 AssertJ 메서드를 사용하셨는데요.예외 테스트시에는 JUnit5의 메서드를 사용하시더라고요.AssertJ에도 assertThatThrownBy() 등의 예외 검증 메서드가 있는데, 왜 예외 테스트시에만 JUnit5를 사용하셨는지 궁금합니다! (둘 중 하나만 사용한다면 취향차이라고 할 수도 있겠으나, 둘을 병행해서 사용하는 경우 assert를 위한 라이브러리가 두 종류로 나뉘게 되어 혼란스러울 수도 있지 않을까? 하는 생각이 들어서요. 그럼에도 불구하고 '예외 검증시에는 JUnit5의 메서드가 좋다'는 이유 등으로 선택된 것인지 궁금합니다.)대부분의 검증의 경우에는 AssertJ의 메서드가 더 직관적이지만, 예외 검증의 경우에는 JUnit5가 더 직관적이기 때문일까요? 아니면 성능적으로 더 우수한 측면이 있나요?
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
/.well-known/appspecific/com.chrome.devtools.json 에러에 대해서
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.안녕하세요. 영한님,수업을 듣다가 F12 개발자 도구를 켜놓고 실행하고 있었는데 콘솔 창에 아래와 같은 예외가 발생합니다. 개발자 도구를 끄면 안 뜨더라구요. 만약 현업에서 사용한다면 이걸 따로 처리해야하는지 궁금합니다. public class WellKnownServlet implements HttpServlet 이런식으로요.------------------------------------------was.httpserver.PageNotFoundException: request url= /.well-known/appspecific/com.chrome.devtools.jsonat was.httpserver.ServletManager.execute(ServletManager.java:41)at was.httpserver.HttpRequestHandler.process(HttpRequestHandler.java:39)at was.httpserver.HttpRequestHandler.run(HttpRequestHandler.java:24)at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)at java.base/java.lang.Thread.run(Thread.java:1583)
-
해결됨스프링 핵심 원리 - 기본편
테스트 코드 beforeEach() 메서드만 public 접근 제어자를 선언한 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요, 영한님.아래에 상황 - 의문 - 추측 - 결론 순으로 질문드리겠습니다! 상황:이번 시간에 AppConfig를 사용하도록 수정한 OrderServiceTest와 MemberServiceTest 코드에서 새롭게 다음 메서드를 만들었습니다.@BeforeEach public void beforeEach() { // ... } 의문1:그런데 이전에 만들었던 다른 메서드들의 경우 package-private로 접근을 제어하고 있습니다. 그래서 왜 두 경우에 다른 접근 제어자가 사용되었는지 의문이 들었습니다.@Test void createOrder() { // ... } 추측1:스택오버플로우 1을 보니 과거에는 리플렉션 기술을 통해 테스트 메서드를 식별해야 했기 때문에 public으로 열어두는 것이 필요했다.또한 이에 대한 JUnit5 탑 컨트리뷰터 Sam Brannen의 답변에서는 "less is more라는 원칙에 따라 더이상 public이 필요하지 않기 때문에 JUnit5부터는 작성하지 않아도 된다."고 하더군요. JUnit5 공식 문서에서도 "public 접근 제어자로 선언될 필요는 없다. 다만, private이면 안 된다."는 안내를 확인했습니다(아래 사진 참고). 결과적으로,위 내용들을 근거로 "과거 관례로 인해 영한님이 public을 사용하셨겠구나."라는 추측을 했습니다. 결론:결국 'JUnit5 이후부터는 테스트 메서드에 대해 public을 붙이지 않는 것을 권장한다(붙여도 문제는 없다).'는 것인데, (물론 개발팀 컨벤션에 따라 다르겠지만) 현업에서는 다음 두 경우 중 어떤 방식이 채택되는 경우가 더 빈번한지 여쭤봅니다!과거 관례에 이어 public을 여전히 작성한다.이제 public을 안 붙여도 되고, 이 방식을 JUnit5에서도 권장하기 때문에 더 이상 붙이지 않는다. 감사합니다.
-
미해결김영한의 실전 자바 - 기본편
문의
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 군대에서 김영한 강사님의 강의를 듣고 있는 병사입니다. 강의를 듣는 것이 쉬운 환경은 아니지만 열심히 듣고자 하여 조금씩 노력하고 있습니다. 처음으로 코딩 강의를 듣는 것인데 책으로 배우는 것과 정말 많은 장점이 있는 것을 알았고 재미도 있어 잘 듣고 있다는 말씀 드리고 싶었습니다. 다만, 해당 강의와 스프링 기본편 강의를 저번에 이벤트로 3개월동안 무료로 들을 수 있게 해주셨는데 제 노력이 부족해서 기간 안에 다 듣지 못했습니다.괜찮으시다면 해당 기간을 연장해주실 수 있으실지 여쭤보고 싶습니다. 정말 배우고 싶은 의지가 있습니다. 관련하여 강사님의 의견 들어보고 싶습니다.기간이 지나면 답변글을 확인할 수 있을지 모르겠지만 이메일 남겨두겠습니다.scentofsharon@naver.com감사합니다
-
해결됨스프링 핵심 원리 - 기본편
@Autowired 필드명 매칭으로 조회 대상 빈을 확정하는 부분 실습하는데 오류가 납니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의 영상 2:17 쯤 부분입니다.OrderServiceImpl 의 파라미터 명을 rateDiscountPolicy로 바꾸었습니다. 그리고 basicScan() 테스트 코드 하나만 돌렸음에도 available: expected single matching bean but found 2: fixDiscountPolicy,rateDiscountPolicy 오류가 납니다. 강의 영상에서도 분명 저 부분 하나만 바꿨고 똑같이 basicScan() 테스트 코드 하나만 돌려서 오류 없이 성공했는데 왜 제가 똑같이 시도했을 때 오류가 나는지 이유를 찾을 수없어 질문 드립니다. 이전에도 비슷한 질문이 있어 살펴보았으나 이 상황에 해결책이 되지 않았습니다. 제가 궁금한건 왜 강의를 똑같이 따라했음에도 왜 '필드명 매칭' 이 되지 않는지, 그리고 '필드명 매칭으로 테스트를 성공하기 위해서 어떻게 해야하는지' 즉 해결책 입니다. 아래는 제 코드 입니다.@Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy rateDiscountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = rateDiscountPolicy; } @Override public Order createOrder(Long memberId, String itemName, int itemPrice) { Member member = memberRepository.findById(memberId); int discountPrice = discountPolicy.discount(member, itemPrice); return new Order(memberId, itemName, itemPrice, discountPrice); } // 테스트 용도 public MemberRepository getMemberRepository() { return memberRepository; } }@Test void basicScan() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig.class); MemberService memberService = ac.getBean(MemberService.class); assertThat(memberService).isInstanceOf(MemberService.class); OrderServiceImpl bean = ac.getBean(OrderServiceImpl.class); MemberRepository memberRepository = bean.getMemberRepository(); System.out.println("memberRepository = " + memberRepository); }그리고 오류 메시지 입니다. org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderServiceImpl' defined in file [C:\Users\user\Documents\인프런 강의 플젝\core\core\out\production\classes\hello\core\order\OrderServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 1: No qualifying bean of type 'hello.core.discount.DiscountPolicy' available: expected single matching bean but found 2: fixDiscountPolicy,rateDiscountPolicy at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:804) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1395) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1232) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1222) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1188) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1123) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:987) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:93) at hello.core.scan.AutoAppConfigTest.basicScan(AutoAppConfigTest.java:16) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'hello.core.discount.DiscountPolicy' available: expected single matching bean but found 2: fixDiscountPolicy,rateDiscountPolicy at org.springframework.beans.factory.config.DependencyDescriptor.resolveNotUnique(DependencyDescriptor.java:218) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1722) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1628) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ... 19 more
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
Socket 자원을 정리할때 stream 을 정리하지 않는 이유가 궁금합니다.
안녕하세요. Java 의 Socket::close() 내부에서 InputStream, OutputStream 을 정리해주지 않는 이유가 있나요?Java 에서 제공하는 Socket::close() 내부에서 Stream 들을 정리해주면 강의 코드가 훨씬 간단해질것 같아 문의 드립니다.아니면, 원래 정리를 해주는데 강의에서 복잡한 상황을 보여주기 위해 의도적으로 Socket 과 InputStream, OutputStream 을 함께 명시적으로 정리해주는 것인가요? ServerSocket 의 경우에도 자체적으로 SessionManager 와 같은 기능을 제공하는 더 나은 ServerSocket 클래스가 있는지 궁금합니다.감사합니다.
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
Executor 스레드 풀 관리 질문
[질문 내용]여기에 질문 내용을 남겨주세요.궁금한 것이 생겨서 질문 남깁니다.Executor 스레드 풀 관리에서 예제와 같은 상황일 때, 만약 요청이 계속 들어온다면 초과 스레드를 유지하는 것이 좋다고 말씀하셨습니다. 거기서 의문이 생긴 게, 요청이 계속 들어오면 동적으로 maximumPoolSize를 조절할 수 있는 방법이 있나요?아니면 초과 스레드를 살려두는 TimeUnit 값을 늘릴 수 있는 방법이 있나요?유연하게 관리할 수 있지 않나 싶어서 찾아보니, setMaximumPoolSize(int maximumPoolSize)setKeepAliveTime(long time, TimeUnit unit)으로 설정할 수 있더군요. 이를 활용해 동적으로 관리하는 것인지 궁금합니다!실무에서는 어떤 방식을 사용하는지 궁금해 질문 남깁니다.감사합니다!
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
문제와 풀이 질문!
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]package thread.executor.test; import java.util.List; import java.util.concurrent.*; import static util.MyLogger.log; import static util.ThreadUtils.sleep; 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); try { List<Callable<Boolean>> tasks = List.of(inventoryWork, shippingWork, accountingWork); List<Future<Boolean>> futures = es.invokeAll(tasks); for (Future<Boolean> future : futures){ Boolean value = future.get(); if (!value){ log("일부 작업이 실패했습니다."); } } log("모든 주문 처리가 성공적으로 완료되었습니다."); } finally { es.close(); } } } 코드의 내용을 이렇게 짰는데요.디자인 패턴 중 전략 패턴을 적용하고 싶은데 영 떠오르지 않네요.InventoryWork, ShippingWork, AccountingWork 처럼 계속 인스턴스가 늘어나면, 코드가 번잡해질 듯한데 전략 패턴을 어떻게 녹일 수 있을까요?떠오르지 않아서 질문드립니다.감사합니다.
-
미해결김영한의 실전 자바 - 기본편
9장 상속 문제와 풀이 부분 궁금한게 있어서 질문드립니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) -> 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) -> 네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) -> 네 [질문 내용]여기에 질문 내용을 남겨주세요.9장 실습 문제에 대한 질문입니다. 이건 제가 직접 작성하면서 썼던 Item.java 에 있는 코드입니다. public void print() { System.out.print("이름:" + name + "가격:" + price); } 그리고 이건, Movie.java에 있는 제 코드입니다. System.out.println("이름:" + Movie.getName() + ", 가격:" + Movie.getPrice()); super를 사용 안하고 Override를 이용해서 print() 부분을 Movie.getName을 사용해서 재 정의 했다고 생각했는데 출력 결과는 이렇게 나왔습니다. 어떤 부분 때문에 이런 결과가 나왔는지 궁금합니다. 코드의 다른 부분은 상속.pdf와 동일합니다. 이름:영화1, 가격:18000- 저자 :han, isbn :12345이름:영화1, 가격:18000- 감독 :seo이름:영화1, 가격:18000- 감독 :감독1, 배우 :배우1상품 가격의 합: 54000 그리고, 헷갈린 부분에서 어떤 이론을 다시 복습해야할지도 궁금합니다 감사합니다!
-
해결됨프론트엔드 마스터클래스
메모이제이션 뒷부분 짤린건가요?
103강 메모이제이션과 104강 가상화가 매끄럽게 이어지지 않고 끊긴 느낌이라 질문드립니다!
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
영한님께 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 영한님, 항상 좋은 강의 덕분에 편하게 공부하고 있습니다.다름이 아니라 제가 공부 내용을 노션에 정리하는데 혹시 영한님께서 만드신 다양한 그림을 사용해도 되는지 여쭈려고 글 남깁니다.후에 이 내용을 부트캠프(우테코) 지원 시 공부 자료로 활용할 계획이라서 외부로 노출이 되는데, 그 때 영한님이 만드신 그림이 노출이 돼도 될까요..?된다면 출처는 당연히 남기겠지만, 안된다면 사용하지 않겠습니다!항상 감사드립니다:)
-
해결됨자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
자바와 코틀린의 함수형 프로그래밍,
안녕하세요 강사님! 자바는 메소드 자체를 직접 넘겨주는 것 처럼 쓸 수 있다, 자바에서 함수는 변수에 할당되거나 파라미터로 전달할 수 없다. 이부분에서 명확하게 이해가 잘 안되어서 질문을 남깁니다 ㅠ 자바에서 JDK 8이후로 람다와 스트림, 함수형 인터페이스 덕분에 자바도 함수가 일급 시민으로 취급되어 함수형 프로그래밍 패러다임을 적용해서 상호 보완해나가며 개발할 수 있다고 배웠습니다. 그러나 강사님께서 말씀하시는 내용으로는 자바는 그런 것 함수가 일급 시민 자체가 된 것이 아니라, '일급 시민이 된 것 처럼' 동작하도록 함수형 인터페이스를 통해 함수형 프로그래밍을 할 수 있게 된 것이지 근본 자체가 일급 시민이 아니라는 말씀이신건지가 궁금합니다.. 중요한 내용은 아닌것 같지만 모호하게 알고 넘어가기가 찜찜해서 질문을 남겨드립니다.
-
미해결스프링 핵심 원리 - 기본편
H2 Database JDBC 추가 방법 문의
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.질문 1. H2 Database 설치 이후 설정 부분과 이름을 확인 했을 때, JDBC가 없이 JNDI로 되어 있는데, 강의를 수강하는데, 문제가 없는지와 문제가 된다면 JDBC 설정하는 방법에 대해서 알려주실 수 있는지 방법 공유 부탁 드립니다.질문 2. 이전에 ID 및 PW를 설정해둔 것 같은데, 강의하는 것처럼 아예 모두 초기화 할 수 있는 방법이 있으면 방법 공유 부탁 드리겠습니다.
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
오타 제보합니다:)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]CAS - 동기화와 원자적 연산 챕터교재 32페이지여기서 lock.compareAndSet() 앞에 !가 붙어야하는게 맞나요?제가 잘 이해한거라면 그게 맞는 것 같아서 글 남깁니다:)항상 좋은 강의 감사드립니다!
-
미해결김영한의 실전 자바 - 기본편
상속과 그에 따른 메모리 구조 질문
[질문 내용](05:30 참고)privateValue, defaultValue는 접근제어자에 의해 Child에서 접근이 불가능한 것까진 알겠습니다. 두 멤버도 상속이 되긴 하는건가요? 그리고 Child가 Parent를 상속하는 것으로 설정하면, Child 인스턴스를 생성했을 때 내부에 printValue, defaultValue 두 멤버가 생기긴 하는데 접근을 못 하는건가요, 아니면 애초에 두 멤버는 인스턴스 안에 안 생기는건가요?
-
미해결[코드팩토리] [입문] Dart 언어 4시간만에 완전정복
쿠폰 유효기간이 경과했다고 하네요 ㅠㅠ
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM 안녕하세요 다트언어 강의 듣고 플러터 초급으로 넘어가려고 하는데, 강의 중에 적어주신 쿠폰으로 강의 수강신청을 하려고 하니까 쿠폰이 유효기간이 지났다고 사용이 안된다고 하네요 ㅠㅠ.혹시 쿠폰 사용이 안되는걸까요? - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결김영한의 실전 자바 - 기본편
call메소드에서 멤버에 접근하는 방식을 이해 못 했습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용](05:30부터)publicValue와 protectedValue에는 어떻게 접근한건가요?: publicValue, protectedValue는 타 클래스인 Parent의 멤버변수이고, 그것에 접근하려면 Parent의 인스턴스를 생성한 다음(인스턴스 변수는 'p'라 하겠습니다) 'p.'을 앞에 적어야 접근이 가능한 것 아닌가요? 즉 저는 p.publicValue같은 식으로 불러야 하는 것으로 알고있는데, 여기서는 어떻게 'p.'없이 접근을 한건지 궁금합니다 ㅠ