안녕하세요

제가 관심있는 것들을 연구하고 가지고 놀며 기록하는 블로그입니다.

저에 대해 좀 더 알고싶다면 About_Me를 읽어주세요.

2025 목표

  1. 홈서버 구축 [완료]
  2. 리눅스 마스터 1급 취득
  3. 좀 더 내 이야기를 담아서 블로그 글 12개 쓰기(7/12). about은 제외 [진행중]
  4. 월 150은 투자/저축하기 [진행중]
  5. IELTS 6.0 이상 도전
6. 클라이밍 갈색 1개 풀기 [완료]



  • OAUTH2와 JWT

    OAuth2와 JWT는 현대 웹 애플리케이션에서 인증(Authentication) 과 인가(Authorization) 를 구현할 때 자주 마주치는 핵심 개념입니다.

  • Tiptap Redis 장애대응 시뮬레이션

    Tiptap 공동편집 에디터의 Redis 장애 시나리오를 기반으로 개선 사항과 대응 전략을 정리한 기술 포스트입니다.

  • Tiptap 공동편집 Editor

    Tiptap 에디터 최근 공동 편집 기능이 들어간 에디터를 만들고 있습니다. (25.03.24 ~) 언제까지 유효할진 모르겠지만, 공동편집 체험하기에 가볍게 띄워놨습니다.

  • 홈서버에서의 모니터링

    모니터링의 필요성 저는 최근 홈서버를 통해 블로그를 운영중입니다.현재의 사이트가 그 블로그이죠. 제 블로그는 이상하게도 자주 404에러가 발생하고 있었습니다. 블로그 외의 다른 서비스들을 많이 띄워놨지만 다른 서비스들은 아무 문제가 없었습니다.

  • SOLID

    SOILD 원칙 S: 단일 책임 원칙(Single Responsibility Principle, SRP) ‘하나의 객체가 하나의 책임만 져야 한다.’ 클래스를 단 한 가지 목표만 가지고 작성해야 한다.

  • 객체지향

    객체지향 객체 객체는 실세계의 개체를 의미합니다. 객체는 상태(field)와 동작(method)을 가지고 있습니다. 객체는 클래스의 인스턴스로 field에 상태를 저장하고 method로 동작을 표현합니다. 클래스 클래스는 탬플릿, 청사진과 같이 레시피와 비슷합니다.

  • Kafka

    일반적인 구조 점선은 구독을 의미하고, 실선은 요청 및 응답을 의미합니다. Producer 특정 Topic의 특정 파티션으로 메시지를 발행하는(생산하는) 생산체. 기본적으론 response를 받지 않는 단방향 통신입니다.

    Kafka
  • Push 서버 Kafka 도입기

    Kafka를 먼저 읽어보시면 이해가 더 잘되실겁니다. 도입기 기존에는 node 서버가 요청을 받아서 데이터를 가공하여 FCM으로 전달하는 서버로 구성되어 있었는데, 몇가지 문제가 있었습니다.

  • GitHub Action을 이용한 CI/CD 구축하기

    최근에는 젠킨스 대신 GitHub Action을 이용해 CI/CD 파이프라인을 구성하는 사례가 많아졌습니다. GitHub에 코드가 이미 호스팅되어 있는 환경에서는 설정이 간단하고 GitHub와의 연동이 원활하기 때문에 효과적입니다.

  • Git Hook을 통한 단순 배포

    1. 배포 개요 • 기본 개념: 로컬에서 Git에 push하면 서버의 Bare Repository에 코드가 업데이트되고, Git Hook(주로 post-receive)이 실행되어 최신 코드가 지정한 배포 디렉토리(DEPLOY_DIR)로 복사됩니다.

  • 온프레미스 환경에서의 패키지 추가 시 고려사항

    내부 개발 서버에서 chart.js(v4.4.7)를 새로 도입하던 중, @kurkle/color 의존성 문제로 인해 이슈가 발생했습니다.

  • 토스 러너스하이 1기 후기

    러너스하이 1기를 마치고 토스 러너스하이 1기가 끝난 지 벌써 한 달이 지났습니다. 너무 달려온 탓인지 지쳐서 빠르게 후기를 남기지 못했네요.

  • 토스 러너스하이

    이번에 토스 러너스하이 1기에 참여하게 되었습니다. 자세한 내용은 어디까지 말해도 되는지 잘 모르겠어서 다 말할 순 없겠지만 간략하게는 아래와 같습니다.

  • SSL 인증서

    각 요소의 정의 SSLCertificateKeyFile 서버의 **개인 키(Private Key)**가 저장된 파일을 가리킵니다.

  • 나도 Sping Boot Contributor?

    해보고 싶은게 많은 주니어 저장만 해두고 미뤄두었던 글들과 링크들을 하나씩 살펴보며 공부하는 요즘. 해보고 싶은 것들이 많이 생겼습니다.

  • Proxy

    프록시 프록시 서버(proxy server)란 “클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다.

  • Full Text Search Index 적용

    배경 우리 회사의 고질적인 VOC 중 하나로 채팅에서 검색 시 이전 채팅 데이터에서 내용, 파일, 이미지에 대해서 조회가 되는데 없는 단어로 검색 시(ex.

  • JDBC vs SQL Mapper(Mybatis) vs ORM(JPA)

    Java 개발자로 일하고 공부하며 JDBC와 JPA, Mybatis는 다 사용해봤지만, 이들의 차이점이 정확히 무엇인지, 어떨 때 사용하는 것이 좋을지 고민을 해본 적이 없어서 이번 기회에 정리해보려고 한다.

  • SSO(Single Sign-On)

    여러 개의 사이트, 서비스에서 한 번의 로그인으로 여러가지 다른 서비스와 사이트들에 자동적으로 접속하여 이용하는 로그인 방식. 사용자 정보를 연동하여 하나의 사용자 정보를 기반으로 여러 시스템을 하나의 통합 인증을 사용하게 하는 것을 말한다.

  • 대용량 데이터 update 방법(CTAS)

    사용자의 ID를 migration 해줘야 하는 작업이 생겼다. 그냥 UPDATE를 진행해보니 사용기간이 길어 업데이트 해야 할 데이터가 많아 프로세스가 종료되는 문제가 발생했다.

  • 디스코드 봇 버전업, 음악기능 추가

    이번에 같이 게임하는 친구들의 요청을 받아 디코봇에 유튜브 음악 스트리밍 기능을 추가해봤다. 기본적으론 github.com/brokiem/broki-s-music-bot/tree/master 해당 깃허브 소스를 참고했다.

  • Abstract vs Interface

    Interface와 Abstract Class는 상속(extends)받거나, 구현(implements)하는 Class가 Interface나 Abstract Class 안에 있는 Abstract Method를 구현하도록 강제하는 공통점을 가지고 있다.

  • Web Storage

    자바스크립트로 웹 개발을 하다보면 데이터를 저장할 일이 생기는데, 보통 이럴 때 데이터베이스(DB) 서버나 클라우드(Cloud) 플랫폼, 세션, 쿠키 등에 데이터를 저장하는 경우가 많습니다.

  • 디스코드 봇 만들어보기

    저는 게임을 좋아했습니다. 공부를 한다고 2년 정도 안하다가 최근 다시 시작했는데, 만들어보고 싶은게 생겼습니다. 유튜브를 보면 뽑기를 통해 강제로 특정 캐릭터를 올리는 룰을 진행하는데, 한 번 재밌어보여서 원랜디의 디스코드 봇을 만들어보고 싶어졌습니다.