프로필 로고 차가운 개발노트
close
프로필 배경
프로필 로고

차가운 개발노트

  • 분류 전체보기 (142)
    • Java (31)
    • SQL (12)
    • Spring (30)
    • React (15)
    • Next (5)
    • CS (17)
    • 라이브러리 (13)
    • React-native (4)
    • Git (2)
    • JavaScript (4)
    • 데이터베이스 이론 (3)
    • 설치 (3)
  • 홈
  • 태그
  • 방명록
[ 주니어 탈출기 ] 고수준 컴포넌트와 저수준 컴포넌트

[ 주니어 탈출기 ] 고수준 컴포넌트와 저수준 컴포넌트

코드를 짜다가 아래와 같은 경험을 겪었습니다."외부 카카오톡 알림톡 API 가 버전업 되었는데, 서비스 레이어 코드까찌 싹 다 고쳐야 하네" "데이터베이스를 MySQL 에서 MongoDB 로 바꾸자고 하는데, 비즈니스 로직 전체를 뜯어야 하는구나" 저와 같은 고통을 겪고 있는 개발자분들은, 100% 고수준 컴포넌트와 저수준 컴포넌트의 관계가 잘못 설계되었기 때문일 것입니다.이 글을 쓰는 목적은 두 개념을 완벽하게 마스터하고, 단단한 코드를 짜기 위해 정리할 겸 같은 고민을 겪고 있는 개발자들에게 조금이나마 도움이 될 것 같아 정리하였습니다. 컴포넌트란 무엇인가?본론으로 들어가기 전에 '컴포넌트' 라는 단어부터 짚고 넘어가자면, 컴포넌트라고 하면 프론트엔드의 React 컴포넌트가 먼저 떠오를 수 있지만, ..

  • format_list_bulleted Java
  • · 2026. 6. 2.
  • textsms
실시간 대시보드 성능 장애 해결기

실시간 대시보드 성능 장애 해결기

기존 코드의 문제점과 원인 분석회사에서 자체 개발하고 배포하고 있는 기존 시스템은 20초마다 차트를 실시간으로 갱신하는 구조였다.하지만 시간이 지날수록 대시보드가 느려지고 서버가 버벅이는 고질적인 문제가 발생하면서 이러한 문제점을 발견하고 고치는 부분을 기록한 블로그이다. 문제의 코드 data.setsTime(data.getsTime().substring(0,8) + "0800"); 프론트에서 20초마다 "최근 1분 전부터 현재까지" 의 신규 데이터만 요청을 하고 있었다.하지만 백에서 이 시작 시간을 강제로 아침 08:00 으로 고정하고 있는 코드를 발견하였다. 결국 최근의 1분전부터 현재까지의 데이터만 필요하지만 오후 17:00 에 차트를 갱신하게 되면서기존 데이터를 재사용하지 않고 9시간 치 누적 ..

  • format_list_bulleted Spring
  • · 2026. 5. 28.
  • textsms
[ 주니어 탈출기 ] "인터페이스랑 뭐가 다를까?" - abstract 의 활용법

[ 주니어 탈출기 ] "인터페이스랑 뭐가 다를까?" - abstract 의 활용법

문득 퇴근 후 개발 공부를 하다가 'interface 가 있는데 abstract 가 왜 필요할까?' 라는 궁금증에 정리해보았습니다."문법은 알겠고, abstract 붙이면 상속받아서 구현해야 하고, new 로 객체 생성을 못하고... 그러면 인터페이스랑 똑같네?" 만약 위와 같은 의문이 드셨으면 제가 이번에 정리한 글을 보시면 왜 abstract 를 사용하는지 알 수 있습니다.이 글을 통해 abstract 의 문법적 기초부터, 실무에서 인터페이스 대신 추상 클래스를 선택해야 하는 경우를 정리 해 보겠습니다. 추상의 개념미술에서 추상화(Abstract Art) 는 피카소의 그림처럼 형태를 알아보기 힘들게 핵심만 남겨두는 것입니다.소프트웨어에서도 똑같습니다. 추상화란 "지엽적이고 구체적인 세부 사항은 숨기고..

  • format_list_bulleted Java
  • · 2026. 5. 28.
  • textsms
1급 컬렉션

1급 컬렉션

소프트웨어를 만들 때 우리는 필연적으로 '여러 개의 데이터' 를 다루게 됩니다.이때 아무생각 없이 아래와 같은 코드를 짤 수가 있습니다.List orderItems = new ArrayList();List cars = new ArrayList();List lottoNumbers = new ArrayList(); 이렇게 컬렉션(List, Map, Set 등) 을 아무런 보호 장치 없이 서비스 레이어나 여기저기에 날것으로 노출하는 순간, 코드는 서서히 스파게티로 변하기 시작합니다. 1급 컬렉션이란?소트웍스 앤솔러지라는 책의 '객체지향 생활 체조 원칙' 에서 처음 제안하였습니다."컬렉션을 포함한 클래스는 반드시 다른 멤버 변수를 가지지 않아야 한다" 즉, List 나 Map 같은 컬렉션을 하나의 클래스로 꽁..

  • format_list_bulleted Java
  • · 2026. 5. 26.
  • textsms
[ 주니어 탈출기 ] 도메인(Domain) 개념 완벽 정리

[ 주니어 탈출기 ] 도메인(Domain) 개념 완벽 정리

다른 개발자분께서 도메인이 무엇이냐 라고 물어볼 때 정확히답변을 하지 못해 공부하면서 다른 개발자분들에게도 알려주기 위해 정리하였습니다. 다른 개발자들과 대화하거나 아키텍처 관련 책을 읽을 때 "도메인" 이라는 단어를 자주 들엇습니다."도메인 레이어를 분리해야 합니다.", "도메인 모델에 비즈니스 로직을 모으세요.", "그건 도메인이 아니라 인프라 영역입니다."대충 '비즈니스 로직이 들어가는 곳이네..' 하고 넘어가기는 했지만, 최근에 누군가 "그래서 도메인이 정확히 무엇인데?" 라고 물어보면 말문이 턱 막혔습니다. 따라서 오늘 이 글을 통해 소프트웨어 공학에서 말하는 도메인(Domain) 의 진짜 의미부터 시작해서, 왜 이 개념을 뼛속까지 이해해야 '지속 가능한 좋은 코드' 를 짤 수 있는지 아주 깊..

  • format_list_bulleted Java
  • · 2026. 5. 18.
  • textsms
하네스 엔지니어링에 대해서

하네스 엔지니어링에 대해서

회사에서 하네스 엔지니어링 스터디가 있어 개념을 정리했습니다. 기본개념하네스 엔지니어링을 간단하게 말하자면 AI 에이전트가 일을 잘하게 만드는 바깥 시스템을 설계하는 일을 말합니다.AI 가 업무를 끝까지 안정적으로 해낼 수 있게 환경을 설계하는 작업입니다. 단순히 프롬프트를 잘 쓰는 수준을 넘어서, 에이전트가 어떤 도구를 쓰고, 무엇을 참고해 어디서 검증을 하고, 실패하면 어떻게 복구할지 AI 의 작업 전반을 아우르는 실행 환경을 이용자가 구성하고 통제하는 개념이기 때문입니다. 이 개념은 본질을 AI 가 그 일을 안정적으로 수행하도록 환경과 규칙을 구성하는 것이라고도 할 수 있습니다.더 쉽게AI 가 작업하면서 길을 잃지 않도록 '안전한 놀이터' 와 '규칙' 을 만들어 주는 일 이라고 이해하면 됩니다.인공..

  • format_list_bulleted CS
  • · 2026. 5. 11.
  • textsms
IntelliJ 디버거

IntelliJ 디버거

프로그래밍을 하다 보면 점점 새로운 기능을 만드는 시간보다 버그를 찾는 시간이 더 많아집니다.처음에는 System.out.println , console.log 를 찍는 등 원시적인 방법으로 해도 충분하지만 점점 복잡한 프로그램과 복잡한 버그들을 다루면서 이런 단순한 기능으로는 충분하지 않게 됩니다. 이럴 때 버그를 찾기 위해 편한 여러 기능을 제공해 준느 걸 디버거 라고 합니다.보통은 IDE 에 내장 돼 있고, 흔히 제공되는 기능들이 정해져 있습니다. 사용법우선 내가 디버깅을 하고 싶은 코드로 가고 거기에 BreakPoint 를 추가하면 됩니다.디버깅을 하는 방법은 아래와 같이 2가지로 나누게 됩니다. 1. Line 번호가 있는 부분 마우스로 클릭하기2. Command + F8 단축키 사용 Brea..

  • format_list_bulleted Spring
  • · 2026. 5. 6.
  • textsms
좌충우돌 원격 서버 배포 및 Jenkins CI/CD 구축기

좌충우돌 원격 서버 배포 및 Jenkins CI/CD 구축기

이 글은 단순한 작업 기록을 넘어, 비슷한 문제를 겪을 동료들에게 가이드가 될 수 있도록 작성하였습니다. 단순히 "배포에 성공했다" 는 결과보다, 그 과정에서 마주친 수많은 'Permission Denied' 와 '접속불가' 메시지들을 어떻게 논리적으로 해결했는지 초점을 맞췄습니다. 저와 같은 주니어 개발자분들에게 이 글이 도움이 됐으면 좋겠습니다. 대두분을 로컬 환경에서 테스트를 하고 Git 에 배포하는 과정만 하다가 실제 서비스를 24시간 꺼지지 않는 별도의 서버에 돌아가게 만들어보라는 요청에 Maven 과 Spring 기반의 프로젝트를 회사 원격 서버에 올리는 임무를 진행했습니다. Terminus 를 통해 서버에 접속하여 보안상 공용 계정이 아닌 내 전용 계정을 생성하여 작업을 진행하였습니다.톰캣..

  • format_list_bulleted Java
  • · 2026. 4. 28.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • ···
  • 18
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (142)
    • Java (31)
    • SQL (12)
    • Spring (30)
    • React (15)
    • Next (5)
    • CS (17)
    • 라이브러리 (13)
    • React-native (4)
    • Git (2)
    • JavaScript (4)
    • 데이터베이스 이론 (3)
    • 설치 (3)
최근 글
인기 글
최근 댓글
태그
  • #React-Native
  • #데이터베이스
  • #CS
  • #SQL
  • #Spring
  • #Java
  • #react
  • #NEXT
  • #라이브러리
  • #Next.js
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바