묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 기본편
참조형과 매서드 호출 강의 중 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용] 강의 자료 중에 위 부분에서 질문이 있습니다.student1 과 student2가 다른 곳에 저장될 수 있는 이유는 student1이 매서드에서 생성되고 인스턴스에 저장된 후에 매서드의 매개변수 student가 지워져서 계속 매서드안의 인스턴스 student를 생성할 수 있는 건가요? 근본적인 질문은 student1과 student2가 매서드를 통해 생성이 되었는데 어떻게 다른 주소를 가지게 되는 지입니다.
-
미해결스프링 핵심 원리 - 기본편
DI 궁금증
@Bean public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } @Bean public MemberRepository memberRepository() { return new MemoryMemberRepository(); } 강의를 여러번봤는데 궁금증이 하나생겼습니다. @Bean으로 설정해주면 스프링컨테이너에서 라이프사이클을 관리해준다고 알고있습니다. 근데 결국은 new MemberServiceImpl에 memberRepository()가 들어간다는게 new MemberServiceImpl(new MemoryMemberRepository)랑 똑같은건데 직접주입하는거와 spring에서 관리하는거의 개념에만 차이가 있고 코드는 방금윗줄에서 설명한거랑 똑같은건가요?
-
해결됨스프링 핵심 원리 - 기본편
섹션5 싱글톤 컨테이너 인스턴스가 다릅니다.
강의내용과 똑같이따라했는데 서로다른 인스턴스가 나옵니다... 분명코드가 똑같은지 3번이나 비교했는데 다른거같아서 올려봅니다.
-
미해결스프링 핵심 원리 - 기본편
궁금한점이 있어 질문드립니다.
다름아니라 섹션 9를 공부하던중 Provider를 사용하던 프록시 객체를 사용하던 지연로딩이 제일 핵심이라고 하셨는데 그렇다면 해당 예제와같이 웹스코프말고 싱글턴의 스코프를 가진 객체를 지연로딩 생성후 의존성 주입을 해주는경우가 실무에서 사용하는경우가 있나요?
-
해결됨스프링 핵심 원리 - 기본편
섹션3 자동완성질문입니다
public class BeanDefinitionTest { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); void springContainer() { // AppConfig appConfig = new AppConfig(); ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);강의중에 class레벨에서 자동완성으로 코드작성할때는 변수 삽입 리팩토링은 현재 콘텍스트에서 지원하시 않습니다라고 나와있는데메소드안에서 선언될때는 바로 되더라구요 차이가 뭔지 알수있을까요?
-
미해결김영한의 실전 자바 - 기본편
String 타입 오류
왜 String타입 변수 정의할 때 빨간줄이 발생하는지 모르겠습니다. 이전까진 같은 방식으로 별 문제가 없었던 거 같은데.. 인텔리제이로 새 프로젝트를 시작하면서 뭔가 달라진 걸까요..?
-
해결됨김영한의 실전 자바 - 기본편
참조값 복사에 따른 인스턴스 동일성 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]강의에서(12:00부분) 참조값만 복사하고 인스턴스를 복사하는 것이 아니라는데, 결국 같은 인스턴스를 접근하게 되잖아요 그러면 위 뜻이 인스턴스가 동일해지는 것은 맞지만, 참조값을 복사하는 것이지 인스턴스를 복사하는 것이 아니라서 잘못 인지하지 말라는 뜻인가요? 아니면 인스턴스가 달라서 참조값만 복사한 것이기에 인스턴스를 복사하는 것이 아니라는 뜻인가요? Data dataA = new Data(); // 1.Data인스턴스 생성후 dataA에 참조값 넣음 dataA.value = 10; Data dataB = dataA; // 2.dataA 참조값을 복사하고 대입함 System.out.println("dataA.value = " + dataA.value); // 10 System.out.println("dataB.value = " + dataB.value); // 10 // 3.dataB는 dataA의 인스턴스에 동일하게 접근하게됨
-
미해결스프링 핵심 원리 - 기본편
혹시 강의 내용 개인 노션에 올려도되나요?
개인 노션에 공부한 내용을 작성하고 있는데 강의한 내용의 그림이나 글을 작성해도 되나요? 전부 복사 붙여넣기가 아닌 요약등으로 올리고있습니다
-
해결됨C개발자를 위한 최소한의 C++
dll 파일과 name mangling 관련 질문드립니다.
안녕하세요. 강의 잘 보고 있습니다.강의를 보는데 갑자기 궁금한 것이 생겨서 질문 드립니다.exe 파일에서 필요할 때마다 dll을 참조하여 호출하는 것으로 이해하고 있습니다.dll엔 이미 함수 symbol이 정의되어 있겠죠.예를 들어 add(int a, int b) 함수를 dll로 만들었다고 가정하면 일반적인 c라면 함수 심볼이 _add라고 예상되지만, C++ 이라면 _add가 아니라 다른 형태의 심볼이 만들어질거라 생각이 됩니다.그런데 exe을 만드는 개발자 입장에서 생각해보면 무엇으로 만들어질지 모르는 심볼을 예측할 수 없으니 c처럼 _add와 같이 확실한 symbol을 선호할 것 같은데, 그러면 dll 파일을 c++로 만들 때 함수 앞에 extern "C" 키워드를 사용하나요?만약 1번 답이 맞다면 추가로 궁금한 것이 있습니다. 제가 알기론 C와 C++의 차이가 name mangling 뿐만 아니라 스택에 쌓이는 매개변수도 차이가 있다고 들었습니다. 그런데 C++로 만드는 exe 파일과 extern "C"로 선언한 dll을 같이 사용하면 문제가 생기지 않나요?부족한 것이 많아 질문에 오류가 있을 수 있습니다. 제가 잘못 알고 있는 부분은 피드백 주신다면 다시 공부하겠습니다.감사합니다.
-
해결됨C개발자를 위한 최소한의 C++
스크립트 오류 참조형(변하지 않는 포인터)
10:00 경 "근데 지금 값이 참조자인 ref에 들어있는 값하고 요놈하고 똑같죠. 네 그래서 여기에다 대고 그래서 간접지정해서 30 이러면은 F10키 눌러 보면 여기 데이터의 값이 바뀌는 걸 보실 수가 있죠? 네 데이터 출력하면 당연히 30이 나오겠네요. 해서 여러분이 지금까지 이만큼의 내용을 보셔서 아시겠지만 참조자라고 하는 것은 개념적인 표현이고 참조자의 실체는 포인터랑 똑같이 구현이 돼요. 그래서 기계어 수준으로 내려가서 쫓아가 보면은 결과적으로는 그렇다. 그래서 참고하시기 바랍니다. 아, 참조자 이런 거구나." 인데 이게 스크립트에서 이상하게 표시가 됩니다. 처리 부탁드릴게요. 고맙습니다!
-
해결됨C개발자를 위한 최소한의 C++
스크립트 오류
7:38초 경 텍스트가 그러면 그거랑 5랑 더해서 연산의 임시결과가 떨어졌겠죠 그게 15가 저장되어 있는 integer 인스턴스일텐데, 사라져야 될 운명이었으나 거기에다 이름을 부여한거죠. 인데 수정 제안할랬더니 길어서 짤리네요. 관리자분께서 스크립트 시간 자른 후 나눠서 바꿔주셔야 할 것 같아요.지난 시간 것도 유사한 게 있었어요. 통으로 날아가 있어서... 조치 부탁드립니다! 노트 필기하는 마음으로 스크립트 수정 중입니다. ㅎㅎ
-
해결됨김영한의 실전 자바 - 기본편
실무와 this, 멤버변수와 매개변수 이름 짓기
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요! 실무와 관련해서 궁금한 점이 있습니다.IDE 가 발전하면서 매개변수와 멤버변수를 색으로 구분할 수 있게 되어서 this를 잘 쓰지 않는다고 하셨는데요, 그렇다면 매개변수와 멤버변수명을 일부러 다르게 설정을 하나요? 감사합니다.
-
해결됨스프링 핵심 원리 - 기본편
섹션3. 스프링핵심원리 이해 강의내용질문
의존관계 주입을 사용하면 클라이언트 코드를 변경하지 않고, 클라이언트가 호출하는 대상의 타입 인스턴스를 변경할 수 있다. 의존관계 주입을 사용하면 정적인 클래스 의존관계를 변경하지 않고, 동적인 객체 인스턴스 의존관계를 쉽게 변경 할 수 있다. 결국 이 두문장은 똑같은 말 아닌가요? 클라이언트 코드를 변경하지 않는다 == 정적인 클래스 의존관계를 변경하지 않는다클라이언트가 호출하는 대상의 타입 인스턴스를 변경할수있다 == 동적인 객체 인스턴스 의존관계를 쉽게 변경할수있다. 결국 실행이 되는부분은 클라이언트코드니까 동적으로 실행될때 정적인 클래스 의존관계가 유지가 되겠고,인스턴스가 변경할 수 있다는 의미는 런타임중에 정률 할인 정책으로 될지, 정액 할인 정책으로 될지가 동적인 인스턴스의 관계를 변경할수있다는 의미로 들려서 결국 두문장은 같은의미로 사용되지않았나 싶습니다
-
미해결스프링 핵심 원리 - 기본편
List, Map 으로 빈 조회 할 때
AutoAppConfig.class를 넣으면 빈 값이 나와야 하는데 안 나와서 문의 드립니다..!
-
해결됨스프링 핵심 원리 - 기본편
질문이 있습니다.
1.ComponenetScan하는 부분에서 어차피 해당부분은 Bean관리를 직접해주지않는데 Configruation을 적어주는 이유가 뭔가요??2.테스트코드에서 다른 Appconfig의 경우에는멤버변수로 스프링 컨테이너를 설정했지만 컴포넌트 스캔을 사용하는경우에는 메소드 내부에서 스프링 컨테이너 객체를 설정했는데 이유를 알수있을까요?public class ApplicationContextSameBeanFindTest { AnnotationConfigApplicationContext ac=new AnnotationConfigApplicationContext(SameBeanConfig.class);public class AutoAppConfigTest { @Test @DisplayName("컴포넌트 스캔 테스트") void componentScan(){ ApplicationContext ac=new AnnotationConfigApplicationContext(AutoAppConfig.class); MemberService memberService=ac.getBean(MemberService.class); Assertions.assertThat(memberService).isInstanceOf(MemberService.class); }
-
미해결스프링 핵심 원리 - 기본편
싱글톤 관련해서 궁금한점이 있습니다.
@Configuration static class SameBeanConfig{ @Bean public MemberRepository memberRepository1(){ return new MemoryMemberRepository(); } @Bean public MemberRepository memberRepository2(){ return new MemoryMemberRepository(); } }@Test @DisplayName("타입으로 조회시 같은 타입이 둘이상 있을경우 빈이름으로 조회하면 가능함") void findBeansName(){ MemberRepository memberRepository1=ac.getBean("memberRepository1", MemberRepository.class); MemberRepository memberRepository2=ac.getBean("memberRepository2", MemberRepository.class); org.assertj.core.api.Assertions.assertThat(memberRepository1).isEqualTo(memberRepository2); }만약에 이렇게 빈을 등록하고 사용하는경우에는 사실상 싱글톤 패턴은 아니기때문에 예시를 보여주기위해서만 사용하셨을뿐 실무에서는 저런식으로 사용을 안한다고 이해해도될까요?
-
미해결김영한의 실전 자바 - 기본편
접근제어자 문제풀이 관련
안녕하세요 접근제어자 문제풀이가 조금 복잡했었지만 익숙하지 않아서 이해하는데 시간이 걸렸다고 생각합니다.영한 강사님의 문제풀이를 기반으로 제가 추가적으로 다른 기능을 추가해봤는데요. 해당 부분에 대한 버그가 발생해서 질문을 드립니다.제가 추가하고 싶었던 기능은 다음과 같습니다.User id를 입력받고 "환영합니다! UserID" 구문을 출력시킨 뒤 Userid가 주문한 내역 Item의 제품명을 출력하려고 하였습니다.user에 대한 값을 user[userCount] = user이렇게 하였고 메인메소드에서 user에 대한 인스턴스를 생성하고 creatUser 메소드를 통해서 생성된 인스턴스가 배열에 담아졌으니 userOrder메소드를 실행하면인덱스에 저장된 user에 대한 정보가 출력되어야 하는 것이 아닐까? 라는 생각을 가졌는데 null이 출력이 되어서 어떤 부분에서 착오가 있었는지 알고 싶습니다. 객체지향프로그래밍에 대한 부분과 접근제어자에 대한 개념 및 이해도가 낮아서 일어나는 실수일까요..?
-
미해결스프링 핵심 원리 - 기본편
복습 하던중 궁금한 사항이 생겨 질문드립니다.
섹션 2 부분에서 MemoryMemberRepository의 부분의 store를 정적 변수로 설정한 이유가 만약 멤버변수로 선언하게되면 MemberServiceImpl , OrderServiceImpl에서 각가 의존하는 MemoryMemberRepository내부의 store 객체도 달라지기때문에정적 변수로 설정하신걸까요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
매서드에서 void가 쓰이는 경우
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 메서드에서 반환타입이 없어서 void를 쓰는경우(return을 쓸 필요 없는 경우)는 메서드가 출력문 system.out.println("내용");으로만 이루어진 경우 뿐 인가요?
-
해결됨스프링 핵심 원리 - 기본편
request 스코프 에러에 대해서 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]김영한님이 하신 그대로 작성하여 Scope를 request에 맞춰서 컨트롤러와 서비스를 만들어 스프링 부트를 작동한 경우 로그에서 에러가 발생하셨습니다.똑같이 코드를 작성하였음에도 이상하게 정상적으로 스프링 부트가 실행이 되고 있고 스크린샷으로 첨부는 하지 않았으나 Debug로 로그 범위를 확장하였음에도 해당 오류 ('request 스코프 예제 만들기' 강좌 14:30 직후)에 대해서 확인이 안되고 있습니다.