스프링

서론 사내 클라우드 서비스 모니터링 관련 프로젝트를 시작하게 되면서 Naver / KT / AWS 클라우드를 연동하게 되었다. 대중적인 AWS와는 달리 네이버와 KT는 예시 코드가 부족하여 직접 삽질하면서 얻은 결과물을 정리해야겠다고 판단하여 작성하게 되었다. API 연동 api 연동은 Rest API와 네이버 클라우드 공식 가이드를 참고하여 진행했다. [네이버 클라우드 API 가이드 홈페이지] 기본적인 signature 만드는 방식에 대해서는 가이드 문서에 자세하게 설명되어 있으니 가이드 문서 참고! Java 예시 코드 @Autowired protected RestTemplate restTemplate; /** * ncloud 서버 리스트를 조회한다. * * @return Map * @author Ch..
JPA란? Java Persistent Api의 약자. 자바 ORM에 대한 기술 명세서로, 자바 애플리케이션에서 RDB를 사용하는 방식을 정의한 인터페이스이다. JPA는 하나의 기술 명세서 JPA는 특정 기능을 모아 놓은 라이브러리가 아니고, 자바 애플리케이션에서 ORM 방식으로 DB에 접근하기 위한 방식을 정의한 인터페이스의 모음이다. JPA는 영속성을 통해서 Application과 DB의 데이터를 운반한다. 한마디로, JPA는 RDB를 어떻게 사용할지에 대한 정의라고 이해하면 편할듯하다. JPA 영속성? Spring에서는 @Entity 어노테이션을 붙인 클래스를 통해 영속성을 관리(Entity에 대한 추가 글 필요!) JPA에서 영속성이란, 하나의 실행 흐름(컨텍스트)이라고 이해하면 될 듯하고, 우리..
스프링을 공부하다가 우연히 @RequestBody와 @ModelAttribute를 통해 값을 바인딩할 때 오류를 겪는 상황을 발견하고, 평소 Class 바인딩은 자연스럽게 @ModelAttribute로, Json과 같은 타입은 자연스럽게 @RequestBody로 작성했었던, 아무 생각 없이 스프링을 공부했던 나 자신을 돌아보며 오늘 글을 작성하려한다. 이를 이해하기 위해서는 우선 HTTP Message에 대한 이해가 필요하다. HTTP Message는 우리가 어떤 요청을 보내거나 요청에 대한 응답을 보낼 때, 서버와 클라이언트가 서로 데이터를 교환하는 방식이다. 데이터를 요청할 때 부르는 용어인 Rquest에는 서버가 특정 동작을 수행하도록 하는 메시지를 담고 있고, 총 4개의 섹션으로 구분하고 있는데 ..
기존에 jdbc+Mybatis를 통하여 개발 프로젝트를 만들다가 JPA를 공부하면서 까먹지 않기 위해 블로그에 기록해 놓았다. 우선 간략하게 JPA를 소개하면, JPA는 기존의 RDB 방식에서 벗어나 ORM을 통해 객체 지향적인 테이블 설계가 가능하고, 기존의 SQL Query가 아닌 method를 통해 직관적인 데이터 조작이 가능하다. JPA의 가장 큰 특징은 아무래도 기존에 데이터를 전달하는 목적(DTO,VO)으로 사용했던 Mybatis와는 달리 객체 지향의 장점(캡슐화,추상화,상속 등의 다형성)을 살릴 수 있다는 것이다. 지금은 환경설정에 대한 글이므로, 자세한건 다음번에 이론을 정리할 때 써야겠다.. - 우선 프로젝트를 새로 만든다면, [New] -> [spring starter project] ..
스프링 부트에서 hibernate 와 JPA 사용 도중 아래와 같은 에러 메세지가 발생. No default constructor for entity 알고보니 해당 Entity에 default constructor를 안만들어줬었다..
스프링 부트와 mySql을 연동하여 개발하던 도중, 아래와 같은 오류가 발생 com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Out of range value for column 데이터 길이만 바꾸면 되는줄 알고 데이터 유형은 INT인 채로 길이만 20으로 바꾸니 오류가 계속 났다.. 데이터 길이가 10 이상이면, BIGINT로 바꿔주자.
보통 스프링 부트에서는 타임리프를 사용하는데, 스프링을 먼저 써보고 타일즈를 먼저 배워서 그런지 아직까진 타일즈가 편하다고 느껴서 스프링 부트에서의 타일즈 설정을 찾아보고 내가 겪은 점을 써본다. - [build.gradle] tiles 관련 dependency 추가 - 우선 jsp를 파싱해주기 위해서 [tomcat-embed-jasper]를 추가해줘야한다. 이게 없으면, 경로를 아무리 잘 잡아도 해당 jsp를 찾을 수 없다는 mapping 에러가 뜨게 된다. - 그리고, jsp를 쓰면 view에서 처리해줄 jstl을 사용하기때문에 이와 관련된 dependency를 추가해준다 - 마지막으로 tiles관련 dependency들을 추가해준다. dependencies { ......... implementat..
스프링에서는 XML에서 리소스 경로를 추가해줘야했기 때문에, 스프링 부트에서 리소스 경로를 어떻게 잡아줘야할지 찾아보게 되었고, 스프링 부트의 편리함을 다시 한 번 느낀다.. - 우선 스프링 부트는 [spring-boot-web-starter]에서 이러한 경로들을 미리 잡아준다 - 필요한 정보만 적어보자면, 리소스 경로가 /resources/static/** 이렇게 잡혀있기 때문에 우리가 html이나 jsp에서 리소스 경로를 추가하려면, 저 밑에 폴더와 파일을 생성해주면 된다. - 아래는 내가 설정한 리소스 경로 사진과 실제 적용 코드이다.
iron_jin
'스프링' 태그의 글 목록