TIL(198)
-
Apache Kafka 적용시키기
Kafka 설치를 위한 docker-compse.yml 작성 (루트 디렉토리에 위치)version: '3.8'services: zookeeper: image: confluentinc/cp-zookeeper:latest container_name: zookeeper environment: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 ports: - 2181:2181 kafka: image: confluentinc/cp-kafka:latest container_name: kafka depends_on: - zookeeper environment: KAFKA_BROKE..
2024.12.31 -
Apache Kafka
✔오늘 배운 중요한 🔑 pointKafka는 데이터(Data)를 생성자(Producer)에서 소비자(Consumer)로 전달하는 역할Data는 Topic에 적재되고 소비자들은 필요할때 Topic에서 Data를 가져간다.🎯 오늘 배운 내용 Apache Kafka란?분산 스트리밍 플랫폼으로 대규모 데이터 스트리밍과 실시간 데이터 처리를 위한 핵심 기술 Kafka의 요소 Topic데이터를 저장하는 논리적 단위Producer가 데이터를 Topic으로 보냄Consumer가 해당 Topic을 Subscribe하여 데이터를 읽음Topic은 Partition으로 나뉘며 데이터 병렬 처리를 지원함 Partition데이터를 물리적으로 분산 저장하는 단위각 Partition은 메세지의 순서를 보장Partition을 통..
2024.12.30 -
친구 목록 조회 기능 구현
친구 수락 로직 변경@Transactionalfun acceptFriendRequest(userId: Long, senderId: Long): FriendShipDto { val friendRequest = friendRequestRepository.findBySenderIdAndReceiverId(senderId = senderId, receiverId = userId) ?: throw IllegalArgumentException("친구 요청을 찾을 수 없습니다.") val user = oAuthRepository.findById(userId).getOrNull() val sender = oAuthRepository.findById(senderId).getOrNull() ..
2024.12.27 -
사용자 친구 추가 기능 구현
아주 기본적인 채팅 구현과 사용자 초대의 기능구현을 완료했으므로 , 이 다음은 사용자의 친구 추가 기능을 구현할 것이다. 친구 추가 요청,수락 거절 등은 HTTP요청으로 처리하고 친구 요청의 상태는 WebSocket을 이용하여 실시간으로 업데이트 하는 식으로 구현해 보았다. 친구 관계를 정의하는 엔티티 생성더보기package hjp.hjchat.domain.member.entityimport hjp.hjchat.domain.member.dto.FriendshipStatusimport jakarta.persistence.*import java.time.LocalDateTime@Entity@Table(name = "friendships")class Friendship( @Id @GeneratedVal..
2024.12.26 -
𝒘𝒆𝒃𝒔𝒐𝒄𝒌𝒆𝒕에서 사용자 정보 가져오기 오류
❎ 문제발생클라이언트에서 메시지를 보낼때 오류가 발생하였다. fun processMessage(message: MessageDto, user: UserPrincipal): Message { val chatRoom = chatRoomRepository.findById(message.chatRoomId) .orElseThrow { IllegalArgumentException("Chat room not found") } val member = oAuthRepository.findById(user.memberId) .orElseThrow { IllegalArgumentException("Member not found") } return messageRepository.s..
2024.12.25 -
WebSocket을 이용해서 실시간 채팅 구현하기
의존성 추가더보기dependencies { implementation ("org.springframework.boot:spring-boot-starter-websocket")} websocketconfig더보기package hjp.hjchat.infra.security.jwt.websocketimport org.springframework.context.annotation.Configurationimport org.springframework.messaging.simp.config.MessageBrokerRegistryimport org.springframework.web.socket.config.annotation.EnableWebSocketMessageBrokerimport org.springf..
2024.12.24