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

차가운 개발노트

  • 분류 전체보기 (142)
    • Java (31)
    • SQL (12)
    • Spring (30)
    • React (15)
    • Next (5)
    • CS (17)
    • 라이브러리 (13)
    • React-native (4)
    • Git (2)
    • JavaScript (4)
    • 데이터베이스 이론 (3)
    • 설치 (3)
  • 홈
  • 태그
  • 방명록
실시간 대시보드 성능 장애 해결기

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

기존 코드의 문제점과 원인 분석회사에서 자체 개발하고 배포하고 있는 기존 시스템은 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
IntelliJ 디버거

IntelliJ 디버거

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

  • format_list_bulleted Spring
  • · 2026. 5. 6.
  • textsms
Querydsl

Querydsl

Querydsl 을 공부하면서 내가 온전히 이해한 건지 정리하면서도 다른 개발자분들도 이해하기 쉽게 정리해 보았습니다. 시작하기에 앞서JPA 를 기본적으로 알고있다고 가정하고 블로그를 정리합니다. 간단하게 순수 JPQL 과 Querydsl 을 사용했을 때 차이점을 설명하면서 시작하겠습니다. 우선 테스트용 Member 를 설정했습니다.@SpringBootTest@Transactionalpublic class QuerydslBasicTest { @PersistenceContext EntityManager em; @BeforeEach public void before() { Team teamA = new Team("TeamA"); Team teamB = new Team("Tea..

  • format_list_bulleted Spring
  • · 2025. 11. 12.
  • textsms
Swagger

Swagger

SwaggerSwagger 는 REST API 를 문서화하고, 웹 UI 를 통해서 테스트까지 할 수 있게 도와주는 도구입니다. Swagger 는 API 의 메뉴판이라는 말도 있습니다.개발자가 만든 API(서버 기능 목록) 을 정리해서 보여주며, 웹 화면으로 API 를 직접 눌러보고 테스트 할 수 있습니다.또한 문서를 따로 쓰지 않아도 코드에 따라 자동으로 만들어줍니다.즉, Swagger = API 메뉴판 + 테스트 도구 사용하는 이유 예를 들어, 개발자가 "로그인 API" 를 만들었다고 해봅시다. API 주소: POST /login요청(Request): id, password응답(Response): 200 성공, 400 실패 위와 같은 요구사항이 발생했을 때 문서로 정리를 하지 않는다면 팀원들이 헷갈..

  • format_list_bulleted Spring
  • · 2025. 10. 2.
  • textsms
WAR 배포 및 분석

WAR 배포 및 분석

간단한 용어설명WAS(웹 애플리케이션 서버 Tomcat, 웹 서버 + 서블릿 컨테이너 기능 제공)서블릿 컨테이너(Catalina, 서블릿을 관리하는 곳, Tomcat 이라고도 함)스프링 컨테이너(Controller, Service 등 Bean 을 관리하는 곳)서블릿(Servlet, Client 의 모든 요청을 받아서 -> 스프링이 만든 Controller 에게 배분)WARWAR(Web Application Archive) 라는 이름에서 알수가 있듯이 WAR 파일은 웹 애플리케이션 서버(WAS) 에 배포할 때 사용하는 파일입니다. JAR 파일이 JVM 위에서 실행된다면, WAR 는 웹 애플리케이션 서버(WAS) 위에서 실행됩니다.HTML 같은 정적 리소스와 클래스 파일을 모두 함께 포함하기 때문에 JAR ..

  • format_list_bulleted Spring
  • · 2025. 9. 25.
  • textsms
Spring 외부설정, 조회방법

Spring 외부설정, 조회방법

외부설정이란하나의 애플리케이션을 여러 다른 환경에서 사용해야 할 때가 있습니다.개발환경, 운영환경에 따라 URL, DB 경로등을 다양하게 설정해야 하기 때문에 외부 설정이 필요합니다. 그래서 개발용 app.jar, 운영용 app.jar 파일을 설정하는 것이 아니라 하나의 app.jar 를 개발하고 배포한 뒤에 각 환경에 맞추어 실행 시점에 외부 설정값을 주입하면 한번만 빌드해도 되고, 개발버전과 운영버전의 빌드 결과물이 같기 때문에 개발환경에서 검증되면 운영 환경에서도 믿고 사용할 수가 있습니다.유지보수하기 좋은 애플리케이션 개발의 가장 큰 기본 원칙은 변하는 것과 변하지 않는 것을 분리하는 것입니다. 외부설정방법외부 설정을 하는 방법은 일반적으로 다음 4가지 방법이 있습니다.1. OS 환경변수2. 자바..

  • format_list_bulleted Spring
  • · 2025. 9. 22.
  • textsms
JPA 의 OSIV

JPA 의 OSIV

OSIV (open Session/Entitymanger In View) 이 글은 JPA에 대한 기본 지식을 가지고 있다고 가정하며 설명했습니다. OSIVOSIV 의 전제 조건은 "요청(Request) 전체 동안 영속성 컨텍스트를 열어 둘 것인가?" 라는게 OSIV 의 핵심입니다.JPA 에서는 데이터를 가져올 때 EntityManger(영속성 컨텍스트) 라는 "문" 을 열어주어야 합니다.이 문을 언제 닫느냐가 OSIV 설정에 따라 달라지게 됩니다. OSIV 에서는 설정이 2가지가 있습니다. ON, OFF 입니다.ON 은 요청이 시작해서 끝날 때까지 문을 계속 열어두는 것이고, OFF 는 서비스(Service, 비즈니스로직) 이 끝나면 바로 문을 닫는 것입니다. ON 일때영속성 컨텍스트 범위를 Filter..

  • format_list_bulleted Spring
  • · 2025. 9. 11.
  • textsms
JPA 에 대하여

JPA 에 대하여

나중에 찾아보고 사용하기 위해 정리합니다. ㅎㅎ Entity@Entitypublic class user { @Id @GeneratedValue private Long id;} 해당 클래스가 JPA 에서 관리하는 Entity Class 임을 나타냅니다.해당 Class 는 DB 의 Table 로 Mapping 되며, 기본생성자(public or protected) 가 꼭 필요합니다.또한 해당 Class 에는 @Id 가 붙은 필드가 하나 이상 있어야 합니다. 다른 코드들을 보면 기본 생성자를 안 넣고 @Entity 를 사용해도 오류가 발생하지 않는데 그 이유는 자바는 생성자를 하나도 안 만들면 컴파일러가 자동으로 기본 생성자를 만들어 주기 때문입니다. Table@Entity@Table(name = "use..

  • format_list_bulleted Spring
  • · 2025. 8. 25.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 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)
최근 글
인기 글
최근 댓글
태그
  • #CS
  • #SQL
  • #데이터베이스
  • #Spring
  • #Next.js
  • #react
  • #라이브러리
  • #NEXT
  • #React-Native
  • #Java
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바