묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
isSameAs 와 isEqualTo 차이
안녕하십니까 테스트 코드 작성 중 궁금한 것이 생겨 질문드립니다. 1. memberService에서 member를 조회하셨는데, 예제여서 그런 것인지, 아니면 만약에 실제 DB를 사용하여 member를 조회한다면 memberService에서 실제로 조회를 하나요?? 저는 memberService가 회원가입을 하고 조회는 Repository에서 해야하는 것 아닐까? 라는 생각이 들었습니다,, 위의 코드가 잘못됐다가 아니라 정말 궁금해서 여쭤보고 싶습니다,, 2. isSameAs vs isEqualTo isSameAs는 same reference, isEqualTo는 equal based on value라고 구글링을 해서 알게되었는데, 여기서 findMember는 객체인데 어떻게 isEqualTo를 해도 되는지 궁금합니다,,
-
해결됨스프링 핵심 원리 - 기본편
@ComponentScan 사용 시 @Configuration에 대하여
안녕하세요 영한님 전 강의에서는 @Configuration이 있는 AppConfig클래스에서 CGLIB를 통해 AppConfig를 상속받은 AppConfig@CGLIB 클래스를 빈으로 등록한다고 하셨는데요, 이때는 AppConfig@CGLIB 클래스가 빈으로 등록되었기 때문에 빈 설정 파일에 등록된 모든 메서드가 CGLIB 기능을 거쳐서 빈 등록이 되었다고 생각했었습니다. 그런데 이번 강의와 같이 @Configuration과 컴포넌트 스캔을 통해서 빈 등록을 한다면 빈 등록이 되어있는 모든 객체가 CGLIB 기능을 거쳐서 빈 등록이 되는건지 여쭈어보고 싶습니다!
-
미해결스프링 핵심 원리 - 기본편
nullPointException 에러
map 객체에 static을 안붙이면 nullpoint 예외가 나오는데 static을 붙이지 않으면 메모리를 공유하지 않기 때문인가요??
-
미해결스프링 핵심 원리 - 기본편
SingletonWithPrototype에서 Provider 대신 프록시 사용
이전 강의에 싱클톤 빈(ClientBean)안에 PrototypeBean이 있는 예제에서 프로바이더 대신 프록시로 해봤는데, 프로토타입빈의 addCount()메소드를 타지 않아 count가 계속 0으로 나오더라구요 프록시로 해결할 수 있는 경우가 있고 ObjectProvider로 해결해야하는 경우가 따로 있나요?
-
미해결스프링 핵심 원리 - 기본편
강의 복습하다가 생긴 질문 및 다음 커리큘럼에 대한 질문
1. 업로드해주신 pdf 파일 기준 18페이지, 19페이지에 주문과 관련된 클래스 및 인터페이스가 Order, OrderService, OrderSerivceImpl 이렇게 총 3개가 나오는데요 OrderSerivce은 말 그대로 역할을 위한 interface이고 OrderServiceImpl은 OrderService를 상속받은 클래스인데, 왜 Order라는 클래스를 하나 더 만드셨는지 궁금합니다. (Order안에 OrderServiceImpl의 내용을 다 넣어도 되지 않았을까? 굳이 왜 저렇게 소스를 작성하셨는지가 궁금합니다. 궁금한 점을 명확하게 표현하기가 어려운데, 주문이라는 행위 하나에 왜 Order과 OrderServiceImpl 두개의 클래스를 만들었는지?가 궁금합니다. OrderServiceImpl은 주문하는 과정이고 , Order은 영수증이라고 보면 되는걸까요?) - 2. 그리고 강의를 모두 수강 했는데, 강의 마지막에 JPA 실무 완전 정복 로드맵 (야생형) 수강하는 것을 추천하셨는데 최근에 남기신 댓글에서는 김영한의 스프링 완전 정복 MVC1편까지 보고 JPA 실무 완전 정복 로드맵 (야생형) 을 추천하시더라구요 스프링 완전 정복 로드맵( MVC2편 까지) 다 수강하고 JPA 실무 완전 정복 로드맵 (야생형) 으로 넘어가면 될까요 ?? 아니면 MVC1편만 수강하고 JPA 실무 완전 정복 로드맵 (야생형) 로 공부한다음에 돌아와서 MVC2편을 수강하면 되는건가요 ? 강의 매번 잘 듣고 있습니다. 좋은 강의 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
NetworkClient setUrl 질문
빈 생명주기 콜백 예시 중 빈 생성후 연결단계에서 setUrl로 연결처리 해주셨는데.. 한가지 궁금한건 이전 강의에서 싱글톤 주의점으로 외부에서 빈의 변수를 수정할 수 있으면 바뀔 수 있는 위험이 있으니 저렇게 setUrl을 퍼블릭 메소드로 두면 안되지 않나요? 그런데 또 NetworkClient 생성자에 url 파라메터로 주지말고 역할을 따로 줘야한다고 해서 두가지가 헷갈랍니다.
-
해결됨스프링 핵심 원리 - 기본편
Provider의 정확한 역할에 대해 질문드립니다.
안녕하세요! Provider는 조회를 해주는 기능이 있고, 프로토타입은 요청을 할때마다 새로 생성이 된다는 것을 이해했습니다. 1. 그러면 프로토타입을 요청을 하고 생성된 후 생성된 빈을 찾아 반환해주는 것 까지의 모든 과정이 Provider가 혼자 수행하는 역할이 맞나요?(요청 및 반환) 2. 또한 이 모든 과정 자체를 DL이라고 볼 수 있는건가요?(생성된 것만을 조회하는것이 아닌 더 넓은 의미로, 처음 요청(조회)하여 생성하고 반환 해주는 것까지 DL이라고 볼 수 있는지) 아니면 요청하고 생성하는 것은 제외한 생성된 빈을 조회하여 반환해주는 것까지의 과정이 DL인가요? 3. getObjetct() 등으로 요청을 한 뒤에, 빈이 생성되는게 맞나요?(순서가 맞나요?) 4. ObjectProvider<PrototypeBean> prototypeBeanProvider @Autowired로 주입 받아서 new 같은 초기화를 안해도 되나요? 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
@Autowired를 보다보니 질문이 있습니다.
안녕하세요, 1년차 웹개발자로 일하고있는 영한님 제자입니다. 역할과 구현체에 대한 부분이 객체지향에서 가장 중요한 것 같은데 제가 하는 업무에서는 @Autowired로 퉁쳐서 하나의 역할에 하나의 구현체만 묶는? 경우가 많은 것 같아요. 이게 웹개발 SI 업계의 특징인지 아님 제가 잘못 코딩하고있는 건 지 궁금합니다. 게시판을 만들 때 제가 본 대부분의 코드는 하나의 컨트롤러에서 여러개의 Interface를 @Autowired하는 경우를 많이 봤습니다. 글 게시판, 사진 게시판, 익명 게시판 등 여러개의 게시판이 있다면 그 여러가지 게시판의 기능의 최소공배수를 준비해두거나(영한님 강의 중 자동차 I/F) 각 게시판 별 I/F가 하나씩 생기는(영한님 강의 중 소나타I/F, 그랜져I/F, 테슬라I/F) 경우를 많이 봐왔어요. 그러다 보니 객체지향 언어를 다루고 있으면서도 이게 객체지향인가? 싶고 영한님 강의를 볼때 ?? 내가 보던 코드에 저걸 어떻게 써먹지? 싶었거든요. 그래서 든 생각이 위와 같은 게시판을 만든다고 했을 때, 게시판 관리 I/F(게시글 조회 I/F, 게시글 상세보기 I/F, 게시글 작성 I/F)등을 만들어 두고 각각 익명 게시글 조회 구현체, 사진게시글 조회 구현체, 이런식으로 만들어두는 것이 바람직한 객체지향 설계인가? 하는 궁금증이 생겨서 확인 차 글을 남깁니다. 질문이 두서없지만 답변 미리 감사드립니다.
-
미해결스프링 핵심 원리 - 기본편
AllBeanTest 에서 에러가 발생합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 밑의 분과 동일한 에러가 발생합니다. 빈을 조회하지 못하는 것인지 policyMap = { } policies = [ ] 로 빈이 저장되지 않습니다 https://drive.google.com/file/d/1wsrJKX-C_Ev0a3kSNALiP3YUhhl4NE6_/view?usp=sharing zip 파일 링크 입니다. 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
TestConfig 클래스에서 static을 떼버리면..
안녕하세요. 이번 수업때 임의로 쓰기 위해서 정의한 이너클래스인 TestConfig에서 static을 빼고 실행을 하니 "beans.factory.UnsatisfiedDependencyException"에러가 뜨면서 애초에 컨데이너 생성 및 bean 생성이 되지 않는걸로 보여지는데 기존에 쓰던 AppConfig.class를 사용해서 다시 해보니 잘돌아 가더라구요 AppConfig에는 따로 클래스에 static을 붙이지 않았는데 왜 TestcConfig에서는 static을 붙여햐 하는지.. 뭘 놓치고 있는지 잘 모르겠어서 질문드립니다
-
미해결스프링 핵심 원리 - 기본편
스프링 빈 문의드려요
영한님 안녕하세요.오랜만에 문의를 드리는 거 같아요. 지난 주에 MVC 2번째 과정을 구매해서 듣고 있는데 이전 내용이 생각이 잘 안나서 이과정을 또 듣고 있네요.. ㅎ오랜만에 게시판에 왔더니 서포터즈도 생기고 과거와 분위기가 좀 달라진 거 같아요 ㅎ 좋은 객체 지향 설계를 위해서 스프링 빈으로 등록하고 컨테이너가 빈을 자동 주입을 해주는 부분은 잘 이해가 가는데요.간혹 실무에서 인터페이스가 없는 객체를 만들어 놓고 (사실, 인터페이스가 있을 필요도 없는 케이스)해당 객체를 @Bean 으로 수동 등록해두고, 서비스 계층에서 @Autowired 로 해당 객체를 사용하는 경우를 본 적이 있습니다. 이런 경우는 어떠한 의도로 그렇게 사용을 하는 것일까요?단순히 싱글톤 방식을 원해서일지, 아니면 무언가 다른 케이스가 있어서인지 궁금하네요.
-
미해결스프링 핵심 원리 - 기본편
4:35 질문 있습니다.
강사님 혹시 강의 4분 35초에서 @Autowired를 안적어줘도 되는거 아닌가요?
-
미해결타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍
시간측정 질문입니다!
안녕하세요. 마지막 시간 측정 부분에서 질문이 있습니다! use slot이 0.16이고 no slot이 0.13인데 여기서 어떻게 use slot이 메모리 효율이 좋다는 결론이 도출되는 건가요?
-
미해결스프링 핵심 원리 - 기본편
memberRepository에 final을 붙이는 이유
안녕하세요 선생님. package hello.core.member; public class MemberServiceImpl implements MemberService { private final MemberRepository memberRepository = new MemoryMemberRepository(); 1. 위와 같이 레포지토리 생성 시 final을 붙이는 이유가 무엇인가요? 2. final은 불변의 객체인 경우 or Read only인 경우에만 붙인다고 알고있는데, join 메서드를 실행하게 되면 레포지토리의 store 변수에 데이터가 추가되어 결국 변화가 생기는 것 아닌가요? 편하실 때 답변주시면 감사하겠습니다 !
-
미해결스프링 핵심 원리 - 기본편
프로토타입 빈을 생성할 때 DL
안녕하세요 강의 잘 듣고 있습니다~! 빈(또는 클래스?)을 사용할 때마다 프로토타입 빈을 새로 생성하고자할 때 Provider의 DL을 이용해서 컨테이너에서 해당하는 빈을 찾는다고 하셨는데요~! 실제로 결과를 출력해보면 새로운 프로토타입 빈을 반환하는 것을 알 수 있었습니다. Provider가 새로운 프로토타입 빈을 "생성"해주는 것 같은 느낌인데 어떻게 DL(Dependency Lookup) "조회" 개념으로 설명되는지 잘 모르겠습니다. 감사합니다!
-
미해결스프링 핵심 원리 - 기본편
final은 왜 붙이셨는지 알 수 있을까요?
private final MemberRepositry memberRepository; 인터페이스 의존시킬때 final은 무슨 역할을 하나요?
-
미해결스프링 핵심 원리 - 기본편
MemoryMemberRepository , line number 7
안녕하세요, 강의 너무 감사히 잘 듣고있습니다 질문있는데요 MemoryMemberRepository , line number 7 에서요 hashmap을 static으로 선언 하신 이유가 무엇인가요?
-
미해결스프링 핵심 원리 - 기본편
getBean이 class를 받아야 하는 이유?
안녕하세요. 명강의 듣다보니 궁금증이 생겨 질문 남깁니다. getBean은 왜 인자로 클래스를 받는가? 입니다. getBean의 역할은 객체를 넘겨주는 것이고 AppConfig에서 @Bean을 통해 constructor를 알려주었을 때 객체 생성을 위한 정보는 모두 받았다고 판단됩니다. 또한 getBean 앞뒤로 sout 찍어보니 실제로 getBean 이전에 모든 객체생성 로그가 찍히기에 궁금증이 더해졌습니다. getBean의 역할을 수행하는데는 name만 가지고도 가능할텐데 왜 class를 인자로 받는걸까요?? 워낙 명강의라 뒤에 나오는 내용을 궁금해하는중일지 모르겠습니다.ㅎㅎ
-
미해결스프링 핵심 원리 - 기본편
강의자료 질문입니다
PPT슬라이드 제목: 스프링과 객체지향 "제어의 역전(IoC), 의존관계 주입(DI)은 다형성을 활용해서 역할과 구현을 편리하게 다룰 수 있도록 지원한다." 위와같은 문장이 있는데, IoC와 DI가 어떻게 다형성을 활용하는지 이해가 가질 않아 질문을 하게 되었습니다.
-
미해결스프링 핵심 원리 - 기본편
AppConfig에서 중복이라는 개념이 궁금한데요
AppConfig가 DIP와 OCP를 해결하기 위하여 MemberServiceImpl 과 OrderServiceImpl에 'new MemoryMemberRepository' 를 주입하는 역할을 하잖아요? 근데 리팩토링 하기전에는 orderService() 와 memberService() 에서 'new MemoryMemberRepository' 를 각각 따로 생성하는걸 중복이라고 보고 이를 해결하기 위해서 리팩토링하여 memberRpository() 를 만들어 한번만 생성하도록 하여 중복을 막으신거라고 이해해도 괜찮은가요??