묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@ExceptionHandler JSON 반환
왜 저는 Json으로 code와 message가 뜨지않고 그대로 상태코드도 400으로 나올까요?ㅠㅠlog도 찍히지않습니다,, 어느부분에서 오류가 난건지 모르겠습니다ㅠㅠ 공통으로 (Exception e)로 처리해준 예외를 추가하니, bad와 user-er 모두 공통으로 처리한 Ex로 JSON이 반환됩니다 ㅠㅠ
-
미해결팀 개발을 위한 Git, GitHub 입문
강의 자료 부탁드립니다 !
수업 중에 다시 보고 싶을 때 보고싶어요 !bugreport1@naver.com 감사합니다 !
-
해결됨[플러터플로우]코딩 없이 한 달 만에 앱 만들기
안녕하세요 강의 잘 보았습니다. 질문이 있습니다.
결제해서 코드를 내려받은 후에 수정을 했을 경우에, 다시 해당 내용을 플러터플로우랑 호환되게 하는건 문제가 없을까요?플러터플로우는 플러터플로우대로 가고, 직접 코드 수정은 직접 하는 버전대로 가야할까요?android, ios 각각 스토어에 배포하는 2번째 강의는 언제쯤 오픈 계획이 있으신지 궁금합니다!강의 감사합니다!
-
해결됨버그헌팅과 시나리오 모의해킹 전문가 되기
NAT 네트워크 IP 대역대로 설정되지 않는 현상
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. nat 네트워크 ip대역을 192.168.0.0/24로 설정 후 네트워크 어댑터 설정도 NAT 네트워크로 설정하였으나 kali 리눅스 접속 후 ifconfig로 확인 시 eht0 ip가 10.0 대역대로 잡힙니다. 혹시 설정을 추가로 해야하는 사항이 있나요?
-
해결됨개발자를 위한 쉬운 도커
컨테이너의 커널 공유에 대한 의문점
가상화 기술의 사용 이유 중 하나는 실행 환경을 분리하여 서비스의 안정성을 높이는 것으로 알고 있습니다. 하지만 컨테이너는 하나의 커널을 공유합니다. 이는 빠르고 가볍다 라는 장점을 가져다주지만 이렇게 되면 하나의 서비스에서 장애가 발생했을 때 다른 서비스에도 영향을 미칠 수 있는 것 아닌지 궁금합니다. 결국 가상화의 장점을 가지지 못한것 아닐까하는 의문점이 듭니다 !컨테이너가 하나의 커널을 공유한채 실행된다면 프로세스와 크게 다른 부분이 없다고 생각하는데 프로세스와 컨테이너가 어떤 차이를 가지고 있는지 궁금합니다.
-
해결됨Vue3 완벽 마스터: 기초부터 실전까지 - "기본편"
update:value로도 커스텀 v-model 기능이 동작하네요 ;;
Vue 2의 호환성 문제로 놔둔 것일까요? 혹시나해서 바꿔봤더니 잘되네요 ;; 아무래도 Vue 3 권고 사항인 modelValue를 사용하는게 맞겠죠? <label> 이름 <input type="text" :value="value" @input="e => $emit('update:value', e.target.value)" /> {{ userName }} </label>
-
미해결Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
Flux 와 Mono
흔히 Spring Boot WebFlux 라고 공고에도 많이 올라오고 , 사람들이 많이들 부르는데, 이때 WebFlux 는 Mono 를 제외한 Flux 인가요 ??아니면 Mono 와 Flux 를 모두 포함해서 WebFlux 라고 하나요 ??
-
미해결
트랜잭션 전파 활용5 - 전파 롤백 에서 질문 있습니다.
/** * MemberService @Transactional:ON * MemberRepository @Transactional:ON * LogRepository @Transactional:ON Exception */ @Test @Transactional void outerTxAllOn_logging_fail() { // 포함된 트랜잭션중 하나라도 런타임 에러가 발생한다면? 전체롤백!, (런타임 에러 기준임.) (체크드 예외는 커밋임) //given String username = "outerTxAllOn_logging_fail"; String username2 = "로그예외"; //when // memberService.joinV1(username); memberService.joinV2(username2); // 예외발생 log.info("--- joinV2 호출 종료"); System.out.println("겟겟 "+memberRepository.find(username2).get().getUsername()); System.out.println("겟겟 "+logRepository.find(username2).get().getMessage()); // assertTrue(memberRepository.find(username2).isPresent()); // assertTrue(logRepository.find(username2).isEmpty()); // 결과적으로 여기메소드안의 작업은 전부 롤백은 된다. }질문 1. 위 소스에서 트랜잭션이 끝나기 전에 memberRepository.find(username2) 를 수행했다면, 영속성 컨텍스트에 있던 insert들이 물리 트랜잭션에 수행되면서, 값이 조회가 되는 것이 맞는지 궁금합니다.로그로 돌려봤을땐 값이 조회가 되었습니다.질문 2. 물리 트랜잭션이 롤백되는 것이 핵심이며, 트랜잭션이 진행 중 런타임 에러가 예외로 처리되었기에, 트랜잭션이 끝나기 전 까지는 rollback()이 물리적으로 일어나지 않은 상태일 것입니다.저는 강의랑 조금 다르게 서비스에 @Transactional을 넣지 않고, 테스트 메소드에 @Transactional을 넣어 봤습니다.만약 이 상황에서 select를 날린다면, 물리 트랜잭션이 끝나지 않은(rollback되지 않은 상태)이므로 그 사이에 입력된 값은 조회가 되어야 하는게 맞아 보입니다. 이를 위해 앤티티매니저에서 flush()가 일어나고, 영속성 컨택스트에 대기중인 Insert문이 물리트랜잭션으로 전달되어 값이 조회가 되는 것으로 생각되나, 런타임 예외가 일어나서 logRepository.save(logFactory) -> em.persist(logMessage) 은 수행되지 않아야 정상일 것입니다.System.out.println("겟겟 "+logRepository.find(username2).get().getMessage());즉 위의 겟겟 logRepository.find(username2).get에서 메시지가 조회가 안 되어야 될 것입니다.그런데 log_factory에 insert문이 하이버네이트에서 생성되고, log_factory에 값이 insert된 것이 조회가 되는건지 궁금합니다. (결과적으로 롤백은 되겠지만, 트랜잭션이 끝나기 전, 왜 저 find가 정상인건지 궁금합니다.)public void joinV2(String username) { // 로그 저장 실패하면, throw 되는건 피하기 위해 Member member = new Member(username); LogFactory logFactory = new LogFactory(username); // logFactory 객체 만드는이유? logFactory객체에 (username 정보) 저장하려고. log.info("--- memberRepository 호출 시작"); memberRepository.save(member); log.info("--- memberRepository 호출 종료"); try { // 로그저장 실패한다해도 예외 안던지기 위해 직접처리 log.info("===--- logRepository 호출 시작"); logRepository.save(logFactory); log.info("===--- logRepository 호출 종료"); } catch (RuntimeException e) { log.info("로그 저장 실패, logRepository={}",logFactory.getMessage()); log.info("로그 저장 실패, ErrorMessage={}",e.getMessage()); } log.info("--- joinV2 종료"); } @Transactional public void save(LogFactory logMessage) { log.info("log 저장"); em.persist(logMessage); if (logMessage.getMessage().contains("로그예외")) { log.info("log 저장시 예외 발생"); throw new RuntimeException("예외 발생"); } }김영한님 강의 스프링 DB2편 - 데이터 접근기술에서트랜잭션 전파 활용5 를 보면서 테스트를 하다가 도저히 이해가 안가 이렇게 글을 남깁니다.설명이 너무 어려운게 아니었는지 죄송스럽습니다.
-
미해결CloudNet@와 함께하는 Amazon EKS 기본 강의
선생님
혹시 원클릭배포를 yaml파일이 아닌 테라폼으로 구현하실 생각이 있으신가요? 저도 테라폼의 장단점에 대해 자세히 아는 것은 아니지만, 아래 질문하신 분 사례처럼 yaml 생성은 매끄럽지 못한 부분도 있고, destroy도 조금 불편하긴 했습니다. 제가 가진 hcl은 eks까지 빌드할 수 있는데, 여기에 이어서 선생님의 프로메테우스 스택을 설치하려니 문제가 발생해서 사용을 못하고 있습니다.
-
미해결엑셀 매크로와 VBA 기초부터 실무활용까지 완전 정복
VBA 질문
안녕하세요. VBA 코딩작성중에 영어 대,소문자 구분 및 띄어쓰기에 따라 결과값이 다르게 나올수도있나요?아니면 영어 대,소문자, 띄어쓰기는 그냥 결과값에는 상관이 없는건가요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
8-6 순열구하기 이러한 방식으로 풀어도 괜찮을까요?
이전 값을 DFS 매개변수로 넘겨서 이전값이 아니면 더 깊이 들어가는 방식으로 풀이를 혼자 했었습니다. 괜찮은 풀이 방법일까요?public class P6_순열 { static int n, m; static int[] arr; public static void DFS(int L, int prev, String answer) { if(L==m){ System.out.println(answer); }else{ for(int i=0; i<n; i++){ if(arr[i]!=prev) DFS(L+1, arr[i], answer+arr[i]+" "); } } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); n=sc.nextInt(); m=sc.nextInt(); arr=new int[n]; for(int i=0; i<n; i++){ arr[i]=sc.nextInt(); } DFS(0,0,""); } }
-
미해결엑셀 매크로와 VBA 기초부터 실무활용까지 완전 정복
VBA 관련 질문드립니다.
안녕하세요. VBA강의 기초부터 듣고있는데요엑셀 파일을 처음 실행하여 매크로를 만들어두고, 그 엑셀파일을 저장하지않고 끈상태에서다시 새로운 엑셀파일을 열면 기존에 매크로(VBA코드) 만들어두었던게 다 날라가는건가요? VBA코드가 만들어진 그 엑셀파일에 새로운 LOW데이터를 가지고와서 사용해야 되는건가요? 한번 만들어둔 VBA 코드를 새로 연 엑셀파일에 불러오는 기능이나 방법이 있는지 꼭 알고싶습니다... 검색해도 나오지를 않아 질문드리는 부분입니다. 꼭 답변부탁드릴께요 ㅜㅜ
-
미해결Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
Spring WebFlux 를 사용하기 적합한 시스템
일반적인mvc rest api 를 사용하지 않고 , spring web flux 를 사용해도 되나요 ?? 그렇게 많이 사용하고 있나요 ?
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
docker 컨테이너 환경설정 문제
docker 컨테이너를 바로 생성하지 않고 따로 실행하는 걸로 했을때 아래와 같은 실행화면까지 나오고 잠시후에 에러메세지가 뜨는데 여기서 더이상 방법을 못찾아서 헤매고 있습니다 ㅎㅎ 윈도우라서 그런건 아니겠죠?[I 240227 01:42:46 command:177] Registered tasks:['celery.accumulate','celery.backend_cleanup','celery.chain','celery.chord','celery.chord_unlock','celery.chunks','celery.group','celery.map','celery.starmap'][E 240227 01:42:54 events:191] Failed to capture events: 'Error 11001 connecting to redis:6379. getaddrinfo failed.', trying again in 2 seconds.[E 240227 01:42:54 base_events:1771] Future exception was never retrieved 따로 실행하는 이유는 처음에 docker-compose up --build -d 해서 생성할때 flower에서Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "flower": executable file not found in $PATH: unknown에러가 발생해서 찾아보니 따로 실행하면 된다고 그래서 현재 따로 실행중에있습니다. version: '3' services: app: build: ./python_app volumes: - ./python_app:/usr/src/app ports: - "8000:8000" # 필요한 경우, 앱이 외부에 노출할 포트를 지정 redis: image: "redis:alpine" celery_worker: build: ./python_app command: celery -A tasks worker --loglevel=info volumes: - ./python_app:/usr/src/app depends_on: - redis celery_beat: build: ./python_app command: celery -A tasks beat --loglevel=info volumes: - ./python_app:/usr/src/app depends_on: - redis flower: image: mher/flower command: flower --broker=redis://redis:6379/0 --port=5555 ports: - "5555:5555" depends_on: - redis
-
미해결스프링 핵심 원리 - 기본편
오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요.출력은 나오는 것 같은데 다음과 같은 오류가 발생합니다.policyMap = {fixDiscountPolicy=hello.core.discount.FixDiscountPolicy@6995bf68, rateDiscountPolicy=hello.core.discount.RateDiscountPolicy@5143c662}policies = [hello.core.discount.FixDiscountPolicy@6995bf68, hello.core.discount.RateDiscountPolicy@5143c662]20:43:46.722 [main] WARN org.springframework.context.annotation.AnnotationConfigApplicationContext -- Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderServiceImpl' defined in file [C:\spring project\core\core\out\production\classes\hello\core\order\OrderServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 1: No qualifying bean of type 'hello.core.discount.DiscountPolicy' available: expected single matching bean but found 2: fixDiscountPolicy,rateDiscountPolicyorg.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderServiceImpl' defined in file [C:\spring project\core\core\out\production\classes\hello\core\order\OrderServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 1: No qualifying bean of type 'hello.core.discount.DiscountPolicy' available: expected single matching bean but found 2: fixDiscountPolicy,rateDiscountPolicyat org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:798)at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:237)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1355)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1192)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975)at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:959)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624)at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:93)at hello.core.Autowired.allbean.AllBeanTest.findAllBean(AllBeanTest.java:17)at java.base/java.lang.reflect.Method.invoke(Method.java:578)at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'hello.core.discount.DiscountPolicy' available: expected single matching bean but found 2: fixDiscountPolicy,rateDiscountPolicyat org.springframework.beans.factory.config.DependencyDescriptor.resolveNotUnique(DependencyDescriptor.java:218)at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1420)at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:907)at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:785)
-
해결됨곰책으로 쉽게 배우는 최소한의 운영체제론
I/O 관리자, 메모리 매니저 사용 이유
2강 5분 40초 경에서 요새는 메모리 매니저라는 것을 통해메모리에 직접 제어하지 않고 간접으로 제어한다고 하셨는데 이를 통해 얻는 이점이 무엇인가요?그리고 결국에 CPU 안으로 north bridge의 역할을 일부 들여왔다라고 하셨는데 이거는 직접 관리하는 게 아니라 CPU 내에 north bridge 역할을 하는 칩이 들어와서 여전히 간접적으로 통제를 하지만 CPU 제조사에서 직접 만들기 때문에 메인보드의 영향을 줄였다라고 이해했는데 맞을까요?
-
해결됨[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - Part 1 NestJS Core
@Column update 프로퍼티
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.코드팩토리 통합 링크https://links.codefactory.aiFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다! -- 질문강사님은 update 프로퍼티를 false로 설정하고 patch 요청을 보내면 500 에러가 발생하였는데 저는 다시 해봐도 업데이트는 실제로 안되었지만.. 500에러는 발생이 안되네요. 설정을 잘못한것일까요?.
-
미해결홍정모의 따라하며 배우는 C언어
scanf()가 잘못된 입력을 읽을 때 행동
안녕하세요,이 코드에서 'a 2 3 '을 입력 후 'b 4 5'를 입력하면, 두번째 while문이 돌아갈때 입력버퍼에 남아있는 ' \nb 4 5' 중 ' '는 c로 들어가고, 다음 %d를 읽으려 할때 '\n' 와 %d가 매칭되지 않아 scanf가 종료되고, rows와 cols는 기존 2 와 3이 유지되어 하기와 같이 결과가 나오는 것을 이해를 했습니다.핵심은 버퍼에 남아있는 ' \nb 4 5' 중 '\n'은 scanf가 읽다가 포기하고 버려졌다 라는 건데요,(이게 스트림이 옮겨졌다고 표현하는게 맞나요?) 이를 테스트하기 위해 하기와 같이 코드를 짜봤는데, 또 아닌 것 같아서요..만약 제가 깨달은게 사실이라면,제가 예상한 결과 ->이 코드를 실행시키고 입력창에 'hello'를 입력하고 엔터를 치는 순간 입력 버퍼에 'hello\n' 이 들어가게되고,첫번째 while문의 scanf() 가 실행될때 %d와 hello가 매칭되지 않으므로 scanf를 종료. scanf가 비정상적으로 종료되었으므로, 입력버퍼에 있는 'hello\n'에서 hello는 버려지고, \n으로 스트림이 옮겨짐. 두번째 while문 조건에서 c에는 \n이 저장되고, 조건문이 거짓이므로 바로 break;가 실행되어 종료됨.실제 결과 ->두번째 while문의 putchar까지 실행됨. 왜 차이가 발생한건지 궁금합니다.
-
해결됨홍정모의 따라하며 배우는 C언어
5분 35초경 질문
헤더파일 안에서 static으로 변수를 선언해줘도 되는 이유는C파일에서 그 헤더파일을 불러왔을 때그 C파일의 파일 스코프에서 static으로 변수를 선언 해주는 것과 같아서인가요?얘를 들어 #pragma oncestatic const double PI = 3.141592;static const double gravity = 9.8;이런 내용의 PIgravity.h라는 이름의 헤더 파일이 있고 main.c 파일에서#include "PIgravity.h"이렇게 해주면main.c 파일의 파일 스코프에static const double PI = 3.141592;static const double gravity = 9.8;이렇게 선언된 것과 비슷한 거라서 가능한건가요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
BFS 자료구조
BFS 문제를 PriorityQueue가 아닌 LinkedList로 풀던데 이유가 있을까요?