프로필 로고 차가운 개발노트
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
IntelliJ 디버거

IntelliJ 디버거

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

  • format_list_bulleted Spring
  • · 2026. 5. 6.
  • textsms
빈 검증에 대하여

빈 검증에 대하여

Bean Validation검증 애노테이션과 여러 인터페이스의 모음이며 마치 JPA 가 표준 기술이고 그 구현체로 하이버네이트가 있는 것과 같다. Bean Validation 을 사용하려면 다음과 같은 의존관계를 추가해야 한다.build.gradleimplementation 'org.springframework.boot:spring-boot-starter-validation' @Data@NoArgsConstructor@AllArgsConstructorpublic class Item { private Long id; @NotBlank private String itemName; @NotNull @Range(min = 1000, max = 100000) private Integer price; @NotNul..

  • format_list_bulleted Java
  • · 2026. 3. 23.
  • textsms
필터와 인터셉터

필터와 인터셉터

Filter 와 Interceptor 가 필요한 이유는 모든 로직에 대하여 인증 절차를 처리하는 Logic 이 있다면, 하나하나 등록을 하는 것 보다 한번에 처리할 수 있는 기능이 있으면 유지보수 하기 쉬워 사용하는 것이다.이렇게 애플리케이션 여러 로직에서 공통으로 관심이 있는 것을 공통 관심사(Cross-cutting concern) 이라고 한다. 필터 (Filter)필터를 적용하면 필터가 호출 된 다음에 서블릿이 호출된다.그래서 모든 고객의 요청 로그를 남기는 요구사항이 존재한다면 필터를 사용하면 된다.HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 컨트롤러 참고로 스프링을 사용하는 경우 여기서 말하는 서블릿은 스프링의 디스패터 서블릿으로 생각하면 된다. 필터 체인 (Filter Chain)..

  • format_list_bulleted Java
  • · 2026. 3. 16.
  • textsms
마이바티스

마이바티스

마이바티스 MyBatis 는 JdbcTemplate 보다 더 많은 기능을 제공하는 SQL Mapper 이다.JdbcTemplate 와 비교해서 MyBatis 의 가장 매력적인 점은 SQL 을 XML 에 편리하게 작성할 수 있고 또 동적 쿼리를 매우 편리하게 작성할 수 있다.jdbcTemplateString sql = "update item" +"set item_name:itemName, price=:price, quantity=:quantity" +"where id=:id"; Mybatis update item set item_name = #{itemName}, price = #{price}, quantity = #{quantity} where id = #{id}또한 동적 쿼리도 아주 손쉽게 적용시킬..

  • format_list_bulleted Java
  • · 2026. 3. 5.
  • textsms
Maven, Gradle 이란

Maven, Gradle 이란

Gradle과 Maven 을 설명하기 전에 우선 빌드와 빌드도구가 무엇인지에 대해서 알아야 합니다.빌드란 프로그램을 실행 가능한 배포 파일을 만들어 내는 것을 의미합니다. 즉, 소스 코드를 컴파일하고, 컴파일된 클래스 파일과 리소스 파일등 프로그램 실행에 관련된 파일들을 패키징 하여, 배포 가능한 형태로 만드는 것을 의미합니다.빌드가 생성되는 과정에서 이루어지는 과정컴파일, 테스트, 패키징, 의존성 관리, 배포, 클린업, 리포트 빌드 도구는 이러한 일련의 빌드 과정을 자동화해주는 소프트웨어입니다. 설정 파일을 통해 필요한 작업을 정의하고 클릭 한 번으로 모든 의존 라이브러리(jar 파일) 을 다운로드해 컴파일하고, 테스트하고, 패키징하여 배포까지 자동으로 처리할 수 있습니다. 이로 인해 배포 작업이 간편..

  • format_list_bulleted CS
  • · 2025. 2. 26.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • 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
  • #Next.js
  • #CS
  • #React-Native
  • #데이터베이스
  • #NEXT
  • #Spring
  • #Java
  • #SQL
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바