221107 TIL 가치 중심의 사용자 스토리
·
성장이야기/TIL
월요일은 한주의 스프린트가 끝나는 날로 트레이너님과 스프린트 점검과 이번 주의 작업 계획을 다시 세우는 날이다. 저번 주와 다르게 이번 주는 채팅 기능 구현하는데 시간을 많이 소비해 구현해야 할 태스크들을 전부 끝내지 못한 상태라 찝찝함이 남아있는 상태로 스프린트 점검 시간을 기다리고 있었는데 아샬 님이 직접 내려오셔서 동료 한분이 쓰신 기획서를 모두 같이 보면서 피드백을 들었다. 그중에는 동료 한분에게만 국한되는 이야기가 아니라 프로젝트를 진행하고 있는 모두가 공감할만한 이야기와 알아두면 좋을 내용들도 너무 많이 이야기해주셨다. 기획서 작성할 때 가장 힘들었던 사용자 스토리 부분에 대해서 우선 말을 해주셨는데 가치 중심으로 썼다고 생각했던 나의 사용자 스토리가 정말로 가치 중심인지 다시 한번 생각하게 ..
메가테라 19주차 주간회고 (프로젝트 3주차 회고)
·
성장이야기/주간회고
19주 차 회고 메가 테라 19주 차를 진행하면서 있었던 일을 종합해서 회고하였습니다. 리팩터링의 연속 이번 주는 객체 구조를 바꾸는 데 시간을 너무 많이 사용했다. 실제로 주중에 2번을 바꾸면서 좋아요 기능과 댓글 기능을 구현하는데 예상했던 스토리 포인트를 객체 구조를 바꾸는 데 사용을 해서 예상했던 것보다 오버되기도 했다. 모양이 이상하긴 한데 맨 처음 객체를 설계할 때 작성했던 것이다. post라는 게시글이 담고 있어야 할 정보들의 연관관계를 @ManyToOne과 @OneToMany 어노테이션을 이용해 매핑했었는데 이 방식 말고 한 객체 안에서 다른 객체의 정보를 들고 있지 않고 자신이 갖고 있어야 할 갖고 기존에 갖고 있던 다른 객체들의 정보는 아이디 값만 갖는 방식으로 구조를 다시 바꿨다. po..
221106 TIL [Spring boot + React]실시간 채팅 기능 구현하기 - 4
·
성장이야기/TIL
오늘 드디어 Spring + React를 이용해서 실시간 채팅 기능을 구현했다. WebSocket으로 채팅방 하나인 1:1 채팅 기능은 구글링 조금만 하면 금방 구현할 수 있었는데 채팅방이 여러 개를 구현하기 위해 STOMP를 사용해야 할 때부터 막히기 시작했었다. 구글링 하면 정보는 많았지만 STOMP를 전혀 알지 못한 채 알아보려니까 이게 맞는 정보인지 틀린 정보인지 판별이 되지 않아 하나씩 전부 읽어보면서 확인하는 작업을 하는데 너무 오랜 시간이 걸렸다... ㅠㅠ 솔직히 실시간 채팅 하나 구현하는데 4일이나 걸릴 줄은 몰랐지만 포기하지 않고 어떻게든 구현했다는 사실과 채팅을 구현하는데 최적의 코드는 아닐지라도 이것저것 해보면서 실시간 채팅을 구현했다는 사실만으로도 너무 기뻤다. 아무튼 어제는 Spr..
221105 TIL [Spring boot + React]실시간 채팅 기능 구현하기 - 3 (with STOMP)
·
성장이야기/TIL
채팅 기능을 아직 구현하지는 못했지만 오늘 배우고 이해한 STOMP에 대해서 정리해보려고 한다. STOMP를 사용하게 되면 text와 binary 두가지 유형의 메시지만 정의하는게 아니라 규격을 갖춘 메시지를 전달할 수 있다. COMMAND header1:value1 header2:value2 Body^@ COMMAND : SEND, SUBSCRIBE를 지시할 수 있다. header : WebSocket만으로는 표현이 불가능한 header를 작성할 수 있다. destination: 이 헤더로 메시지를 보내거나 구독을 할 수 있다. (pub/sub 구현) 예를 들어 아래 코드와 같이 유저A는 3번 채팅방을 구독할 수 있다. SUBSCRIBE destination: /subscribe/chat/room/3 ..
221104 TIL [Spring boot + React]실시간 채팅 기능 구현하기 - 2
·
성장이야기/TIL
어제 실시간 채팅 기능을 구현하기 위해 Http 방식보다는 WebSocket을 이용해서 구현하는게 더 효율적이라고 판단이되어 WebSocket을 이용해서 구현하기로 결정했다. 그런데 WebSocket을 사용하면 채팅방이 1개밖에 존재하지 못한다는 문제점이 있었다. 여러개의 채팅방이 필요했었기 때문에 WebSocket만으로는 내가 원하는 기능을 구현하지 못할것 같았다. 그래서 멀티 채팅방 기능을 구현할 수 있는 방법을 찾다 STOMP라는 것을 알게되었다. STOMP는 pub/sub패턴을 사용하기 때문에 멀티 채팅방을 구현할 수 있다는 것을 알게되었다. STOMP STOMP(Simple Text Oriented Messaging Protocol)는 메시지의 형식, 유형, 내용 등을 정의하여 메시징 전송을 효..
221103 TIL [Spring boot + React]실시간 채팅 기능 구현하기 - 1
·
성장이야기/TIL
축구 커뮤니티 사이트의 기능 중 하나인 실제 경기가 진행되는 시간에 채팅방이 열려 실시간으로 응원할 수 있는 기능을 구현하기 위해 실시간 채팅 기능을 구현하고자 한다. 아래 화면은 whimsical 디자인 툴을 이용해서 디자인한 화면인데 이 화면에서 가장 핵심은 실시간 응원인 실시간 채팅 기능이다. 그래서 오늘 짧게나마 실시간 채팅 구현 방법을 공부해 봤다. 우선 실시간으로 채팅을 구현하는 방법으로는 HTTP와 WebSoket 방법이 존재한다. HTTP의 특징 http통신의 특징부터 알아보자 http 통신은 단방향(비연결성)이다. 클라이언트가 보낸 요청에 대해 서버가 응답을 마치면 맺었던 연결을 끊어 버리는 비연결성 성질 request - response 구조이다. 서로 지속적으로 연결되어 있는 형태가 ..