inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

http 요청을 보낼때마다 request, response 객체의 주소값이 변하지 않는 이유?

미해결

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

안녕하세요 강의 정말로 잘 듣고 있습니다! 정말 별거 아닌 질문일 수 있는데 궁금해서 질문 남겨봅니다. 서블릿에서 Request 객체와 Response 객체는 HTTP 요청이 들어올때마다 새로 생성한다고 했는데, 왜 요청을 줄때마다 같은 주소값이 찍히는건가요? 한번 요청 - 응답 하고나면 끝이고 다시 페이지 새로고침을 하면 새로운 HTTP 요청이 가서 새로운 response, request 객체가 생성되야 하는게 아닌지 궁금합니다!! 그냥 WAS에 구현체가 싱글톤으로 있어서 요청이 올때마다 덮어써서 보내주는 방식?? 그런건가요? 스프링, HTTP 지식이 부족해서 나온 너무 이상한 질문이었을지도 모르겠네요 ㅠㅠㅠ..

  • http
  • spring
  • MVC
초코우유 댓글 1 좋아요 4 조회수 610

image 전송과 함께 데이터는 json으로 보내고 싶은 경우

미해결

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

restAPI에서 image 와 함께 데이터를 같이 보낼때, 보내려는 데이터가 많이 복잡할 경우에는 json으로 보내는 것이 좋을 것 같아 json으로 보내는 방법을 시도해봤는데요 @RequestPart DTO dto 이런식으로 dto를 직접 넣었을때는 기본적으로 requestData가 formdata 형식이라 그런지 리졸버가 아예 처리를 하지 못하고, request를 받지 않는 것 같습니다. 그래서 아래와 같이 json의 경우 string으로 받아 테스트 해보았는데요 @PostMapping // @PostMapping(consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.MULTIPART_FORM_DATA_VALUE}) public ResponseEntity<ResponseOKDto<PostResponseDto>> post ( @RequestPart ( "data" ) String data , @RequestPart ( "file" ) MultipartFile file , @ApiIgnore HttpSession session) throws IOException { Account account = getSessionCheckedAccount(session) ; if (!file.isEmpty()){ String path = session.getServletContext().getRealPath( "/" ) + "images/" + file.getOriginalFilename() ; file.transferTo( new File(path)) ; } String o = objectMapper .readValue(data , String. class ) ; // objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true); PostRequestDto postRequestDto = objectMapper .readValue(data , PostRequestDto. class ) ; Long postId = postService .post(postRequestDto.getTitle() , postRequestDto.getDesc() , postRequestDto.getPrice() , postRequestDto.getCategoryTag() , account) ; return new ResponseEntity<>( new ResponseOKDto<>( new PostResponseDto(postId)) , HttpStatus. OK ) ; } 이와 같이 포스트맨으로 data를 보냈을 때, 스트링으로 받은 data를 오브젝트 매퍼를 이용해서 바로 DTO로 변환해보니 jackson에서 변환할수 없다는 익셉션이 떠 (Unexpected character ('\' (code 92)): was expecting double-quote to start field name) 디버깅을 해보니 object mapper를 이용해 String으로 한번 변환하고 다시 dto로 변환해야만 잘 동작 했습니다. 아래와 같이 데이터를 ""로 감싸주지 않은 경우에는 해당 에러가 출력되었고요 no String-argument constructor/factory method to deserialize from String value ('{"title":"test","desc":"test","price":10,"categoryTag":"Digital"}') at [Source: (String)""{\"title\":\"test\",\"desc\":\"test\",\"price\":10,\"categoryTag\":\"Digital\"}""; line: 1, column: 1] 제가 했던 접근 방식은 문제점이 일단 2개가 보이는데 - 스트링으로 한번 더 변환을 해줘야해 복잡하다 - 들어온 data 값에 대해 @Validated 를 적용하지 못한다. Q1. 다른 방식으로 data를 json형식으로 받아오고 dto에 대한 validtaion을 적용할 수 있는 방법이 있을까요? Q2. 필드가 아주 많을 경우에 form으로 하나씩 받는건 너무 코드가 지저분 해지는 것 같은데, 벨리데이션과 함께 적용하려면 이렇게 해야하는 걸까요? Q3. objectMapper로 두번 변환 대신에 doubleQuetoALLOW 옵션을 주었는데도 에러가 떴는데, 더블쿼터 에러를 해결할 수 있는 방법이 있을까요? 답변주시면 감사드리겠습니다. 항상 좋은 강의해주셔서 감사합니다

  • spring
  • MVC
유승현 댓글 3 좋아요 2 조회수 9141

42강 기본구조설정에서 경로

미해결

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

강사님은 폴더 구조가 webContent 폴더인데 저는 src > mian > webapp 구조입니다. 그래서 올려주신 수업자료의 소스 복붙을 할때에 Java > WebContent 에 있는 META-INF , resources, WEB-INF를 저는 webapp 안에 넣었더니 프로젝트 오른쪽 클릭 후 메이븐 업데이트 할때에 cannot nest ~ to enable the nesting exclude ~ 라며 오류가 생깁니다. 어떻게 해야할까요ㅜㅜ

  • XML
  • java
  • MVC
  • spring
soonpary3 댓글 2 좋아요 1 조회수 340

타임리프의 문법? 을 다 암기해야할까요 ?

미해결

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

MVC1편에서도 타임리프가 나왔지만 실무에서 많이 쓸 일이 없다고 하여 그냥 따라치기만 하고 넘어왔는데요.. MVC2편에서는 본격적으로 타임리프를 길게 강의를 해주셔서 많이 중요한가? 라는 생각이 듭니다. 문법 자체는 어렵지 않은데 스프링MVC패턴뿐만 아니라 스프링 자체도 이해해야할게 많아서 타임리프까지 공부하다 개념이 많이 혼잡해지지 않을까 걱정이 되는데 타임리프를 실무에서 많이 사용하는 편인가요? 많이 사용하다보면 손이 기억을 할 것 같긴한데 타임리프 부분을 어떻게 공부해야할지 고민이 됩니다 ㅜㅜ

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

객체속성 접근에 관해 질문입니다.

해결됨

[React 1부] 만들고 비교하며 학습하는 React

. map ((tabType) => ({tabType, tabLabel : TabLabel [tabType]})) 해당 코드에서 TabLabel [tabType] -> TabLabel.tabType 으로 변경하면 undefined 가 출력이 되는데 이유를 모르겠습니다. // const TabLabel = { [ TabType . KEYWORD ]: '추천 검색어' , [ TabType . HISTORY ]: '최근 검색어' } console . log ( TabLabel [ 'KEYWORD' ]); console . log ( TabLabel . KEYWORD ); 이런식으로 콘솔에 찍어보면 잘 출력이 됩니다. 스코프와 관련이 있나요?

  • react
  • MVC
준돌 댓글 1 좋아요 0 조회수 212

API로 설계 시 로그인처리

미해결

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

안녕하세요. 강의 잘 보고있습니다. 리액트와 스프링을 사용해서 SPA형식으로 웹 앱을 만들 때 로그인 처리에 대해 궁금해서 그러는데 스프링으로 API개발을 할 때도 강의에서 한거처럼 세션을 이용해서 로그인 처리를 하면 되나요??

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

로그인 / 로그아웃, 권한 관련 질문입니다.

미해결

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

선생님 안녕하세요. 선생님께 도움 정말 많이 받고있습니다. 최근 홈페이지를 구성해 보며 로그인/로그아웃, 권한 관련하여 궁금한 점이 생겼습니다. 로그인을 한 후 어떠한 권한을 가지고 있는 사용자던 간에 로그아웃이 출력되게 하고싶습니다. 검색해보니 spring security 관련 authenticationManager, jwt 등 다양한 방식이 있는걸로 파악했는데요. 혹시 실무에서 어떤 방식을 사용하여 로그인, 로그아웃, 권한 등의 처리를 하시는지가 궁금합니다. 공부 방향을 잡아보고 싶어서 질문드립니다. 감사합니다 !

  • 로그인
  • spring
  • 로그아웃
  • MVC
이홍규 댓글 1 좋아요 0 조회수 422

생성자가 만들어지는 시점..

미해결

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

다음 코드에서 생성자가 만들어지는 시점이 궁금한데요 ServletApplication으로 서버를 키면 생성자가 만들어져 저코드가 메모리에 저장되었다가 요청이 들어오면 밑 코드를 사용하여 맵핑을 찾는건가요 ? String requestURL = request.getRequestURI() ; ControllerV1 controller = controllerMap .get(requestURL) ; @WebServlet (name = "frontControllerServletV1" , urlPatterns = "/front-controller/v1/*" ) public class FrontControllerServletV1 extends HttpServlet { private Map<String , ControllerV1> controllerMap = new HashMap<>() ; public FrontControllerServletV1 () { controllerMap .put( "/front-controller/v1/members/new-form" ,new MemberFromControllerV1()) ; controllerMap .put( "/front-controller/v1/members/save" ,new MemberSaveControllerV1()) ; controllerMap .put( "/front-controller/v1/members" ,new MemberListControllerV1()) ; } @Override protected void service (HttpServletRequest request , HttpServletResponse response) throws ServletException , IOException { String requestURL = request.getRequestURI() ; ControllerV1 controller = controllerMap .get(requestURL) ; if (controller== null ){ response.setStatus(HttpServletResponse. SC_NOT_FOUND ) ; return ; } controller.process(request , response) ; } }

  • MVC
  • spring
qheogus55 댓글 3 좋아요 1 조회수 518

궁금증이 있어 질문드립니당!

미해결

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

안녕하세요 ! 강의 잘듣고있습니다 제가 궁금한건 처음 강의에서는 http://localhost:8080/hello<-.html이 붙어 있지않아도 그냥 들어가졌지만 지금강의 에서는 http://localhost:8080/basic/hello-form.html 이런식으로 .html이 붙지않으면 에러페이지가 뜹니다 혹시 이유를 알수 있을까요 ?ㅠ

  • spring
  • MVC
qheogus55 댓글 1 좋아요 1 조회수 192

비밀번호 관련 질문입니다.

해결됨

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

로그인 예제를 진행하면서 비밀번호 암호화까지 진행해보고 싶었습니다. 그래서 구글링으로 스프링 시큐리티 기능에서 PasswordEncoder 기능만 살짝 달아서 적용해봤습니다. 그런데 생각해보니 프론트에서 HTTP로 비밀번호를 전송해서 서버 측에서 암호화를 진행하는 방식은 네트워크 상에서 해킹당하면 의미가 없는 거잖아요? 이런 건 HTTPS 적용하는 방법 외엔 적당한 해결책은 없나요?

  • spring
  • MVC
jeidiiy 댓글 2 좋아요 2 조회수 414

타임리프 미사용시

미해결

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

만약 타임리프를 사용하지 않고도 BindingResult를 통해서 오류 검증사항을 프론트쪽으로 넘겨줄수 있나요? 아니면 이럴때는 다른 방법을 사용하나요?

  • MVC
  • spring
정찬호 댓글 1 좋아요 4 조회수 285

.findAny(); 입력후 에러

미해결

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

@Override public Optional<Member> findByName (String name) { store .values().stream() .filter(member -> member.getName().equals( name )) .findAny() ; // 이거 오류왜나지 } 입력후 missing return statement 에러가 납니다. findAny() 함수가 애초에 null일때 처리하는 함수라고 들었는데 return 타입이 missing이라니 뭐가 문제인지 모르겠습니다.

  • findAny
  • MVC
  • spring-boot
  • spring
  • java
김민수 댓글 1 좋아요 0 조회수 385

Regions 필드의 값이 추가되는 동작방식이 궁금합니다!

미해결

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

강의를 통해 열심히 배우고 있는 학생입니다 이번에 여쭤보고싶은게 있어 질문했습니다. 다중 체크박스에서 서울과 부산을 선택해서 상품 수정시 폼 데이터 전송 방식까지 확인 했습니다. 또한 Item 클래스에서 regions 필드는 List 타입으로 선언되어 있으며 @Data 애노테이션으로 롬복이 getter sertter 등을 자동 생성해준다고 학습했습니다. 여기서 궁금증이 생겼습니다. 컨트롤러에서 @ModelAttribute를 사용할 시 Item 타입의 객체를 생성하고 객체의 프로퍼티까지 셋팅해주며 그 방식이 폼 데이터로 넘어온 name 값으로 setter를 호출한다고 알고있는데 list 타입으로 선언한 regions의 setter호출시 자동으로 값을 넣어주는 기능을 하는건가요?? Item 객체의 regions 필드에 Seoul, Busan과 같은 값이 어떻게 추가 되었는지 궁금합니다.

  • 모델
  • spring
  • MVC
colorful8315 댓글 1 좋아요 1 조회수 315

객체로 Http 요청을 받을 때

미해결

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

객체안의 변수와 json타입으로 들어올때 변수 이름이 같아야만 사용할 수 있는건가요???

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

Controller Exception Advice domain별 패키지에서 구성

미해결

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

Exception의 경우 domain마다 다양하게 구성되는 것 같은데 한곳에서 모든 도메인의 익셉션을 핸들링하는것 보다 각 도메인 별로 Exception 패키지를 둬 해당 패키지에 도메인별 익셉션 정의 + 도메인별 advice 공통 익셉션의 경우 public? 패키지에서 관리 이런식으로 구성을 해 관리하는게 더 좋아보이는데, 영한님의 의견이 궁금합니다. + 영한님은 패키지 관리를 어떤식으로 하시는지 + 이런 구조를 효과적으로 잡는데 있어 참고할만한 서적이 있는지 답변주시면 감사드리겠습니다.

  • MVC
  • spring
유승현 댓글 1 좋아요 1 조회수 614

defaultValue 질문입니다

미해결

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

@RequestParam(required = false, defaulValue = "-1") int age 일 때 age는 int 자료형인데 defaultValue = "-1" 인데 이럴 경우 숫자 -1인지, 문자 -1 인지 구별할 방법이 없는데 그 변수의 자료형에 맞게 "@@@" 안의 값이 설정되는건가요 ?

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

요청, 응답 시 annotaion, httpEntity 사용 관련

미해결

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

요청, 응답시 관련해서 몇가지 질문 사항이 있습니다. 1. 응답코드를 주고자 할때 , 어노테이션 // 리스폰스 엔티티 둘다 사용가능한데 어떤 경우에 어떤걸 사용하는게 더 좋은지 2. 마찬가지로 헤더 값이 필요한경우 어노테이션 // 리퀘스트 엔티티 둘다 사용가능한데 어떤 경우에 어떤걸 사용하는게 더 좋은지 3. modelAttribute 사용시 dto로 parameter들을 받을때 dto니까 setter를 그냥 사용하는게 좋은지 아니면 entity처럼 setter를 사용하지 않고 필드 억세스 하도록 만들어 주는게 좋은지, 그렇다면 왜 그런지 3가지가 궁급합니다. 강의들 다시 복습하면서 요즘 이것저것 여쭤보는데 항상 친절히 답변해주셔서 감사합니다.

  • MVC
  • spring
유승현 댓글 1 좋아요 0 조회수 291

HTTP RESTAPI 경로에 식별자 관련

미해결

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

HTTP API 경로에 entity의 식별자를 넣어 사용하는게 추세라고 하셨는데 -------- @GetMapping("users/{userId}/posts/{postId}") 라고 할때, mvc2 강의에서 user의 정보는 탈취 당하고 악용될 수 잇으므로 session 을 통해 user의 info를 받아와 사용한다고 말씀하셨습니다 ------ 그러면 user에 대한 경로는 다 없애고 session을 통해 정보를 받아와서 사용하고 그 외 다른것은 저렇게 식별자를 통해서 사용해서 api 경로를 매핑하면 될까요? REST API case에서 자신이 등록한 게시글만 조회하는 api의 경우 ----- @GetMapping("/posts/{postId}") public post(HttpSession session, @PathVariable Long postId){ Long userId = (Long) session.getAttribute(LOGIN_ACCOUNT); } 이런식으로 사용하면 될까요? ------- 추가적으로 위처럼 적용한다고 하면, 자신이 등록한 post를 api 조회하는 경로와, 전체 post에서 어떤 post를 조회하는 api의 경로가 같게 되는데 여기서 또 문제가 있는 것 같습니다. 위 처럼 사용시 자신이 등록한 post들 전체 조회 api => "/posts" 전체 post 조회 api 또한 => "/posts" 어떤 방식으로 접근하는게 좋은지 답변주시면 감사드리겠습니다.

  • MVC
  • spring
유승현 댓글 1 좋아요 1 조회수 295

run실행시 테스트코드에서 컨트롤러로 돌리는 방법

미해결

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

실행시 이전강의에서 실행한 테스트코드만 실행되는데 다시 8080포트로 실행하는 방법을 모르겠습니다...

  • spring-boot
  • MVC
  • spring
  • java
김서연 댓글 2 좋아요 2 조회수 430

공부법 질문드립니다

미해결

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

안녕하세요 공부방법 질문드립니다! 저는 비전공자이고 자바만 공부했는데요 자바 배웠으면 프레임워크인 스프링을 공부해야 된다고 해서 주변 사람들에게 추천을 받아 이 강의를 듣게 되었습니다. 김영한 강사님의 커리큘럼 그대로 따라가려고 했는데요 입문 강의임에도 불구하고 생각했던것 보다 어렵고 마음과 다르게 진도 나가기가 힘드네요... 강의를 들으면서 완전 아예 이해가 전혀 안된다! 이건 아닌데요 그래도 많이 어렵습니다. 어려워서 스프링공부법 관련해서 인터넷에 계속 검색하다 보니 스프링 공부 전 jsp를 먼저 공부하는게 좋다는 말들이 있는데요 저 혼자 jsp를 따로 공부한 후에 지금 이 강의 들으면서 김영한강사님의 커리큘럼을 따라가는게 맞는건가요? jsp를 먼저 공부하고 와야 할까요? 공부법 조언해주시면 감사하겠습니다 !

  • java
  • spring-boot
  • MVC
  • spring
Eden 댓글 2 좋아요 0 조회수 1017

인기 태그

인프런 TOP Writers

주간 인기글