묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
내용 이해 질문
태현님 안녕하세요, 간만에 강의를 듣던 중 해당 개념에 대해 제가 잘 이해하고 있는지에 대해 여쭤보고자 질문을 드립니다.제가 헷갈리는 부분은 open 에 대한 것과 상속에 대한 주의점인데요.package me.sungbin.lec10 open class Base( open val number: Int = 100, ) { init { println("Base Class") println(number) } }package me.sungbin.lec10 class Derived( override val number: Int, ) : Base() { init { println("Derived Class") } }open 키워드는 기본적으로 상속을 받을 클래스에 붙여주며, abstract 과 같이 반드시 구현해야 하는 클래스에는 따로 명시적으로 붙여주지 않는 것으로 이해가 되었습니다.예시의 Base 클래스와 Derived 클래스에서 getMember() 호출 시, 초기 값이 나온 부분은 실제 Derived 클래스에서 생성자를 호출하고 그 생성자가 상위 클래스 생성자를 호출하고 그 생성자에서 number를 출력하려고 하는데 해당 number는 오버라이딩 되었으니, 하위 클래스의 number를 출력해야 하나, 해당 하위 클래스 생성자 호출 전이므로 초기 값 0이 나온다?라고 이해하면 좋을까요?제가 이해한게 잘 맞는지 혹은 잘못되게 생각한 부분이 있는지 확인해주시면 감사드리겠습니다! 🙂실무에서 이런 케이스를 겪어본 적이 없어서 헷갈리는 것 같아서 이번 기회에 제대로 알아가보려구요!
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
김영한 java 입문 설치 질문
1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]openJDK21이 없어서 25로 다운로드 받아서 설치했는데 수업듣는데지장이 없을까요?
-
해결됨오브젝트 - 기초편
2-2. 변경과 의존성 / 데이터 내부 변경 시 setter가 변경의 여파를 흡수하는 방식은 어떤가요?
안녕하세요, 강사님. 강의 '2-2. 변경과 의존성'에서 DiscountPolicy의 startTime과 endTime을 TimeInteval로 통합하면 외부에서 getter를 통해 startTime, endTime을 참조하는 코드가 변경되어야함을 보여주셨습니다.condtion.getStartTime() -> condition.getInterval().getStartTime(); 위 예제를 getStartTime과 getEndTime 메서드가 변화를 여파를 흡수하는 방식으로 변경을 할 수도 있었을텐데 강의의 예제처럼 ReservationService가 변경되어야하도록 코드를 변경하신 관점이 궁금합니다.// interval을 노출시키는 대신 endTime, startTime의 getter에서 변경의 여파를 흡수하고 속성없는 프로퍼티로 동작 public class DiscountCondition { public enum ConditionType { PERIOD_CONDITION, SEQUENCE_CONDITION } ... private TimeInterval interval; ... public LocalTime getStartTime() { return interval.getStartTime(); } ... public LocalTime getEndTime() { return interval.getEndTime(); } } 데이터 변경의 여파가 클라이언트에 전달되는 것은 데이터를 다루는 로직이 데이터 외부에 있기 때문이라는 점은 강의에서 충분히 전달해주셨기에 어느정도 이해했다고 생각합니다. 그리고 위에 질문드린 내용은 일부 속성들이 통합되면서도 기존에 데이터 외부로 제공하던 속성(startTime, endTime)을 어떻게든 그대로 제공할 수 있는 상황(interval에서 꺼내줄 수 있음)에 한정된, 숲 보다는 나무에 관한 질문일텐데... 그래도 자꾸 생각이 나서 질문을 드리게됬습니다.어제에 이어 또 질문을 드리지만 좋은 연휴 되시길 바라는 마음은 정말입니다.감사합니다.
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
원자적 연산이 멀티스레드 상황에서 안전한 이유를 제대로 이해했는지 확인 부탁드립니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요!강의 교안에 따르면 원자적 연산은 '멀티스레드 상황에서 다른 스레드의 간섭 없이 안전하게 처리되는 연산이라는 뜻이다' 라고 하는데요그렇다면 동일 객체에 대한 원자적 연산들이 여러 CPU 코어에 나뉘어 동시에 실행하려고 해도 동시에 수행할 수 없기 때문에 원자적 연산은 멀티스레드 환경에서 안전하다고 이해해도 될까요?그렇게 해야 멀티 스레드 상황에서 원자적 연산들이 다른 스레드의 간섭없이 처리될 수 있을 것 같아서요.
-
해결됨기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM
해시 알고리즘 관련으로 질문이 있습니다.
안녕하세요.현재 cs 강의부터 c/c++/시스템.네트워크,tcp/ip 등 백엔드에 도움되는 강의를 듣고 현재 자바강의를 듣고 있습니다. 자료구조와 알고리즘을 공부할 때 저의 공부방법이 왜 사용하는지, 어떨 때 사용할지, 어떻게 작성하는지, 이럴 때엔 어떻게 대응 할 지를 중심으로 공부를 하고 있습니다. 배열, 스택, 큐, 연결리스트는 코드를 보지 않고 작성할 수 있도록 미리 훈련을 해놓았었지만 최근에 트리 / 해시로 넘어가면서부터 '이걸 안 보고 쓸 정도로 외우려면 시간 소요가 심할 것 같은데?' 생각이 들었습니다. 이러한 고민을 하게 된 건 전에 경쟁력 있는 백엔드 개발자가 되려면 홈페이지 하나는 코드를 보지 않고 써야한다 라는 얘기를 들었기 때문입니다.(다만 공부하고 있는 학생으로 홈페이지 만드는 코드가 무엇인지를 모르기에 이러한 고민을 하게 되는 것도 있습니다.) 13년 전에 C/C++ 개발 회사에서 일을 했을 때 코드를 외우는 게 아니라 어떠한 코드가 필요할 때 책을 펼쳐서 보고 직접 타이핑을 쳤었는데, 안 보고 쓸 정도로 외우기가 어려운 알고리즘들도 마찬가지 아닐까 하는 의구심이 들어 질문 드려봅니다. (현재는 바이브 코딩이겠지만요)
-
해결됨오브젝트 - 기초편
[5-1] DiscountPolicy의 getDiscountAmount 추상 메서드 관련 질문입니다,
5-1강의 7분 10초 경에서 추상 클래스인 DiscountPolicy의 calculateDiscount 메소드 구현 관련하여 질문 있습니다.calculateDiscount 메서드의 로직에서 상영(screening)이 DiscountCondition 중 하나라도 만족하면 getDiscountAmount(screening)이 호출되는데, 이 때 AmountDiscountPolicy와 PercentDiscountPolicy 중 누가 오버라이드한 getDiscountAmount가 호출되는지 궁금하여 질문드립니다.애초에 Movie 객체가 생성될 때 AmountDiscountPolicy와 PercentDiscountPolicy 중 해당되는 할인 정책을 멤버 변수로 사용할 수 있게 된다고 이해하면 될까요? 객체지향에 대해 심도 있게 배울 수 있는 강의라 너무 잘 듣고 있습니다. ㅎㅎ
-
해결됨오브젝트 - 기초편
2-4. 절차에서 객체로 / 도메인 구조를 따라 클래스 구조 변경 부분
강의: 2-4. 절차에서 객체로강의 부분: 5:46 ~질문 DiscountPolicy를 통해 DiscountCondition을 캡슐화한 상태에 대해 'DiscountPolicy의 public 메서드를 수정하는 경우에도 영향을 최소화할 수 있습니다.'라고 말씀하신 부분이 잘 이해가 안됩니다. DiscountPolicy가 전면에 나와 ReservationService에 의해 참조되는 중이니 DiscountPolicy의 public 메서드 시그니처가 변경된다면 ReservationService가 직접 영향을 받으리라 생각됩니다. 혹시 DiscountCondition을 수정하여 그 여파가 DiscountPolicy의 메서드 바디를 수정하게 하더라도 ReservationService는 DiscountPolicy의 메서드를 호출만 하는 상태이니 ReservationService에는 영향이 가지 않는다는 의미로 이해하면 될까요?안녕하세요, 강사님, 그리고 뭔가해서 눌러보셨을 다른 수강생분들.모두 좋은 추석 되시길 바랍니다.감사합니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
버퍼문제?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]package scanner.ex; import java.util.Scanner; public class ScannerWhileEx1 { public static void main(String[] args) { Scanner input = new Scanner(System.in); while (true) { System.out.print("이름을 입력하세요 (종료를 입력하면 종료): "); String name = input.nextLine(); if (name.equals("종료")) { System.out.println("프로그램을 종료합니다."); break; } System.out.print("나이를 입력하세요: "); int age = input.nextInt(); input.nextInt(); System.out.println("입력한 이름: " + name + ", 나이: " + age); } } }해당코드를 실행했는데 (줄바꿈처리도 잘 했습니다.) 커서가 저 상태에서 깜빡거리고, 아무 출력도 없어요.
-
해결됨프론트엔드 마스터클래스
이벤트 루프 실행 관련
저는 풀스택 주니어입니다.특수 목적을 위해 바닐라js에서 ,document.innerHTML이나 element.remove(), element.append() 등으로 html element의 생성과 삭제가 빈번한로직을 다루고 있습니다.이 때 종종 브라우저 렌더링의 실행 완료에 대해 명확하게 알지 못해서 찝찝한 채로 브라우저에 렌더링 일을 시키고 있습니다. 그러던 중 이벤트 루프 관련 3개 강의(16,17,18강) 를 듣고 복습차, 17강으로 다시 돌아와서 보는 2분18초 경에 브라우저 랜더링에 대해 궁금한게 생겼습니다. 예를 들면const mySchedule = async () => { await randeringPipelineTask(); //랜더링파이프라인 await macroTask(); // 매크로태스크(); }으로 구성된 mySchedule 메서드가 있다고 가정하겠습니다.macroTask()는 renderingPipelineTask()의 브라우저 페인트까지 모두 완료를 확인한 후에 실행될까요? 아니면 JS엔진이라는 것은, 페인트는 브라우저에 렌더링을 해달라고 부탁까지만하고 macroTask()를 실행할까요?('실행의 시작'과 '실행의 끝'을 나눠서 생각해서 그런지 생각하면 할수록 햇갈립니다.)
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
for문 피라미드 찍는거 질문
저는 그냥 이중포문은 복잡해 보여서 psvm {int row = 5;for(int i = 1 ; i <= row; i++) {sout("*".repeat(i))} 이렇게 풀었는데 답은 제대로 나오긴 하는데 이중포문은 먼가 조건식이 두개를 복잡해서 처음에 아이디어가 안떠올랐는데 저렇게 풀었는데 이중포문으로 풀어야 나중에 더 복잡한 문제도 구현해 낼수 있나요??
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
인텔리제이에서 네모(스탑버튼) 누르는 것의 의미
.
-
해결됨Readable Code: 읽기 좋은 코드를 작성하는 사고법
자바 record 사용에 대해서 질문 드립니다!
안녕하세요 강사님 저번 테스트 코드 강의 부터 지금 리팩토링 강의까지 정말 잘 들었습니다!이번 강의에서는 record를 사용하지 않으셨는데 저는 보통 VO(Value Object)나 DTO를 만들 때 다음과 같은 이유로 record를 활용합니다불변성 보장보일러플레이트 감소그런데 프로젝트를 진행하다 보면 DTO나 VO에 로직이 점점 복잡해지고, 어느 순간 record로는 한계가 느껴져 class로 변환한 경험이 몇 번 있습니다. 이와 관련해 어떤 경우에 record를 사용하는 것이 좋을지 강사님의 의견이 궁금합니다!
-
해결됨프론트엔드 마스터클래스
Map 강의 누락된 것 같습니다.
안녕하세요! 강의가 누락된 것 같아 글 작성합니다. 확인부탁드릴게요! 30강 Map 강의로부터 31강까진 문제없이 연결되는데, 32. WeakRef + FinalizationRegisty 강의시작부터 연결이 매끄럽지 못합니다. 뜬금없이 대안?에 대해서 나오는데 Map 예제부분과 WeakMap 부분이 누락된것같습니다.
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
자바 고급 1,2,3편 같이 진행해도 문제없나요
[질문 내용]고급 1편을 들으면서 2편과 3편을 동시에 같이 들어도 되나요?고급 2편이나 3편에서 앞서 배운 부분을 활용하거나 하는 부분이 있을까요? 람다나 어노테이션 같은 개념을 빨리 보고 싶은데 강의 순서와 독립적으로 들어도 이해에 문제 없을지 궁금해서 질문합니다
-
해결됨C# 처음부터 배우기
3강 강의를 듣는 중에 질문사항이 생겨 글 남깁니다.
안녕하세요! 3강 강의를 듣는 중에 질문사항이 생겨 글 남깁니다. Long type의 변수를 선언하고 끝에 L을 붙여주셔야 한다고 하셨는데 L을 붙이지 않아도 제대로 나오는것같습니다. 혹시 어떤 차이가 있는지 알려주실 수 있으신가요??
-
해결됨고도 엔진(Godot Engine)을 통한 게임 개발 박치기!! - 기본 개념부터 실전 게임 제작까지 한방에!
46. 상속씬(3) 수업 질문
상속씬(3)의 수업 중 11:31초 부근입니다.func _ready()에서는 super()를 통해서 -ready의 기능을 오버라이딩 했는데,func on-area-entered에서는 super()를 사용하지 않았습니다.그 이유는 super()가 -ready에서만 한번 해주면 다른 함수들을 포함해서 전체적으로 오버라이딩이 되기 때문인가요,아니면 원래는 일일이 super()를 해줘야 되지만, on-area-entered에서는 오버라이딩 할것이 없기 때문에 하지 않은것인가요?참고로, 파이썬에서는 super()를 아무데서나 한번 해주면 부모 클래스의 모든 메서드와 변수를 상속받습니다
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
강의 섹션 8: 네드워크 -프로그램 3부분 10:45 오타?
교안에서는 p.29 인데 여기서 여러 서버가 접속해도 문제없이 작동하는것을 확인할 수 있다 부분이헷갈려서요.여러 클라이언트가 접속해도로 바뀌어야 되는거 아닌가요. 지금 클라이언트 여러대에 서버 한대에 그 서버에서 쓰레드 만들어서 작동하는 걸로 이해했는데혹시 제가 잘못 이해한걸까요. 감사합니다.
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
제대로 이해한게 맞나 궁금합니다
close() 메서드에서 synchronized와 if(closed){ return;} 조건문을 해준 이유가 해당 세션 종료시 close() 메서드 호출과 서버 종료시 SessionManager의 closeAll()을 통한 close() 메서드 호출이 동시에 되고 중복으로 호출 되는걸 막기 위해서 해준거라고 이해하면 될까요?
-
미해결스프링 핵심 원리 - 기본편
12:25
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]call AppConfig.memberService부분에서 sout순서가 call AppConfig.memberService->call AppConfig.memberRepository->call AppConfig.orderService->call AppConfig.memberRepository가 정상적인 예상 출력값아닌가요...?
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
CPU 캐시 때문에도 잔액이 200원이 될 수 있나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.t1 t2 가 동시에 실행되지 않고, 약간의 시간차가 있는 상태에서두 스레드가 CPU 캐시를 통해 balance를 읽어들이고 쓰면 잔액이 200원이 될 수 있을까요?