inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

HTTP 메시지 컨버터 사용 시 핸들러 어댑터의 반환 값

해결됨

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

안녕하세요! 강의를 들으며 결국 HandlerAdapter는 내부 로직을 통해 핸들러 종류에 관계없이 ModelAndView를 생성해 DispatcherServlet에게 전달해준다고 이해했습니다. 그렇다면, @ResponseBody 등을 사용해 HTTP 메시지 바디에 값을 직접 입력하는 경우에도 ModelAndVIew가 반환되나요? ModelAndVIew 가 내부적으로 뭔가 HTTP 메시지 바디를 그대로 들고있을 수 있는 field 같은 것이 있는건지 궁금합니다. 감사합니다!

  • MVC
  • spring
현상혁 댓글 1 좋아요 1 조회수 465

학습방법 질문입니다.

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

안녕하세요 선생님 이번에 선생님 강의를 수강하려고 막 시작한 학생입니다. 좋은 강의를 만들어 주셔서 감사합니다. 현재 기초를 수강중인데 이에앞서 질문드립니다. 강의수강 방법은 먼저 문제를 풀어보고 강의를 보며 코드 비교 방식으로 수강을 하는 방법을 추천하시는것 같은데 DFS 나 스택 큐 등 개념강의나 이론공부를 따로하지않고 바로 풀기 및 수강을 하는게 나은지요? 문제당 고민시간은 어느정도로 잡아야 괜찮을지요?.. 강의 수강 및 복습을 하고나면 백준에서 바로 삼성이나 카카오등의 기업 기출문제를 바로 풀기 시작하면될까요?

  • python
  • 코테 준비 같이 해요!
빠른 양 댓글 1 좋아요 0 조회수 205

파일 경로 한글 질문입니다.

미해결

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

경로 안에 한글이 없으면 업로드가 잘되지만 한글이 포함되어있으면 로그에서 한글 부분이 깨져 업로드가 되지 않는데 해결 방법이 있을까요?

  • MVC
  • spring
InHeeS 댓글 3 좋아요 0 조회수 1007

쓰레드 질문드립니다.

해결됨

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

안녕하세요. 강의 잘 듣고있습니다! 다름이 아니라 요청마다 쓰레드를 생성하여 다중 요청에 대응하는 부분을 보고 질문이 생겨서 남깁니다. servlet은 서블릿 컨테이너에 의해 싱글톤으로 관리되는 것으로 배웠는데, 기존 쓰레드가 요청 1을 servlet을 사용하여 처리하고 있는 와중에 새로운 요청 2가 들어와서 새로운 쓰레드가 생성되고 servlet을 사용하려고 하면 이미 요청 1이 servlet을 사용하고 있기 때문에 사용할 수 없지 않은지 질문드립니다. 감사합니다.

  • spring
  • MVC
zecongbi 댓글 1 좋아요 4 조회수 518

변수 바로 찾아가는 단축키

미해결

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

변수이름 클릭하시고 선언된 곳으로 바로 이동하시던데 단축키좀 알려주세욤

  • java
  • spring-boot
  • MVC
  • spring
이우연 댓글 1 좋아요 1 조회수 825

맥에서 pdf 내용 복사붙여넣기

미해결

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

영한님 핵심원리 강의부터 열심히 듣고있는중입니다. 맥에서 미리보기 혹은 어도비 리더로 pdf파일을 열어 사용중인데 코드 복사할 때 제대로 코드가 복사되지 않아 너무 불편합니다. 혹시 나름의 팁이 있을까요?

  • MVC
  • spring
댓글 1 좋아요 0 조회수 654

데이터 전처리

해결됨

[개정판] 딥러닝 컴퓨터 비전 완벽 가이드

데이터 전처리 시 왜 0~ 255 사이의 픽셀값을 0 ~ 1 사이 값으로 변환해주는 걸까요? 자료의 범위가 맞춰져야 해서인 거 같은데 자세한 이유가 알고 싶습니다.

  • 딥러닝
  • python
  • keras
  • 머신러닝 배워볼래요?
  • 컴퓨터-비전
  • tensorflow
공부왕찐만재 댓글 1 좋아요 0 조회수 385

규칙을 찾아서 풀었는데 괜찮을까요?

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

인강보기전에 풀어서 두눈의합을 cnt 리스트의 인덱스로 생각하고 개수를 카운팅하는 생각은 하지못했는데 위 방식도 괜찮을까요?

  • python
  • 코테 준비 같이 해요!
댓글 1 좋아요 0 조회수 305

lt 값이 바뀔 때마다 rt 를 lt+1로 초기화 하지 않아도 되는 이유

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

직관적으로 생각하면 lt 가 바뀔 때마다 rt = lt + 1 로 초기화해준 다음에 rt를 1씩 증가시키면서 확인해야할 것 같은데, 이전 lt 에 대한 rt 의 위치를 그대로 놔두고도 모든 경우를 빠짐없이 확인할 수 있다는 확신을 가질 수 있는 이유가 무엇인가요?

  • 코테 준비 같이 해요!
  • python
댓글 1 좋아요 1 조회수 380

시간 초과가 나오는 이유를 모르겠어요 ㅠㅠ

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

n, m = map(int, input().split()) a = list(map(int, input().split())) cnt = 0 for lt in range(n): rt = lt + 1 tot = 0 while tot < m and rt <= n: tot = sum(a[lt:rt]) if tot == m: cnt += 1 break rt += 1 print(cnt) 4, 5번 테스트 케이스에서 시간초과가 나옵니다 ㅜ

  • python
  • 코테 준비 같이 해요!
댓글 1 좋아요 0 조회수 245

ViewResolver 구현체를 찾는 방식

해결됨

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

안녕하세요! 논리 뷰 이름 획득 이후 적합한 ViewResolver를 찾는 방식에 대해 질문드립니다. HandlerAdapter 때와 비슷하게 ViewResolver에 메시지를 보내 특정 논리 뷰 이름에 대응하는 View를 생성할 수 있는 ViewResolver인지(?) 확인하는 방식으로 찾게 되는건가? 하고 생각했는데 이러한 방식이 맞는 것일지 궁금합니다! 감사합니다.

  • MVC
  • spring
현상혁 댓글 1 좋아요 3 조회수 487

자막 지원 문의 드립니다.

미해결

우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)

안녕하세요 혹 파이썬 초급 수업처럼 자막 지원이 될지요? 매우 도움이 되어서 문의 드립니다

  • python
  • django
inseokis 댓글 2 좋아요 0 조회수 415

메소드 오류

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

이번 수업에서 작성된 코드 끝까지 작성한 후 실행하였는데 결과가 나오지 않고 계속 로딩중인 것을 보고 뭔가 잘못됐다는 걸 알게 됐습니다. 커맨드 창에서 확인해보니 메소드 오류라고 하는데 혹시 어떤 게 잘못됐을까요?

  • python
강혜나 댓글 1 좋아요 0 조회수 224

범위 지정은 구현 안해도 되는건가요?

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

알고리즘 공부는 처음이라 테스트 케이스 1<= T <= 10, a리스트에 n개 초과로 받지않도록 하는 조건들은 구현 안해도 되는건가요?

  • python
  • 코테 준비 같이 해요!
댓글 1 좋아요 0 조회수 225

중첩 bean validation 질문입니다.

미해결

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

안녕하세요? 지난번에 Collection Bean 검증 관련해서 질문 글을 올렸었어요. 지난번 글은 아래 링크를 통해서 보실수 있습니다. https://www.inflearn.com/questions/639710 Collection Bean 검증까지도 잘 되었고 1차 중첩 검증 까지는 잘 되었었습니다. 코드를 보여드리자면... @Component @Slf4j @RequiredArgsConstructor public class CollectionValidator implements ConstraintValidator<CustomValid, Object> { private final ElementValidator validator; @Override public void initialize(CustomValid constraintAnnotation) { ConstraintValidator.super.initialize(constraintAnnotation); } @Override public boolean isValid(Object values, ConstraintValidatorContext context) { log.info("validator 로직 실행 {}", values.toString()); DataBinder dataBinder = new DataBinder(values); BindingResult bindingResult = dataBinder.getBindingResult(); //bindingResult를 생성해서 전달 validator.validate(values,bindingResult);//필드에 선언된 어노테이션에 따라 검증 if(bindingResult.hasErrors())return false; return true; } }//지난번 글에서 David님의 조언에 따라 수정되었습니다. @Data public class Item { @CustomValid private PatternDto pattern;//내부에는 phonNumber라는 필드와 @Pattern으로 전화번호 형식인지 검사합니다 public Item() { } } @PostMapping("/nested") public Object nested(@RequestBody @Validated Item item){ return item; } 여기까지는 검증이 잘 되었습니다. 즉 POST: /nested 로 아래 형식으로는 잘 검증이 되었습니다. { "pattern" : { "phoneNumber":"01045309731" } } 하지만 PatternDto안에 새로운 객체 ItemValid를 넣고 검증 어노테이션을 추가하게 되면 ItemValid에 대한 검증이 되지 않아요. 즉, 정리하자면 POST: /nested url로 Item 객체에 선언된 PatternDto pattern 필드 객체는 검증이 잘 되지만, PatternDto 클래스 안에 있는 ItemChild의 @Min(10) value에 대한 검증은 이뤄지지 않네요. @Data @NoArgsConstructor public class ItemChild { @Min(10) private Long value; } @Data @EqualsAndHashCode @NoArgsConstructor public class PatternDto { @Pattern(regexp = "^01(?:0|1|[6-9])[.-]?(\\d{3}|\\d{4})[.-]?(\\d{4})$", message ="잘못된 번호 형식입니다.") private String phoneNumber; @CustomValid private ItemChild itemChild; } 이렇게 domain을 수정 후에 다음과 같이 요청을 보내면 { "pattern" : { "phoneNumber":"01045309731", "itemChild":{ "value":10 } } } 아래 사진과 같은 에러가 나옵니다. 구글링 해도 잘 안나오는데 어떻게 해결할 수 있을까요?

  • MVC
  • spring
기혁 댓글 1 좋아요 0 조회수 497

pyautogui.prompt 사용 시 에러 발생합니다.

미해결

[신규 개정판] 이것이 진짜 크롤링이다 - 기본편

안녕하세요 :) pyautogui.prompt 사용시 아래와 갈이 에러가 발생합니다. pyautogui 설치 시, 에러는 없었습니다! 확인 부탁드립니다🙏🏻

  • python
  • 웹-크롤링
송옥수 댓글 1 좋아요 1 조회수 931

커스텀 익셉션을 만들어볼려고 합니다.

미해결

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

@Data @AllArgsConstructor public class ErrorResult { private String code; private String message; private Map<String, Object> map; } @Slf4j @RestControllerAdvice public class ExControllerAdvice { @ExceptionHandler public ResponseEntity<ErrorResult> userExHandler(UserException e, Map<String, Object> map) { log.error("[exceptionHandler] ex", e); ErrorResult errorResult = new ErrorResult("USER-EX", e.getMessage(), map); return new ResponseEntity(errorResult, HttpStatus.BAD_REQUEST); } } public class UserException extends RuntimeException { public UserException() { super(); } public UserException(String message) { super(message); } public UserException(String message, Throwable cause) { super(message, cause); } public UserException(Throwable cause) { super(cause); } protected UserException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { super(message, cause, enableSuppression, writableStackTrace); } } 이렇게 만들고 컨트롤러에서 사용을 할려고 ... Map<String, Object> returnMap = new HashMap<>(); returnMap.put("errorTitle", "titleMsg"); throw new UserException("ERROR", returnMap); ... 이런식으로 만들었는데 UserException 클래스에서 두 번째 파라미터로 받는 부분이 Throwable 타입이라 오류가 발생되는데.. 혹시 두번째 파라미터에 맵이나 리스트나 String등 원하는 값을 받아서 ResponseEneity 타입으로 보내줄려고 하면 어떻게 수정을 해야할까요? UserException을 아래처럼 수정을 했는데 public UserException(String message, Map<String, Object> map) { super(message); this.map = map; } 포스트맨으로 테스트를 해 보면 원하는 에러코드가 출력되는게 아니라 기본적인 오류코드가 출력이 되어버리네요..

  • spring
  • MVC
인프러너 댓글 1 좋아요 2 조회수 267

Bean Validator 적용 범위

미해결

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

안녕하세요. 영한님 항상 강의 잘 보고 있습니다. 현재 강의에서는 모든 예제가 Thymeleaf 기준으로 진행되고 있는데, 현재 Bean Validator 기술이 다른 뷰 템플릿이나 / 리액트에는 적용되지 않는 것인지 궁금합니다. 만약 적용되지 않는다면 리액트와 스프링 부트를 활용한 프로젝트를 진행할 때 어떠한 방향으로 예외처리를 진행해야 할지 궁금합니다!

  • MVC
  • spring
Gugbab2 댓글 1 좋아요 0 조회수 354

Collection Bean 검증 질문입니다

해결됨

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

안녕하세요! 영한님! 항상 강의 잘 보고 있습니다. 사실은 영한님 팬이기도 해요. 아무튼 제가 며칠 계속 고민하던 부분이 있어요. 제 목표는 컬렉션 타입과 상관 없이 컬렉션 안에 선언되어 있는 객체의 Bean Validation을 수행하고 싶어요. @RequestBody @Validated List<ItemSaveForm> 를 사용하게 되면 ItemSaveForm에 대한 검증이 아닌 List에 대한 검증 처리가 되더라고요. 그렇다고 List<@Validated ItemSaveForm> 는 컴파일 에러가 납니다. 물론 저 스스로 해결하고자 많은 곳을 돌아 다녀 보았고 찾아낸 방법은 Validator를 구현한 객체(CollectionValidator)를 만들어서 validate 메서드 구현 을 했습니다. 이후 ItemController에서 CollectionValidation 를 주입 받아 collectionValidator.validate(itemList, bindingResult);를 통해서 검증 처리를 하는 법을 알아냈습니다. 하지만 모든 Collection 마다 주입과 collectionValidator.validate 코드를 넣는게 비효율적이라 생각해서 어노테이션으로 만들거나 인터셉터에서 처리하고 싶었습니다. 인터셉터에서 처리하고 싶었지만 CollectionValidation의 validate 메서드는 Errors 객체를 인자로 받는데 HandlerMethodArgumentResolver의 resolveArgument인자에서 errors 객체를 뽑아낼 방법이 안보이네요. 어노테이션으로 만들고자 한 부분은 어노테이션 안에 Errors 객체를 선한 할 수가 없어서 CollectionValidator를 불러낼 수가 없었습니다. 다른 해결 책이 있을 까요? 아니면 제가 보지 못한 부분이 있었던 걸까요? 혹시 결국 스프링 입문때 잠시 다루었던 AOP를 통해서만 해결할 수 있는 걸까요? 어노테이션 만들기를 검색하다보니 AOP를 결국 다뤄야 하더라고요 ㅜㅜ 아래 제 코드와 함께 올리겠습니다. @Data public class PatternDto { //이 어노테이션에게 검증을 맡기고자 합니다. @Pattern(regexp = "^01(?:0|1|[6-9])[.-]?(\\d{3}|\\d{4})[.-]?(\\d{4})$", message ="잘못된 번호 형식입니다.") private String phoneNumber; } @RestController public class ValidationItemApiController { //private final CollectionValidator validator; @PostMapping("/list") public Object addList(@RequestBody List<PatternDto> request, BindingResult bindingResult){ //validator.validate(request, bindingResult); -> 이 부분을 어노테이션이나 인터셉터로 처리하고 싶어요. log.info("list valid"); if(bindingResult.hasErrors()){ log.error("검증 오류 발생 {}", bindingResult); return bindingResult.getAllErrors(); } log.info("성공 로직 실행"); return request; } } @Component @Slf4j public class CollectionValidator implements Validator { private SpringValidatorAdapter validator; public CollectionValidator() { this.validator = new SpringValidatorAdapter( Validation.buildDefaultValidatorFactory().getValidator() ); } @Override public boolean supports(Class<?> clazz) { return true; } @Override public void validate(Object target, Errors errors) { if(target instanceof Collection){ Collection collection = (Collection) target; for (Object o : collection) { validator.validate(o,errors); } } else validator.validate(target,errors); } } //이 검증기를 통해 List<@Valid PatternDto>와 같이 검증하고 싶었지만 //validtor.validate에게 검증을 위임하려고 할때(많은 검증 로직들이 간소화 되기 때문에) validate메서드의 두번째 인자인 errors //에 넣을 값을 찾지 못한게 문제였습니다. //ArgumentResolver를 통해 해결하고자 했지만 이때도 validate의 errors 인자를 넣을 값을 못찾았습니다. @Component @Slf4j @RequiredArgsConstructor public class CustomValidator implements ConstraintValidator<CustomValid, List<PatternDto>> { private final CollectionValidator validator; @Override public void initialize(CustomValid constraintAnnotation) { ConstraintValidator.super.initialize(constraintAnnotation); } @Override public boolean isValid(List<PatternDto> values, ConstraintValidatorContext context) { log.info("validator 로직 실행"); validator.validate(values,null); //null 대신에 어떤 값을 넣어야 할까요? 이 부분만 해결 되어도 문제가 해결 될거 같아요. return true; } }

  • MVC
  • spring
기혁 댓글 1 좋아요 0 조회수 389

10-2 강의 관련질문 (행맨 게임)

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

단어 추측이 성공하는 경우의 if문의 실행 조건이 failed 가 0일 때 인데 만약 처음 키 입력에서 실패하고 여러번의 시도 끝에 성공 할 경우 failed의 수가 0이 아닐텐데 어떻게 단어 추측 성공부분이 실행 될 수 있는 건가요?

  • python
SPD 댓글 3 좋아요 1 조회수 553

인기 태그

인프런 TOP Writers

주간 인기글