전체 글 198

[Kotlin] 코틀린 문법

1. 변수 선언 (Variable Declaration)Javaint number = 10;String text = "Hello";boolean isActive = true; Kotlinval number: Int = 10val text: String = "Hello"val isActive: Boolean = true 차이점1. val vs var • val(Immutable, 변경 불가) = Java의 final • var(Mutable, 변경 가능) = 일반적인 변수 선언 2. 타입 추론(Type Inference) • Kotlin에서는 val number = 10 처럼 타입을 생략해도 자동으로 Int로 인식됨. 2. 함수 선언 (Function)Javapublic int add(int a, int ..

BE/Kotlin 2025.02.14

[React] useEffect, useState

1. useState - 상태 관리 (State Management) useState는 컴포넌트의 상태를 선언하고 관리할 때 사용되는 React 훅입니다. 상태란 사용자 입력, API 응답 데이터, 컴포넌트 내의 동적 값을 의미합니다. 사용법:const [state, setState] = useState(initialValue); • state: 현재 상태 값. • setState: 상태 값을 업데이트하는 함수. • initialValue: 상태의 초기 값. 예제:import React, { useState } from "react";const Counter = () => { const [count, setCount] = useState(0); // count의 초기값은 0 const handleI..

FE/React 2025.02.13

git branch 별 차이 (dev, origin dev, origin/dev)

명령어 병합 대상 최신 상태 여부병합 대상의 특성git merge dev로컬 dev 브랜치로컬 dev가 최신 상태여야 함로컬 브랜치git merge origin dev 로컬 origin/dev (원격의 로컬 복사본) git fetch로 최신 상태 보장리모트 트래킹 브랜치git merge origin/dev fetch된 최신 origin/dev 참조 항상 최신 상태 (fetch 필요)리모트 트래킹 브랜치명령어별 설명1) git merge devgit merge dev병합 대상: 로컬 dev 브랜치로컬 dev 브랜치가 최신 상태여야 제대로 병합할 수 있음.만약 로컬 dev가 최신 상태가 아니면 구버전 변경사항이 병합될 수 있는 위험이 있음.최신 상태 보장을 위해서는 병합 전에:git checkout dev ..

CS 2025.02.11

[Spring Boot] JaCoCo (Java Code Coverage)

Java 애플리케이션의 코드 커버리지를 측정하는 오픈 소스 도구로, 테스트 코드가 실제로 소스 코드의 어느 부분을 실행했는지 분석하는 역할을 함.주로 JUnit 테스트와 함께 사용되며, 테스트 코드가 작성된 클래스의 몇 %를 실행했는지 측정하여 테스트의 품질을 향상시키는 데 도움을 줌. 1. JaCoCo의 코드 커버리지 지표JaCoCo는 다음과 같은 커버리지 지표를 제공함:커버리지 유형설명Line Coverage실행된 코드 라인의 비율Branch Coverageif-else, switch 등의 분기 실행 비율Instruction Coverage실행된 JVM 바이트코드 명령어의 비율Method Coverage실행된 메서드 개수와 비율Class Coverage실행된 클래스 개수와 비율 ✅ 이 커버리지 지표를..

[Spring Boot] @Slf4j

Lombok 라이브러리에서 제공하는 어노테이션.클래스 내부에 SLF4J(Simple Logging Facade for Java) 기반의 로깅 객체를 자동으로 생성해 주는 기능을 함.즉, @Slf4j를 클래스에 추가하면, log라는 이름의 Logger 객체가 자동으로 생성되며, 이를 통해 로깅을 쉽게 사용할 수 있음. 1. @Slf4j 사용법@Slf4j 적용 및 사용 예제import lombok.extern.slf4j.Slf4j;@Slf4jpublic class LogExample { public static void main(String[] args) { log.info("Hello, this is an INFO log message!"); log.debug("Debuggi..

소프트딜리트 Soft Delete, 하드딜리트 Hard Delete

데이터베이스에서 데이터를 삭제하는 방식에는 소프트 딜리트(Soft Delete)와 하드 딜리트(Hard Delete)라는 두 가지 주요 방식이 있음. 이 두 가지 방식은 데이터 삭제의 목적과 보존 여부에 따라 선택하여 사용됨. 1. 하드 딜리트(Hard Delete) 정의데이터베이스에서 데이터를 완전히 삭제하는 방식.DELETE SQL 명령어를 실행하면 해당 데이터는 물리적으로 데이터베이스에서 사라짐. 예시DELETE FROM users WHERE id = 1;위 쿼리를 실행하면 id = 1인 데이터가 완전히 삭제되어 복구가 불가능함. 장점저장 공간 확보:데이터를 완전히 삭제하므로 디스크 공간을 절약할 수 있음.데이터베이스 성능 향상:불필요한 데이터가 사라지기 때문에 쿼리 성능에 긍정적인 영향을 줄 수 ..

CS 2025.02.08

[Spring Boot] QueryDSL

QueryDSL 개념 QueryDSL은 타입 안전한 JPQL(또는 SQL) 쿼리를 작성하기 위한 라이브러리임. 일반적으로 JPA를 사용할 때 JPQL을 문자열로 작성하는데, 이는 컴파일 타임에 오류를 잡을 수 없고 실행 시에 오류가 발생할 위험이 있음. QueryDSL은 이를 보완하여, 코드를 작성하는 시점에 컴파일러가 쿼리의 오류를 검출할 수 있도록 해줌. QueryDSL은 Java 코드를 통해 쿼리를 작성할 수 있게 해주며, 이를 통해 가독성과 유지보수성을 높일 수 있음.주요 특징타입 안전(Type-safe):컴파일 타임에 쿼리의 구조와 필드 타입을 검증함.예를 들어, 정수 필드에 문자열을 비교하는 등의 오류를 방지할 수 있음.코드 자동 생성:엔티티 클래스를 기반으로 QClass라는 쿼리용 클래스를 ..

동기, 비동기

동기(Synchronous)와 비동기(Asynchronous)는 프로그램 실행 방식에서 작업의 처리 순서와 제어 흐름이 어떻게 이루어지는지를 정의하는 개념입니다. 이 개념은 주로 프로세스, 쓰레드, 함수 호출, 네트워크 요청 등에서 사용됩니다. 1. 동기(Synchronous)정의: 작업을 순차적으로 실행하며, 하나의 작업이 완료될 때까지 대기한 후 다음 작업을 실행하는 방식.특징:작업의 결과를 기다렸다가 다음 작업을 실행함.실행 순서가 직관적이며, 디버깅과 구현이 상대적으로 쉬움.작업 완료 전까지 다음 작업으로 진행하지 않으므로 성능이 느려질 수 있음.동작 방식요청 → 대기 → 결과 반환 → 다음 작업.작업 A가 끝날 때까지 작업 B는 시작되지 않음.비유“음식점에서 주문한 음식을 모두 조리한 뒤에야 고..

CS 2025.02.06

[Spring Boot] @Scheduled

@Schedule은 Spring Framework에서 제공하는 애노테이션으로, 정기적으로 특정 작업을 실행하는 데 사용됩니다. 주로 백그라운드 작업이나 일정 작업(예: 데이터 정리, 이메일 전송, 로그 정리)을 자동화하기 위해 사용됩니다. 1. @Scheduled 애노테이션이란?정의: 스프링에서 메서드를 스케줄링 작업으로 등록하고, 지정된 주기에 따라 실행되도록 설정하는 애노테이션.주요 특징:특정 시간 간격이나 일정에 따라 자동으로 메서드를 실행.작업이 비동기적으로 실행되도록 설정 가능.다양한 표현식(고정 시간, 크론 표현식 등)을 지원.2. @Scheduled의 주요 속성 @Scheduled에서 사용할 수 있는 속성은 크게 세 가지로 나뉩니다: 1. fixedRate설명: 메서드 실행 간격을 밀리초 단..

JMeter 성능테스트

JMeter는 성능 및 부하 테스트를 위해 널리 사용되는 오픈소스 도구로, 주로 웹 애플리케이션과 다양한 프로토콜의 성능을 테스트하는 데 사용됩니다. 아래에서 JMeter의 개념, 주요 기능, 사용 방법, 그리고 테스트 시 고려할 점에 대해 설명하겠습니다. 1. JMeter란 무엇인가?정의: JMeter는 Apache Software Foundation에서 제공하는 Java 기반의 성능 및 부하 테스트 도구로, 애플리케이션의 성능, 안정성, 그리고 확장성을 테스트하는 데 사용됨.주요 특징:다양한 프로토콜 지원: HTTP, HTTPS, FTP, JDBC, SOAP, REST API 등.스크립트 기반 테스트: GUI 또는 코드로 테스트 시나리오 작성 가능.오픈소스 및 확장성: 무료로 사용 가능하며 플러그인을..

CS 2025.02.04