본문 바로가기

Category/Project20

[팀프로젝트] 15일차 - Sse를 이용해 실시간 알림기능 구현2 이전에 공부했던 Server-sent-event 방식의 HTTP통신을 활용하여 메신저가 도착하면, 실시간 알림을 전송하는 기능을 구현했다. 다음 클래스는 서버에서 클라이언트로 이벤트 전송시, 알림에 대한 정보를 담아둔 객체이다. 해당 객체의 멤버로 알림 내용에 메시지정보를 담은 MsgDto와 알림 전송 시간을 추가하였다. 그리고, 클라이언트에서 eventSource.addEventListener를 통해 서버가 보내온 이벤트 데이터들을 자유롭게 꺼내쓸수있도록 JSON형식으로 변환시켜주는 작업이 필요하다. 해당 작업은 서버단에서 클라이언트로 이벤트를 전송하는 NotifycationService클래스의 sendToclient 메소드에서 Notification을 비롯해서 event 안에 담아둘 여러 데이터들을 .. 2024. 2. 2.
[팀프로젝트] 14일차 - SSE를 사용한 실시간 알림 기능 구현 그룹웨어 시스템에서 사용자에게 도착한 메시지,전자결재 내역을 실시간으로 알림을 보내줄 기능을 구현하기위해 웹소켓, Pooling, Sse등 다양한 방법을 찾아보다가, Server-sent-event 방식이 가장 적합하다고 생각하여 Sse를 통해 실시간 알림 기능을 구현해보려고 한다. 관련자료를 찾아보는데 스프링 부트에서 구현한 예제밖에없어서 나는 스프링 레거시에서 진행하고있기에 아예 Sse에 대해 기초부터 공부한뒤 직접 적용시켜볼 예정이다. 우선 맨 처음 클라이언트에서 서버로 연결을 요청하는 것부터 해보았다. 클라이언트 -> 서버로 구독 요청하기 클라이언트 : 클라이언트는 맨 처음 서버에 요청을 보낼때 구독 요청을 하기위해 EventSource 객체를 생성하여 "/connect" 경로로 요청을 보낸다. .. 2024. 2. 1.
[팀프로젝트] 12일차 - 전자결재 시스템 만들기 대망의 전자결재 기능구현을 시작했다..! 결재작성부분에서 넣고 싶었던 기능은 1. 결재문서 타입을 클릭하면 해당 문서 양식 출력 2. 결재라인 지정시 사원검색 칸을 이용하여 선택시 문서양식 결재라인 칸에 자동으로 넣기 이다. 1. 결재문서 타입을 클릭하면 해당 문서 양식 출력하기 해당부분은 제이쿼리를 이용해서 간단하게 버튼 클릭시 display : none -> display : block 를 주었다. 자바스크립트는 여러모로 쓸모가 많은것 같다. 2. 결재라인 지정시 사원검색 칸을 이용하여 선택시 문서양식 결재라인 칸에 자동으로 넣기 여기서 굉장히 많이 헤맸다. 품의서 양식의 결재라인 지정칸에 입력할때, ajax를 통해 서버에서 직원들의 list를 가져와 검색하는 기능이 필요했는데, 페이지를 이동하지않고.. 2024. 1. 30.
[팀프로젝트] Mybatis 매핑에러 - BindingException Mybatis를 사용하면서 mapper.xml에 메소드 파라미터 변수명을 1개 사용할때는 문제없이 잘 되는데, 2개이상 사용하게되면 Bindingexception이 매번 발생하는 문제가 생겼다. Mapper.xml 파일 다음과 같은 쿼리 구문에서 파라미터로 #{empno}와 #{searchEmpno} 2개를 받아와 출력하는데, 잘못된 예 : 파라미터가 1개일때처럼 Dao의 메소드또한 똑같이 만들어줬는데도 매핑이 되지않는 문제가 자꾸 발생한다. 인터넷을 뒤지다 결국 찾아낸 해답은 파라미터가 2개이상일때는 Mybatis에서 문자열이 아니라, Map형식으로 받는다는것이었다. 따라서, 메소드 파라미터를 바른 예: 다음처럼 파라미터로 Map형식을 받아와, 컨트롤러 단에서 기존에 String 변수 2개를 넣어주던것.. 2024. 1. 29.