묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
AppConfig의 @Bean 메서드의 이름을 아무렇게나 지으면 안되나요?
@Configuration public class AppConfig { @Bean public MemoryMemberRepository memoryRepository() { return new MemoryMemberRepository(); } @Bean public RateDiscountPolicy discountPolicy() { return new RateDiscountPolicy(); } @Bean public MemberService memberService(){ return new MemberServiceImpl(memoryRepository()); } @Bean public OrderService orderService(){ // return null; return new OrderServiceImpl(memoryRepository(), discountPolicy()); } } 저는 지금까지 위의 코드처럼 MemoryMemberRepository 빈 객체를 생성하는 메서드의 이름을 memberRepository가 아니라 memoryRepository로 이름지어주고 진행해왔습니다. 그러다가 7.의존관계 자동 주입 챕터에서 test 폴더를 전부 테스트할 때CoreApplicationTests에서 동일한 타입에 여러 Bean이 생성되었다는 오류 메시지를 받았습니다.Parameter 0 of constructor in hello.core.member.MemberServiceImpl required a single bean, but 2 were found: - memoryMemberRepository: defined in file [C:\Users\***\***\coding\source_code\Spring\inflearn2\out\production\classes\hello\core\member\MemoryMemberRepository.class] - memoryRepository: defined by method 'memoryRepository' in class path resource [hello/core/AppConfig.class]///Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memoryRepository 해결하려는 과정에서 강의노트에 메서드 이름이 memberRepository였다는걸 알게됐고 이걸로 이름을 고쳐주고 다시 테스트하니까 정상적으로 테스트가 완료됐습니다.메서드 이름만 바꿔준 것만으로 NoUniqueBean 오류가 해결된 이유가 궁금해졌습니다.이것저것 코드를 건드렸는데 @Component 코드들을 아래에 붙이겠습니다. 감사합니다.@Component public class MemberServiceImpl implements MemberService{ private MemberRepository store; @Autowired public MemberServiceImpl(MemberRepository memberRepository){ this.store = memberRepository; } @Override public void register(Member newMember) { store.save(newMember); } @Override public Member search(Long memberId) { return store.findById(memberId); } } @Component public class MemoryMemberRepository implements MemberRepository{ private static Map<Long, Member> store = new HashMap<>(); @Override public void save(Member member) { store.put(member.getId(), member); } @Override public Member findById(Long memberId) { return store.get(memberId); } }@Component public class OrderServiceImpl implements OrderService { private MemberRepository memberRepository; private DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { System.out.println("Constructor DI"); 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); } }@Component public class RateDiscountPolicy implements DiscountPolicy{ private static final double DISCOUNT_RATE = 0.1; @Override public int discount(Member member, int price) { if(member.getGrade() == Grade.VIP) return (int) (price * DISCOUNT_RATE); else return 0; } }
-
미해결[NLP] IMDB 영화리뷰 감정 분석을 통한 파이썬 텍스트 분석과 자연어 처리
word2vec 질문
for review in train["review"]: sentences += KaggleWord2VecUtility.review_to_sentences(review, remove_stopwords=False) for review in unlabeled_train["review"]: sentences += KaggleWord2VecUtility.review_to_sentences(review, remove_stopwords=False)섹션2 word2vec에서는 다음과 같이 train data와 unlabeled train data를 합쳐서 사용하고 있습니다. 각각 일부를 출력했을때 서로 다른 데이터로 보입니다. 이 데이터들을 사용해서 word2vec을 만들어주는데 word2vec에서 사용하는 단어의 개수를 늘려주기 위함인가요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
android setup 안해도 되나요
저는 mac을 사용하는데 adroid로는 배포할 일이 없어서요 혹시 android setup은 지나쳐도 될까요??!
-
미해결스프링부트 개념정리(이론)
JPA가 저장되는 위치는 어디인가요?
JPA가 저장되는 위치는 어디인가요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
버퍼링
버퍼링이 너무 심해서 강의를 시청할수가없을정도에요
-
해결됨실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
질문입니다
1. 무엇을 하고 싶으신가요? 디렉토리가 없다고 나옵니다 2. 언제, 어떤 오류가 발생하시나요? incle@incleuicBookPro ~ % mkdir -p /Users/incle/.terraform.d/plugin-cache위명령어를 통해 디렉토리를 생성했습니다. incle@incleuicBookPro terra % terraform initTerraform initialized in an empty directory!The directory has no Terraform configuration files. You may begin workingwith Terraform immediately by creating Terraform configuration files.incle@incleuicBookPro terra % terraform initTerraform initialized in an empty directory! 3. 어떤 시도를 해보셨나요?강의 내용에 있는 걸 그대로 붙여넣었고테라폼인잇 명령어를 친결과입니다. 4. 작성한 코드를 공유해주세요.provider "aws" { region = "ap-northeast-2" } data "aws_caller_identity" "current" {} output "account_id" { value = data.aws_caller_identity.current.account_id } output "caller_arn" { value = data.aws_caller_identity.current.arn } output "caller_user" { value = data.aws_caller_identity.current.user_id }
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
PUT , POST , PATCH , DELETE 등..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.HTTP 메서드를 어떤걸 보내든 결국에 서버단에서 결과를 덮어씌울지 , 삭제할지 , 생성할지 조회할지 결정하는것이 아닌가요? 예를들면 클라이언트 입장에선 PUT으로 바디에 특정데이터를 보내서 수정되길 원했는데 서버단에서는 해당 요청을 받고 바디는 싹 다 무시한체 리소스 위치를 이용해 DELETE쿼리로 삭제할 수있고 SELECT쿼리로 해당 리소스를 조회한 결과를 리턴해줄수도 있는데 이러면 결국 HTTP메서드가 무의미해지는게 아닌가하는지 궁금합니다.
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
90번 심바문제 질문있습니다.
69 ~70 번째 줄인 while (!Q.empty()) { Q.pop(); } res = tmp.dis; }이 부분이 이해가 안됩니다. 왜 큐를 제거를 하는지 이전에 다 없어지지 않았나요? 그리고 dis를 하는이유도 궁금합니다. z로 설정을 다하셨는데 왜 갑자기 이렇게 나오는지....
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
session
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]1. 세션이 무엇인지 정확히 이해하지 못하고 있습니다. 저장소 정도로 이해하면 될까요?2. HttpSession session = request.getSession(); 세션이 있으면 세션 반환, 없으면 신규 세션을 생성한다고 하셨는데 request의 어떤 정보를 보고 세션을 반환하는 건가요?다른 호스트 100명이 호출하면 새로운 세션 100개를 생성하는 건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
H2 설치 후 실행관련 (윈도우 환경)
설치 후 실행하면 이렇게 되는데, 뭐로 실행해야 하나요?강의내용 보니 브라우저 환경에서 콘솔이 실행된 것 같은데 막상 해당 파일은 크롬에서 실행하는것도 아닌듯 한데요..
-
해결됨자바 코딩테스트 - it 대기업 유제
청소 관련 문제 질문
안녕하세요. 강의 잘 보고 있습니다.다름이 아니라 제가 코드를 작성해보다가if(nx < 0 || ny < 0 || nx >= n || ny >= n || board[nx][ny] == 1){ d=(d+1)%4; continue; }이 부분을 다르게 작성했더니 범위를 벗어났다는 오류가 떴습니다.오류가 뜬 코드는 다음(아래 코드블럭)과 같습니다.if(board[nx][ny] == 1|| nx < 0 || ny < 0 || nx >= n || ny >= n ){ d = (d + 1) % 4; continue; }오류 내용은 이렇습니다.Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5 at Solution2.solution(Solution2.java:13) at Solution2.main(Solution2.java:32) 요약하면 다른 모든 게 같아도, if문 안의 순서로 결과가 다르게 나온 것인데,여기에 질문이 있습니다.왜 board[nx][ny] == 1 부분을 맨 앞으로 보냈더니 오류가 뜨는 걸까요?or연산에서 조건1 or 조건2일 때 조건1이 참이라면 조건2는 확인하지 않는 것과 연관이 있는 걸까요? 검색이나 고민해봐도 잘 모르겠습니다. 답변부탁드립니다!
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
궁금한점
MVC, MVP 를 알게됬는데 이 강좌같은 경우는각각 델리게이트 이벤트에 등록하는게 MVP같은데 MVP에 해당하는건가요?관련 예제를 찾아봐도 잘 이해가 안되서여 ㅜ
-
미해결코딩테스트 [ ALL IN ONE ]
자료구조 구현 및 해시 테이블 수강
안녕하세요, 어제부터 결제해서 잘 듣고 있는 학생입니다.저는 기계공학과를 전공하고 있고, 취업도 개발자 쪽을 하긴 하지만 IT기업이 아닌 중공업과 같이 기계공학과 관련있는 분야로 취직을 할 예정입니다.연구 분야 또한 기계 공학을 접목한 기계학습입니다.커리큘럼에 있는 연결리스트 (이건 직접 구현을 하는 것을 말합니다.)이나 해시테이블 같은 경우에는 제가 취직하려는 직종에서 잘 나오지 않는 알고리즘이라고 생각하는데 혹시 그래도 이를 꼼꼼히 공부를 해야할까요? (수강은 할 예정입니다.)
-
해결됨
JPA에서의 Impl 클래스
JPA로 프로젝트를 만드려고하는데 Service는 인터페이스로 만들고 ServiceImpl을 따로 만들어서 구현해도 되는 건가요? 김영한 개발자님 JPA 강좌에서는 따로 만들어서 구현하지 않고 기본편에서는 따로 분리해서 개발하라고 하셔서요!
-
미해결일주일 완성! 3dsmax 입문 (자동차 및 캐릭터 만들기)
회전할 때 각도 숫자가 보이지 않아요.
오브젝트를 회전하는데 이게 몇 도로 움직였는지 뜨지 않아요. 어떻게 설정해야 제가 움직인 각도 숫자가 뜨나요?
-
미해결지금 당장 NestJS 백엔드 개발 [사주 만세력]
manses.sql DB Import 하는데 오류가 납니다.
saju-db-prod.sql import 는 정상적으로 되었는데,이어서 manses.sql DB Import 하는데 오류가 납니다.ERROR 1062 (23000) at line 24: Duplicate entry '1' for key 'manses.PRIMARY'
-
해결됨Next.js 시작하기(feat. 지도 서비스 개발)
시작 할때 0-2 branch 에서 시작 하는게 맞나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.빈 폴더에서 npx create-next-app@latest --typescript 로 시작 해야 하는지 아니면 받은 소스의 0-2 브랜치 에서 npx create-next-app@latest --typescript 로 시작 하는게 맞는지 어떤건가요?
-
해결됨두고두고 써먹는 유니티 VR
UI 버튼과 컨트롤러 인터렉션
안녕하세요 강사님! 좋은 강의 감사드립니다.강의를 들으며, 개인적으로 유니티 프로젝트를 만들고 있습니다.플레이 시작 전 UI Canvas에 기본적인 플레이 설명과 시작 버튼을 배치하였고, 시작 버튼을 누르면 Canvas는 비활성화되는 형태로 만들었습니다.그런데 pc상의 시뮬레이터에서 마우스로 시작버튼을 눌렀을 때는 잘 작동하는데, 오큘러스 퀘스트2 컨트롤러로는 버튼 클릭이 안 되더라구요 ㅜㅜ 지금 제 프로젝트 상태에서 어떤 식으로 클릭되게 해야 할지 잘 모르겠습니다..오른쪽 컨트롤러에 레이캐스트 설정도 해보았는데, 광선이 UI를 그냥 통과해버립니다 ㅠ
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
주피터 실행 안되는 문제
아나콘다 내비게이터에서 주피터 노트북이 실행이 안됩니다.launch버튼을 누르면 로딩이 되다가 그냥 그대로 반응 없이 아무 화면도 뜨지를 않습니다..
-
미해결풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]
Number(activeLi) 형변환을 해야하는 이유?
if(Number(activeLi) < 0){ activeLi = Number(activeLi) + 260; //왼쪽에 있던 카드가 오른쪽으로 갔다면, 다시 왼쪽으로 갈 수 있도록 PREV 버튼 활성화 slidePrev.style.color = '#2f3059'; slidePrev.classList.add('slide-prev-hover'); slidePrev.addEventListener('click',transformPrev); if(Number(activeLi) === 0){ slideNext.style.color = '#cfd8dc'; slideNext.classList.remove('slide-prev-hover'); //이벤트처리. 클릭을 눌러도 더이상 동작하지 않게. slideNext.removeEventListener('click', transformPrev); } }let activeLi = classList.getAttribute('data-position');activeLi에 속성을 가져오고 if문에서 Number를 꼭 써야한다는 것이 정확하게 이해가 잘 안가요... Number()로 형변환을 하지 않으면 어떻게 되나요 ?어차피 index.html에서 data-position의 값으로 숫자를 지정한거 아닌가요? <ul class="class-list" data-position="0">쌍따옴표로 감싸면 다 문자로 인식되는건가요?강의를 띄엄띄엄봐서 ㅠㅠ 헷갈립니다...