Spring(20)
-
[Project] 실시간 1:1 채팅
내가 맡은 역할 중 실시간 1:1 채팅 기능이 있다.이미 STOMP 프로토콜을 활용한 채팅 구현을 해본 경험이 있기 때문에,처음엔 별로 대수롭지 않게 생각했었다. 하지만 그건 나의 엄청난 오만이었다. 실시간으로 채팅을 하는 시스템은 비슷하지만 저번에 했던 채팅은 단순한 단체 채팅방 이고,이번 프로젝트에 필요한 기능은 관리자와 고객들의 1:n 관계 채팅 시스템이다. channel 생성 부터 구독 하는 것까지 엄청 골머리를 썩혔지만 결국 해결해냈다. 그럼 내가 이 난관을 어떻게 극복했는지 한 번 적어보겠다.유저 채팅 채널 생성 일단 관리자가 아닌 일반 사용자의 입장에서 채팅 icon을 클릭하면 해당 유저의 고유키인 "userid"를 이용해 독단적인 채널을 생성하게 했다. "사용자 마다 각각 다르게 개별적으로..
-
[Spring] WebSocket - 실시간 채팅
저번 메모장 기능 구현에 이어 이번에는 실시간 채팅을 한 번 만들어 볼 것이다.실전에 들어가기 앞서, 이번 채팅 구현에 있어서는 stomp에 대해서 알고 이 녀석을 사용해 줄거다. STOMPSTOMP란, Simple Text Oriented Messaging Protocol의 약자이다.간단한 메세지를 전송하기 위한 프로토콜로 메세지 브로커를 publisher - subscriber 방식을 사용한다.메세지의 발행자와 구독자가 존재하고 메세지를 보내는 사람과 받는 사람이 구분되어 있다.메세지 브로커는 발행자가 보낸 메세지를 구독자에게 전달해주는 역할을 한다.STOMP는 HTTP와 비슷하게frame 기반 프로토콜 command, header, body로 이루어져 있다. 사전 설정servlet-context.x..
-
[Spring] WebSocket을 활용한 메모장 만들기
오늘은 웹소켓을 활용하여 메모장 기능을 한 번 구현해볼 것이다.Ajax와 WebSocket의 차이연결의 지속성에 따라 둘을 구분한다. 클라이언트와 서버가 통신할 때 HTTP통신을 주로 사용한다. HTTP통신은 다음과 같은 특징이 있다.1. 비연결성 (connectionless) : 연결을 맺고 요청을 하고 응답을 받으면 연결을 끊어버린다.2. 무상태성 (stateless) : 서버가 클라이언트의 상태를 가지고 있지 않는다.3. 단방향 통신이다. 이러한 HTTP 통신의 경우 채팅과 같은 실시간 통신에 적합하지 않다.물론 HTTP 통신으로 실시간 통신을 흉내낼 수는 있으나 완벽하지는 않다. 실시간 통신이 필요할 때 사용하는 통신을 소켓 통신이라고 한다.HTTP통신과 다르게 연결을 맺고 바로 끊어버리는게 아니..
-
[Spring] HashMap json mapping
공공데이터 포털에 가면 오픈 되어 있는 여러가지 공공데이터들이 있다.오늘은 그 오픈 json데이터를 HashMap으로 mapping 해볼 것이다. home.jsp day09JSON : JavaScript Object Notation자바스크립트에서 객체를 표현하는데 사용하는 문법 ex01 - 부산 축제 정보 서비스 연습 ex02 - 부산 축제 정보 서비스 (AJAX) ex01.jsp json 파일을 자바 객체로 변환하여 출력하기ex01 - JSON을 자바 객체로 변환하여 출력하기 JS로 처리하기 ${dto.UC_SEQ }. ${dto.TITLE } (${dto.GUGUN_NM }) ${dto.HOMEPAGE_URL } 상세보기 ${dto.ITEMCNTNTS } 해..
-
[Spring] 매장 포스기 시스템
매장 같은 곳에서 사용하는 포스기들의 시스템을 실제로 비슷하게 구현하여 보자.1. 테이블로 구성해야 하는 항목 = CRUD 작업 대상 1. 상품 테이블 (Product)2. 매출 테이블 (Sales) 2. 각 테이블에 대한 스키마 구성상품 테이블상품번호(primary key)상품명이미지단가수량NUMBERVARCHAR2VARCHAR2NUMBERNUMBER (default 0) 매출테이블매출번호(primary key)날짜상품번호(foreign key)판매수량NUMBERDATENUMBERNUMBER 3. 각 테이블에 대해서 구현할 CRUD 기능상품테이블기능설명insert상품 등록select상품 조회(전체 목록 / 단일 조회) -- 2가지update수량 변경delete상품 삭제 매출테이블기능설명insert매출..
-
[Spring] RestController
json과 ajax가 무엇인지 알아보자. 또한, @RestController를 사용해 보자.JSON : JavaScript Object Notation 자바스크립트 토대로 개발되었으며, 여러 프로그래밍언어에도 사용할 수 있는 독립형 언어이다.데이터 객체의 형태는 속성 - 값 쌍 형태.주로, 웹 브라우저와 웹 서버간 비동기 통신, 데이터 교환 등에 사용된다. home.jspday10 ex01 - ajax(1) 정수반환 ex02 - ajax(2) 문자열 반환 ex03 - ajax(3) map 반환 ex04 - ajax(4) List< DTO 반환(DB 이용 O) Ex01Controllerimport org.springframework.stereotype.Controller;import org.sprin..