inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

안녕하세요 이것이 내부호출 예제가 맞는지 궁금합니다.

미해결

스프링 DB 2편 - 데이터 접근 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] // 인증 번호 확인 @Transactional public void confirmAuthenticationInfo(AuthenticationRequest.Confirm request){ MemberCertificationHistory history = findById... // 엔티티 조회 ... validateExpiration(history); ... } // 만료 일시 검증 @Transactional private void validateExpiration(MemberCertificationHistory history){ if(history.isExpired()){ processExpiration(history); // 만료 처리 . 트랜잭션 분리 throw new ServerException("만료됨"...); } } // 인증 정보 만료 처리 @Transactional(propagation = Propagation.REQUIRES_NEW) private void processExpiration(MemberCertificationHistory history){ history.getMemberCertificationInfo().processExpiration(); memberCertHisRepository.save(history); // 엔티티 저장 } 안녕하세요 위 코드에서 궁금한점이 있는데 내부호출에 관한 내용인지 질문드립니다. 간단하게 confirmAuthentication() , validateExpiration() , processExpiration() 3가지 메서드가 있는상황이구, 차례로 호출하며 validateExpiration()에서 throw를 던지는 상황입니다. 문제는 validateExpiration()를 내부에서 트랜잭션이 분리 처리(REQUIRES_NEW)되어 있는 processExpiration()를 타게되고, processExpiration()는 분리된 트랜잭션이니 .save()를 통해 저장이되고, 다시 validateExpiration()으로 돌아와 throw를 처리하게 되어 processExpiration()에서 저장된것은 롤백되지 않을것으로 예상하였습니다. 그런데 로그를보니 insert쿼리도 나가지 않고, 따로 롤백에 관한 내용도 찍히지 않았습니다. 따라서 내부호출이 된건가 생각을해보니 제가 아는 내부호출이라는 문제는 동일한 클래스에서 트랜잭션이 적용되지 않은 메서드에서 트랜잭션이 적용된 메서드 호출시 내부 호출이 발생하는걸로 알고있는데 위 예제에선 이미 최상위 메서드에서 트랜잭션이 적용되어 있는상태인데 따로 생성된 트랜잭션이 실행되지 않아서 혹시 이건 내부호출 문제가 맞는것인지, 아니면 다른 제가 간과한것이 있는지 궁금하여 질문드립니다 .

  • spring
  • mvc
  • jpa
  • querydsl
  • spring-data-mybatis
  • spring-jpa
이ᄒ 댓글 1 좋아요 0 조회수 145

tailwindcss 오류관련 문의 드립니다 ㅠㅠ

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

버젼이 달라서인지.. CNA 했을 때 tailwind.config.js 파일이 없었습니다. 강의에서는 원래부터 존재하던데.. 그래서 어떻게어떻게 추가를 했는데. Error: It looks like you're trying to use tailwindcss directly as a PostCSS plugin. The PostCSS plugin has moved to a separate package, so to continue using Tailwind CSS with PostCSS you'll need to install @tailwindcss/postcss and update your PostCSS configuration. 라는 에러가 끝나지를 않네요 ㅠ GPT한테 열심히 물어봤는데 도저히 해결이 안돼서 문의드립니다. 밑은 제가 설정해둔 코드입니다. tailwind.config.js /** @type {import('tailwindcss').Config} */ module.exports = { content: [ "./src/**/*.{js,ts,jsx,tsx,html,css}", // 필요한 파일들 포함 "./app/**/*.{js,ts,jsx,tsx}", // Next.js의 `app` 폴더 추가 "./components/**/*.{js,ts,jsx,tsx}", // 컴포넌트 폴더 추가 ], theme: { extend: { colors: { 철수가좋아하는색깔: "#3498db", // 나만의 부트스트랩 만들기 영희가좋아하는색깔: "green", }, }, }, plugins: [], }; postcss.config.js module.exports = { plugins: { tailwindcss: {}, autoprefixer: {}, }, }; globals.css /* @import "tailwindcss"; */ @tailwind base; @tailwind components; @tailwind utilities; 로 해도 안되고, @import "tailwindcss"; 도 안됩니다...

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
jihun6548 댓글 1 좋아요 0 조회수 288

re-rank score 관련 아래 질문입니다.

미해결

RAG 마스터: 기초부터 고급기법까지 (feat. LangChain)

학습 관련 질문이 있으시면, 상세하게 남겨주세요. 문제가 발생한 부분의 코드를 함께 올려주세요. 수업 영상 몇 분/초 구간인지 알려주세요.

  • python
  • 챗봇
  • llm
  • langchain
  • rag
정영수 댓글 1 좋아요 0 조회수 104

미해결

RAG 마스터: 기초부터 고급기법까지 (feat. LangChain)

from langchain.retrievers.document_compressors import DocumentCompressorPipeline from langchain_community.document_transformers import EmbeddingsRedundantFilter # 중복 문서 제거 redundant_filter = EmbeddingsRedundantFilter(embeddings=embeddings_model) # 쿼리와 관련성이 높은 문서만 필터링 relevant_filter = EmbeddingsFilter(embeddings=embeddings_model, similarity_threshold=0.5) # Re-ranking re_ranker = LLMListwiseRerank.from_llm(llm, top_n=2) pipeline_compressor = DocumentCompressorPipeline( transformers=[redundant_filter, relevant_filter, re_ranker] ) pipeline_compression_retriever = ContextualCompressionRetriever( base_compressor=pipeline_compressor, base_retriever=chroma_db.as_retriever() ) question = "테슬라 회장은 누구인가요?" compressed_docs = pipeline_compression_retriever.invoke(question) print(f"쿼리: {question}") print("검색 결과:") for doc in compressed_docs: print(f"- {doc.page_content} [출처: {doc.metadata['source']}]") print("-"*100) print() `(4) DocumentCompressorPipeline` - 여러 압축기를 순차적으로 결합하는 방식 - BaseDocumentTransformers를 추가하여, 문서를 더 작은 조각으로 나누거나 중복 문서를 제거하는 등의 작업도 가능 여기에서 result = chain.invoke() 로 받아서 result의 데이터를 보면, context = result['context'][i] query_similarity_score = context.state['query_similarity_score'] 이렇게 similarity_score 처럼 rerank score같은거 보고싶은데, # 크로스 인코더를 사용하여 유사성 점수를 계산합니다. sentence_pairs = [[query, prediction]] similarity_scores = cross_encoder_model.predict(sentence_pairs) 이런식으로 계산을 해야하나요? 추출하고 싶은데 방법을 잘 모르겠습니다.

  • python
  • 챗봇
  • llm
  • langchain
  • rag
정영수 댓글 1 좋아요 0 조회수 100

갑자기 정적페이지 크롤링

미해결

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 갑자기 선수강의에 없었던 정적페이지크롤링 파일이 나오는데 이건 어떻게 해야 하나요. 어디서 참고해야 하나요

  • python
  • 웹-크롤링
ajh7457 댓글 1 좋아요 0 조회수 100

저도 tailwind.config.js 가 없네요..

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

이거 관련해서 한번 정리해주시면 좋을거같습니다. ㅠㅠ 인터넷에서 찾아보고 gpt한테도 물어봤는데 해결방법을 못찾겠네요.

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
jihun6548 댓글 2 좋아요 0 조회수 539

리액트 라우터 관련

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요, 리액트 학습 중에 궁금한 게 있어서 질문드려요. 기본 path 가 아닌 라우트로 바로 접속을 할때, html을 받으면 라우팅이 이뤄지구 useeffect로 api 요청이 가면서 페이지 렌더링이 이뤄지는건가요?

  • react
  • redux
  • tdd
  • typescript
  • next.js
  • 소프트웨어-테스트
Sohyeon 댓글 1 좋아요 0 조회수 129

getPostRecommend() tags 속성 사용

미해결

Next + React Query로 SNS 서비스 만들기

getPostRecommend() 함수 내부에서 tags : ['post', 'recommends'] 로 설정이 되어있는데, queryClient.prefetch 함수나, useQuery 함수의 queryKey와 항상 동일하게 일치시켜야 하나요? 불러온 데이터를 캐싱할 경우, react-query에서만 관리를 키를 관리해도 되지 않을까요?

  • react
  • next.js
  • react-query
  • next-auth
  • msw
그린티라떼 댓글 2 좋아요 0 조회수 102

숙제 문의드립니다

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

require 왜 오류가 나는지 알 수 있을까요?

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
yoonseong 댓글 1 좋아요 0 조회수 72

Integer: 뒤에 띄어쓰기까지 해야하는 건가요?

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

16:46 Integer: 이랑 42 사이에 띄어쓰기까지 해야하는 건가요? 안하면 틀리는 건가요? 18:45 하얀글씨 5번째줄인 float fnum =3.14f;에서 마지막 f는 뭔가요? 저것도 같이 출력하는건줄 알았는데

  • python
  • java
  • c
  • 정보처리기사
skftkfkdgo17 댓글 2 좋아요 0 조회수 130

2분 44초 질문

해결됨

[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스

무슨말씀이신지 이해가 안가요.ㅠㅠ 가운데정렬을 편안하게 해주려면 span 을 이용하는 이유가 와닿지 않습니다.

  • react
  • node.js
  • seo
  • graphql
  • next.js
김트랙 댓글 3 좋아요 0 조회수 150

homework에 관한 강의는없나용?

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

homework에 관한 강의는없나용?

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
yoonseong 댓글 2 좋아요 0 조회수 93

toJson을 추가하면 [sub].tsx에서 sub를 받아오지 못합니다.

해결됨

따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)

entity에 toJson을 추가하고 내용을 비워놓기만 해도, sub를 받아오지 못합니다. 강의에서는 잘 진행되어서 지금 전혀 원인을 알 수 없습니다. 답변 부탁드립니다.

  • react
  • node.js
  • postgresql
  • docker
  • typescript
  • 클론코딩
  • next.js
서문규 댓글 2 좋아요 0 조회수 155

list1.append(list2)와 list1.append(list2[:])의 차이가 무엇인가요?

해결됨

코딩테스트 [ ALL IN ONE ]

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 def solution(l,k): result = [] curr = [] def backtracking(start, curr): if len(curr) == k: result.append(curr[:]) return for i in range(start, len(l)): curr.append(i+1) backtracking(i + 1, curr) curr.pop() backtracking(0, curr) return result 위의 코드에서 if len(curr) == k: 안에 result.append(curr[:]) 대신 result.append(curr)을 넣으면 result = [[], [], [], [], [], []]와 같이 값이 제대로 추가가 안 되던데 무슨 차이가 있는 건가요? main 함수에서 test1 = [] test2 = [1,2,3] test1.append(test2) print(test1) test1 = [] test1.append(test2[:]) print(test1) 이와 같이 테스트를 해보면 두 프린트 결과 모두 [[1,2,3]]으로 동일하게 나오는데 위의 경우는 달라서 질문 드립니다.

  • python
  • 코딩-테스트
  • 알고리즘
나상민 댓글 1 좋아요 1 조회수 183

숫자입력 시 int 형 범위가 넘어가는 경우

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 안녕하세요 !! 영한님 강의로 열심히 공부하고 있는 한 사람입니다. 수량 입력할 때, 1111111111(11개) 를 입력했을 때, "숫자를 입력해주세요" 라는 오류 메시지가 뜨더라구요. 그래서 혹시 int 형 범위 문제인가 싶어서 2147483648(int 형 최대 범위 숫자 " + 1 ")를 넣어보니, 다시 "숫자를 입력해주세요" 오류 메시지가 나왔습니다. 따라서 int 형 범위를 넘어선 long 형 범위에 들어가면 숫자가 아니라고 판단 하는 것 같더라구요. 사용자 입장에서 int 형 범위든 long 형 범위든 숫자를 입력한 건 맞는 사실이기에, 기존에 int 형 범위 숫자만 숫자로 인식하는 것이 아닌, long 형 범위에서도 숫자로 인식하여 "숫자를 입력해주세요" 라는 오류 메시지가 발생하지 않으려면 어떻게 해야하나요 ??

  • mvc
  • spring
예하 댓글 2 좋아요 0 조회수 248

SSR은 언제 사용될까요??

해결됨

한 입 크기로 잘라먹는 Next.js

안녕하세요! 강의를 수강하면서 나날이 성장하는게 느껴집니다!! SSG, SSR, ISR 개념을 배우면서, SSR을 언제 사용해야 하는지에 대한 고민이 생겼습니다. 블로그 글이나 GPT의 답변을 참고해보니, 개인화된 사용자 데이터나 요청 시에만 알 수 있는 정보에 의존하는 페이지를 렌더링해야 하는 경우 사용한다고 합니다. 저는 조금 다른 접근을 고민해봤습니다. ISR을 활용하여 개인화된 페이지를 생성하고, Middleware에서 사용자 인증을 검증하는 방식 으로 생각해봤습니다. 또는 SSR 대신 SSG를 사용하고, 클라이언트 측에서 필요한 데이터를 패칭하는 방식 으로 생각해봤습니다. 정리하자면 SSR은 언제 써야하는지 잘 모르겠습니다. 소중한 시간 긴 글 읽어주셔서 감사합니다!!

  • react
  • typescript
  • next.js
qjatjs123123 댓글 2 좋아요 0 조회수 228

FrontControllerServletV2의 service 메소드 동작원리 질문

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. FrontControllerServletV2의 service 메소드를 보면 마지막 두 줄에 MyView view = controller.process(request, response); view.render(request, response); 첫번째 줄에는 viewpath만 가지고 있는 객체라고 생각이 되는데 두번째 줄에서 render의 매개변수로 사용되는 request, response 두가지는 어디서 나온건지 궁금합니다. 제가 이해 하기론 예를들어 회원 저장시 FrontControllerServletV2가 requestURI변수에 "/front-controller/v2/members/save" 를 받아오고 controller는 controllerMap.get(requestURI)로 인해 MemberSaveControllerV2객체를 담습니다. MemberSaveControllerV2가 오버라이딩한 process는 @Override public MyView process(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); int age = Integer.parseInt(request.getParameter("age")); Member member = new Member(username, age); memberRepository.save(member); request.setAttribute("member", member); return new MyView("/WEB-INF/views/save-result.jsp"); } 저장로직을 실행한 후 request.setAttribute를 통해 (명칭이 기억안납니다) 저장한 후 "/WEB-INF/views/save-result.jsp"를 viewpath로 갖는 MyView객체를 반환하고 이 객체가 FrontControllerServletV2의 view변수에 저장되는데 request와 response는 전달 받지 않았음에도 어떻게 render메소드를 실행하는지 궁금합니다.

  • spring
  • mvc
aj41212 댓글 1 좋아요 0 조회수 103

14:39 질문드립니다.

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

덮어씌워진다는게 이해가 안되서요! test1 = name();이 실행되었을때 홍길동이 입력되면 return 되는 값은 홍길동 아닌가요?? 질문은 동영상 강의에 들어가서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그래야 어떤 강좌에서 질문하셨는지 알 수 있습니다. 영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다. 이미 다른 누군가가 질문을 한 이력 이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다. 학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다. 제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다. 시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산) 질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요.

  • python
  • java
  • c
  • 정보처리기사
이은비 댓글 2 좋아요 0 조회수 183

사전 렌더링시 브라우저 네트워크 탭에 로그가 남지 않는데 이에 대한 디버깅 방법이 있을까요??

해결됨

한 입 크기로 잘라먹는 Next.js

안녕하세요. 실습을 진행하면서 새로고침 했을때 브라우저 개발자도구 네트워크 탭에 api 요청 로그가 남지 않더라구요. 그래서 새로고침을 하거나 처음 앱을 실행시켰을 경우 사전 렌더링에 의해서 서버측에서 api요청을 진행하면서 로그가 남지 않는걸로 이해했습니다. 그러면 만약 api 요청에 대한 디버깅을 진행해야 하는 상황이라면 서버측 터미널 로그로만 확인 수 밖에 없는걸까요??

  • react
  • typescript
  • next.js
Hndx 댓글 2 좋아요 0 조회수 132

H2 DB 로그인 오류

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 오류 내용: 로그인 시도 시 Wrong user name or password라고 뜹니다. ( Wrong user name or password [28000-232] 28000/28000 ) 스프링부트 버전: 3.4.2 H2 버전: 2.3.232 build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' implementation 'org.springframework.boot:spring-boot-starter-jdbc' runtimeOnly 'com.h2database:h2' } application.properties spring.application.name=hello-spring spring.datasource.url=jdbc:h2:tcp://localhost/~/test spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=sa 버전에 알맞게 h2를 설치한 후, 윈도우 환경에서 h2.bat를 실행했습니다. 강의자료를 보며 추가해야 할 코드를 다 추가한 것 같은데, 로그인이 되지 않고 무엇이 문제인지 모르겠습니다. 또, 새로고침 시에 사용자명이 기본적으로 sa가 아니라 계속 admin으로 표시됩니다. (로그인할 때는 sa로 바꿔 로그인 시도했습니다.)

  • java
  • spring
  • mvc
  • spring-boot
민주 댓글 1 좋아요 0 조회수 181

인기 태그

인프런 TOP Writers

주간 인기글