• ABOUT
  • POSTS
  • GUESTBOOK

© 2025 BlueCool12 All rights reserved.

ALL

  • Backend
    • Java
    • Spring Boot
  • Frontend
    • React
    • Next.js
  • DevOps
    • Linux
  • CS
    • 자료구조
  • Dev
    • Tips
    • 트러블슈팅
  • 🤝 읽기 좋은 코드를 위한 네이밍 컨벤션 가이드

    Tips

    네이밍 컨벤션이 중요한 이유? 개발 과정에서 가장 많이 하는 일은 사실상 코드 작성보다 코드를 읽는 일이다. 이때 변수나 함수의 이름은 코드의 의미를 빠르게 파악할 수 있게 해주는 가장 중요한 단서이다. 또한 일관된 네이밍 컨벤션은 팀 전체의 협업 효율성과 유지보수성을 높여준다. 범용적으로 사용되는 네이밍 스타일에 대해 알아보자. 이름 표기 방식 (Case 스타일)네이밍 컨벤션에는 여러 가지 표기법이 존재한다. 각 스타일은 쓰임새에 따라 적절

    2025.09.05
  • 🎮 Controlled와 Uncontrolled - 리액트 폼 컴포넌트 이해하기

    React

    폼을 만들 때 상태를 컴포넌트가 관리하는 것을 Controlled 브라우저 DOM에 맡기는 것을 Uncontrolled 라고 한다. 두 방식의 기본 개념과 차이점에 대해 알아보자. [기본 개념] 제어 컴포넌트(Controlled Component) 입력값의 단일 소스를 리액트 state로 두어 렌더링 시 input value가 채워지고 사용자가 타이핑 하면 onChange 함수로 state가 업데이트되어 리렌더링이 일어나는 방식이다. 예측이

    2025.08.31
  • 🐞 JPA N+1 문제 - Fetch Join & EntityGraph

    트러블슈팅

    [문제 요약] 증상: 글 목록 페이지에서 글 조회 시 Category를 건별로 추가 조회 (N+1 문제 발생) 원인: JPA 쿼리에서 fetch join을 명시하지 않아 발생 해결: @EntityGraph(attributePaths = “category”)로 한 번에 조회 기존에는 글 목록을 조회 시 JpaRepository에서 아래와 같은 쿼리를 실행하였다. @Query(""" SELECT p FROM Post p W

    2025.08.30
  • 🔣 메타문자 이해로 시작하는 정규표현식

    Tips

    개발을 하다 보면 특정 텍스트만 골라내거나 구분해야 하는 순간이 찾아온다. 이때 가장 빠르고 가벼우며 어디서나 사용할 수 있는 것이 정규표현식(Regular Expression, regex)이다. 정규표현식을 잘 사용하기 위해서는 패턴의 의미를 바꾸는 메타문자에 대해 이해하는 것이 중요하다. 메타문자는 일반 문자와 달리 특별한 동작을 수행해 텍스트를 더 정확하고 짧게 찾고 검증하고 치환하고 추출할 수 있게 한다. [메타문자] 정규식은 "토큰

    2025.08.27
  • 🔄 자바 Stream API 가이드 - 생성, 연산, 장단점 정리

    Java

    Stream API란?Java 8에서 도입된 Stream API는 데이터 처리(필터링, 변환, 집계 등)를 함수형 스타일로 작성할 수 있도록 돕는 도구이다. 기존의 for 루프 기반 처리보다 간결하고 가독성 높은 코드를 작성할 수 있게 도와준다. *Stream 동작 방식Stream은 크게 중간 연산과 최종 연산으로 나뉜다. 중간 연산 (Intermediate Operation)데이터를 변환, 필터링, 정렬하는 과정을 담당하며 Stream 파

    2025.08.12
  • 📑 자바 자료형 완전 정리 [기본형, 참조형, Wrapper 클래스]

    Java

    자바에서 자료형(Data Type)은 변수가 어떤 종류의 데이터를 저장할 수 있는지를 정의한다. 크게 기본형(Primitive Type)과 참조형(Reference Type)으로 나눌 수 있다. 1. 기본형 (Primitive Type)기본형은 값 자체를 저장하는 타입이다. 총 8가지가 존재하며 메모리에 바로 값이 저장된다. 각 타입별 메모리 크기와 기본값은 아래와 같다. 정수형byte - 1 byte - 0short - 2 byte - 0i

    2025.08.11
  • 🔑 SSH & SFTP 기초 가이드 - 서버 접속과 파일 전송

    Linux

    서버를 운영하기 위해서는 두 가지 작업이 필수적이다. 첫 번째로 서버에 접속하는 것 → SSH(Secure Shell) 두 번째로 서버와 파일을 주고받는 것 → SFTP(SSH File Transfer Protocol) SSH란?SSH(Secure Shell)는 네트워크를 통해 서버에 안전하게 접속할 수 있는 프로토콜이다. 암호화된 통신을 사용하기 때문에 ID/비밀번호나 데이터가 중간에서 탈취될 위험이 적다. SSH 접속 방법 터미널을 통해

    2025.08.09
  • 🧱 스택(Stack)과 큐(Queue) 기본 개념과 활용 예시

    자료구조

    스택(Stack)과 큐(Queue)는 가장 기본적인 자료구조로 둘 다 데이터를 넣고 꺼내는 방식에 관한 자료구조이지만 데이터가 들어간 순서에 따라 꺼내는 방식이 다르다. 각각의 기본 개념과 차이점에 대해 알아보자. 스택(Stack)이란? 스택은 “쌓는다”는 개념에 가장 잘 어울리는 자료구조이다. 가장 나중에 넣은 데이터가 가장 먼저 나오는 구조로써 후입선출(LIFO, Last-In-First-Out) 방식으로 동작한다. 주요 기능push(i

    2025.08.06
  • 📄 Pageable로 페이징 처리 쉽게 구현하기 (+Spring Data JPA)

    Spring Boot

    블로그나 커뮤니티 게시판처럼 많은 데이터를 다루는 서비스에서 모든 데이터를 한 번에 내려주는 것은 비효율적일 뿐만 아니라 사용자 경험까지 해칠 수 있다. 서버 입장에서는 과도한 부하가 발생하고 클라이언트 브라우저는 불필요한 네트워크 낭비와 함께 렌더링 시간 지연을 겪게 된다. 이런 문제를 해결하는 대표적인 방법이 바로 페이징 처리(Pagination)이다. 백엔드에서 데이터를 일정 단위로 나누어 전달하면 클라이언트는 필요한 페이지만 요청하고 효

    2025.08.01
  • 🗃️ Redux 제대로 이해하기 - Store, Action, Reducer, Dispatch

    React

    리액트에서 상태 관리는 기본적으로 props를 통해 이루어진다. 하지만 애플리케이션이 커지고 컴포넌트가 많아질수록 상태를 여러 컴포넌트에서 공유하거나 깊게 전달해야 하는 상황이 발생하면서 코드가 복잡해질 수 있다. 이러한 문제를 해결하고 상태 관리를 보다 체계적이고 예측 가능하게 하기 위해 등장한 것이 Redux이다. 애플리케이션의 모든 상태를 하나의 중앙 저장소(store)에 보관하고 상태를 변경할 때에는 반드시 액션(action)과 리듀서(

    2025.07.28