묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
IoC 컨테이너와 DI 컨테이너의 차이점
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]IoC 컨테이너와 DI 컨테이너의 차이점이 궁금합니다.IoC 기능의 대표 동작원리가 DI이다.라는 것은 구글링을 통해 알게되었습니다. 그렇다면 DI 컨테이너는 IoC 컨테이너의 하위 개념인가요?
-
미해결쥬쥬와 함께 하루만에 끝내는 스프링 테스트
flyway 컨테이너가 동작하지 않습니다.
안녕하세요! 강의 잘 듣고 있는 중에 문의드립니다.현재 컨테이너 기반 테스트 환경을 구성한 상태로, 실제 데이터로 테스트를 진행하기에 앞서 맥북으로 진행하던 내용을 pc에서도 진행하고자 코드를 그대로 pull해온 상태입니다. 근데 컨테이너들이 정상적으로 동작하는 것 같지 않아 문의드립니다...ㅠ스프링 로그에서는 마이그레이션 성공시 출력될 로그를 확인하는 정규식 표현에 매칭되는 로그를 찾지 못해 timeout이 나는 것으로 나오고, 도커 데스크탑을 보고 있으면 다른 컨테이너들은 정상적으로 실행되는데에 반해 flyway 컨테이너(local-db-migrate)만 계속 Exited와 Restart를 반복하고 있습니다. 해당 컨테이너 로그를 살펴보면 계속해서 아래와 같이 출력됩니다 ㅠㅠ /flyway/conf/flyway.conf는 컨테이너의 볼륨에서 해당 파일을 찾지 못했다는 것인가요? 혹시 해결 방안을 아시면 답변 부탁드리겠습니다. 참고로 OS는 윈도우입니다.infra/test/docker-compose.yaml 파일db/flyway.conf 파일
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
테스트가 올바르게 되지 않는 것 같아요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemoryMemberRepository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*; class MemberServiceTest { MemberService memberService; MemoryMemberRepository memberRepository; @BeforeEach public void beforeEach() { memberRepository = new MemoryMemberRepository(); memberService = new MemberService(memberRepository); } @AfterEach public void afterEach() { memberRepository.clearStore(); } @Test public void 회원가입() throws Exception { //Given Member member = new Member(); member.setName("hello"); //When Long saveId = memberService.join(member); //Then Member findMember = memberRepository.findById(saveId).get(); assertEquals(member.getName(), findMember.getName()); } @Test public void 중복_회원_예외() throws Exception { //Given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); //When memberService.join(member1); IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2));//예외가 발생해야 한다. assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } }강의를 따라하다가 좀 잘 안되서 pdf내용을 그대로 긁어왔는데 import org.junit.jupiter.api.AfterEach;가 빠져있더라구요. 그것만 수정하면 될 줄 알았는데, get()과 assertThrows에서 문제가 발생하고있는것 같습니다 왜그럴까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-P 질문 있습니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/e5455ffb96284f2d983e2afeae83ec1c 선생님이랑 비슷하게 문제를 풀었습니다.하지만 궁금한 부분이 있어서 질문드립니다.선생님께선 flower부분에 이중 for문을 돌리실 때 i, j =0으로 하셨는데 제 코드의 go함수를 봐주시면 sy, sx를 사용했고 sx가 for문을 벗어나면 sx=1로 초기화해서 i++이 되어도 첫칸부터 탐색할 수 있도록 하였습니다. 이렇게 작성한 이유가 i,j를 0으로 설정해서 탐색을 하면 탐색을 했던 부분을 또 탐색을 해서 시간초과가 나오지 않을까 생각했기 때문입니다. 혹시 다른 문제가 나와도 현재 제가 올린 코드처럼 sy, sx를 사용해서 코드를 짜도 큰 문제가 없을지 궁금합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
질문있습니다.
안녕하세요 선생님. 선생님 강의와 함께 학교랑 병행하면서 알고리즘 공부한지 한달 정도 됐네요. 시작과 비교했을때 bfs, 완전탐색 개념이 조금씩 쌓이고 문제를 혼자서 다 풀 수는 없지만 80퍼는 그래도 혼자 코드를 짤 수 있는 실력이 생긴 걸 보아 실력이 조금씩 느는것 같긴 하네요..!1,2학년때 다른 공부를 준비한다고 현재 3학년되서 알고리즘을 첨하지만 열심히 하고 있는데 내년엔 4학년이라 늦은 것 같아서 불안해지네요,,
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 2 - 랭체인(LangChain)으로 나만의 ChatGPT 만들기
Rag 사용시 전혀 관계없는 데이터를 가져오는 이슈
안녕하세요 rag를 공부하고 실제로 테스트를 하기위해서open ai를 사용하여 서비스 이름과 서비스 담당자 관련한 정보가 존재하는 csv 데이터를 아래처럼 임베딩 한 뒤 index_name = "manager" # CSV 파일 로딩 loader = CSVLoader(file_path="manager.csv", encoding="utf-8") docs = loader.load() # text_splitter = RecursiveCharacterTextSplitter(chunk_size=100, chunk_overlap=0) # docs = text_splitter.split_documents(documents) embedding_model= OpenAIEmbeddings(openai_api_key=OPENAI_KEY) vectorstore = ElasticsearchStore( embedding=embedding_model, index_name=index_name, es_url=es_url ) vectorstore.add_documents(docs) 데이터는 아래 형태로 embedding 하여 text에 들어가 있습니다.이름: (서비스 이름)메인 담당자:개발 담당자: 정(XXX) 부(XXX, XXX, XXX, XXX)SE 담당자: 정(YYY3) 부(ZZZ)DBA 담당자:아래처럼 프롬프트를 작성하고 rag를 사용하여 relevant_document를 통하여 확인하면,실제로 text에 들어가있는 데이터를 안가져오고 엉뚱한 데이터를 가져오거나실제로 관련 담당자가 text에 포함되는 데이터가 여러개가 실제로 존재하더라도 한 개만 가져오고 나머지는 엉뚱한 document만 가져오는 경우가 많은 것 같습니다.rag_prompt = """ You are an expert AI on a question and answer task. Use the "Following Context" when answering the question. If you don't know the answer, reply to the "Following Text" in the header and answer to the best of your knowledge, or if you do know the answer, answer without the "Following Text". If a question is asked in Korean, translate it to English and always answer in Korean. Following Text: "주어진 정보에서 답변을 찾지는 못했지만, 제가 아는 선에서 답을 말씀드려볼게요! **틀릴 수도 있으니 교차검증은 필수입니다!**" Following Context: {context} Question: {question} Helpful Answer:""" prompt = ChatPromptTemplate(input_variables=['context', 'question'], messages=[HumanMessagePromptTemplate(prompt=PromptTemplate( input_variables=['context', 'question'], template= rag_prompt)) ]) # LLM from langchain.chains import RetrievalQA from langchain.chat_models import ChatOpenAI llm = ChatOpenAI(model_name="gpt-3.5-turbo-0125", temperature=0, openai_api_key=OPENAI_KEY) retriever = vectorstore.as_retriever( search_type="similarity", return_source_documents=True ) resp = retriever.get_relevant_documents("XXX가 담당하는 서비스 알려줘") print(resp)혹시나 엉뚱한 document를 안가져오고 해당되는 값이 포함되는 document만 가지고 올 수 있도록 할 수 있는지 여쭤봅니다! 정리하자면 1:n으로 연관되어있는 내용에서 1에 대한 정보를 물어보면 내용을 잘가져오는 것 같은데 n에 대한 질문을 하면 정보를 전혀 못가져 오는 것 같은데 이를 해결하는 방법론이 있을지 여쭤봅니다!
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
단순 궁금증) 멀티쓰레드가 아니라 싱글 쓰레드라면 sendQueue에 1개만 쌓이나요?
안녕하세요 루키스님단순히 제가 잘 이해하고 있는건지 궁금해서 여쭤보고자 합니다만약 멀티쓰레드가 아니라 싱글쓰레드라면 sendQueue에 1개 이상 쌓이지 않나요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
save시 500에러가 뜹니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의 4분28초 부분까지 내용 따라하는데 코드 다른것도 없는데 상품 등록을 누르면 500에러가 발생합니다. @PostMapping("/add") public String save(@RequestParam String itemName, @RequestParam int price, @RequestParam Integer quantity, Model model) { Item item = new Item(); item.setItemName(itemName); item.setPrice(price); item.setQuantity(quantity); itemRepository.save(item); model.addAttribute("item", item); return "basic/item"; }2024-03-24T23:35:00.277+09:00 ERROR 924 --- [item-service] [nio-8080-exec-6] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.IllegalArgumentException: Name for argument of type [java.lang.String] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag.] with root cause java.lang.IllegalArgumentException찾아보려 해도 이유를 모르겠습니다.
-
해결됨실무자를 위한 구글애널리틱스(GA4+GTM) 활용법(25년 Update)
오가닉 서치로 유입된 유저의 검색어
안녕하세요, 강사님좋은 강의 넘 잘 듣고 있습니다.질문이 생겨서 여쭤봅니다!Source/medium에서 오가닉으로 유입된 사람들이 어떤 키워드로 유입되었는지 궁금해서 session manual term 열을 추가해서 같이 보고 있었는데요.이렇게 not set 으로 잡히는것은 왜 그런걸까요?전부 그런것은 아니고 예를 들어 naver/ organic으로 유입된 데이터는 키워드가 보이더라구요.혹시 제가 뭘 놓치고 있는걸까요..?
-
해결됨스프링 핵심 원리 - 기본편
ac.close()를 호출하지 않고 프로세스가 종료될 때의 스프링 컨테이너
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]public class SingletonTest { @Test public void singletonBeanFind() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(SingletonBean.class); SingletonBean singletonBean1 = ac.getBean(SingletonBean.class); SingletonBean singletonBean2 = ac.getBean(SingletonBean.class); System.out.println("singletonBean1 = " + singletonBean1); System.out.println("singletonBean2 = " + singletonBean2); assertThat(singletonBean1).isSameAs(singletonBean2); //ac.close(); } @Scope("singleton") static class SingletonBean { @PostConstruct public void init() { System.out.println("SingletonBean.init"); } @PreDestroy public void destroy() { System.out.println("SingletonBean.destroy"); } } } 이 코드에서 ac.close() 부분을 주석 처리하고 실행하면 다음과 같이 SingletonBean.destroy는 출력되지 않습니다. 왼쪽에 SingletonTest를 누르든, singletonBeanFind()를 누르든 SingletonBean.destroy는 출력되지 않습니다. ac.close()를 호출하는 게 스프링 컨테이너를 종료하는 거라고는 알고 있는데 ac.close()를 호출하지 않더라도 테스트가 끝나면 알아서 스프링 컨테이너가 종료되고, 종료되기 직전에 종료 메서드도 호출될 거라고 생각했는데 왜 SingletonBean.destroy가 보이지 않는지 궁금합니다. ac.close()를 호출하지 않으면 프로세스 실행이 끝나기 전에 알아서 컨테이너를 종료시켜 주진 않는 건가요? 질문 쓸 땐 궁금했는데 막상 다 적고 나니깐 ac.close() 하지 않으면 스프링 컨테이너가 알아서 종료되지 않는 건 당연한 건가? 싶기도 하네요..
-
미해결[리뉴얼] 처음하는 파이썬 머신러닝 부트캠프 (쉽게! 실제 캐글 문제 풀며 정리하기) [데이터분석/과학 Part2]
3강 강의 자료 코드 관련 질문입니다
- 섹션 3 타이타닉 문제로 시작하는 EDA: 범주형 데이터 분석 패턴1 11분 13초에 나오는 코드를 수정하지 않고 실행하였는데 ValueError: could not convert string to float: 'Braund, Mr. Owen Harris'가 떴습니다. 해결 방법을 알 수 있을까요
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
하위 패키지의 상위 패키지 참조
안녕하세요 강의 잘 듣고있습니다.1분 42초쯤에 말씀하신 치명적인 실수에 대해서 질문드립니다. 강의에서는 후반부에 CertificationService가 자연스럽게 사라짐에 따라 하위 패키지인 UserServiceImpl이 상위 패키지인 CertificationService를 참조하지 않게 변경됐지만, 만약 CertificationService이 계속 존재했다면 UserServiceImpl은 어떠한 형태로 올바르게 CertificationService을 참조할 수 있을까요?
-
미해결[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
restoreAccessToken 이라는 함수를 새로만드는 이유가 있을까요??
안녕하세요. 강의 내용중에 restoreAccessToken이라는 함수를 만드는데 내용이 getAccessToken을 리턴해주는 함수입니다.restoreAccessToken({ user }: IAuthServiceRestoreAccessToken): string { return this.getAccessToken({ user }); } getAccessToken({ user }: IAuthServiceGetAcessToken): string { return this.jwtService.sign( { sub: user.id }, { secret: '나의비밀번호', expiresIn: '10s' }, ); }인터페이스도 두번 작성하게 되는데export interface IAuthServiceRestoreAccessToken { user: IAuthUser['user']; } export interface IAuthServiceGetAcessToken { user: User | IAuthUser['user']; } 이런경우에는 그냥 restoreAccessToken이라는 함수를 새로 안만들고, getAccessToken을 바로 사용하는게 코드의 중복을 제거하는 측면에서 더 좋다고 생각하는데,restoreAccessToken이라는 함수를 새로 만드는 이유가 있을까요??
-
미해결스프링 핵심 원리 - 기본편
@Configuration과 싱글톤 강의에 대한 질문
안녕하세요 현재 싱글톤 강좌를 시청하고 있습니다.AppConfig에서 호출관계의 관한 싱글톤 확인 부분에 중 예외가 발생하였고 MemberServiceImpl OrderServiceImpl 확인을 했는데 어떤 부분에서 오류가 발생한지 잘 모르겠습니다. 예외는 다음과 같이 나왔으며org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'memberRepository' available아래는 MemberServiceImpl OrderServiceImp 그리고 테스트 코드입니다.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 findByMember(String userId) { return memberRepository.findById(userId); } public MemberRepository getMemberRepository(){ return 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(String userId, String itemName, int productPrice) { Member member = memberRepository.findById(userId); int discountPrice = discountPolicy.discount(member , productPrice); return new Order(userId , itemName , productPrice , discountPrice); } public MemberRepository getMemberRepository() { return memberRepository; }void configurationTest(){ ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); MemberServiceImpl memberService = ac.getBean("memberService", MemberServiceImpl.class); OrderServiceImpl orderService = ac.getBean("orderService", OrderServiceImpl.class); MemberRepository memberRepository = ac.getBean("memberRepository", MemberRepository.class); MemberRepository memberRepository1 = memberService.getMemberRepository(); MemberRepository memberRepository2 = orderService.getMemberRepository(); System.out.println("memberService -> memberRepository = " + memberRepository1); System.out.println("orderService -> memberRepository = " + memberRepository2); System.out.println("memberRepository = " + memberRepository); }
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
dto 위치
만약 규모가 작은 프로젝트인 경우 현업에서 controller, service, vo 이런식으로 구조를 나누고 그 안에 비지니스 로직기준해서 폴더를 나누어 주는 경우도 있는데, 그 경우에는 말씀하셨던 비지니스따라 class파일을 만드는것과 크게 구조적으로 차이가 클까요?
-
미해결플러터와 장고로 1시간만에 퀴즈 앱/서버 만들기 [무작정 풀스택]
heroku run python manage.py createsuperuser / auth_user 오류
heroku run python manage.py createsuperuser명령어 작성 시django.db.utils.OperationalError: no such table: auth_user 위 오류가 계속 뜨며, 진행을 아예 할 수가 없습니다.구글에서 오류 해결 방안을 최대한 찾아봐 적용해봤지만, 안되네요. 남은 건 그동안 한 거 싹 다 버리고 처음부터 하는 방법밖에 없는 것 같은데. 그러자니 그렇게 되면 안 할 것 같아서. 혹시 저랑 똑같은 오류 나셨는데 해결하신 분 계실까요? 방법 좀 알려주세요.. ㅠㅠ 이틀 째 해결 못하고 있어서 머리털이 다 뽑히고 있습니다..
-
미해결
비용지불하고 배우고 있었는데 ....
담당자님,수고하십니다 "윤재성의 스프링 프레임워크 개발자를 위한 실습을 통한 입문 과정"을 비용을 지불하고 들었었는데 잠시 몇개월 쉬는 동안에 ID를 다른걸 썼는지 비용지급이 안됐다고 ㅠㅠ 지금 들어와 있는 ID는 y2kimque 입니다. (구글계정)만약, 다른계정에서 듣고 있었다면 위 ID계정으로 통합해 주실수 있는지요?
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
가위바위보 질문(부동소수점 예외 코어덤프됨)
이렇게 뜨면서 승률이 안나오는데이문제가 나누기할때 0으로 나눠서 나오는 문제인걸로 아는데처음에 바로 실행하면 현재승률 없음이나오고 다음 가위바위보를하면 토탈에 값이 0이어서 그런거같은데 이부분을 어떻게 해결하면 좋을까요??
-
해결됨Windows 시스템 프로그래밍 - 기본
강사님 질문 드립니다.
게임개발자가 되려면 MFC 를 어느정도 알아야 하나요?게임개발자가 되려면 반드시 MFC 를 공부해야 하는지 궁금해서요...강사님의 조언 부탁드립니다.
-
해결됨
playground 그래프큐엘 사용법 (fetchProduct)
수업 내용을 따라가면서 Board는 어떻게 하는지 파악이 어느 정도 되는데 그 외 profile 과 product 영상 내용에 없는 것들을 혼자 하자니 너무 버거워요.. ㅠㅠ 플레이그라운드의 독스를 참고해 코드를 입력하고 있지만 에러만 뜨고 정답을 알 수가 없어 답답합니다 예를 들어 deleteBoard를 할 때는 const DELETE_BOARD = gql` mutation deleteBoard($number: Int) { deleteBoard(number: $number){ message } } ` const onClickDelete = (event) => { deleteBoard({ variables: { number: Number(event.target.id) }, refetchQueries: [{ query: FETCH_BOARDS }] }) }이런 식으로 독스를 활용해서 입력할 수 있는데 deleteProduct의 경우 ProductID만 있어서 variables을 어떻게 작성해야는지 잘 모르겠어요createProduct는 createProductInput의 타입 디테일이 뭐가 들어있는지 아는데ProductID는 잘 모르겠습니다.. 아래는 제 코드인데요 화면에 띄워지는건 되는데 삭제 버튼 클릭시 오류가 발생됩니다.아무래도 variables 에 잘못 정의해서 생긴 오류일 것 같은데 위의 질문과 같이 플레이그라운드 활용이 미흡해 생긴 일 같네요.. 전 섹션에서도 사용 방법 감을 완전히 잡지 못해 다른 퀴즈들도 애먹게 되는데 ㅠㅠ 너무 어려워요..... OTL import { gql, useMutation, useQuery } from "@apollo/client" const FETCH_PRODUCTS = gql` query { fetchProducts{ _id seller name detail price } } ` const DELETE_PRODUCT = gql` mutation deleteProduct($productId: ID){ deleteProduct(productId: $productId){ _id number message }, } ` export default function FetchProductQuiz() { const { data } = useQuery(FETCH_PRODUCTS); console.log(data?.fetchProducts); const [deleteProduct] = useMutation(DELETE_PRODUCT); const onClickDeleteProduct = (event) => { deleteProduct({ variables: { productId:{ number: Number(event.target.id) } }, refetchQueries: [{query: FETCH_PRODUCTS}] }) } return ( <div> {data?.fetchProducts.map(el => ( <div> <input type="checkbox" /> <span>{el.seller}</span> <span>{el.name}</span> <span>{el.detail}</span> <span>{el.price}</span> <button id={el.number} onClick={onClickDeleteProduct}>삭제</button> </div> ))} </div> ) }