월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨스프링 기반 REST API 개발
<참고> SpringBoot 2.2.2에서 로컬서버 실행안되는 현상
hateos 관련해서 deprecated 되며 수정된 부분도 있고, 수업에 있는 프로젝트 로컬서버가 뜨지 않는 현상도 있습니다. Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set 오류가 발생을 하네요. application.properties 에 spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect 설정을 추가해 주면 로컬서버가 정상적으로 실행됩니다.
- 미해결스프링 기반 REST API 개발
<참고> hateoas가 1.0.2 가 되면서 바뀐부분이 있네요..
ResourceSupport is now RepresentationModel Resource is now EntityModel Resources is now CollectionModel PagedResources is now PagedModel 위와같이 변경되었고, 12분쯤에 나오는 Resource<Event> 초기화되는 부분이 없어진거 같습니다. 혹시 뒤늦게 보시는 분들 hateos 버전을 맞추던가, 아래 사이트 참고하세요. https://docs.spring.io/spring-hateoas/docs/1.0.1.RELEASE/reference/html/
- 미해결스프링 기반 REST API 개발
평범한 CRUD이외의 작업을 위한 API는 어떻게 Restful하게 만들 수 있을까요?
현업에서 REST API를 만들고 있는 개발자입니다. 짧은 지식으로는 Restful한 API는 URI에는 자원을 가리키는 "명사"만 들어가야 하고, 해당 자원에 대한 작업은 HTTP Method로 표현될 수 있는 "동사"를 사용해야 한다고 하는데요. 실제로 현업에서 만드는 API는 단순한 CRUD의 범주에 들어가기 힘든 경우가 있어서요. 강좌에서 사용한 Events를 예로 설명하자면, 이벤트의 STATUS를 바꿀때 특정 권한자의 승인등을 수행하는 API의 경우엔 어떤식으로 디자인하는게 Restful한것인지 알고싶습니다. 기존에는 /api/events/{id}/approve 등으로 했었는데, 이러면 Restful한 것 같지가 않아서요.
- 미해결스프링 기반 REST API 개발
질문이 있습니다.
Resouce에 custom Jsonserialize를 만들어 사용하면 꼭 content:{} object안에 내용이 담기는데, 모델마다 serializer를 만들어 주지 않으면 일관성이 떨어져서 content 안에 있는 필드를 꺼내고 싶습니다. 검색을 아무리해도 잘 나오지 않아 질문드립니다.
- 미해결스프링 기반 REST API 개발
해결방법을 알려주세요..
1. 자바 jdk 관련 에러 2. 테스트가 1개가 깨짐 3. 마지막에 추가해주신 true 넣어주면 된다고 하신부분에 true를 넣어 주어도 false 넣어준부분으로 인해서 에러가 발생합니다.. 해결 방법을 알려주실수 있을까요?
- 해결됨스프링 기반 REST API 개발
JPA관련 질문 같기도 하지만..
안녕하세요. 동영상강의 잘 보고 직접 프로젝트를 생성하여 테스트 하던중에 의아한 케이스를 발견하여 문의드려요. eventStatus와 같이 enum field에 default 값을 지정하였어요. 앱을 구동하여 Controller를 통한 로직대로 실행하면 생각대로 동작을 하는데 테스트할 때 null값이 들어가네요. 혹시나해서 강의에서 어떤가 확인해봤는데 eventStatus에도 null이 들어가 있네요. 테스트에서 문제가 생기니 제대로 알고 넘어가고 싶은 마음도 있고, Document에 type이 Null로 표시되어 마음이 많이 불편합니다.ㅋㅋ
- 미해결스프링 기반 REST API 개발
음...rest docs responseFields에서 _links정 무시하고 싶으면
relaxed를 쓰는건 ... 무조건 지양하고 싶어서 마음엔 들지 않지만. 저는.. 일단 이렇게 했습니다. fieldWithPath("_links.*").ignored(),fieldWithPath("_links.self.*").ignored(),fieldWithPath("_links.events.*").ignored(),fieldWithPath("_links.update.*").ignored()
- 미해결스프링 기반 REST API 개발
헤이티오스자체에 http method타입이 뭔지 같이 응답하기 힘들다고 하셨는데 혹시
6분쯤에 헤이티오스자체에 http method타입이 뭔지 같이 응답하기 힘들다고 하셨는데 혹시 .withType 메소드를 사용하면 되지 않을까요???
- 미해결스프링 기반 REST API 개발
Pageable 어노테이션 없이 어떻게 바인딩이 되는지 궁금합니다.
강사님 항상 강의 잘 듣고있습니다. Pageable은 @RequestBody 혹은 @PathVariable없이 어떻게 바인딩이 되나요? Post방식이 아니여서 @RequestBody는 안될것 같긴하고, 저는 종종 Get방식은 @Pathvariable 어노테이션 써서 사용하곤 했는데요. 해당 부분은 어떠한 어노테이션도 없이 바인딩 되는게 궁금합니다.
- 미해결스프링 기반 REST API 개발
var 타입 질문드립니다.
항상 강의잘듣고 있습니다. 5:20초에 var 변수타입이 자바스크립트처럼 java에서도 지원을 해주는건가요..? 자바에서는 생소해서 질문드립니다. 감사합니다.
- 미해결스프링 기반 REST API 개발
안녕하세요~ 자바8버전으로 진행하면 안될까요?
안녕하세요~ 기선님의 강의를 들으면서 실무에서 많은 도움이 되고 있습니다. 이번에 저희도 Rest API로 개발하게 되어 강의를 듣고있는데, 자바8로 프로젝트를 진행할 것 같아서... 비슷한 환경으로 진행하는게 좋을것 같아서 이번강의도 자바8 버전으로 그냥 진행하려고 합니다. 자바 8버전으로 진행해도 괜찮을까요? 혹시 11버전으로 안했을 경우 지원안되는 기능들이 많이 있는걸까요?
- 미해결스프링 기반 REST API 개발
Errors와 BindingResult
Errors 와 BindingResult 중 무엇을 쓰는게 더 좋을까요?
- 미해결스프링 기반 REST API 개발
NullPointException 부근 질문있습니다.
test의 경우 EventRepository에 save를 하고 난 값이 리턴되지 않기 때문에 Mockito를 이용해서 객체를 그대로 리턴해주는 식으로 이해했습니다. 그런데 이 부분에서 똑같이 NPE가 발생하길래 왜 그런가 봤더니 Event 엔티티의 @EqualsAndHashCode 사용 유무 문제였습니다. 여기서 의문이 드는게 @EqualsAndHashCode가 Mockito의 리턴이랑 무슨 관계인지 이해가 안갑니다. 단순히 Test에서 만든 Event 객체를 다시 리턴시키는데 왜 @EqualsAndHashCode가 영향을 미치는 건가요??
- 미해결스프링 기반 REST API 개발
NoSerializer 에러가 뜹니다.
아래와 같이 프로젝트에 적용 중입니다. Controller, Serializer 둘 다 sprigframework.validation의 Errors를 임포트하고 있습니다. 어떻게 해결해야할까요? ErrorsSerializer package com.kakaogame.queen.boysinthesharehouse.global.common;import com.fasterxml.jackson.core.JsonGenerator;import com.fasterxml.jackson.databind.JsonSerializer;import com.fasterxml.jackson.databind.SerializerProvider;import org.springframework.boot.jackson.JsonComponent;import org.springframework.validation.Errors;import java.io.IOException;@JsonComponentpublic class ErrorsSerializer extends JsonSerializer<Errors> { @Override public void serialize(Errors errors, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { jsonGenerator.writeStartArray(); errors.getFieldErrors().forEach(e -> { try { jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("field", e.getField()); jsonGenerator.writeStringField("objectName", e.getObjectName()); jsonGenerator.writeStringField("code", e.getCode()); jsonGenerator.writeStringField("defaultMessage", e.getDefaultMessage()); Object rejectedValue = e.getRejectedValue(); if (rejectedValue != null) { jsonGenerator.writeStringField("rejectedValue", rejectedValue.toString()); } jsonGenerator.writeEndObject(); } catch (IOException e1) { e1.printStackTrace(); } }); errors.getGlobalErrors().forEach(e -> { try { jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("objectName", e.getObjectName()); jsonGenerator.writeStringField("code", e.getCode()); jsonGenerator.writeStringField("defaultMessage", e.getDefaultMessage()); jsonGenerator.writeEndObject(); } catch (IOException e1) { e1.printStackTrace(); } }); jsonGenerator.writeEndArray(); }} PlayerController @PutMapping("/{platformId}")public ResponseEntity updatePlayer(@PathVariable Long platformId, @RequestBody @Valid PlayerDto.UpdateRequest reqDto, Errors errors) { var optionalAccount = accountSearchService.getAccount(platformId); if (optionalAccount.isEmpty()) return ResponseEntity.notFound().build(); if (errors.hasErrors()) return ResponseEntity.badRequest().body(errors); var isSuccess = playerUpdateService.updatePlayer(optionalAccount.get(), reqDto); var playerDto = new PlayerDto.UpdateResponse(isSuccess); return ResponseEntity.ok(playerDto);} Error 메시지 org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class org.springframework.validation.DefaultMessageCodesResolver]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.springframework.validation.DefaultMessageCodesResolver and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: org.springframework.validation.BeanPropertyBindingResult["messageCodesResolver"]) ---------------------------------------------------------------------------------------------------------------- ObjectMapper 를 AutoWired 해서 다음과 같이하면 실행되긴하네요 ㅠ return ResponseEntity.badRequest().body(objectMapper.writeValueAsString(errors));
- 미해결스프링 기반 REST API 개발
강의자료 문서 깨집니다.
21페이지에 플러그인 설정 줄이 안 맞고 다른 페이지도 문서작업 하시는 거와 다릅니다.
- 미해결스프링 기반 REST API 개발
toStaticResoueces 관련해서 질문 드립니다.
안녕하세요. css 적용 관련해서 질문 드립니다. 예제와 같이 설정을 한 후 @Overridepublic void configure(WebSecurity web) { web.ignoring().requestMatchers(PathRequest.toStaticResources().atCommonLocations());} static 아래에 css 폴더에 아래와 같은 구조로 되어 있습니다. 물론 작업시 다른 css 및 less 파을 ttf 파일들은 잘 적용 됩니다. min.css 및 min.js 에서 에러 발생 그외는 적용이 잘 됩니다. public enum StaticResourceLocation { /** * Resources under {@code "/css"}. */ CSS("/css/**"), /** * Resources under {@code "/js"}. */ JAVA_SCRIPT("/js/**"), /** * Resources under {@code "/images"}. */ IMAGES("/images/**"), /** * Resources under {@code "/webjars"}. */ WEB_JARS("/webjars/**"), /** * The {@code "favicon.ico"} resource. */ FAVICON("/**/favicon.ico"); private final String[] patterns; StaticResourceLocation(String... patterns) { this.patterns = patterns; } public Stream<String> getPatterns() { return Arrays.stream(this.patterns); }} 에러 내용은 아래와 같습니다. 구글링 결과 css/** 을 시큐리티에 추가 하라고 하는데 위에 설정에 되어 있기 때문에 아무 문제가 없어 보이는데 에러에 대해 조언을 해 주실수 있으신가요?
- 미해결스프링 기반 REST API 개발
Event 엔티티 설정 관련 문의 드립니다.
Event 엔티티 설정에서 @Data 어노테이션을 사용하지 않고, @EqualsAndHashCode(of="id")를 사용하는 이유가 "상호참조" 시 stack overflow가 발생할 수 있어서 그렇다고 말씀하시는데 상호참조가 어떤걸 의미하는지 좀더 자세히 설명 부탁드립니다.
- 미해결스프링 기반 REST API 개발
생성자를 통한 빈 주입시 장점이 무엇인가요?
기존에 @Autowired를 변수에 사용하여 간결하게 진을 주입받을 수 있다고 생각했는데, 굳이 생성자까지 만들어가면서 빈을 주입하면 생기는 이점이 무엇이 있을까요? 생성자를 통한 주입이 좋은 점이 있기 때문에 나온 것이라 생각하는데 굳이 코드의 길이를 늘려가면서 해야하는 이유가 무엇일까요???
- 미해결스프링 기반 REST API 개발
MockMvc 테스트 과정에서 Application context 가 로드가 안된다고 하네요
제가 게시판을 개발하고 있었는데, 201 응답 받기 부분 강의를 들으면서 제 게시판에 MockMvc 테스트를 적용시키려고 해보았습니다. git 주소 : https://github.com/mollder/dingue-mall 그런데 아래와 같은 에러가 발생해서 해결하려고 했는데 해결 방법을 알 수 없어서 질문 드립니다. 에러 화면들은 아래와 같습니다. 제 생각에는 애플리케이션은 잘 돌아가서 테스트 설정값에 문제가 있다고 예상은 했지만 제가 스프링 부트 테스트를 잘 몰랐고, 예상으로 클래스 이름이나, 패키징 구조, 애노테이션들을 수정해보았지만 잘 되지 않았습니다. 도와주시면 감사하겠습니다. 테스트에서 Controller 패키지 내에 있는 PostControllerTests 클래스에서 생긴 문제입니다.
- 미해결스프링 기반 REST API 개발
roles 관련 질문 입니다.
이미지 첨부 한곳을 보면 account_roles 라는 테이블에 insert 하는데에서 에러가 나는데 account_roles 는 강좌에서 없는 부분인데 어디서 나온걸까요?