묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
@ExceptionHandler(MethodArgumentNotValidException.class) 예외 response 메서드 파라미터 관련하여 질문있습니다.
안녕하세요.유효성 체크를 위한 Validation API 사용 강의를 듣고 의문이 생겨 질문드립니다.ResponseEntityExceptionHandler 클래스에 http 예외 response 메서드가 정의되어있다고 하셨고, 이를 오버라이딩하여 사용했을 때는@Override protected ResponseEntity<Object> handleMethodArgumentNotValid(MethodArgumentNotValidException ex, HttpHeaders headers, HttpStatus status, WebRequest request) { ExceptionResponse exceptionResponse=ExceptionResponse.builder() .timestamp(new Date()) .messsage(ex.getMessage()) .details(ex.getBindingResult().toString()) .build(); return ResponseEntity.status(status).body(exceptionResponse); } 의도한대로 exceptionResponse가 http body에 들어갔습니다. 제가 여기서 ResponseEntityExceptionHandler 클래스를 상속받지 않고, @ExceptionHanlder(MethodArgumentNotValidException.class)를 통해 에러를 캐치하고자 하였는데요.@Override protected ResponseEntity<Object> handleMethodArgumentNotValid(MethodArgumentNotValidException ex, HttpHeaders headers, HttpStatus status, WebRequest request) { ExceptionResponse exceptionResponse=ExceptionResponse.builder() .timestamp(new Date()) .messsage("Validation Failed") .details(ex.getBindingResult().toString()) .build(); return ResponseEntity.status(status).body(exceptionResponse); } 이때는 저희가 작성한 exceptionResponse가 http body에 담기지 않는 것을 확인할 수 있었습니다.그래서 앞서 작성한 메서드(MethodArgumentNotValidException.class만 캐치하는 메서드)를 삭제하였을 때는 @ExceptionHandler(Exception.class) public final ResponseEntity<Object>handleAllExceptions(Exception ex, WebRequest request){ ExceptionResponse exceptionResponse=ExceptionResponse.builder() .timestamp(new Date()) .messsage(ex.getMessage()) .build(); return ResponseEntity.status(HttpStatus.NOT_FOUND) .body(exceptionResponse); } 전체 에러를 잡는 메서드가 따로 있기 때문에 커스텀한 에러 메시지가 응답되었습니다. 여기서 제가 내린 결론은 @ExceptionHandler(MethodArgumentNotValidException.class) public ResponseEntity<Object> handleMethodArgumentNotValid(MethodArgumentNotValidException ex, HttpHeaders headers, HttpStatus status, WebRequest request) { ExceptionResponse exceptionResponse=ExceptionResponse.builder() .timestamp(new Date()) .messsage("Validation Failed") .details(ex.getBindingResult().toString()) .build(); return ResponseEntity.status(status).body(exceptionResponse); } 해당 메서드가 MethodArgumentNotValidException.class 에러를 캐치하지만 로직을 수행하고 있지 못하다. 입니다. 그래서 다음과 같이 파라미터를 바꾸어줬더니@ExceptionHandler(MethodArgumentNotValidException.class) public ResponseEntity<Object> handleMethodArgumentNotValid(MethodArgumentNotValidException ex) { ExceptionResponse exceptionResponse=ExceptionResponse.builder() .timestamp(new Date()) .messsage("Validation Failed") .details(ex.getBindingResult().toString()) .build(); return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(exceptionResponse); } 에러를 캐치하고 Custom한 ResponseException을 전달받았습니다. 그럼 이러한 에러를 캐치하고 custom한 responseException을 만들 때 메서드의 파라미터는 어떻게 정해야 하는 건가요???? 또한, 제가 생각한 이 과정이 맞는지 궁금합니다.
-
미해결빅분기 실기 1Day Class(R)
교육자료가 Zip파일로 되어있다고 하는데 찾을 수가 없네요..
안녕하세요? 교수님의 강의를 듣게 되어 감사하게 생각하고 있습니다. 근데 교육자료가 zip파일로 되어 있다고 안내를 본것같은데 아무리 찾아도 찾을 수가 없네요.. 어디서 교육자료를 찾을 수 있는지 알려 주실 수 있는지요
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
새로 나올 C++강의 하고 현재 강의의 차이점이 있을까요?
새로 나올 C++강의 하고 현재 강의의 차이점이 있을까요?현재 강의를 보유하고 있어도, 새로 나올 C++강의가 도움이 될지 궁금합니다.그리고 C++부터 winAPI, Direct2D 강의 들 은 언제 볼 수 있을까요?그리고 연재 간격이 어떻게 될까요? 강의가 나오길 기다리고 있는데 궁금해서 여쭤봅니다 :)
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
쿠팡에서 검색된 상품에 대한 광고클릭으로 인해..
쿠팡 검색 결과 저장 관련해서 광고상품 제거 코드를 넣어도 상품단에 접속하는게 아닌가 싶습니다아래 수집된 URL 를 보면ads 클릭 이벤트 아이디가 생성되는걸로 보입니다그렇다는건 검색광고를 클릭했다는 말인데 문제 발생 소지 있지 않을까 걱정됩니다. https://www.coupang.com//vp/products/6445801857?itemId=13971883834&vendorItemId=81441184342&sourceType=srp_product_ads&clickEventId=98e60fc6-9d41-46a6-a201-850240aa16fe&korePlacement=15&koreSubPlacement=12&clickEventId=98e60fc6-9d41-46a6-a201-850240aa16fe&korePlacement=15&koreSubPlacement=12
-
해결됨프론트엔드 개발자를 위한, 실전 웹 성능 최적화(feat. React) - Part. 1
이미지 최적화 활용
안녕하세요.이번 이미지 사이즈 최적화 강의를 보고 질문 드립니다.강의에서 제공되는 이미지 데이터로는 getParametersForUnsplash()함수가 적용이 되는데 이미지 데이터를 다른 링크에 있는 이미지 주소 같은 거로 변경을 해서 진행을 해보면 변경이 안되는데 혹시 이런 경우에는 다른 방법을 사용해서 진행을 해야 하는 부분인가요??이미지 링크 주소https://t1.daumcdn.net/cfile/tistory/2408DD3658A648B12C
-
해결됨그림으로 쉽게 배우는 운영체제
MLFQ 알고리즘
안녕하세요. MLFQ 강의를 듣다가 궁금한 점이 생겨 질문드립니다.마지막 부분에 우선순위 별로 큐가 나뉘고 우선순위가 낮으면 탕미슬라이스가 커지는데, 이 때 우선순위는 기준이 무엇인가요?CPU 연산을 주로 하는 프로세스(P1)와 I/O작업을 주로 하는 프로세스(P2)가 있다고 할 때, P2의 경우는 CPU처리량이 많지 않아 우선순위큐가 항상 상위에 있을 것 같고 P1의 경우는 우선순위가 낮을 것 같은데 이 때 낮은 우선순위큐들은 어떻게 선택되어 실행이 되는건가요? 우선순위가 낮다는 것은 실행이 될 확률이 낮다는 건가요? 우선순위가 낮은 큐에 있는 프로세스들이 기아상태가 될 가능성도 있나요? 만약에 P1의 작업시간이 25초이고 우선순위 큐1(타임슬라이스10초)에서 실행상태가 된다고 하면 10초 이후에 CPU를 빼앗겨 우선순위 큐2(타임슬라이스20초)에 들어갔다가 다시 실행상태가 되었을 때 나머지 15초를 실행한 후 CPU를 반납하는건가요? 아니면 처음부터 다시 25초에 대해서 진행해서 CPU를 빼앗기고 우선순위큐3(타임슬라이스 30초)으로 들어가게 되나요? 마지막으로 준비상태일 때 준비큐에 있다가 실행상태가 된다고 하였는데 실행상태일 때는 어디에 있는 건가요? 준비큐 I/O큐 이런 것들은 어디에 존재하는건가요?
-
미해결냉동코더의 알기 쉬운 Modern Android Development 입문
Fragment in Fragment
acticity_main.xml 에서 FrameLayout 과 BottomNavigationView 영역을 나눴잖아요?그런데 BottomNavigationView 을 이용해서 Fragment 를 1, 2, 3 개를 연결해줬을때 어떻게 BottomNavigationView 영역을 제외하고 FrameLayout 영역에 Fragment 가 알맞게 크기를 찾아가는지 갑자기 궁금해져서 질문드려요 ㅠㅠ
-
미해결
전산응용건축제도기능사 영상
제가 지금 전산응용건축제도기능사 실기 대비 영상을 보고있는데 영상이 오래된거같아서 실기 시험에 나올지가 궁금합니다.제가 이번 11월달에 실기 시험을 앞두고 있어서 학원에서 배우는거랑내용도 틀리기도하고 학원에서는 이방식이 옛날방식이라고 요즘은 그렇게 안한다고하는데도움이 될까요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
카테고리 아이템
실무에서 카테고리와 아이템을 일대다 다대일로 풀어서 카테고리 아이템을 실제로 사용하나요? 아니면 그냥 단순하게 카테고리와 아이템 이 두테이블만 갖고 해도 되나요? 제가 한건데 혹시 이렇게 하는게 맞나요? 마땅히 물어볼 곳이 없네요
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
OneToOne 즉시 로딩에 대한 조언을 구합니다.
안녕하세요.선생님 강의를 듣고 실무에서 JPA를 활용하고 있는 학생입니다.현재 엔테티 구조가 OneToMany가 여러개가 있어서 동시에 fetch join을 2개 이상을 사용할 수 없는 상황입니다.[bag exception]그래서 지연 로딩과 batch_size를 활용하고 있습니다.여기서 문제가 발생했습니다. 지연 로딩으로 불러오는 부분에서 연관 관계의 주인이 아닌 NftProduct 엔티티에 OneToOne 관계가 있어 Membership 엔티티를 즉시 로딩[n+1 발생]합니다.이런 경우에는 어떤식으로 풀어가는게 좋은 방법일지 궁금하여 질문드립니다.구글링 했을 때는 MixFormula 엔티티의 List<MixMaterialFormula>의 결과 값을 조회하는 별도의 fetch join[MixMaterial, NftProduct, Membership] 쿼리를 호출하여 해결하는 방법도 있던데 어떤 방법이 좋은 방법일 지 궁금하여 문의드립니다.
-
미해결취미로 해킹#3(WebGoat)
현 버프스위트 버전
버프스위트 내에서 오픈브라우저 버튼을 클릭하면 크로미움으로 브라우저가 열리는데 여기서 하는 활동들만 기록됩니다.
-
미해결
spring boot nginx 로그 출력
IDE에서 콘솔에 log.info() 로 작성한 로그들이나, select문같은 쿼리들 잘 출력이 되는데 aws ubuntu nginx 로 배포한 서버에서 이런 콘솔 로그들을 찍어보고 싶어서 application.yml 파일에 설정도 하고 해봐도 /var/log/nginx/ 밑에 accesslog에는 제가 보고싶은 로그들이 안 찍히더라고요. /var/www/admin/log/ 로그에도 마찬가지고요 sysout이나 log들을 실서버에서 출력해서 보는 방법은 없을까요?spring: profiles: real datasource: hikari: driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy jdbc-url: jdbc:log4jdbc:sqlserver://localhost:1433;databasename=test username: sa password: ***** servlet: multipart: max-file-size: 200MB max-request-size: 200MB thymeleaf: cache: false logging: dir: /var/www/admin/log/ level: org.springframework: ERROR org.springframework.web: ERROR org.hibernate.sql: OFF mybatis: mapper-locations: classpath:mybatis/mapper/**/*.xml pagehelper: helper-dialect: sqlserver reasonable: true supportMethodsArguments: true server: servlet: session: timeout: 4320000m cookie: name: admin_JSESSIONID max-age: 432000m port: 8080 tomcat: basedir: ./ accesslog: enabled: true directory: logs suffix: .log prefix: access_log file-date-format: .yyyy-MM-dd pattern: common
-
미해결취미로 해킹#3(WebGoat)
프록시 설정 이후 웹에 접속할 수 없습니다
(사진)
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의자료 요청 드립니다. !!
안녕하세요강의자료를 받아볼 수 있을까요?wnstjd78963@gmail.com입니다.감사합니다
-
해결됨그림으로 쉽게 배우는 운영체제
FIFO 알고리즘 / RR 알고리즘
안녕하세요컨텍스트 스위칭 개념에 대해 궁금한 것이 생겨 질문드립니다.RR 알고리즘 설명해주실 때, 평균대기시간이 비슷한 경우 FIFO 알고리즘이 RR 알고리즘보다 효율적인데 RR 알고리즘의 경우 컨텍스트 스위칭이 일어나서 컨텍스트 스위칭 시간이 추가되기 때문이라고 하셨잖아요. 그럼 FIFO알고리즘처럼 하나의 프로세스가 다 끝나고 다음 프로세스로 넘어가는 경우는 컨텍스트 스위칭이 아닌건가요?질문)프로세스 하나가 종료된 후 다음 프로세스로 CPU를 할당하는 것은 컨텍스트 스위칭이 아닌건가요? 만약 그렇다면 비선점형 스케줄링의 경우는 선점형에 비해 상대적으로 컨텍스트 스위칭으로 인한 오버헤드 발생을 크게 고려하지 않아도 되나요? (추가)제가 공부한 것을 찾아보니 컨텍스트 스위칭이 일어나는 경우 중 CPU할당시간이 다 된 경우도 있다고 했는데 왜 RR 알고리즘만 컨텍스트 스위칭 시간이 추가되기 때문에 덜 효율적이라고 한 건지 잘 모르겠습니다. 그럼 비선점이여도 프로세스들의 시간이 짧다면 컨텍스트스위칭이 많이 자주 발생하고 오버헤드가 크게 발생할 가능성이 있는 것 같은데 제생각이 맞을까요? MLFQ 강의 예시에서 타임슬라이스가 1초인 경우에 프로세스1과 프로세스2(입출력 요청 후 대기중)의 컨텍스트 스위칭 과정이 어떻게 일어나는지 자세히 설명해주실 수 있나요?제 생각에는 프로세스1이 할당시간이 다 되어 큐에 들어갔고 CPU는 PCB1에 프로세스1의 정보를 저장한 후 큐에 있는 다른 프로세스를 가져와서 실행하려고 했는데 큐 안에는 프로세스1만 있기 때문에 다시 큐에서 프로세스1을 가져와서 PCB1의 정보를 리로드하고 이전 진행시점에 이어서 프로세스를 진행하는 것 같은데 맞을까요?
-
미해결Flutter 중급 1편 - 클린 아키텍처
페이지네이션 기능 추가에 관련하여 질문을 드립니다.
안녕하세요. 선생님의 강의에서 많은 것을 배울 수 있어서 너무나 좋은 시간이었습니다.강의를 한 번 듣고, 제 코드에 적용을 시키던 중 해결이 잘 되지 않는 부분에 대하여 궁금함이 생겨서 질문을 드립니다.초보라 질문이 깔끔하지 못한 점을 미리 양해를 부탁 드립니다. 제가 기존 프로젝트에서 참고하던 페이지네이션 기능은 다음과 같습니다.https://github.com/rutvik110/Flutter-Infinite-Pagination/blob/master/lib/src/pagination_notifier.dart : 강의에서의 viewModel 역할https://github.com/rutvik110/Flutter-Infinite-Pagination/blob/master/lib/src/pagination_state/pagination_state.dart : 강의에서의 state 역할 provider -> riverpod 으로 대체된 점, changeNotifier -> stateNotifier 로 대체된 점을 제외하면 기능적으로 유사해 보입니다. 강의를 수강한 후 제 코드를 리팩토링하면서 가장 난관에 부딪쳤던 부분은 다음과 같습니다. 1) 강의의 state는 dataclass로 작성되어 있다.state 파일이 모델의 List 정보를 담고 있습니다. .when 또는 .maybeWhen 분기를 사용할 수 없었습니다.isLoading 뿐만 아니라 페이지네이션의 loading, error 등 분기 처리할 상태 데이터가 점점 늘어남에 따라 복잡해져서photoState 안에 LoadingState 라는 sealed class를 생성하여 넣었습니다.changeNotifier가 리스트를 소유하는 것과, state가 리스트를 소유하는 것 중 어느 것이 바람직한지 제 코드를 보면서 의아해져서 질문을 드립니다. 2) 다른 screen을 작성할 때의 중복 코드 문제식물의 과, 속, 종에 따른 GridView를 작성하는 스크린에도, 위의 페이지네이션 기능이 필요합니다. 위의 페이지네이션 예제와 같이 제네릭을 이용해 타입을 전달하면 같은 코드를 중복하여 작성하지 않아도 될 것 같은데, 뷰 모델을 계속 고쳐가면서 방법을 찾아보고 있지만 마땅한 수가 떠오르지 않습니다. 선생님의 클린 아키텍처 강의의 예제는 디렉토리 구조가 직관적이고, 위 예제 코드는 그려야 할 페이지의 수와, 상황이 늘어남에도 분기 처리가 직관적이었습니다. 둘의 장점만을 모아서 코드를 작성하고 싶습니다만, 제 실력이 부족하여 코드 작성에 어려움이 있었습니다. 제 코드에서 필요 부분을 발췌한 리포지토리입니다.https://github.com/feud72/flutter-pagination-code-snippet/ 바쁘신 것을 알지만 답을 얻을 곳이 없어서 염치 불구하고 질문 글을 올립니다. 감사합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
HTML 질문드립니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. 강의 내용을 보면 영한님께서 직접 html을 작성하지는 않지만, html 내용이 종종 나오는데 그럼 스프링 강의를 학습하기전에 html도 먼저 학습을 한후에 진행해야할까요??
-
미해결타입스크립트 입문 - 기초부터 실전까지
안녕하세요! interface 관련하여 질의드립니다!
강의중에 궁금한게있어서요!interface가아닌 class를 선언하면안될까요?!혹 차이가있다면 무엇이있을까요! 예를들어 )아래와 같이 라고했을때 큰 차이점이 느껴지지 않아서 질의드립니다!!interface User { age: number; name: string; } class Student { age: number; name: string; constructor(age: number, name: string){ this.age = age; this.name = name; } } var seho: User = { age: 33, name: '세호' }; var goru = new Student(20, "kodae");
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
light GBM 파라미터 질문
안녕하세요. 강의 잘 듣고 있습니다 :) 분류 실습 2: 신용카드 사기 예측 실습 - 02, 13:32에서 boost_from_average 에 대해서 설명해 주시는데요. 해당 파라미터는 무엇을 위한 파라미터 인가요?그리고 라벨값이 불균형한 경우 해당 파라미터를 False 로 지정하면 왜 재현율, auc 성과에 유리한 것인가요? 답변 부탁드립니다. 감사합니다 :)
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
SSR 환경에서의 질문 있습니다.
안녕하세요 질문이 있습니다. 스프링과 thymeleaf를 이용해서 SSR 방식으로 프로젝트를 만들 때 세션이 아닌 JWT 토큰 방식으로 로그인 처리를 할 수 있는지 궁금합니다. 보통 검색을 해보거나 강의를 보면 대부분 CSR 환경에서 JWT 토큰 방식으로 로그인을 처리하고 SSR 방식에서는 세션으로 로그인 처리를 하던데 JWT 토큰 방식의 로그인 처리에 대해 정보를 얻기가 힘들어서 여쭤봅니다 ㅠ스프링+thymeleaf의 SSR 방식에서 JWT 토큰 방식의 로그인이 가능하다면 혹시 참조할 수 있는 링크나 강의가 있을까요??세션과 JWT 토큰 둘 중 어느 방식이 SSR 환경에 적합한지 여쭤보고 싶습니다.