Spring 5

Retrofit + spring 사용 시 JsonObject 파싱 에러

안녕하세요. 오늘은 최근 서버+클라이언트 개발하는 과정에서 겪게된 오류에 대한 글을 공유해볼까합니다. 클라이언트와 서버를 함께 개발하려니 머리가 아주 복잡해지더군요..ㅠㅠㅠ api포멧도 맞춰야하고, 서버 테스팅을 위해 하루에 commit만 몇번을 했는지... 각설하고, 오늘 겪은 이슈에 대해 이야기해보겠습니다. 많은 분들이 안드로이드 통신을 위해 Retrofit 라이브러리를 사용하실텐데요 !! 혹시 올바른 Json형식으로 서버에서 보낸 응답을 클라이언트에서 제대로 받지 못하는 현상을 겪으신 적이 있으신가요 ?? 아래의 오류와 함께 말이죠..! com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT..

[Spring] Request Mapping시 Request Body 설정

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of ~~ (no Creators, like default constructor, exist): cannot deserialize from Object value api콜을 하는 과정에서 Json형식으로 받은 RequestBody를 커스텀 객체로 변환하지 못한다면 위와 같은 에러가 발생할 수 있습니다. 예를들어 유저를 추가하는 아래의 소스가 정의되어 있다고 가정해봅시다. @PostMapping(value = "/users") @ResponseBody public boolean insertUser(@RequestBody User user){ bool..

[Web] Spring Boot로 Rest API만들기(3/3)

오늘은 지난 시간에 이어 jdbc라이브러리를 통하여 local 서버의 mysql 데이터 베이스를 사용한 rest api만들기 실습을 진행해 보도록 하겠습니다. 우선 build.gradle에 새로운 라이브러리를 추가합니다. // https://mvnrepository.com/artifact/org.mybatis/mybatis implementation("org.mybatis.spring.boot:mybatis-spring-boot-starter:2.0.1") implementation("org.springframework.boot:spring-boot-starter-jdbc") // https://mvnrepository.com/artifact/mysql/mysql-connector-java impleme..

[Web] Spring Boot로 Rest API만들기(2/3)

저번 시간에 이어서 Rest API만들기 실습은 진행하도록 하겠습니다. MVC패턴의 Controller까지 만들었다면 남은건 이제 Model입니다.(View는 지난 실습에 사용했던 hello.html이라고 할 수 있겠습니다.) 우선 model을 만들고 controller와 연결시키기 위한 패키지를 만듭니다. dto, dao, service 여기서 dto는 모델객체를 정의하고 getter,setter만들 정의한 말 그대로 Model입니다. 그리고 dao는 정의한 모델에 대한 CRUD기능만을 담당하고 있습니다. 그리고 service에서 우리가 원하는 기능을 커스텀할 수 있도록 작성하였습니다.(혹시 제가 이해하는 바가 아니라면 알려주세요..ㅠㅠ) 간단한 예제를 위해 스마트폰을 판매하는 매장에서 기기들을 들여오..

[Web] Spring Boot로 Rest API만들기(1/3)

웹 개발자라면 Spring을 모를 수는 없을 것입니다. Spring이란 웹 개발을 더욱 편리하도록 하고 많은 웹 개발자에게 표준적이라고 할 수 있는 프레임워크입니다. 이번 시간에는 간단하게 Spring Project를 만드는 방법과 간단한 테스트를 진행해보도록 하겠습니다. (IDE - Eclipse, Build Method - Gradle) 우선 Eclipse MarketPlace에서 Spring Boot라이브러리를 다운받습니다.(Help - Eclipse MarketPlace) 그리고 Gradle도 다운받도록 합니다. 그런 뒤에 File-New-Other탭으로 가서 Spring Starter Project를 생성합니다.(빌드 타입은 Gradle로 설정해주세요) 의존성은 간단하게 MySQL, Web과 같..