반응형

스프링부트

    스프링 부트에서 사용하는 JPA 기능 정리

    스프링 프레임워크에서 제공하는 JPA는 별도의 구현 클래스 없이 인터페이스만을 사용할 수 있도록 제공한다. 제공되는 인터페이스 JpaRepository는 실행시점에 자동으로 인터페이스 내용을 연결하는 엔티티에 맞게 자동으로 구현해준다. 만약 스프링 JPA 인터페이스에서 제공하지 않는 기능을 사용하고 싶을 때는 메서드명을 특정한 규칙대로 만들어서 사용하면 인터페이스가 알아서 그 이름에 맞는 JPQL을 만들어서 실행해준다. 스프링 JPA 인터페이스는 Mysql같은 RDBMS 뿐만 아니라 Mongodb, Redis와 같은 NoSQL에도 동일한 인터페이스를 사용해서 기능을 사용할 수 있도록 제공해준다. 공통으로 사용할 수 있기에 아주 편리하다. 우선 스프링 부트에 JPA를 사용하기 위해서 Gradle에 라이브러..

    리액티브 스트림의 이해

    리액티브 스트림은 총 4개의 인터페이스로 구성되어 있다. ㅁ 발행자(Publisher) - 데이터의 소스를 가지고 있으며 Subscriber의 요청이 오면 데이터를 발행한다. 구독자는 발행자에 대한 구독을 추가할 수 있다. Subscribe 메소드를 통해서 구독자를 추가할수 있다.123public interface Publisher { public void subscribe(Subscriber

    Facebook Javascript plugin과 spring security를 이용한 페이스북 로그인

    개인적으로 공부겸 만들고 있는 Wedul Pos에는 아이디와 패스워드를 사용해서 로그인하는 방식을 제공했다. 하지만 페이스북 로그인 방식을 추가해보고 싶어서 facebook 개발자 사이트에 가입하여 정보를 얻고 추가해봤다. 우선 페이스북 로그인 방식을 처리하는 방식은 Facebook Javascript plugin을 사용하여 spring security에서 인증을 하는 방식과 /sign/facebook 요청만 front에서 보내면 server에서 모든 처리를 진행하는 방식 두가지가 있다. 그 중에 첫번째 javascript plugin을 이용하는 방식을 사용해서 구현해보자. 1. facebook developer 사이트에서 javascript 내용 얻기 https://developers.facebook...

    Spring boot hibernate jpa에서 Auditing 사용 - update, create 시간 자동 변경

    엔티티를 만들고 데이터를 삽입하고 조작할 때 create date와 last modified date를 별도로 업데이트 해주면서 관리하였다. 하지만 이번에 JPA를 공부하면서 별도의 작업 없이 JPA의 Auditing 기능을 사용하면 데이터를 삽입하고 수정할 때 자동으로 날짜를 수정하도록 할 수 있는 기능이 있는 것을 확인했다. 1. ConfigurationJPA Auditing을 사용하기 위해서는 기능을 자동으로 활성화 해주는 어노테이션을 붙혀주면 된다. 처음에는 @Configuration을 사용하는 클래스에 함께 선언해주었는데 정상적으로 적용이 되지 않아서 @SpringBootApplication을 사용하는 곳에 적용했더니 성공적으로 적용되었다. 123456789101112131415161718192..

    Spring Validation을 이용해서 요청 검증처리

    대게 개발을 진행할 때 front에서 validate를 체크하고 민감한 정보에 대해서는 한번더 체크를 진행하고 작업을 했었다. 하지만 클라이언트에서만 validation을 체크하게 되는 경우 브라우저에서 악의적인 행동에 대해서 대응하기 어려워질수 있기 때문에 백엔드에서도 Validation을 처리해야한다. 여기서 사용되는 @valid 어노테이션들을 알아보자. 1. DTO validation 선언 우선적으로 DTO에 각 속성에 필요한 @valid 옵션들을 추가한다.1234567891011121314151617181920212223242526272829303132package com.wedul.springboottest.rest.dto; import lombok.*; import javax.validatio..

    Spring Boot에서 src/main/resource 파일 접근 방법 및 주의사항.

    Spring Boot를 이용해서 빠르게 프로젝트를 제작해야 할일이 있어서 작업을 하던 도중에 src/main/resource 위치에 파일에 접근이 필요했다. 그래서 ClassLoader를 사용해서 resource를 획득한 후 해당 경로를 얻어 Paths 객체를 만들고 파일을 읽었다. 로컬에서 개발할 때는 정상적으로 읽어졌다. 1String jsonTxt = new String(Files.readAllBytes(Paths.get(getClass().getClassLoader().getResource("course.txt").toURI())));cs 하지만 war로 빌드하고 서버에 올리고 나서 문제가 발생했다. 해당 파일 자체를 읽지를 못했다. 왜그럴까? 한참 고민하다가 인터넷 검색해서 한가지 글을 보았다...

    Spring Boot 빌드 파일을 이미지로 만들어 컨테이너에 올리기.

    스프링 부트 애플리케이션을 Docker image로 빌드해서 컨테이너에 올리는 작업을 진행해 보겠다. 필요사항 JDK 1.8 later Maven 3.2 이상 STS Docker Pom.xml 수정을 먼저 진행해야한다. wedul 이라는 이름의 jar 파일이 생성된다. docker에서 실행하기 위한 Maven 설정이 들어있는 jar file이 만들어 진다. 만약 image prefix 값을 별도로 지정하지 않으면 artifact id가 명시된다. wedul com.spotify dockerfile-maven-plugin 1.3.6 ${docker.image.prefix}/${project.artifactId} target/${project.build.finalName}.jar 그리고 프로젝트 Root에 ..

    spring boot 재시작 없이 frontend(html, js..) 변경내용 사용하기

    spring boot를 공부하면서 html요소가 자동으로 변경되지 않아서.. 계속 껏다켜야해서 너무 불편했다. 그래서 구글링 하던중 방법을 알게되어 적어본다. 1. pom.xml 추가 12345 org.springframework.boot spring-boot-devtools trueColored by Color Scriptercs 2. debug 모드로 실행 3. eclipse 설정 중 Build Automatically 설정 여부 확인 (기본으로 사용으로 설정되어 있음)

    스프링 마이크로서비스 (MSA) 소개

    많은 회사에서 마이크로서비스를 주목하고 있고 도입하고있다. 그 이유가 무엇인지 궁금했고, 알아보기 위해서 마이크로 서비스관련 책을 하나 구입하였다. 생각보다 책이 두껍지만 외국 저서 같지 않게 설명이 자세하게 되어있다. (사례도 많다.) 그럼 이제 마이크로 서비스가 무엇인지 알아보자. 아래 사진을 보자. 우리회사도 그렇고 기존에 웹 애플리케이션은 왼쪽의 사진처럼 하나의 구조로 이루어져있어 war 형태로 배포된다. 모든 서비스가 하나의 애플리케이션으로 구성되어있을 경우에는 새로운 기능을 추가하거나, 성능을 위해 시스템을 나누기 위하는 작업 등등이 너무 어렵다. 그래서 요새 대형 서비스에서는 서비스를 새로 추가하기도 쉽고, 더 많이 사용하는 서비스에 물리적인 자원을 더 할당할 수 있도록 마이크로서비스를 지원..

반응형