묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 기본편
OCP에서 궁금한게 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]OCP를 공부하면서 궁금한점이 있습니다.Car 인터페이스를 implements 하는 GoodCar이라는 클래스에 Nav() 라는 네비게이션 기능을 추가하려면 Car 인터페이스에도 Nav()라는 함수를 추가해야 Driver가 사용가능할거 같습니다. 이러면 기존의 Car을 implements하는 클래스들이 매서드 미구현으로 에러가 발생합니다. 그래서 Car 인터페이스를 안바꾸려면 앞서 배운 fly 인터페이스처럼 따로 인터페이스를 만들면 구현은 가능할거 같은데, 이런 경우 OCP를 지킨다고 할 수 있나요? 아니면 다른 방법이 있을까요?
-
미해결스프링 핵심 원리 - 기본편
스프링 기술을 만든 이유와 핵심 컨셉
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 !스프링이란? 챕터를 공부하고 있습니다 !이 강의를 듣고 스프링이 무엇인지이 기술을 왜 만들었는지이 기술의 핵심 컨셉이 무엇인지 이 3가지에 대한 답을 정의하고 싶었는데, 제가 잘 이해한것인지 확인하고 싶어서 글을 남깁니다 ! 스프링이란?객체지향 언어가 가진 강력한 특징을 살려내는 프레임워크다. 이 기술을 왜 만들었는지.좋은 객체지향 애플리케이션을 개발할 수 있게 도와주기 위해서. 이 기술의 핵심 컨셉이 무엇인지이 부분에 대한 해답을 얻지 못해서 검색을 통해 찾아보았는데, DI(DependencyInjection)과 AOP라고 합니다.의존성 주입: 객체 간의 관계를 외부에서 주입하여, 코드 간 결합을 줄이는 방식으로, 이로 인해 테스트가 용이해지고 유지보수가 쉬워집니다.AOP: 공통적인 기능(예: 로깅, 보안)을 특정 코드에서 분리하여, 여러 클래스에서 사용 가능한 방식으로 적용할 수 있습니다. 제가 이해한 게 맞는지 궁금합니다.부족한 답변이었다면, 추가적인 조언 부탁드리겠습니다 !
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
고급1편 안 듣고 고급2편 들어도 되나요?
고급2편 내용 먼저 들으려는데 멀티스레드 동시성 이거 무조건 들어야 고급 2편 들을 수 잇을까요?
-
미해결김영한의 실전 자바 - 기본편
@Override
[질문 내용]자식 클래스에서 부모 클래스를 상속받아 변수를 새로 재정의 할 때 왜 변수에는 @Override 어노테이션을 사용 할 수 없는 건가요? 생각해보니까 메소드 오버라이딩은 있어도 자식클래스에서 부모클래스의 동일한 변수는 왜 재정의가 안되는 거죠?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
재생이 안됩니다ㅠㅠ
갑자기 모든 강의가 재생이 안됩니다ㅠㅠ
-
미해결김영한의 실전 자바 - 중급 2편
인텔리제이 SDK 오류
인텔리제이에서 java-mid2 폴더를 열면 파일들이 안보이는데 SDK 오류 같습니다. 어떤 버전의 SDK 써야 오류 안나나요? 지금은 Eclipse Termurin 21.0.4 -aarch64 설정되어 있네요
-
미해결스프링 핵심 원리 - 기본편
스프링관련 로그가 뜨지않습니다
강의에서는 스프링관련 로그 (Bean)들이 뜨던데저는 뜨지않습니다 뭐가 잘못된 걸까요?? 물론 코드는 오류없이 동작합니다
-
미해결김영한의 실전 자바 - 중급 1편
engine = new Engine(this) 는 어떤 식으로 인스턴스화가 이루어지나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. private String model; private int chargeLevel; private Engine engine; public Car(String model, int chargeLevel) { this.model = model; this.chargeLevel = chargeLevel; engine = new Engine(this); }Car 를 생성하는 도중에 Engine 객체를 생성하기 위해 this 로 자기 자신을 넘겨주게 되면 어떤 순서로 객체가 만들어지는 건가요?- 초기화가 제대로 이루어지지 않은 Car 객체를 Engine에 넘겨주는 건가요?- 아니면 객체의 필드를 초기화하고 생성하기 이전에 참조 값만 생성해서 넘겨주는 건가요?
-
해결됨김영한의 실전 자바 - 기본편
final 참조형 변수
[질문 내용]섹션9 final 변수와 참조 에서 final을 참조형 변수에 붙었을 때 참조 대상 자체를 다른 대상으로 변경하지 못한다는 점에서 이 참조형 변수는 싱글톤(singleton) 패턴이라고 동일시해도 되는 것인가요?
-
해결됨김영한의 실전 자바 - 기본편
메소드 영역, 힙 영역
[질문 내용]섹션8. 자바 메모리 구조와 static 강의 1분 42초 쯤에 김영한 강사님께서 static영역에서 변수 데이터, 변수 선언해서 스태틱을 해버리면 힙 영역의 참조값을 참조할 수 있다고 그러셨는데,이 말인 즉슨, static 메소드에서 매개변수로 변수 데이터를 선언해서 그 매개변수를 통해 참조값을 참조할 수 있다고 얘기하신게 같은 의미인지 궁금해서 질문합니다.
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
FindObjectOfType Deprecated오류가 발생하는데요.
LobbyUIController = FindObjectOfType<LobbyUIController>();강의대로 위의 코드로 진행하는 과정에서 오류가 있어서.. LobbyUIController = FindFirstObjectByType<LobbyUIController>();이렇게 수정하라고 나오는데, 이 때문인지 로비 쪽의 Scene을 로드하면 Log에서 아래와 같이 Error가 찍힙니다.NullReferenceException: Object reference not set to an instance of an objectLobbyManager.Start () (at Assets/Scripts/Lobby/LobbyManager.cs:23)
-
미해결김영한의 실전 자바 - 기본편
자바 입문- 기본
안녕하세요? 자바로 data structure 에 대한 공부를 해야 하는데 선생님 수업을 기본을 신청했습니다. 혹시 어느 수업에서 데이터 구조에 대한 설명을 잘 들을수 있나요?
-
미해결김영한의 실전 자바 - 중급 2편
배열도 리스트라고 할 수 있나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]<직접 구현하는 배열 리스트1 -시작 2:15초>리스트의 정의를 보았을 때, 순서가 있고 중복을 허용하는 자료구조를 리스트라고 한다. 배열: 순서가 있고 중복을 허용하지만 크기가 정적으로 고정됨. 리스트: 순서가 있고 중복을 허용하지만, 크기가 정적으로 변할 수 있음. 배열은 리스트에 포함이 되는 것 같기도, 안 되는 것 같기도 합니다..!정의를 보면 배열은 리스트에 포함되는 것 같고,리스트와 대조해보면 리스트가 아닌 것 같아요..! 배열도 리스트 자료구조인가요..?
-
미해결스프링 핵심 원리 - 기본편
@Autowired를 제거해도 의존 관계 주입이 가능한지
[질문 내용]질문 1.ComponentScan과 Autowired를 이용한 스프링 빈 등록 과정을 다음과 같이 이해해보았는데 틀린 내용이 있을까요? 특히 2,3,4 과정이 자세히 알고 싶습니다. @Component 애노테이션이 달린 클래스의 이름을 갖는 빈( 빈 껍데기 )을 등록빈으로 등록된 클래스의 생성자를 실행이 때 생성자의 매개변수가 적은 순서대로 실행 ( MemoryMemberRepository,RateDiscountPolicy -> MemberServiceImpl -> OrderServiceImpl )@Autowired 애노테이션이 달려있다면 생성자의 매개변수 클래스 타입을 확인한다. 해당 클래스 타입을 등록되어 있는 스프링 빈에서 가져온다.생성자를 실행하여 의존 관계 주입을 받은 인스턴스를 등록되어 있는 빈에 넣는다. 질문 2 .3~4 과정에서 @Autowired 애노테이션이 없다면 의존 관계 주입이 이루어지지 않을 것이라고 생각해서 MemberServiceImpl에 @Autowired를 제거해보았는데 MemoryMemberRepository 빈을 알아서 가져와서 의존관계 주입을 받게 되는데 어떻게 주입 받는 것인지 궁금합니다. Dependencies Diagram을 확인해보았더니 @Autowired를 통해서 주입 받는 orderServiceImplr과는 다르게 depends on 이라고 적혀있는데 MemoryMemberRepository가 @ComponentScan으로 빈으로 등록되어서 스프링이 자동으로 알맞은 의존 관계 주입을 해준 것인가요?
-
해결됨김영한의 실전 자바 - 중급 2편
Map에 있는 entry에 대해서 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. entry에 대해서, 뭔가 꺼림직한게 있어서 질문을 드립니다.entry에 대해서 더 자세히 설명해 주실 수 있으신가요?entry가 key와 value의 집합 이라고 이해가 되는데? 뭔가 애매해서 질문을 드립니다.꺼림직하고 애매한데, 어떻게 설명해야 할지 어렵네요.그래서 그냥 저가 느낌(생각) 그대로 질문을 올리는것입니다.답변 부탁 드립니다.
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
R키를 2초 누르면 재시작 하도록 구현하고 싶은데 이상합니다
R키 2초 누르면 SceneLoader의 ReLoadScene으로현재 씬을 재시작하도록 했습니다.재시작할 때 사진처럼 되면서 살짝 딜레이가 생깁니다.public bool RDown = false; // R 키를 눌렀는가? // true: 누르는 중 public float RDownTime = 0.0f; // R 키를 몇초 눌렀는가? private void Awake() { setting = transform.GetChild(0).gameObject; } protected override void HandleInput() { base.HandleInput(); RDown = Input.GetKey(KeyCode.R); if (RDown) { Debug.Log("R 키 누르는 중"); RDownTime += Time.deltaTime; if (RDownTime > 2.0f) // R버튼 2초 누르면 재시작 { SceneLoader.Instance.ReloadScene(); } } else // 누른 시간 초기화 { RDownTime = 0.0f; } //if (!RDown) // 누른 시간 초기화 //{ // RDownTime = 0.0f; //} } public void OnClickReStartBtn() // 재시작 버튼 구현 { SceneLoader.Instance.ReloadScene(); } HandleInput 함수는 부모 클래스 Update에서 호출 중입니다. 추가로 여기에 R키 사용에 있어 쿨타임을 줄 수 있을까요?씬이 재시작되면서 쿨타임 체크하는 부분도 씬 재시작으로 인해 초기화가 되지 않을까 걱정입니다.
-
미해결스프링 핵심 원리 - 기본편
Bean등록 부분이 이해가 안됩니다.
첫번쨰로 수동으로 등록한다고 했을때 package hello.core.config; import hello.core.discount.DiscountPolicy; import hello.core.discount.impl.FixDiscountPolicy; import hello.core.discount.impl.RateDiscountPoilcy; import hello.core.member.repository.MemberReposotory; import hello.core.member.repository.impl.MemoryMemberRepository; import hello.core.member.service.MemberService; import hello.core.member.service.impl.MemberServiceImpl; import hello.core.order.service.OrderService; import hello.core.order.service.impl.OrderSerivceImpl; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class AppConfig { @Bean public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } @Bean public OrderService orderService() { return new OrderSerivceImpl(discountPolicy(), memberRepository()); } @Bean public MemberReposotory memberRepository() { return new MemoryMemberRepository(); } @Bean public DiscountPolicy discountPolicy() { return new RateDiscountPoilcy(); // 또는 RateDiscountPolicy()로 변경 가능 } } 이런식으로 @Configuration + @Bean으로 수동으로 등록하면 package hello.core.member.service.impl; import hello.core.member.domain.Member; import hello.core.member.repository.MemberReposotory; import hello.core.member.repository.impl.MemoryMemberRepository; import hello.core.member.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; //@Component public class MemberServiceImpl implements MemberService { // private final MemberReposotory memberReposotory = new MemoryMemberRepository(); private final MemberReposotory memberReposotory; public MemberServiceImpl(MemberReposotory memberReposotory) { this.memberReposotory = memberReposotory; } @Override public void join(Member member) { memberReposotory.save(member); } @Override public Member findMemer(Long memerId) { return memberReposotory.findById(memerId); } public MemberReposotory getMemberReposotory() { return memberReposotory; } }MemberSeriveImpl클래스에는 @Component를 안붙여도되는거죠? 두번째 질문은 제가 알기론 컴포넌트스켄을 사용안하고 Component만 클래스위에붙여도 자동적으로 빈으로 등록되는걸로아는데 꼭 ComponentScan을 적용해야만 Component가붙은 클래스들이 자동적으로 빈으로 등록되나요?
-
해결됨김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
섹션12의 HTTP 서버1 - 시작에서 27분에 질문있습니다.
다른 브라우저를 사용해야 테스트가 확실히 된다고 하셨는데같은 브라우저일 때는 왜 테스트에 어려움이 있는걸까요?어차피 쓰레드 하나로 순차 동기 실행 아닐까요?궁금합니다!
-
미해결Java TPC 실전프로젝트 (Java API 활용)
cmd창.. 인텔리제이 소켓만들기 (실습)
소켓 실습하고 있는데cmd창에서 src까지 들어갔는데자꾸 클래스를 찾을 수 없다 합니다..ㅠ구글링도 해보았으나 뭐가 문제일까요... ㅠ
-
미해결스프링 핵심 원리 - 기본편
Section8_조회한 빈이 모두 필요할 때, List, Map 질문
오타도 없고 강의 코드와 똑같이 실행했는데 discountPolicy에 NULL값이 할당이 되어있습니다.policyMap에 rateDiscountPolicy, fixDiscountPolicy이 둘다 담겨져있는데 nullpointerexception이 발생하는 이유를 모르겠습니다.public int discount(Member member, int price, String discountCode) { DiscountPolicy discountPolicy = policyMap.get(discountCode); return discountPolicy.discount(member, price); }