| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Random
- 추상클래스
- 25가지 효율적인 sql작성법
- 형변환
- 로또
- Full text
- 다형성
- 상속예제
- 자바
- Validations
- jquery
- 전자정부
- 자바 야구게임
- while
- 가변인자
- 단축키
- angular2
- 전체
- 업캐스팅
- 스프링
- IBatis procedure
- 다운캐스팅
- 전체텍스트
- 상속
- full text indexing
- 페이징
- 야구게임
- Login with OAuth Authentication
- 이클립스
- Today
- Total
목록전체 글 (448)
nalaolla
이전 장에서 websocket을 통하여 간단한 서버/클라이언트 통신을 구현해 보았습니다. 메시징 방식을 잘 정의한다면 websocket만으로도 충분히 좋은 서버/클라이언트 소켓 서버를 완성할 수 있습니다. 하지만 단순한 통신 구조로 인해 Websocket만을 이용해 채팅을 구현하면 해당 메시지가 어떤 요청인지, 어떻게 처리해야 되는지에 따라 채팅룸과 세션을 일일이 구현하고 메시지 발송 부분을 관리하는 추가 코드를 구현해 줘야 합니다. 이번 장에서는 Websocket의 프로세스를 좀 더 고도화하고 메시징에 좀 더 최적화된 방식을 구현하기 위해 Stomp를 적용해 보겠습니다. Stomp Stomp는 메시징 전송을 효율적으로 하기 위해 나온 프로토콜이며 기본적으로 pub/sub 구조로 되어있어 메시지를 발송하..
Spring에서 제공하는 Websocket을 이용하여 간단한 채팅 서버를 구현해 보도록 하겠습니다. 일반적인 http통신을 하는 서버들과 달리 채팅 서버는 socket통신을 하는 서버가 필요합니다. 통상적으로 http통신은 Client의 요청이 있을 때만 서버가 응답하고 연결을 종료하는 단방향 통신입니다. 따라서 클라이언트가 서버에 접속해 콘텐츠를 요청하고 결과를 받아 소비하는 구조의 서비스에서 많이 사용됩니다. 그에 반해 socket통신은 Server와 Client가 지속적으로 연결을 유지하고 양방향으로 통신을 하는 방식입니다. 주로 채팅 같은 실시간성을 요구하는 서비스에서 많이 사용됩니다. Websocket Websocket은 기존의 단방향 HTTP 프로토콜과 호환되어 양방향 통신을 제공하기 위해 개..
Spring Security를 이용한 REST API를 만들때, 일반적인 Spring Security를 이용하는 경우에는 다Login 성공 또는 실패시에 모두 302번 Redirect가 발생하게 됩니다. 또한 인증되지 않은 사용자가 API에 접근한 경우에도 마찬가지로 302번 Redirect로 Login Page로 이동하게 되는데, 이는 REST API 개발시에는 원하지 않는 결과입니다. 먼저, 개발할 API 서버는 Form 인증을 지원하는 것을 전제로 합니다. Basic/Digest 인증의 경우에는 다른 방법으로 개발이 되어야지 됩니다. 일반적인 Form 인증을 이용하는 경우에 Spring Security의 기본 Form인증은 다음 문제를 해결해야지 됩니다. 인증되지 않은 Request가 들어오는 경우..
이번 장에서는 지금까지 개발한 api에 캐시를 적용해 보도록 하겠습니다. 캐시란 자주 사용되는 데이터를 메모리에 저장하고 반환하여 하드디스크의 원본데이터를 거치지 않게 함으로서 리소스 READ시 효율을 높이는 기술을 말합니다. 이번장에서는 api 결과에 캐시를 적용하여 DB에 요청을 최소화 함으로써 DB부하를 감소시키고, api의 결과 데이터 반환 속도를 향상시켜 보겠습니다. Redis 캐시 캐시종류에는 여러가지가 있으나, 근래에 가장 많이 사용되는 Redis를 캐시 Storage로 사용해보겠습니다. Spring에서는 이미 Redis를 이용하여 캐시를 손쉽게 구현할수 있도록 spring-data-redis 라이브러리를 제공하고 있습니다. Embedded Redis 테스트를 위해 Redis 서버를 직접 설..
이번 장에서는 지금까지 구축한 SpringBoot + Security 환경에 간단한 JPA 게시판을 추가해 보도록 하겠습니다. 관계 다이어그램은 다음과 같습니다. 하나의 게시판에는 여러 개의 게시물이 작성될 수 있으므로 BOARD와 POST는 1:N의 관계를 같습니다. 회원은 여러 개의 게시물을 작성할 수 있으므로 USER와 POST 역시 1:N의 관계를 같습니다. Entity 작성 Entity 공통으로 필요한 날짜정보를 담는 CommonDateEntity를 생성하여 Board, Post, User Entity가 상속 받도록 처리합니다. @Getter @MappedSuperclass @EntityListeners(AuditingEntityListener.class) public abstract class..
Jenkins를 이용하면 배포에 필요한 여러가지 절차를 통합하여 편리하게 배포할수있는 시스템을 만들 수 있습니다. 이번장에서는 Jenkins로 배포시스템을 구축하고 배포후에 문제가 생겼을 경우 Git Tag를 이용하여 바로 소스를 롤백할 수 있도록 기능 추가까지 진행해 보겠습니다. Jenkins 설치 jenkins는 여러가지 설치방법을 제공합니다. Mac이나 Windows에는 자체 설치 파일을 제공하며 Linux에서는 yum이나 apt-get으로 설치할 수 있습니다. 최신 버전이 필요하다면 jar파일로도 제공하기 때문에 jar파일을 다운로드 받아 직접 실행해도 되고, 별도로 설치한 tomcat의 webapps 하위에 jar파일을 옮겨놓고 실행해도 됩니다. OS별 Jenkins 설치에 대한 자세한 내용은 ..