전체 글에 해당하는 글 293

  1. javax.management.InstanceNotFoundException: org.springframework.boot:type=Admin,name=SpringApplication (feat.JMX의 역할) 2024.07.23

    이번에 Spring framework로 구성되어 있던 기존 서비스를 Spring Boot로 올리면서 우여곡절을 많이 겪고 있다.Boot로 올린 후 테스트삼아 서버를 켜봤는데, 아래와 같은 에러메시지가 떴다.javax.management.InstanceNotFoundException: org.springframework.boot:type=Admin,name=SpringApplication at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1095) ~[na:1.8.0_161] at com.sun.jmx.interceptor.DefaultMBeanServerInterc..


  2. mybatis xml파일 내 if문에서 단일 문자로 비교되지 않는 문제 2024.07.16

    주어진 state에 따라 WHERE절 내 조건이 변경되는 쿼리를 작성할 일이 있었다.그래서 아래와 같이 state가 'Q' 일 때 어떤 조건을 추가하도록 작성하고 테스트를 진행했다.... AND start_date IS NULL  근데.. 분명 Q를 state에 넣어주고 테스트를 진행했음에도 if문 내의 조건문이 추가되지 않는 이슈가 있었다.원인을 찾아 보니, 작은 따옴표(') 사이에 하나의 문자만 넣으면 string이 아닌 char로 인식하여 숫자로 변환해 버린다.즉, 저 코드로는 숫자 81로 비교가 되고 있는 것이다...   그래서 어떻게 하면 의도대로 작동하는가?작은 따옴표(') 대신 큰따옴표(")를 사용하면 바로 해결된다. ... ..


  3. [LeetCode] Merge Strings Alternately 2024.06.27

    https://leetcode.com/problems/merge-strings-alternately/description/?envType=study-plan-v2&envId=leetcode-75 문제 설명You are given two strings word1 and word2. Merge the strings by adding letters in alternating order, starting with word1. If a string is longer than the other, append the additional letters onto the end of the merged string.Return the merged string.Example 1:Input: word1 = "abc", wor..


  4. [프로그래머스] 추억 점수 2024.06.23

    https://school.programmers.co.kr/learn/courses/30/lessons/176963 문제 설명사진들을 보며 추억에 젖어 있던 루는 사진별로 추억 점수를 매길려고 합니다. 사진 속에 나오는 인물의 그리움 점수를 모두 합산한 값이 해당 사진의 추억 점수가 됩니다. 예를 들어 사진 속 인물의 이름이 ["may", "kein", "kain"]이고 각 인물의 그리움 점수가 [5점, 10점, 1점]일 때 ,해당 사진의 추억 점수는 16(5 + 10 + 1)점이 됩니다. 다른 사진 속 인물의 이름이 ["kali", "mari", "don", "tony"]이고 ["kali", "mari", "don"]의 그리움 점수가 각각 [11점, 1점, 55점]]이고,"tony"는 그리움 점수가 없..


  5. [프로그래머스] 가장 많이 받은 선물 2024.06.19

    https://school.programmers.co.kr/learn/courses/30/lessons/258712 선물을 직접 전하기 힘들 때 카카오톡 선물하기 기능을 이용해 축하 선물을 보낼 수 있습니다. 당신의 친구들이 이번 달까지 선물을 주고받은 기록을 바탕으로 다음 달에 누가 선물을 많이 받을지 예측하려고 합니다. - 두 사람이 선물을 주고받은 기록이 있다면, 이번 달까지 두 사람 사이에 더 많은 선물을 준 사람이 다음 달에 선물을 하나 받습니다.ex) A가 B에게 선물을 5번 줬고, B가 A에게 선물을 3번 줬다면 다음 달엔 A가 B에게 선물을 하나 받습니다.- 두 사람이 선물을 주고받은 기록이 하나도 없거나 주고받은 수가 같다면, 선물 지수가 더 큰 사람이 선물 지수가 더 작은 사람에게 선물..


  6. debounce 검색 바 만들기, ReturnType 2024.05.21

    검색용 컴포넌트를 구현함에 있어서, 타자를 칠 때마다 API를 날려 매번 DB를 조회하기보다는입력 후 지연시간을 두어 검색 API를 날릴 수 있도록 했다. 전체 코드import React, { useState, useEffect } from 'react';const SearchComponent = () => { const [searchTerm, setSearchTerm] = useState(''); const [searchResults, setSearchResults] = useState([]); const [timeoutId, setTimeoutId] = useState | null>(null); const fetchSearchResults = async (term: string) => { ..


  7. JSON.parse한 Object 내 프로퍼티가 undefined로 나오는 경우 2024.04.24

    빠른 결론JSON.parse 두번 하거나 정규식으로 이스케이프 문자를 제거하면 된다.  JSON을 문자열화한 값을 서버에서 받아서 프론트에서는 그 문자열을 파싱해서 사용한다고 하자. const original = "{\"type\":\"test\",\"content\":{\"title\":\"타 이 틀\",\"content\":\"내용\"}}";const parsedData = JSON.parse(original); console.log(parsedData); // {"type":"test", "content":{"title":"타이틀", "content":"내용"}}console.log(parsedData.type); // undefined 위처럼 코드를 작성했는데 parsedDat..


  8. 알림서비스를 위해 웹소켓 통신을 rabbitMQ로 대체하기 2024.04.22

    전제 조건- 웹소켓 서버에 알림을 발송하는 REST API가 존재함- 여러 개의 클라이언트와 웹소켓 서버가 연결되어 있음- 백엔드 서버도 클라이언트와 같은 방식으로 웹소켓 서버와 연결되어 있음 웹소켓은 양방향 통신이 가능한 프로토콜.실시간성이 엄청 중요한 알림이 아니었기 때문에 굳이 웹소켓을 사용할 필요는 없다. 알림을 발송할 때 필요한 것1. (타겟 유저의 클라이언트가 켜져 있다면) 유저 클라이언트에게 알림을 보낸다.2. 데이터베이스에 알림 이력을 쌓는다. 이러나 저러나 알림 이력을 쌓을거라면 무조건 알림도 보내고 이력도 쌓으면 되지 않나?어차피 API는 이미 만들어져 있으니.. 클라이언트가 꺼져 있다면 알림은 도착하지 않고 재로그인시 n건의 알림이 있다고 알려줄 거니까. 어떤 이유로 잠시 웹소켓이 꺼..


  9. 커스텀 프로토콜로 일렉트론 클라이언트 실행시키기 2024.04.09

    목적일렉트론으로 빌드한 A,B 클라이언트가 있다고 하자.커스텀 프로토콜을 활용하여 A 클라이언트 내에서 로그인 후 특정 버튼을 클릭하면,B 클라이언트가 실행되면서 A에서 로그인한 정보까지 넘겨주려고 한다. 슬랙 웹페이지에서 슬랙 애플리케이션을 실행시켜 주듯이...거기다 특정 페이지로 이동까지 시키는 등 다양한 액션이 필요할 수 있다. 우선! windowsOS와 macOS가 각각 작동하는 방식이 다르기 때문에..여기저기서 쿠키를 등록할 수 있으므로 같은 코드 반복을 방지하기 위해 관련 처리 함수를 만든다. const setCookie = async (key: string, value: string) => { session.defaultSession.cookies.set({ domain: ".doo..


  10. 일렉트론 로그 확인하기 2024.04.09

    일렉트론으로 만든 클라이언트를 디버깅할 때 console.log로 찍은 메시지가 클라이언트의 개발자 도구에서 항상 보이지는 않는다. 왜냐하면, 일렉트론에는 메인 프로세스와 렌더러 프로세스가 있고 console.log는 각 프로세스별로 실행되기 때문이다.메인 프로세스는 애플리케이션의 생명 주기를 제어하고, 렌더러 프로세스는 웹 페이지를 렌더링한다.따라서 콘솔을 어디서 찍었느냐에 따라 개발자 도구로 확인이 불가할 수 있다. 메인 프로세스에서 콘솔을 찍으면 (VSCode에서 실행한 경우) VSCode의 터미널에서 확인이 가능하고,렌더러 프로세스에서 콘솔을 찍으면 실행된 애플리케이션의 개발자 도구에서 확인이 가능하다. 그럼 VSCode가 아니라 빌드한 애플리케이션을 따로 실행한 경우에는 메인 프로세스의 콘솔을 ..