묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
트랜잭션 전파 시 체크 예외를 활용한 복구 처리 관련 문의
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]"회원 가입을 시도한 로그를 남기는데 실패하더라도 회원 가입은 유지 되어야 한다." 이 요구사항을 만족하기 위한 방법1.2 이외에 체크 예외를 활용하는 방법3 관련 문의입니다.방법1. REQUIRES_NEW로 선언해서 물리 트랜잭션 분리방법2. MemberFacade 구조를 사용하여 물리 트랜잭션 분리방법3. 체크 예외를 던져서 오류 관련 내용 커밋(9.스프링 트랜잭 션 이해 / 예외와 트랜잭션 커밋, 롤백 - 활용)질문. 체크예외를 활용하면 코드에 명시적으로 오류 상황에 대 한 처리를 할 수 있어서 개발자가 오류를 코드 레벨에서 인지할 수도 있고 오류를 받을 때 로그 상태를 저장할 수 도 있다는 장점 이 있을 것 같은데 비즈니스 적으로 의미가 있는 경우에는 체크예외를 사용하고 그 외에는 방법1,2를 선택하면 되는지 궁금합니 다. (오류 처리로 서비스 코드를 지저분하게 만들게 하고 싶지 않 는 경우 방법1,2를 사용하는지?)참고) 아래는 위 내용을 테스트 할 때 작성한 코드 입니다.체크예외를 사용하는 서비스 메소드 내용@Transactional public void joinV3(String username) throws Exception { Member member = new Member(username); Log logMessage = new Log(username); log.info("== memberRepository 호출 시작 =="); memberRepository.save(member); log.info("== memberRepository 호출 종료 =="); log.info("== logRepository 호출 시작 =="); try { logRepository.saveV2(logMessage); } catch (Exception e) { log.info("log 로그 저장에 실패했습니다. logMessage={}", logMessage.getMessage()); logRepository.saveV2(new Log("체크예외발생!!")); log.info("joinV3: 체크 예외가 발생하였습니다!!!"); } log.info("== logRepository 호출 종료 =="); }체크예외를 던지는 logRepository.saveV2 내용@Transactional public void saveV2(Log logMessage) throws Exception { log.info("log 저장"); if (logMessage.getMessage().contains("로그예외")) { log.info("log 저장시 예외 발생"); throw new Exception("예외 발생"); } em.persist(logMessage); }회원가입요청 서비스를 테스트하는 코드 내용/** * MemberService @Transactional: ON * MemberRepository @Transactional: ON * LogRepository @Transactional Checked Exception */ @Test void recoverCheckedException_success() throws Exception { // given String username = "로그예외_outerTxOn_fail"; String errorUsername = "체크예외발생!!"; // when memberService.joinV3(username); // then: member 저장, log 오류내용 저장 assertTrue(memberRepository.find(username).isPresent()); assertTrue(logRepository.find(errorUsername).isPresent()); }
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
XGBoost 설치 질문
안녕하세요. 좋은 강의 잘 듣고 있습니다.다름이 아니라, XGboost를 설치했는데위와 같이'FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead. from pandas import MultiIndex, Int64Index"라는 경고가 뜹니다. 판다스에서 다른 인덱스를 인포트해야 해결할 수 있을까요? 이상입니다. 감사합니다.
-
미해결배달앱 클론코딩 [with React Native]
android font 깨짐 오류 해결
왜인지는 모르나 android 환경에서 icon 오류가 출력되어 해결방법 남깁니다.https://phant0m.tistory.com/20해당링크에 자세히 나와있습니다.강의에서 fonts 폴더 생성 등 모든 절차는 완료했으나 폰트 사이즈 조절은 되는데 아이콘 자체가 불러와지지 않는 오류는 아래와 같은 방법으로 해결 가능합니다.android/app/build.gradle (app 내에 있는 gradle.build 입니다.)폴더에서 apply으로 검색 후 그 아래에apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"아래 코드를 붙여 넣어주세요 그럼 정상적으로 출력됩니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
등록한 필터와 인터셉터가 싱글톤으로 관리되는 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.pdf를 보면 이렇게 써있습니다.필터 인터페이스를 구현하고 등록하면 서블릿 컨테이너가 필터를 싱글톤 객체로 생성하고, 관리한다.LogInterceptor 도 싱글톤 처럼 사용되기 때문에 맴버변수를 사용하면 위험하다. Q1. 필터의 경우 싱글톤 객체로 생성되고 관리되는 이유가 WebConfig 클래스에 @Configuration 애노테이션을 적용했기 때문이 맞는지 궁금합니다.즉, WebConfig 클래스에서 @Bean이 붙은 메소드가 반환하는 객체(해당 필터)가 빈으로 등록되는데, @Configuration 애노테이션으로 인해 싱글톤 객체로 관리되기 때문인가요? Q2. 인터셉터의 경우는 어떤 이유로 인해 싱글톤처럼 사용되는 것인가요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
컬렉션 탐색
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용](멤버와 팀이 다대일 관계)"select t.members From Team t"t.members가 Member 객체가 아니라 Member컬렉션 자체라서 탐색이 허용안된다고 하셨는데요. 영한님께서 size 메서드를 쓰시는걸 보고 의문이 생겼습니다. 앞서 경로 표현식에서는 객체 탐색이 상태 필드, 단일값 연관필드, 컬렉션 값 연관필드만 허용이 된다고 하셨는데 size()는 왜 허용이 되는건가요? size가 허용되면 t.members.get(...)이런 식으로 컬렉션 메서드도 사용가능한거 아닌가요? 감사합니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
큰돌님 조금 다르게 코드를 작성했는데 한번 봐주시면 감사하겠습니다!
#include<bits/stdc++.h> using namespace std; string a; bool check(string s) { // (과 [를 담을 stack stack<char> cstk; //만약 ([이면 무조건 담고 그렇지 않은 경우들 체크 , 문자들이 들어가기 때문에 특정 조건에 맞는 선언으로 해야한다. else를 쓰지 않는 방향으로 for(char c : s ) { if( c == '(' || c == '[') cstk.push(c); // 현재 c가 ), ] 인데 stck이 비어있으면 return false; if( (c == ')' || c == ']') && cstk.empty()) return false; // 여기서 위의 조건의 else가 아닌 두가지 경우로 특정지었다. if( c == ')'){ if(cstk.top() == '(') cstk.pop(); else return false; } if( c == ']') { if(cstk.top() == '[') cstk.pop(); else return false; } } // 다 돌았는데 아무문제없이 cstk.empty면 return cstk.empty(); } int main () { while(true) { // cin과 다른점은 띄어쓰기도 아스키코드로 받아주기 때문에 띄어쓰기가 포함된 문자열도 한번에 받을 수 있다. getline(cin,a); if( a == ".") break; if(check(a)) cout << "yes\n"; else cout << "no\n"; } }
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃허브 권한 요청 드립니다
깃허브 권한 요청 드립니다.인프런 아이디 : astra5971@gmail.com인프런 이메일 : astra5971@gmail.com깃헙 아이디 : astra5971@gmail.com깃헙 Username : astralove
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
vector 관련 질문 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요. 제가 문제를 풀다가 이런식으로 많이 푸는데, 초기화를 어떻게 해야할지 몰라서요.일단.Global 함수로 아래처럼 선언합니다.vector<vector<int>> a; 2.그리고 input에서 NxM정보를 받으면 아래처럼 하거든요a.resize(N, vector<int>(M, 초기화값)); 이후 a를 사용하다가 중간에 또 초기화를 해야할 사항이 있어 아래와 처럼하면 둘다 안됩니다..ㅠ.ㅠfiill( a.begin(), a.end(), 0);OFmemset(&a, 0, sizeof(a));이렇게 하면 안되는데, 혹시 해결 방법있을까요??나름 최대한 memory 공간 적게 가져간다로 저렇게 했는데, 별로 안좋은 기법인가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Assertion import할 때 문제가 생깁니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. Assertions 사용할 때, 둘 중 하나를 이미 import한 상태면 다른 하나는 처리가 안되고 그 하나는 지 멋대로 import를 꺼버립니다. 제가 임의로 작성해도 스스로 꺼버리는데 어떻게 해야 하나요? Assertions.assertThrows(IllegalStateException.class, () -> memberService.join(member2));위 코드는 이미 assertj를 받아서 junit 쪽의 Assertion을 받을 수 없습니다.
-
미해결Vue.js + TypeScript 완벽 가이드
권한 요청 드립니다.
안녕하세요두번째 프로젝트 권한 요청 드립니다. 깃허브: jh900127@gmail.com 입니다. 확인 부탁 드립니다.감사합니다
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
코틀린으로 한번 래핑 (수정)
코틀린에서 자바코드를 사용할 때 플랫폼 타입 사용에 유의하여야한다고 하셨습니다.팁으로 자바 코드를 널 가능성을 확인하는 코드를 삽입하던지 아니면 코틀린으로 한번 래핑하라고 하셨는데 여기서 코틀린으로 한번 래핑하라는게 무슨 의미인지 잘 모르겠습니다4강입니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
함수 안에서 cout하는 경우와 함수 밖에서 cout하는 경우
이 경우와이 경우의 결과값이 다르게 나오는데, 왜 다른지 모르겠습니다.
-
해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
정렬 - 병합정렬 성능을 n*log n 으로 나타낼 수 있는 이유
선생님 :)고등학교 때 배웠던 수학이 이용되는 게 신기하네요!알고리즘 재밌게 공부하고 있습니다 ㅎㅎ Q1) 다름이 아니라, 병합 정렬의 성능 계산 방법이 궁금해서 질문 드립니다. Merge() 함수 내 흩어진 배열을 합치는 부분으로 성능을평가한다.분할된 배열을 병합할 때에는 n개의 데이터를 n번 비교한다: 이 부분은 이해했습니다. 왼/오른쪽 데이터를 합칠 때 비교 연산이 이뤄지는데,1개+1개 합칠 때 => 비교 연산 2번2개+2개 합칠 때 => 비교 연산 4번(1개+1개 합치고 => 2개 + 2개 합쳐서)3개+3개 합칠 때 => 비교 연산 8번 맞을까요? 각 단계를 거칠 때마다 영역의 수가 반으로 줄어든다: 가장 작은 단위까지 쪼개서, 차근차근 합하므로8번 => 4번 => 2번 log₂n 으로 표현할 수 있는 부분을 간략히 log n으로 표현한다고 이해하면 될까요? Q2) 추가로, 배열의 개수가 홀수 개인 경우도 적용이 될 것 같으면서도 애매한 부분이 있을 것 같아 질문드립니다.(대입해보면 정렬은 되는 것을 확인했습니다)양쪽을 비교하고 더 이상 비교 대상이 없을 땐 이후 값을 그대로 옮겨온다라는 점을 생각했을 땐 홀수 개도 무리 없이 비교가 가능하다고 생각하는데,막상 손으로 구현해보려니 이해가 안 가는 부분이 있습니다.[1,3,2]를 정렬할 경우 [1]과 [3,2]로 나뉘게 되는데[1]이 정렬이 완료가 되었다고 해서 [3,2]가 정렬이 완료되지 않은 채로 옮겨지게 될 것 같습니다.
-
미해결[2021] 요즘 누가 유료로 웹서비스 구축하나, 파이어베이스의 모든 것 - Javascript
Firebase CLI 설치 시, 에러가 납니다! - sudo로 해결
npm설치 후, Firebase CLI설치를 터미널에서 실행했는데요.아래와 같이 에러가 납니다!이럴 경우, sudo 이용해서 해결하시면 됩니다!sudo npm install -g firebase-tools npm install -g firebase-tools npm ERR! code EACCES npm ERR! syscall mkdir npm ERR! path /usr/local/lib/node_modules/firebase-tools npm ERR! errno -13 npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/firebase-tools' npm ERR! [Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/firebase-tools'] { npm ERR! errno: -13, npm ERR! code: 'EACCES', npm ERR! syscall: 'mkdir', npm ERR! path: '/usr/local/lib/node_modules/firebase-tools' npm ERR! } npm ERR! npm ERR! The operation was rejected by your operating system. npm ERR! It is likely you do not have the permissions to access this file as the current user npm ERR! npm ERR! If you believe this might be a permissions issue, please double-check the npm ERR! permissions of the file and its containing directories, or try running npm ERR! the command again as root/Administrator. npm ERR! A complete log of this run can be found in: npm ERR! /Users/?????/.npm/_logs/2022-10-09T02_23_11_673Z-debug-0.log haeminkim@Arborsdayui-iMac ~ % npm npm <command>
-
미해결마케터를 위한 구글 애널리틱스 실무
강의북 요청드려요~
강의 잘 듣고 있습니다! PDF 강의북 요청드립니다! mpmhyh@naver.com 으로 보내주시면 감사하겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
s.begin()또는 s.substr(0,1)과 char와의 비교는 어떻게하나요?
안녕하세요제가 1159번 문제를 풀다가 의문이 생겨서 질문 드립니다.저는 문자열 첫글자를 s.begin()또는 s.substr(0,1)을 통해 추출한 후, 이를 for (int i = 0; i < a; ++i) { for (int j = 0; j < 26; ++j) { if (s[i].begin() == ('a' + j)) { ++cnt[j]; } }}다음과 같은 방식으로 비교하려 하였습니다.하지만, (s[i].begin() == ('a' + j)) 이 부분에서 둘이 비교할 수 없다면서 오류가 뜨더군요.형변환을 시켜서 비교를 시도해보아도 오류는 사라지지 않았습니다.이 둘은 어떻게 비교를 해야하나요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
N/2? = 1
BIG-O 표기법 수업 16분 10초쯤에 N/2? 을 1과 유사 근접하다고 표현하셨는데 1로 설정한 이유를 알 수 있을까요? BIG-O 표기법에서 하시고 싶은 말씀이나 의미등은 익혔으나 숫자 맞추기 에서 표현하신 식의 1의 의미를 잘 모르겠습니다
-
미해결[2025년 출제기준] 웹디자인기능사 실기시험 완벽 가이드
html 작성문이 다 보이지 않는데 보이지 않는 부분은 어디서 확인합니까?
작성문이 다 보이지 않는데 보이지 않는 부분은 어디서 확인합니까? 공지사항, 갤러리 별도로 구성하기 완성분 다운로드 해서 확인해야 합니까?
-
미해결프로그래머를 위한 강화학습(저자 직강)
MDP 질문
MDP에서 상태가 변한다는 것은 원래 가지고 있던 상태 전이 매트릭스와 정책의 영향을 동시에 받는다는 것과 같다. (이해완료)따라서 행동에 따른 정책과 상태 전이 확률의 기댓값(평균)을 구함으로서 정책을 고려한 상태 전이 매트릭스를 구할 수 있다(이해 못함) -> 두번째 문장에서 기댓값을 구해서 상태전이 매트릭스를 구할 수 있다는 부분이 이해가 잘 안됩니다.
-
미해결프로그래머를 위한 강화학습(저자 직강)
보상값과 보상함수
MRP에서 R을 보상 함수라고 책에 써 두셨는데, 여기서 보상함수를 구하는 방법은 확률의 기대값으로 계산한다고 하셨습니다. 확률의 기대값을 구하는 방법은 각각의 확률에 해당 상태의 기대값(주어지는 값, 임의의 값)을 곱한 것을 다 더해주면 된다고 하셨습니다. 그런데 MDP 설명하는 강의에서 계속 보상값이라는 표현을 쓰시는데 이 표현이 정확한 것인지 문의 합니다.