전체 글 323

[Leetcode Top Interview 150] 88. Merged Sorted Array

난이도 : easy 문제 링크 - num1, num2라는 두개의 int 배열이 있다 (non-decreasing order) - m과 n은 각각 배열의 정렬하고자 하는 범위를 뜻함 - 요구사항 num1과 num2를 하나의 배열로 병합하라 (non-decreasing order) - 함수에 의해 리턴되는 것이 아닌, 기존의 num1 변수에 저장되게끔 구현하기 1. 접근법 - 배열의 정렬 및 병합을 하기 위해서 각각의 원소들에 접근하여 크기를 비교한 후, nums1의 원소가 크면 한칸씩 미뤄주고, 삽입을 시도 nums2의 원소가 크면 배열 유지 - m, n값까지만 병합의 대상이 되는 배열이므로 삽입 필요 여부에 따라 m 혹은 n 값을 줄여가면서 반복함 - nums1이 target array이므로, point..

Algorithm/(Java) PS 2023.08.23

[Stomp] Spring Boot with React 채팅 서버 : 3-2. Stomp 기본 설정

1. WebSocketConfig.java 중요한 내용은 주석에 달려있음 @EnableWebSocketMessageBroker websocket의 구현체를 사용할 경우 (대표적으로 stomp) 설정파일에 붙여줌 @Configuration @EnableWebSocketMessageBroker public class WebSocketConfig implements WebSocketMessageBrokerConfigurer { @Override public void registerStompEndpoints(StompEndpointRegistry registry) { // socketJs 클라이언트가 WebSocket 핸드셰이크를 하기 위해 연결할 endpoint를 지정할 수 있다. registry.addEnd..

Spring/Spring Stomp 2022.03.14

[React] Spring Boot with React 채팅 서버 : 5. components

1. navigation 채팅이 내가 있는 방에 도착하게 될 경우 네비게이션 오른쪽 상단의 messenger icon에 빨간색 원을 그려줌 처음 componenet가 렌더링 될 때, dispatch() 함수를 호출하여 client값을 store에 save함 로그인 성공 이후 localstorage에 저장된 email을 가지고 사용자 정보를 서버에 요청하며 로그아웃 시 email 값이 remove되므로 userdata가 undefined일 경우 login 창으로 redirect 시켜 로그인하도록 함 const Navigation = () => { const email = localStorage.getItem("email"); const { data: userData, error, revalidate, mu..

Javascript/React 2022.03.13

[React] Spring Boot with React 채팅 서버 : 4. redux

/messenger path로 오게될 경우, 서버와의 stomp handshake가 이루어진다. navigation 컴포넌트에서 최초의 핸드쉐이크 요청을 하며, 이후 채팅방에서 채팅을 하게 될경우도 핸드쉐이크 후 반환받은 stomp client를 재사용하여 채팅하는데 사용한다. 이를 위해 컴포넌트간 전역적으로 stomp client 객체를 공유하여 사용한다. 컴포넌트간 전역적 공유 방법에는 여러가지 방법이 있다. 현재 사용하고 있는 swr을 비롯하여 redux 등이 대표적이다 프로젝트간 사용하고 있는 모듈로 진행하는 방식이 일관성있고 좋다. 하지만 stomp client는 단순 데이터가 아니여서 localstorage에 보관하는 방식이 적절하지 않고 json 데이터로 다시 불러오는데도 함수속성을 읽는데 ..

Javascript/React 2022.03.13

[React] Spring Boot with React 채팅 서버 : 2-3. utils

1. Cookie universal-cookie 모듈을 사용하여 브라우저의 쿠키 값을 key-value 형식으로 가져오고 지우는 커스텀 함수를 export 하였음 oauth 로그인 성공 시에 로그인 email을 쿠키에 저장한 후 swr 모듈로 사용자 정보를 요청하여 컴포넌트간 전역적인 접근을 위해 사용될 것임 로그아웃 시 removeCookie() 함수로 email 값을 지워 관리할 것 import Cookies from "universal-cookie"; const cookies = new Cookies(); export const getCookie = (name) => { return cookies.get(name); } export const removeCookie = (name) => { retu..

Javascript/React 2022.03.10

[React] Spring Boot with React 채팅 서버 : 2-2. typings

1. db.ts 타입스크립트를 사용하므로 채팅 서비스에서 사용될 타입들을 정의해두는 파일 IChatUser 채팅방에 있는 사용자들의 정보를 받을 타입입니다 채팅방 정보 요청시 채팅방 멤버들의 정보를 리턴받게 되는데, 위의 정보만을 서버에서 내려주므로 이렇게 구성하였습니다. export interface IChatUser { userId: number; nickname: string; email: string; profileImage: string; } IChatMessage 채팅 메시지 타입 export interface IChatMessage { // DM 채팅 chatMessageId: number; authorId: number; // 보낸 사람 아이디 message: string; createdA..

Javascript/React 2022.03.10