스프링부트 썸네일형 리스트형 [kotlin] JPA 2: Spring Boot에서 Entity 매핑 기본 들어가기 엔티티(Entity)에서 세부적인 정의를 살펴볼려고 한다. 먼저 엔티티 자체 정의하는 방법을 살펴보자. 엔티티와 데이터베이스 테이블과 매핑하는 방법을 위주로 먼저 살펴볼려고 한다. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 엔티티 정의 엔티티 정의를 위한 기본 어노테이션으로 다음과 같다. @Entity: 엔티티 선언 @Table: 매핑할 테이블 선택 @Id: 테이블 기본키 사용할 속성 지정 @GeneratedVaue: 키값 생성 전략 @Column: 매핑할 컬럼 선택 이미 몇 개는 앞에서 보았던 어노테이션도 있다. @Entity 어노테이션 엔티티를 지정할때 사용하는 어노테이션이다. 데이터베이스 테이블에 매핑할 엔티티를 정의한다. 에티티를 지정.. 더보기 [java/kotlin] Spring Boot에서 웹소켓 사용하기 들어가기 웹소켓(websocket)은 브라우저와 웹서버 간에 통신을 할 수 있는 채널을 만드는 기술이다. 기존 HTTP을 사용하는 경우 데이터를 송수신할 때마다 매번 연결하고 끊어지는 작업이 반복된다. 웹소켓은 계속 연결된 상태로 유지되기 때문에 데이터를 더 효율적으로 처리할 수 있다. 웹소켓도 사용하기 위한 자신만의 규약이 있지만 Spring Boot에서 웹소켓을 쉽게 사용하는 방법이 있다. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 웹소켓이란? 웹소켓은 양방향 통신하는 프로토콜(RFC6455)이다. 웹소켓은 80과 443위에서 HTTP 프로토콜과 호환되도록 동작한다. 기존 HTTP 폴링에 비해 부하가 낮고 푸시 방식의 실시간 데이터 전송가능하다. .. 더보기 [Java] spring boot에서 spring security 사용하기 4 - OAuth2 들어가기 OAuth(”Open Authorization”)은 애플리케이션 간에 인증을 공유하는 형태로 별도 인증을 통하여 애플리케이션에 대한 접근권한을 위임하는 개방형 표준이다. 트위터, 페이스북,구글,Github 등 유명 회사에서 제공하고 있다. OAuth에 장점은 별도 회원가입이나 인증 처리을 개발할 필요없고 여러 애플리케이션을 통합하는게 가능하다. 여기서는 OAuth 클라이언트 관점에서 접근하려고 한다. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 기본 구성 Dependency 설정 Pom.xml 파일에 OAuth2 인증을 위해 spring security 외에 추가적인 dependency가 필요하다. org.springframework.boot .. 더보기 [java] spring에서 event 사용하기 들어가기 스프링에서 이벤트 처리하는 방법을 알아보자. 일반적으로 스프링에서 이벤트 처리하는 경우는 많지가 않다. 대부분 빈객체의 메소드를 직접적으로 호출하여 처리한다. 대부분 직관적이고 코드도 명확하기 때문에 많이 사용한다. 이는 스프링 세션을 처리하는 내부에서도 사용되고 있다. 이벤트 처리는 대부분 비동기적으로 처리되어 추적하거나 분석하기 쉽지 않다. 그래도 이벤트 처리로 서로 간에 종속성을 끊어주고, 동기적 처리로 인한 작업 지연이 최소화된다. 이벤트로 처리할 경우에 장점이 많기 때문에 알아두면 좋다. 작성자: http://ospace.tistory.com, (ospace114@empal.com) 기본 이벤트 정의 이벤트 처리하는 로직을 들어가기 전에 기본적인 이벤트 정의를 보자. 스프링에서는 이벤트.. 더보기 [Springboot] Spring boot WebFlux 사용하기 들어가기 Spring WebFlux은 Spring Framework의 모듈로서 비동기와 반응형 프로그래밍을 지원하며 작은 하드웨어 리소스에서 적은 수의 스레드로 동시성을 처리하는 웹 스택이다. 기존 Servlet API는 동기식 I/O형태로 처리되었지만 이를 비동기식으로 구성된 서버(예: Netty)에 의해 새로 구성된 API이다. 비동기 처리로 자원 사용 효율이 좋아졌지만 성능이 좋아진다는 보장이 없다. 다음과 장점이 있다. 비동기 처리에 의한 다중 요청 처리 반응형 프로그래밍으로 데이터 스트림 처리와 이벤트 기반 처리 유용 함수형 라우팅으로 간결하게 코딩 작성 가능 WebFlux에서는 크게 두가지 방식으로 사용할 수 있는데, 하나가 어노테이션을 사용한 방법과 다른 하나는 직접 라우팅 설정을 통한 방법.. 더보기 [spring boot] 다중 DB 사용하기: ApacheShardingSphere 활용 들어가기 자바에서 샤딩용 라이브러리로 많이 사용하고 있는 Apache ShardingSphere을 사용해서 다중 DB사용하는 방법을 살펴볼려고 한다. 여기서는 간단하게 맞보기로 살펴볼 예정이다. 작성자: ospace114@empal.com, http://ospace.tistory.com/ Sharding 이름에도 나오지만 Apache의 ShardingSphere는 샤딩에 많이 사용된다. 샤딩이란 데이터를 여러 DB 서버로 분산해서 처리량을 높이는 방법이다. 이런 샤딩은 데이터를 분산하는 방식에 따라 여러 종류로 구분할 수 있다. Vertical: 부하가 몰리는 테이블을 분리해서 다른 DB로 분산 Horizontal: 한 테이블 데이터를 여러 DB로 분산 샤딩하는 방법은 직접 연결 구현하거나 중간 프록시를.. 더보기 [spring boot] 다중 DB 사용하기: AbstractionRoutingDataSource 활용 들어가기 AbstractionRoutingDataSource을 사용해서 다중 DB를 구현하는 방식이다. 작성자: ospace114@empal.com, http://ospace.tistory.com/ 설정파일 구성 다중 DB에서 사용할 설정파일에 어떻게 설정값을 할당하는지 살펴보자. 다중 DB에 사용할 application.properties 내용은 아래와 같다. spring.datasource.master.jdbc-url = jdbc:mysql://127.0.0.1:3306/db1?serverTimezone=UTC spring.datasource.master.username = foo spring.datasource.master.pasword = foopass spring.datasource.slave... 더보기 [spring boot] jackson대신에 gson으로 사용하기 들어가기 최근에 참고한 자료에 따르면 gson이 성능이 좋아져서 jackson보다 더 좋아졌다는 글이 있었다. 그래서 한번 spring boot의 json 매퍼를 변경해서 사용해보았다. 작성자: ospace114@empal.com, http://ospace.tistory.com/ 기본 환경 먼저 dependency을 추가하자. spring boot을 사용한다면 version을 사용하지 않아도 자동으로 버전을 잡아준다. 현재 기준(2022.07.06)으로 버전 2.8.8 이하는 vulerability가 있어서 사용을 권장하지 않는다. com.google.code.gson gson 그리고 기존 jackson은 spring-boot-starter-web에서 exclusions에 포함시켜서 제외시켜준다. org.. 더보기 이전 1 다음