inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

설정 오류

해결됨

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

settings에서 intelliJ로 바꾼후 서버가 실행이 안됩니다 로그가 3개밖에 안떠요 gradle로 바꾸면 무한로딩 걸리면서 서버 종료누르면 이런 에러가 나와요

  • spring
  • mvc
jung 댓글 1 좋아요 2 조회수 731

파일 업로드 질문(multipart/form-data)

미해결

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

@PostMapping(value = "/upload") public ResponseEntity<String> saveFile(@RequestPart List<MultipartFile> files) { log.info("files={}", files); if (files==null || files.isEmpty()) { // 파일이 없는 경우 check JSONObject response = new JSONObject(); response.put("message", "Fail! Re-upload the file"); return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(response.toString()); } //정상 로직 } 안녕하세요. 영한 님 강의 보고 따라서 한 번 해보고 혼자 해보다가 궁금한 게 생겨 질문드립니다. 여러 개의 파일을 업로드 할 수 있게 List 타입으로 받았고 만약 업로드한 파일이 없다면 if 문을 탈 수 있게 예외 처리를 했습니다. 현재 포스트맨으로 -headers의 content-type을 Multipart/form-data -body의 key에는 "files"를 value에는 파일을 선택하지 않고 테스트하고 있습니다. 그럼 당연히 files는 비었을 것이라고 전제를 두었지만, 디버깅해 보니 if 문이 false를 반환하고 files[0]=""(빈 문자열)을 뱉어내고 정상 로직을 수행하더군요. 여기서 질문이 있습니다. 1. value에 파일을 선택하지 않았다고 해서 빈 파일이 생기는 것이 아닌 포스트맨에서 자체 동작으로 빈 파일 = 빈 문자열로 대체해서 넣어주는 지 (제가 포스트맨 동작 방식을 모르고 있는 걸까요?) 2. 빈 파일을 보내면 Multipart/form-data의 요청 특성으로 빈 문자열("")이 전송되는 걸까요? 이게 맞는다면 멀티파트 형식을 유지하기 위해 빈 파일이나 빈 파트가 생성되어 전송되는 것일까요? 3. list 타입 대신 하나씩 file을 받아오는 게 좋을까요? 강의를 볼 땐 이해가 되면서도, 뭐가 맞는지 헤매고 있습니다.. 코드면에서 문제였다면, 키워드라도 알려주시면 찾아보겠습니다. 긴 글 읽어주셔서 감사합니다.

  • spring
  • mvc
DUB 댓글 1 좋아요 0 조회수 1156

url 패스 관련 질문

미해결

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

다른 질문을 봤을 때 url : localhost:8080/abc/def?param1=data1&param2=data2 위와 같이 경로를 지정하고 싶으면 변수를 추가해야 한다고 봤습니다. @GetMapping("link") public String link(Model model) { model.addAttribute("param1" , "data1") ; model.addAttribute("param2" , "data2") ; model.addAttribute("url1" , "abc") ; model.addAttribute("url2" , "def") ; return "basic/link" ; } 위에서와 같이 모델에 값을 새로 추가해주고 <li><a th:href="@{/hello/{url1}/{url2}(url1=${url1}, url2=${url2}, param1=${param1}, param2=${param2})}"> 위와 같이 html에서 값을 넣는 방식이 결과적으론 원하는 값이 출력되긴 했지만 Q.1) () 안에서 변수와 같은 값이 있다면 해당 변수에 대 값을 대입하는 것으로 사용되는 것이고, 없다면 parameter값으로 사용되는 것인지 궁금합니다. Q.2 ) 이렇게 사용하는 것이 맞는지와 실제로도 실무에서 이렇게 사용하는지 빈도가 높은지 궁금합니다.

  • spring
  • mvc
b0i4s 댓글 2 좋아요 1 조회수 538

한글, 한국 기준으로 나오는 이유

해결됨

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

유틸리티 객체와 날짜 강의에서 temporals를 사용해서 날짜와 시간들을 찍어보았는데요. 신기하게도 한국 기준으로 한글로 나오더라구요. 어떻게해서 이렇게 나오는건가요? 만약 다른 나라 기준으로 찍고 싶다면 어떻게 해야하나요?

  • spring
  • mvc
김주영 댓글 1 좋아요 0 조회수 379

MVC 2편에 대해 질문있습니다

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] [질문 내용] MVC 2편에 쿠키와 세션에 관해 다루는 부분이 있더라고요. 질문 1)통상적으로 로그인할때 이 방법을 사용한다고 보면 되나요? 질문 2)요즘 보니까 OAuth 인가 그것을 로그인할때 사용한다 그러던데 강의 구매하고 들으면 이해하는데 도움이 될까요?? 질문 3)그리고 여러 open api 들이 많지 않습니까? 실제 개발할때 open api를 사용하는 주체가 프론트 쪽인가요, 아니면 벡엔드 쪽에서 json 형식으로 데이터를 받아서 가공해서 프론트한테 넘겨주는 방식인가요?

  • spring
  • mvc
dionisos198 댓글 1 좋아요 0 조회수 690

Java 설정 방식에서

미해결

윤재성의 만들면서 배우는 Spring MVC 5

안녕하세요. JAVA 설정 방식에서 아래와 같이 의존성을 주가하거나 <dependency> <groupId> com.oracle .database.jdbc</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.4</version> </dependency> WEB-INF/lib/폴더에 ojdbc6.jkar 파일을 직접 넣어서 build path 에서 설정하고 해도 모두 아래와 같은 오류가 발생합니다. SEVERE: 경로 [/MyBatisJava]의 컨텍스트 내의 서블릿 [dispatcher]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error updating database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Cannot load JDBC driver class '${db.classname} xml 방식의 설정에서는 똑같이 설정했는대도 (설정과 소스 파일 모두 Java 설정 방식에서와 똑같이 작성했습니다.) 잘 됩니다. 어떻게 하면 JAVA 설정 방식에서도 정상적으로 DB 연결이 이루어질 수 있는지요?

  • java
  • spring
  • mvc
  • xml
박종성 댓글 1 좋아요 0 조회수 390

default method 구현부가 어디 있는지 궁금합니다.

미해결

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

자바 8 기본 문법에 관한 거라서 질문하기 꺼려지긴 합니다만, 달리 질문할 데가 없어서 질문드립니다. 강의에서 Filter, HandleInterceptor 인터페이스를 구현함으로 서블릿 필터와 스프링 인터셉터 기능을 사용할 수 있음을 배웠는데요. 각 인터페이스의 default method들은 이미 구현이 되어 있기 때문에 따로 구현을 해주지 않아도 되는 건 이미 알고 있었습니다. 근데, 제가 알기로는 인터페이스의 default 키워드를 붙이려면 구현부가 꼭 있어야 하는 걸로 아는데, 해당 인터페이스들의 소스 코드를 까보면 구현부는 따로 없는 것 같습니다. 구현부는 대체 어디 있는 걸까요?

  • spring
  • mvc
고리오영감 댓글 1 좋아요 0 조회수 409

상품종류와 지역 방식 차이

미해결

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

상품 종류는 이넘을, 지역은 컨트롤러에서 생성(?)을, 이렇게 다른 방식을 적용하는 이유가 있나요? 혹 체크박스와 라디오의 차이인건지..

  • spring
  • mvc
lyg 댓글 2 좋아요 0 조회수 322

파일 다운로드 후 Redirect

미해결

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

예제로 구현하는 파일 업로드, 다운로드 에서 파일 다운로드 할때 다음과 같이 ReponseEntity를 return해서 진행했었습니다. return ResponseEntity.ok().header(HttpHeaders.CONTENT_DISPOSITION, contentDisposition).body(resource); 그런데 다운로드 후 다른 uri로 redirect를 하려면 어떻게 해야하나요? 구글링 을 해보니 다운로드 후 redirect는 할 수 없다는데 만약 redirect되게 하고 싶다면 어떻게 구현해야할까요?

  • spring
  • mvc
김주영 댓글 1 좋아요 0 조회수 926

JPA 특징 중 자동 업데이트 관련

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

주문 서비스 개발 부분 강의를 듣다가 궁금한 점이 있어 질문드립니다. 주문 취소(OrderService.cancelOrder) 부분에서order.cancel() 만 작성하면 JPA 특징으로 인해, 데이터 업데이트 관련 쿼리 로직 없이 자동으로 업데이트 된다고 하셨는데요. 주문 생성(OrderService.order)의 EntityManager 가 사용된 orderRepository.save (order);  와 혼동이 와서 질문 남깁니다. 주문 취소 order.cancel() 메서드를 타면서 엔티티의 값(status, count 등) 변경 내역이 자동으로 업데이트 되는 것이라고 하면, 주문 생성도 Order.createOrder(member, delivery, orderItem); 를 타면서 엔티티의 값들을 설정하기 때문에 orderRepository.save (order); 를 사용하지 않아도 되는게 아닌가 라는 생각이 듭니다. 제가 JPA 를 잘 몰라서 혼란이 오는 것 같은데.. 쿼리는 직접 작성하지 않아도 업데이트/저장/삭제 등 DB 조작이 일어나려면 EntityManager 를 통해야 된다고 생각하고 있었습니다. 주문 취소는 EntityManager 없이 업데이트 되고, 주문 생성은 EntityManager의 persist() 를 사용해서 저장하는 것 이 2가지 차이점에 대해서 설명 부탁드립니다! 감사합니다 :)

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
빈빈 댓글 1 좋아요 2 조회수 510

서블릿의 개념을 확실하게 잡고 싶습니다.

미해결

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

제가 서블릿을 들으면서 요약했던 개념으로는 클라이언트는 WAS에게 HTTP 요청을 보냄. WAS는 해당 HTTP 요청 메시지를 뜯어서 request 객체랑 response 객체를 생성.(response는 껍데기만 있고, request 안에는 요청 메시지의 바디 내용이 들어있다) request, response 객체를 해당 서블릿에게 넘긴다. 서블릿은 프로세스 처리를 하고, 응답 결과를 response 객체에 넣어서 was에게 돌려준다. was는 response를 클라이언트에게 돌려준다. 이렇게 정리를 했습니다. 이게 제대로 학습한 개념이 맞는지 궁금합니다. 또 pdf 내용에서는 HttpServletRequest 역할 HTTP 요청 메시지를 개발자가 직접 파싱해서 사용해도 되지만, 매우 불편할 것이다. 서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 개발자 대신에 HTTP 요청 메시지를 파싱한다. 그리고 그 결과를 HttpServletRequest 객체에 담아서 제공한다. 라고 적혀있는데 HTTP 요청 메시지를 파싱하는 건 was 아닌가요? was가 파싱해서 request객체에 담아서 서블릿에 전달하는 것으로 알고 있었는데 pdf는 서블릿이 http 메시지를 파싱해서 request에 담는다고 나와있어서 질문드립니다.

  • spring
  • mvc
  • servlet
  • 서블릿
songsoy95 댓글 1 좋아요 0 조회수 560

getOriginalFilename null check

미해결

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

public String convertedFile(@RequestParam MultipartFile attachFile) throws IOException { if (attachFile.isEmpty()) { return null; } String originalFilename = attachFile.getOriginalFilename(); String ext = extractExt(originalFilename); } 위처럼 MultipartFile를 isEmpty로 체크하고 getOriginalFilename로 originalFilename을 가져온다음 originalFilename을 extractExt 함수의 argument로 넣어려고하는데 null을 check하라고 나옵니다. 정확히는 아래처럼 null이 나올 수 있다고 뜨네요. isEmpty로 위에서 한 번 체크하면 안뜨는 걸로 알고 있는데 뜨는 이유가 뭘까요

  • spring
  • mvc
김주영 댓글 2 좋아요 0 조회수 1152

교재 내 instanceof 없이 캐스팅

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. @Override public void validate(Object target, Errors errors) { Item item = (Item) target; ValidationUtils.rejectIfEmptyOrWhitespace(errors, "itemName", "required") ... 여기서 Item item = (Item) target; 하는데 target instanceof Item 이 없는 이유를 알 수 있을까요?

  • spring
  • mvc
김승현 댓글 2 좋아요 0 조회수 336

스프링 빈이란 것은

해결됨

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

스프링빈 파트 부분을 듣다 보니 처음에는 진짜 뭔소린지 하나도 모르겠고 스프링스프릴ㅇㅇ스프링빈 컨테이너 막 혼동이 와서 정신줄 잡고 듣고있는데 그러면 결국 스프링 빈은 객체 인가요?

  • java
  • spring
  • mvc
  • spring-boot
rrr6964 댓글 1 좋아요 0 조회수 948

AddPathPattern 경로 세팅에서..?

미해결

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

======================================== [질문 내용] 안녕하세요.인터셉터 conifg 파일에서 addPathPattern()함수내 인터셉터 대상이되는 경로를 세팅할때 질문있습니다. ^^; 예를들어 /*/ abc.do 와 /**/ abc.do 의 경로세팅을 한다고했을때 위 두예시에서 차이점이 있을까요? 즉, 경로 중간에 *이 한개있을때와 2개있을때 차이점이 궁금합니다. 찾아봐도 잘 안나오는것 같아서 질문드립니다. (_ _)

  • spring
  • mvc
kulkulzaza 댓글 1 좋아요 0 조회수 385

테스트 코드 작성에 대한 질문

해결됨

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

테스트 코드를 작성할 때 테스트하려는 메서드를 제외한 나머지 메서드들은 전부 정상적으로 동작한다고 가정하고 해야하는 건가요?? 테스트코드를 작성하다보니 헷갈려서 질문 드립니다.. 예를 들면 findById() 메서드를 테스트할때 save() 메서드는 정상 동작한다고 가정하고 하는건가요?

  • spring
  • mvc
  • 테스트
jimmy0613 댓글 2 좋아요 0 조회수 408

클래스 안의 static 메서드 질문입니다.

해결됨

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

강의에 대한 질문이라기보다 자바 문법에 대한 질문입니다... 프론트 컨트롤러에서 service 메서드 안에서 viewResolver와 createParamMap 메서드를 호출하려면 두 메서드가 static이 되어야 service 메서드에서 호출할 수 있는 것 아닌가요? Ctrl + Alt + M 으로 자동으로 메서드로 변환해도 static이 붙는데 강의 영상에서는 static이 안 붙어도 동작하는 것 같아 질문 드립니다. private static MyView viewResolver(String viewName) { return new MyView("/WEB-INF/views/" + viewName + ".jsp"); } private static Map<String, String> createParamMap(HttpServletRequest request) { Map<String, String> paramMap = new HashMap<>(); request.getParameterNames().asIterator() .forEachRemaining(paramName -> paramMap.put(paramName, request.getParameter(paramName))); return paramMap; } MyView 클래스도 마찬가지입니다. private static void modelToRequestAttribute(Map<String, Object> model, HttpServletRequest request) { model.forEach((key, value) -> request.setAttribute(key, value)); }

  • spring
  • mvc
피로한 기린 댓글 1 좋아요 0 조회수 565

프론트 컨트롤러 코드 질문입니다.

미해결

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

안녕하세요. 프론트 컨트롤러는 서블릿 객체라 싱글톤으로 관리된다고 이해했습니다. controllerMap에 URL과 다른 컨트롤러 객체를 넣을 때 기본 생성자를 사용하는 이유가 있나요? 싱글톤이면 생성자를 사용하지 않고 바로 controllerMap.put해서 넣어도 똑같지 않나요? 어떤 목적으로 생성자에 넣는 것인지요?? @WebServlet(name = "frontControllerServletV1", urlPatterns = "/front-controller/v1/*") public class FrontControllerServletV1 extends HttpServlet { // key는 url private Map<String, ControllerV1> controllerMap = new HashMap<>(); public FrontControllerServletV1() { controllerMap.put("/front-controller/v1/members/new-form", new MemberFormControllerV1()); controllerMap.put("/front-controller/v1/members/save", new MemberSaveControllerV1()); controllerMap.put("/front-controller/v1/members", new MemberListControllerV1()); } service 메서드를 상속받을 때 protected와 public 2개가 있었습니다. protected만 써야 하는 이유는 무엇인가요?? @Override protected void service( @Override public void service( 항상 잘 듣고 있습니다. 감사합니다.

  • spring
  • mvc
피로한 기린 댓글 1 좋아요 0 조회수 447

java -jar hello-spring-0.0.1-SNAPSHOT.jar 설치완료 후

미해결

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

안녕하세요 맥 m1 쓰고있는데요 터미널에서 java -jar hello-spring-0.0.1-SNAPSHOT.jar 설치 마치고 어떻게 저장하나요?

  • java
  • spring
  • mvc
  • spring-boot
Nephele 댓글 1 좋아요 0 조회수 510

완강이 된건가요?

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

안녕하세요, 강사님 지금 강의실에 보면 섹션8에 작업형3, 가설검정 콘텐츠 제작중입니다 라고 뜨고 섹션 10.에 5회 기출유형(작업형1) 강의가 업로드 되지 않았습니다. 계속 강의가 업데이트 중 인가요? 감사합니다.

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
댓글 1 좋아요 0 조회수 320

인기 태그

인프런 TOP Writers

주간 인기글