묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 배치
스프링 배치에서 트랜잭션 매니저 관련 질문이 있습니다.
안녕하세요 선생님. 질문이 있습니다.제가 알기로 배치에서는 청크 단위로 트랜잭션이 관리되는 것으로 알고 있습니다. 그렇다면 같은 트랜잭션 내에서는 같은 트랜잭션 매니저를 사용할 거라고 생각했는대요.한 step에서 txManagerA 라는 트랜잭션 매니저를 세팅 했는데 writer 로직에서 특정 repository 을 주입 받아 쿼리 수행을 했더니 txManagerB 라는 다른 트랜잭션 매니저를 사용하게 되어 의도와는 다르게 동작합니다. slave db 조회용 txManagerA, entityManagerFactoryA bean을 따로 만들었습니다. jpa 전체 설정은 @EnableJpaRepositories 어노테이션에 의해 마스터 DB용 txManagerB 로 등록되어있습니다.엔티티, 레파지토리 패키지 경로는 마스터, 슬레이브 둘 다 같습니다. 트랜잭션을 별도로 연것도 아닌데 (propagation=requires_new는 사용하지 않았습니다.) 어째서 부모 트랜잭션의 txManager 를 사용하지 않는건지 잘 이해가 되지 않습니다. 제가 뭔가 설정을 잘못한 걸까요? 아니면 스프링의 트랜잭션 정책일까요?
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
GAS 보조게임 모듈은 GameFeature로 만든건가요?
플러그인에 게임피처가 적용 안되어 있는 걸로 보면 직접 파트1에서 한 것처럼 수동으로 폴더와 파일을 만들어서 제작한 것 같은데요. GAS 빌드.cs 에 PrivateDependencyModuleNames에 "GameFeatures"는 왜 있는 건가요??
-
해결됨[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
Blazor web app 생성할때 질문있습니다.
렌더링이 어디서 일어나느냐에 따라서 블레이저 서버와 웹어셈블리로 프로젝트를 구분하는데,.net 8.0 부터 blazor web app 이 추가된 것이라고 설명해주셨는데요...프로젝트 생성시, 샘플로 있던 페이지 중에 counter 증가되는 것만 클라이언트쪽에 생성되고, 나머지 페이지들은 서버쪽에 생성되었습니다. 클라이언트 쪽에는 DB 연결과 상관없는 기존의 자바스크립트로 동작하는 것이 주로 오는 것이고,서버 쪽에는 DB 사용하는 페이지들이 존재하는 것인지 궁금합니다. 즉, 어떤 것을 기준으로 클라이언트와 서버를 나누는 것인지 궁금합니다. blazor WASM을 선택해도, 페이지에 연결되는 DB 처리를 위해서는 API로 서버를 호출해서 결과를 받아와서 바인딩을 해준다면...blazor Server로 작성해서 해당 부분을 바인딩하는 것과 차이가 어떤 것인지 궁금합니다.또한, 실제 실무에서는 어떤 방식이 더 선호되는지 궁금합니다.
-
미해결모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
에러가 발생하면 무조건 취약한건가요?
문자형 취약점 유/무 확인에서점검 SQL 구문(1)은 DBMS의 종류를 추론 가능하기에 취약하다는건 이해하겠는데SELECT*FROM member WHERE id='crehack'a'tive'에서 에러가 발생하면 취약하다는걸 잘 모르겠습니다. 사용자 입력값중 'a'에서 싱글쿼터를 sql 구문으로 인식해서 오류가 났으니사용자 입력값에 대한 검증을 제대로 하지 않은것으로 보고 취약하다라고 판단하는건가요? 아니면 '에러 발생 = 취약' 이렇게 생각해야 되는 건가요?
-
미해결
환불 부탁드립니다
방금 결제한 과목이 있는데 당연히 영상강의인줄 알았는데 자료만 주는 강의였습니다. 확인하기 위해서 수업 차수를 눌렀는데 자료만 있는 수업이다보니 제목만 눌렀는데도 진도율 50퍼센트가 넘었고, 자료를 다운로드 받으면 안된다고 해서 자료는 다운받지 않았습니다. 자료만 주는 형태의 강의기에 진도율의 의미는 크게 없는것같고 환불부탁드립니다. 방금결제했고 수업자료는 아무것도 다운로드 받지 않았습니다.
-
해결됨CloudNet@ - Amazon EKS 기본 강의
KeyName 입력 안됨
CloudFormation에서 아래와 같이 KeyName 입력이 안 되고 그냥 넘어가면 스택 생성 fail이 되는데요.왜 그런걸까요?
-
미해결스프링 핵심 원리 - 기본편
UnsatisfiedDependencyException 오류에 대한 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]UnsatisfiedDependencyException 오류 내용Error creating bean with name 'memberServiceImpl' defined in file [C:\study\core\out\production\classes\hello\core\member\MemberServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memberRepositoryNoUniqueBeanDefinitionException 오류 내용No qualifying bean of type 'hello.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memberRepository오류 2가지가 발생하는데 두가지 모두 스프링 빈에 대한 오류인 것 같은데 해결을 못하겠습니다. (해결은 했으나 질문남깁니다.)======================================뒷 부분 강의영상을 참고해서 에러발생하는 지점인 MemoryMemberRepository, Policy 부분에 @Primary 애노테이션을 사용해서 오류를 풀긴했는데 왜 그렇게 해야하는지 모르겠습니다.스프링 부트 자체에 Componentscan이 포함되있어서 AppConfig 파일이 스프링 빈에 등록된다는 답변글을 봤었는데 그럼 메인으로 사용하는 클래스(Rate, Fix)가 변경될 때 마다 @Primary를 적용해줘야하는건가요?그리고 해결방법 중에 gradle 을 통해서 빌드 실행하는 것이 있던데 설명을 봐도 이해가 안갑니다. 초기에 알려주신 설정으로 gradle 은 intelliJ 로 설정되어있는데 빌드 실행하라는것이 terminal 에서 빌드를 하라고 하시는건지 이해가 안됩니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
클라이언트에서 데이터 변조 할 경우
패킷 id가 변조될 경우의 대응은 없는 상태인가요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
DELETE문 테스트 하는 부분 질문드립니다.
항상 강의 잘 듣고 있습니다 🙂다름이 아니라 이번 강의에서는 이전에 배웠던 assertThrows를 사용하시지 않고 assertThatThrownBy를 사용하셨는데 이 둘은 결국 하는 일이 같은 것이 아닌가 해서 질문드립니다. 강사님께서 강의 중 작성하신 코드와 제가 작성한 기존의 assertThrows를 이용한 코드가 정확히 같은 것이 맞는가해서 질문드립니다.// 강사님 (assertThatThrownBy) assertThatThrownBy(() -> repository.findById(member.getMemberId())).isInstanceOf(NoSuchElementException.class); // AssertThrows (내 버전) assertThrows(NoSuchElementException.class, () -> repository.findById(member.getMemberId()));
-
미해결스프링 핵심 원리 - 기본편
섹션6 필터, 커스텀 어노테이션 관련 질문입니다.
@Component와 같은 기능을 수행하는 어노테이션 생성 시 @Component내부에 있는 @Rentation(RentationPolicy.RUNTIME)@Target(ElementType.Type)@Documented위 3가지를 가져다 붙여서 @Rentation(RentationPolicy.RUNTIME) @Target(ElementType.Type) @Documented public @interface MyIncludeComponent{ }로 작성하라 하셨는데 @Component public @interface MyIncludeComponent{ }위와 같이 작성은 불가능한가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
언리얼엔진과의 비교
안녕하세요 강사님.흥미롭게 강의를 듣는 중인데 언리얼 엔진과 가끔 비교해주실 때가 있더라구요.듣다보면 유니티보다 더 복잡하다는 느낌을 지울수가 없는데 그럼에도 불구하고 언리얼 엔진이 유니티보다 조금 더 주목을 받는 이유가 무엇인지 궁금합니다. 게임 시장에서도 언리얼 엔진에 좀 더 주목하는 분위기라고 하시는 분들도 있어서요.이미 검색은 해보았지만 실무를 해보신 입장에서의 답이 궁금해 고민하다가 질문합니다. 언리얼 엔진이 유니티에 비해 엔진이 좀 무겁고 구현 폭이 넓은 그런 느낌이라서 많이들 사용하는 건가요? 좋은 강의 감사드립니다.
-
미해결Vue.js 시작하기 - Age of Vue.js
3:43 '#' 해시 유무의 차이
있고 없고 무슨 차이에요?왜 저게 달려오는거죠..?
-
해결됨카프카 완벽 가이드 - 코어편
confluent local 질문있습니다.
안녕하세요, confluent local도 bin 스크립트를 보니 kafka_server_start가 있고 이를 통해 커뮤니티처럼 멀티 브로커 클러스터를 생성할 수 있는 것이 아닌지 궁금합니다. 또한 실제로 confluent_local을 통해 모니터링 하는 사례가 현업에서 있는지 궁금합니다.
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
교차검증 메소드 질문드립니다.
안녕하세요강의를 복습하던 중 교차검증과 관련하여 궁굼한게 생겨 문의남깁니다. 교차검증을 통한 예측값을 산출할 때 cross_val_predict 메소드를 사용 하는 것으로 이해했습니다. 그래서 아래와 같이 코드를 만들었을 때 잘 동작했고요. y_cross_val_predict= cross_val_predict(model, X_train, y_train, cv=10, n_jobs=60) 근데 혹시 Test데이터에서도 가능한가 해서 데이터를 바꿔서 y_cross_val_predict= cross_val_predict(model, X_test, y_test, cv=10, n_jobs=60) 를 수행하니 코드는 문제없이 작동했는데 이 부분이 Test 데이터 셋에서 10개의 폴드로 나눠 교차검증을 한것으로 이해했는데 맞을까요?
-
해결됨실무자를 위한 구글애널리틱스(GA4+GTM) 활용법(25년 Update)
utm을 넣었지만 referral로 확인되는 경우
선생님, 안녕하세요.카페24로 실습해서 utm을 넣었습니다.주소 뒷부분 utm : ?utm_source=youtube&utm_medium=PowerYT_video&utm_campaign=2024_PowerYT&utm_content=yt_3애널리틱스의 획득 > 트래픽 획득 보고서 내에 소스/매체가 이렇게 확인이 됩니다.혹시 어떤게 문제였을 지 알 수 있을까요?
-
미해결[신규 개정판] 이것이 진짜 엑셀자동화다 - 기본편
매출데이터 생성 price 오류
강사님 안녕하세요 :)강의 코드와 똑같이 작성하였는데 if문에서 price가 정의되지않았다고 뜨면서 실행이안되는데 .. 혹시 이유를 알 수 있을까요?
-
미해결[리뉴얼] 처음하는 파이썬 머신러닝 부트캠프 (쉽게! 실제 캐글 문제 풀며 정리하기) [데이터분석/과학 Part2]
하이퍼 파라미터 튜닝 기법 적용하기 실행값이 미묘하게 달라요.
사소하긴 한데, 궁금해서 질문 남겨요.위의 코드를 실행하면 svc 실습 동영상에 나온 값과 약간의 차이가 있어서요. 컴퓨터 성능에 따라서 값의 차이가 미묘하게 다를 수 있나요? 통계패키지도 가끔 돌릴때마다 값이 미묘하게 달라지기는 한데, 그 이유를 조금 구체적으로 알고 싶어서요. 참고로 저는 m1 chip mac을 사용중입니다.
-
해결됨[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
솔루션 배포(게시) 부분에서 질문있습니다.
작성된 솔루션 파일을 게시할 때, 콘솔 exe가 실행되면서 어떻게 렌더링이 되고, 실행이 되는지 잘 모르겠습니다.즉, Blazor 서버 앱의 실행 방법과 게시할 때 포함시켜야 하는 범위를 알고 싶습니다.솔루션에서 게시를 선택해서 로컬에 생성된 폴더를 보면, IIS 에서부터의 실행방법을 잘 모르겠습니다. 게시할 때 WASM 방식과 서버방식의 차이를 이해하기 쉽게 다시한번 설명해주셨으면 합니다.감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-a
// Online C++ compiler to run C++ program online #include <bits/stdc++.h> using namespace std; //// 다이어트 int N,mp,mf,ms,mv; int resultSet; vector<int> resultSetVector; typedef struct food{ int v[5]; }food; food* input(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin>>N>>mp>>mf>>ms>>mv; food* fList = (food*) malloc(sizeof(food) * N); for(int i=0; i<N; i++){ for(int j=0; j<5; j++){ cin >> fList[i].v[j]; } } return fList; } void printBitSet(int resultSet, int N){ for(int i=0;i<N; i++){ if( resultSet & (1<<i) ) { cout << i + 1 << " "; } } } //// logic // 1. 모든 조합을 구한다. // 2. 해당 조합 중에 최소 영양소 기준을 만족하는 조합을 찾는다. // 3. 해당 조합 중 최소 비용 조합을 찾는다. void solve(){ food* fList = input(); int result = INT_MAX; for(int i=0; i<(1<<N); i++){//O(N^2) //1. int sum[5] = {0}; for(int j=0;j<N;j++){ if(i&(1<<j)){ sum[0] += fList[j].v[0];//pi sum[1] += fList[j].v[1];//fi sum[2] += fList[j].v[2];//si sum[3] += fList[j].v[3];//vi sum[4] += fList[j].v[4];//ci } } //2.mp,mf,ms,mv if(sum[0] >= mp && sum[1] >= mf && sum[2] >= ms && sum[3] >= mv){ //3. if(result >= sum[4]){ result = sum[4]; resultSet = i;//최소 비용 조합 } } } if(result == INT_MAX) cout << -1 << '\n'; else{ cout << result << "\n"; printBitSet(resultSet, N); } } int main(){ solve(); } void printBitSet(int resultSet, int N){ for(int i=0;i<N; i++){ if( resultSet & (1<<i) ) { cout << i + 1 << " "; } } ////..... //2.mp,mf,ms,mv if(sum[0] >= mp && sum[1] >= mf && sum[2] >= ms && sum[3] >= mv){ //3. if(result >= sum[4]){ result = sum[4]; resultSet = i;//최소 비용 조합 } } ////..... if(result == INT_MAX) cout << -1 << '\n'; else{ cout << result << "\n"; printBitSet(resultSet, N);//최소 비용 조합 출력 }} 안녕하세요 큰돌 님. 비트마스킹 문제 질문이 있어 여쭤봅니다. 어떤 반례가 있을지 궁금합니다. vector에 넣어주는 방식이 아니라, i 비트값을 업데이트 해서 프린트 해주는 방식으로 구현 했습니다.위 방식만 다르기 때문에 여기서 문제가 있을 거라 추측됩니다.12퍼센트 쯤에서 테케통과를 못 하더라구요ㅠ 도와주시면 정말 감사드리겠습니다. 공유 소스 보기 (acmicpc.net)
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
스프링 부트 3.x버전쓰고 강의대로 했는데 NullPointException 나시는분들을 위해
위에 처럼 NullPointerException 나시고 PostMan에 어떠한 것도 호출되지 않거나 기존에 만들었던 Error 500 html 페이지가 뜨시는 분들 강의자료에 있는 2.x 버전대의 javax.~을 복사붙여넣기 하시면 안됩니다스프링부트 3버전대부터 javax가 아닌 jakatra로 바뀌었기 때문에 RequestDispatcher 참고하셔도 좋고 아래에 있는 코드를 복사해서 쓰세요 public static final String ERROR_EXCEPTION = "jakarta.servlet.error.exception"; public static final String ERROR_EXCEPTION_TYPE = "jakarta.servlet.error.exception_type"; public static final String ERROR_MESSAGE = "jakarta.servlet.error.message"; public static final String ERROR_REQUEST_URI = "jakarta.servlet.error.request_uri"; public static final String ERROR_SERVLET_NAME = "jakarta.servlet.error.servlet_name"; public static final String ERROR_STATUS_CODE = "jakarta.servlet.error.status_code";