일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 가변인자
- full text indexing
- 업캐스팅
- angular2
- 이클립스
- 로또
- 다운캐스팅
- 자바
- IBatis procedure
- 전체텍스트
- 추상클래스
- 자바 야구게임
- 페이징
- 형변환
- 야구게임
- 전자정부
- Login with OAuth Authentication
- 단축키
- 스프링
- 상속예제
- 상속
- jquery
- Random
- 다형성
- 25가지 효율적인 sql작성법
- while
- Validations
- 전체
- Full text
- Today
- Total
목록분류 전체보기 (448)
nalaolla
이번 장에서는 Spring2.0의 주요 feature중 하나인 reactor(reactive)가 spring-data-redis에 어떻게 적용되어 있는지 실습을 통해 확인해 보겠습니다. redis에서 reactive를 사용하면 대용량의 요청을 처리할때 non block으로 처리하므로 blocking 메서드로 처리할때보다 성능을 높일수 있습니다. 하지만 비동기 처리로 인하여 데이터 저장시 순서가 변경될수도 있으므로, 순서가 중요한 프로세스에 적용하려면 reactive redis를 신중히 사용해야 합니다. build.gradle reactive redis는 현재 spring-data-redis에 통합되어 있지 않고 지원하는 라이브러리가 별도로 존재합니다. 아래와 같이 spring-boot-starter-da..
이번장에서는 Redis를 이용한 발행(publish)및 구독(subscribe)모델의 구현 방법에 대해 설명하겠습니다. (이하 pub/sub) pub/sub는 특정한 주제(topic)에 대하여 해당 topic을 구독한 모두에게 메시지를 발행하는 통신 방법입니다. 이를테면 날씨정보를 구독한 사람에게 주기적으로 날씨정보를 보내거나. 특정한 작업을 반복 수행하는 작업자에게 비동기적으로 작업을 보내 처리하도록 하거나, 또는 현재 앱에 로그인한 유저에게 푸시를 발송하는 활동들이 모두 pub/sub의 원리로 만들어 진다고 보면 됩니다. Redis는 RabbitMQ나 Kafka같이 전문적인 메시징시스템의 pub/sub처럼 고도화된 기능을 제공하지는 않지만 MemoryDB의 특성을 살려 단순하지만 가볍고 빠른 pub/..
이번장에서는 spring-data-redis를 이용하여 SpringBoot와 redis를 연동하고, Boot에서 제공하는 Cache 어노테이션을 사용하여 캐시를 처리하는 방법에 대해 실습하겠습니다. builld.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-freemarker' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-..
SpringBoot2와 redis cluster를 연동하고, redis command에 대해 설명합니다. 다음을 참고하여 프로젝트를 하나 생성합니다. >> Intellij Community 프로젝트생성 Boot를 실행하기 위한 Application Class 생성 package com.redis.cluster; @SpringBootApplication public class RedisClusterApplication { public static void main(String[] args) { SpringApplication.run(RedisClusterApplication.class, args); } } build.gradle 수정 spring-boot-starter-data-redis를 이용하여 red..
Redis single instance 구성에 이어 cluster를 구성하는 방법을 실습해 보겠습니다. Cluster란 각기 다른 서버를 하나로 묶어 하나의 시스템처럼 동작하게 함으로써 클라이언트에게 고가용성을 제공하는 것을 말합니다. 특징으로는 여러대의 서버에 데이터가 분산되어 저장되므로 트래픽이 분산되는 효과를 얻을수 있습니다. 가장 중요한 점은 특정 서버에 장애가 일어나더라도 백업 서버의 보완을 통해 데이터의 유실없이 서비스를 계속 이어나갈 수 있다는 점입니다. Master로만 구성된 Cluster 구성 추가 노드 설정 Single Instance로 생성한 6300 노드 외에 아래와 같이 추가로 6301, 6302 port에 대한 노드를 추가 생성합니다. Please select the redis ..
Redis는 데이터베이스, 캐시 및 메시지 브로커로 사용되는 오픈 소스 in-memory 데이터 구조 저장소입니다. string, hashes, lists, sets, sorted sets 데이터 구조를 지원하며. pub/sub를 통한 메시지 브로커 기능도 지원합니다. 또한 Redis Sentinel, Redis Cluster를 통해 고 가용성 및 자동 파티셔닝을 제공합니다. 다운로드 및 설치 CentOS 환경 하에서 설치하는 법을 설명합니다. Redis의 최신 버전은 https://redis.io/download 에서 확인 할 수 있습니다. 서버의 적당한 위치에 다운로드합니다. $ wget http://download.redis.io/releases/redis-5.0.4.tar.gz 컴파일 시 gcc는..
이번 시간에는 인증서버와 리소스 서버간에 토큰 인증시 서명 방식을 변경해 보겠습니다. 서명이란 서로간에 신뢰성있는 통신을 하기 위한 절차라고 생각하면 됩니다. 최신 소스는 GitHub 사이트를 참고해 주세요. https://github.com/codej99/SpringOauth2AuthorizationServer.git https://github.com/codej99/SpringOauth2ResourceServer.git 대칭키 서명 A(리소스서버)가 B(인증서버)에게 데이터를 보낼때 B의 sign으로 암호화 해서 보내면 B는 자신의 sign으로 데이터를 복호화해서 볼 수 있습니다. B는 데이터를 전달받기 전에 A에게 자신의 sign정보(비밀키)를 공유해주기만 하면 됩니다. 그런데 이 방식은 B의 sig..
이번 장에서는 Spring Oauth2를 이용한 ResourceServer(api서버) 구축을 실습해보겠습니다. 이전 장에서 만든 AuthorizationServer와 연동하여 실습은 진행됩니다. 실습은 bearer 토큰 방식부터 진행합니다. 최신 소스는 GitHub 사이트를 참고해 주세요. https://github.com/codej99/SpringOauth2ResourceServer.git bearer token Flow 아래 내용 중 테두리를 친 부분이 리소스 서버에서 개발해야 할 사항입니다. Authorization Server 수정 이전 시간에 만들었던 AuthorizationSever 내용을 수정합니다. Oauth2AuthorizationConfig에서 bearer token방식으로 테스트 하..
앞 장에서는 테스트를 위해 메모리에 정보를 올려놓고 테스트하였으나, 이번에는 DB를 사용해 처리할 수 있도록 개선해 보겠습니다. 최신 소스는 GitHub 사이트를 참고해 주세요. https://github.com/codej99/SpringOauth2AuthorizationServer.git 클라이언트 정보를 DB 사용하는 방식으로 수정. 로그인 시 회원 정보를 DB 사용하는 방식으로 수정. 인증 및 토큰 정보를 DB 사용하는 방식으로 수정. 클라이언트 정보를 DB 사용하는 방식으로 수정. resources 아래에 schema.sql 파일을 생성 후 다음 쿼리를 넣습니다. 해당 테이블은 클라이언트 정보를 넣는 테이블입니다. 서버가 start 될 때 해당 schema.sql에 내용이 있으면 실행됩니다. cr..
Spring 프레임웍에서 제공하는 Oauth2 프로젝트를 이용하여 Oauth Authorization Server를 구축해 보겠습니다. Oauth Authorization은 클라이언트가 서비스 제공자로부터 회원 리소스를 제공받기 위해 인증 및 권한 부여를 받는 일련의 절차라고 보면 됩니다. 이를테면 페이스북이나, 구글, 카카오톡 등이 대표적인 서비스 제공자인데요. 해당 서비스에 로그인하고 제휴한 앱에 회원정보 접근을 승인하는 과정을 제공하는 것이 Authorization 서버입니다. 즉 이번에 실습하는 것은 클라이언트가 아니라, 페이스북 같은 서비스 제공자를 만들어보는 실습이라고 보면 됩니다. authorization 서버의 인증 타입은 총 4가지가 있으며, authorization_code 타입이 가장..