묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
Provider 오류
스프링 부트 버전이 3.2.0 이라서 다음과 같이 라이브러리를 추가했는데도 Provider이 안뜹니다. 어디가 문제 일까요?
-
미해결스프링 핵심 원리 - 기본편
컴포넌트 스캔에서 @Bean이 붙은 메서드에 관한 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요 강의 보다가 궁금해서 질문드립니다.AutoAppConfigTest파일의 @Bean이 붙은 메서드에서 반환타입이 MemberRepository라면 첨부 파일과같이 (강의와같이) 에러가 발생하는데 반환타입을 MemoryMemberRepository로 하면 문제없이 잘 실행되는것을 확인헀습니다. Bean의 이름을 memoryMemberRepository로 해놓았으므로 반환타입에 관계없이 에러가 나올줄 알았는데 왜 정상실행되는지 알려주셨으면 감사하겠습니다.
-
해결됨스프링 핵심 원리 - 기본편
싱글톤과 프로토타입 빈 사용 시 질문입니다.
여기서 count가 1이 아닌 2가 되는 이유가,싱글톤이 생성되고 의존 관계가 주입되는데, 이때 프로토타입 빈을 요청한다. 이때 프로토타입 빈이 싱글톤에 전달되고 이 프로토타입 빈은 clientBean 안에 종료 시 까지 유지된다.사용자 A, 사용자 B가 받는 clientBean은 싱글톤이기 때문에 같다.clientBean이 다시 생성되면서 스프링 컨테이너에 프로토타입 빈을 받은게 아니라, 기존 의존관계 주입 시 받은 프로토타입 빈이 그대로 남아있기 때문에 count값이 유지된다. 만약 클라이언트 요청 시마다 clientBean을 재생성한다면 값이 1이 될 것이다.이렇게 이해해도 될까요?
-
미해결김영한의 실전 자바 - 기본편
기본 생성자 생략에 관한 질문입니다.
생성자 내부에서 첫 줄에 기본 생성자를 적어줘야하지만 매개변수가 없을 땐 생략 가능하다고 나와있는데 매개변수 부분이 없다는게 부모 클래스에서의 생성자인 Class A() 기준인가요?=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결김영한의 실전 자바 - 기본편
3. 객체 지향 프로그래밍 질문
package oop1.ex; public class Ex1Rectangle { int height; int width; int area; int perimeter; void calculateArea() { area = width * height; System.out.println("넓이: " + area); } void calculatePerimeter() { perimeter = 2 * (width + height); System.out.println("둘레: " + perimeter); } void isSquare() { boolean isSquare = width == height; System.out.println("정사각형 여부: "+ isSquare); } }package oop1.ex; public class Ex1RectangleObjectMain { public static void main(String[] args) { Ex1Rectangle rectangle = new Ex1Rectangle(); rectangle.height = 8; rectangle.width = 5; rectangle.calculateArea(); rectangle.calculatePerimeter(); rectangle.isSquare(); } }[질문 내용]3. 객체지향 프로그래밍 문제 1번의 제공된 정답에서는System.out.println으로 출력하는 부분을 main메서드 안에 남겨두었고,제가 문제를 푸는 과정에서는객체 클래스에 int area와 int perimeter를 선언한 후, 각 메서드를 int와 boolean값을 반환하지 않는 void메서드로 변경하고, 계산된 값을 출력하는 부분을 각 메서드 안에 넣어놓고,main메서드에서는 int width와 int height의 값을 지정하고 객체 클래스의 메서드들을 호출만 했고 같은 결과가 나오는데,둘 중 어느 것이 효율적이고 여러 방면에서 좋은 코드인가요??
-
미해결김영한의 실전 자바 - 기본편
코드 구현력
안녕하세요 영한님. 강의를 보면서 한층 더 발전한 것 같습니다.실제 문제2를 풀면서 변하는 부분은 결제 종류가 추가되는 부분이고 나머지는 수정되지 않는 것을 보면서이게 클린코드인가..? 이런 생각을 했습니다. 이런 식의 코드 구현력을 공부하려면 디자인 패턴을 공부해야 할까요 ? 한마디로 클린코드를 짜기 위해서 디자인 패턴에 대한 내용을 공부하면 어느정도 코드가 보이는 걸까요 ?
-
미해결스프링 핵심 원리 - 기본편
학습 순서 및 방법에 대해 질문있습니다.
이해가 되지 않아도 일단 먼저 듣고 복습을 하는 방식으로 학습을 하고 있습니다. 1.강의 들으며 손코딩 및 필기(이해 안돼도 진도빼는 위주로)2.(강의 전체 한바퀴 돈 후)강의자료 보며 복습3.혼자 해보다가 막히면 강의자료 참고 이런 식으로 학습중인데영한님께서 올려주신 최신 로드맵 영상에서 '실전! 스프링 부트와 JPA 활용 1' 은 복습할 것을 권장해주셨는데문제는 그냥 순서대로 들으라고 하신 강의도1,2 단계까지 해도 이해가 안돼서 3까지 하고있는 중입니다.. 지금처럼 진도 나가는 것이 더디더라도 한 강의(각 챕터 말고 통째로 하나의 강의)를 제대로 이해하고 다음 강의로 넘어가는 식으로 해야할지아니면 이해가 되지 않아도 로드맵의 진도 나가는 것을 우선으로 하는 것이 좋을지 고민입니다
-
미해결스프링 핵심 원리 - 기본편
학습 방법에 관해서 질문드립니다.
영한님 커리큘럼을 타고 있는데 효율적인 학습 방법이 있을까요? 현재 공부하고 있는 방법은 강의를 듣고 난 후 자료를 보면서 복습하고, 모르는 것이 있으면 질문하고 있습니다.강의를 듣거나 복습하는 과정에서 이해는 되는데, 안보고 코드를 치면서 구현을 한다고 하면 못할거 같다는 생각이 들더라고요. 영한님이 설명해주시는 강의 흐름은 이해가 되는데, 회원, 서비스, 주문 도메인 구현 과정이나 그 안에 어떤 메소드를 만들어야 하는지, 또 어떤 자료형을 사용할지에 대한 실력이 많이 부족한거 같습니다. 이 부분들은 강의를 복습한다고 해서 실력이 늘거같지도 않고, 시간이 많이 소요될거 같아서요. 혼자 프로젝트를 진행하면서 많이 써보면 되지 않을까 싶긴한데 이제 기본강의를 듣는 입장이라.. 아직은 부족해보입니다. 어떤식으로 공부하는게 좋을지 조언을 주셨으면 좋겠습니다. 추가로, 혼자 프로젝트를 하기 위해서는 로드맵 어느 강의까지 봐야 할까요? 현재 가지고 있는 지식은 자바 기초문법+스프링 입문+ 스프링 기초강의1 입니다.
-
미해결스프링 핵심 원리 - 기본편
회원 도메인 설계에서 회원 도메인 협력 협력관계에서 클라이언트에 관해 질문있습니다.
MemberRepositoy가 회원저장소, MemberService가 회원서비스의 역할인 것은 알겠습니다. 그렇다면 클라이언트는 MemberApp OrderApp같은 Application인가요? 아니면 CoreApplication 인가요? 어떤것이 클라이언트를 의미하는지 잘 모르겠습니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
인텔리제이 폰트 색상 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 강의를 수강중인 사람입니다. 인텔리제이 2023을 써도 저는 영한님처럼 코드 색상이 안나오네요.. 혹시 맥과 윈도우의 차이일까요? 아니면 다른 설정이 필요한건가요?
-
미해결김영한의 실전 자바 - 기본편
블로그 혹은 깃허브에 코드 업로드가 가능한가요?
안녕하세요.강의에서 사용되는 코드와 덧붙여 제가 공부하며 추가로 작성한 내용들을 개인 블로그 혹은 깃허브에 업로드하는 것이 가능할까요?김영한 선생님의 다른 강의들에도 동일하게 적용되는지 궁금합니다.어렵다면 프라이빗으로 작성하겠습니다!
-
미해결스프링 핵심 원리 - 기본편
회원 도메인 설계 질문
회원 도메인 설계 과정에서 질문 있습니다.회원 서비스 , 회원 저장소 객체로 나눈 이유가 궁금합니다. 각 기능별로 구분하기 위해 이렇게 구현한것인가요?클라이언트가 의미하는 것은 사용자가 보내는 요청이랑 같다고 생각해도 될까요?위 그림에서 회원서비스, 회원 저장소 인터페이스는 있는데 클라이언트 인터페이스가 없는 이유가 궁금합니다.
-
미해결김영한의 실전 자바 - 기본편
다형성1 과목 개념정리 질문입니다
[질문 내용]제가 지금 이해한 내용으로는Parent parent = new child(); 가 있을때 메모리에는 Child를 기준으로 상위 부모 클래스만 메모리에 적재되고 (편의상 Child 메모리라고 하겠습니다),parent의 참조 주소는 생성된 Child 메모리 안의 Parent 클래스를 참조하며,parent의 멤버변수는 Parent 클래스의 멤버변수만 가질 수 있고,오버라이딩된 메소드가 존재한다면 무조건 오버라이딩된 메소드가 우선권을 가진다 라고이해했는데, 덧붙일 개념들이 혹시 있을까요?아, 그리고 만약 오버라이딩된 메소드가 부모클래스에서 실행할 수 없는 메소드라면 어떻게되는지도 궁금합니다. (혹시, 오버라이딩된 메소드가 부모클래스에서 실행되지않을 가능성은 아예 없나요?)
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
새로운 스위치문
package cond.ex; public class ScoreEx5 { public static void main(String[] args) { String grade = "A"; String appraisal = switch (grade) { case "A" -> "그는 도데체..."; case "B" -> "잘 했어"; case "C" -> "괜찮아 계절 학기 있어"; case "D" -> "졸업 하려면 화이팅"; case "F" -> "재수강하세요"; }; System.out.println(appraisal); } }오류내용C:\study\java_study\java_start\src\cond\ex\ScoreEx5.java:7:28java: the switch expression does not cover all possible input values 문제를 풀던중 해당 오류가 발생 했습니다. 어떠한 이유 때문인지 모르겠어서 질문 남깁니다. 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
싱글톤 컨테이너 @Configuration과 싱글톤
안녕하세요.수업들으며 똑같이 실습 따라하다가 값이 똑같아야 하는데 저는 다르게 나와서요,,!분명 어딘가 문제가 있어서 그럴 것 같은데... 어느 부분이 잘못 됐을까요?ㅜㅜ?혹시 몰라서 아래에 OrderServiceImpl과 MemberServiceImpl 코드도 추가해 봅니다..스크린샷으로 하면 짤려서요..ㅜㅜ package hello.core.order;import hello.core.discount.DiscountPolicy;import hello.core.member.Member;import hello.core.member.MemberRepository;public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository ; private final DiscountPolicy discountPolicy ; public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy; } @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; }} package hello.core.member;public class MemberServiceImpl implements MemberService{ private final MemberRepository memberRepository; public MemberServiceImpl(MemberRepository memberRepository) { this.memberRepository = memberRepository; } @Override public void join(Member member) { memberRepository.save(member); } @Override public Member findMember(Long memberId) { return memberRepository.findById(memberId); } //테스트 용도 public MemberRepository getMemberRepository() { return memberRepository; }}
-
미해결Java/Spring 주니어 개발자를 위한 오답노트
외래키를 지양하라는 질문에 대한 궁금증
외래키 사용을 지양하라는 내용이 있어서 링크된 글을 읽어봤는데 궁금증이 있습니다. 외래키를 지양한다면 PK 값을 다른 테이블에 넣으면서 그 값으로 조인을 사용하는건가요?외래키를 지양했을 때 성능상의 이점은 알겠는데 결국 데이터 정합성 부분에서 문제가 발생합니다. RDB에서 데이터 정합성이 깨지면 사용하는 의미가 없다고 하는데 이부분에선 어떻게 생각하시나요?외래키를 안쓸경우 JPA에서 ManyToOne같은 메소드도 사용하지 않는건가요?그리고 해당 주장에 대해 반박하는 아래의 링크도 있는데 이 의견은 어떠신가요?https://gdsc-university-of-seoul.github.io/foreign-key/
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
훈련_문제(ScannerWhileEx4)
ScannerWhileEx4 관련하여 질문합니다. 문제 풀이에서는 if문으로 해결하셨는데 혹시 switch문으로도 해결할 수 있나요?
-
미해결스프링 핵심 원리 - 기본편
Configuration질문있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]컴포넌스 스캔을 사용하면 클래스 내의 메소드에 빈을 하나하나 등록할 필요없이 컴포넌스만 붙이면 알아서 빈에 등록하는 것으로 이해했습니다. 그런데 강의 내용 중 컨피그레이션을 사용하는 경우 내부적으로 컴포넌트가 붙여져 있음을 알려주셨는데요. 그럼 컨피그레이션을 붙이면 빈을 일일히 등록해줄 필요가 없어지는 거 아닌가요?? 맞다면 이 경우 컴포넌트를 사용하는 것과 컴피그레이션을 사용하는 것의 유의미한 차이가 무엇인지 궁금합니다.
-
해결됨김영한의 실전 자바 - 기본편
7. 자바 메모리 구조와 static ppt 오타 제보합니다.
안녕하세요! 좋은 강의 항상 잘 듣고 있습니다. ppt에 오타가 있는 것 같아 제보합니다.7. 자바 메모리 구조와 static 에서 p. 29 입니다. DataCountMain3 -> DecoDataMain 인 것 같은데 확인 부탁드립니다.오타 제보는 어디서 하는 지 몰라 여기에 제보하는 점 양해를 바라고 좋은 하루 되시길 바랍니다.
-
미해결김영한의 실전 자바 - 기본편
자식 클래스 생성 시 method 영역 질문
영한님, 강의 잘 듣고 있습니다. 상속 부분에서 질문이 있는데, 자식 클래스를 생성하면(인스턴스 생성 말고) method 영역에서는 어떻게 되나요?강의자료에선 인스턴스 생성 시 heap 영역에 대한 내용만 있어서 외부 자료도 찾아봤지만, 자식클래스가 method 영역에서 어떻게 생성되는지는 찾기가 어렵네요(예를들어 heap 영역과 같이 부모클래스를 포함한 형태로 생성이 된다던지 등…)