반응형

분류 전체보기 68

[C++] 메모리누수와 해결방안

C++ 메모리 누수 원인과 해결 방법 총정리! C++ 메모리 누수란?메모리 누수(Memory Leak)는 프로그램이 동적으로 할당한 메모리를 해제하지 않아, 사용하지도 못하면서 시스템 자원을 계속 차지하는 현상입니다. 누적되면 프로그램의 성능 저하, 시스템 불안정, 심할 경우 크래시까지 유발할 수 있습니다. 메모리 누수가 발생하는 대표적인 상황1. new로 할당하고 delete를 하지 않은 경우int* ptr = new int(10);// delete ptr; // 누락되면 메모리 누수 발생2. 예외(Exception) 처리 중 delete 누락void func() { int* data = new int[100]; if (/* error condition */) { throw st..

c++ 2025.03.24

[C++] 메모리 누수

C++에서 메모리 누수를 찾아내는 방법메모리 누수(memory leak)는 동적으로 할당한 메모리를 해제하지 않아 발생하는 문제로, 장기적으로 프로그램의 성능을 저하시킬 수 있습니다. 특히, C++과 같은 언어에서는 개발자가 메모리 관리를 직접 수행해야 하기 때문에 메모리 누수를 찾아내고 해결하는 것이 중요합니다. 1. 메모리 누수란?메모리 누수는 프로그램이 더 이상 필요하지 않은 메모리를 해제하지 않아서 발생하는 문제입니다.이는 장기간 실행되는 프로그램에서 심각한 문제를 초래할 수 있으며, 시스템 리소스를 낭비하게 됩니다.발생 원인new 또는 malloc()으로 할당한 메모리를 delete 또는 free()로 해제하지 않음예외(exception) 발생 시 메모리 해제 코드가 실행되지 않음전역 또는 정적..

c++ 2025.03.09

Open Authentication (OAuth) 인증방식이란?

Open Authentication (OAuth) 인증방식에 대해 알아보자 Open Authentication (OAuth) 인증방식이란?OAuth(Open Authentication)는 웹 애플리케이션 및 모바일 애플리케이션에서 사용자 인증과 권한 부여를 안전하게 처리하는 표준 인증 프로토콜입니다. 이 시스템은 다른 웹사이트나 애플리케이션이 사용자의 자원에 접근할 수 있도록 권한을 부여하는 데 사용됩니다. 쉽게 말해, OAuth는 사용자가 직접 자격 증명을 제공하지 않고도 외부 애플리케이션이 안전하게 데이터에 접근할 수 있게 해줍니다. OAuth의 주요 개념OAuth는 기본적으로 두 가지 주요 역할을 통해 작동합니다:Resource Owner (리소스 소유자): 데이터를 소유한 사용자.Client (클..

개발 2025.02.28

[Java] jdom2 라이브러리 사용하여 XML 파싱하기

Java에서 JDOM2 라이브러리 사용하여 XML 파싱하기 JDOM2 라이브러리란?JDOM2는 Java에서 XML 문서를 파싱하고, 생성하고, 수정할 수 있는 라이브러리입니다.XML을 객체 모델로 변환하여 쉽게 작업할 수 있도록 해주며, DOM이나 SAX 방식보다 간단하고 효율적으로 XML을 처리할 수 있습니다. JDOM2 라이브러리 설치하기JDOM2 라이브러리를 사용하려면 먼저 프로젝트에 라이브러리를 추가해야 합니다.Maven을 사용하는 경우, pom.xml 파일에 의존성을 추가하세요: org.jdom jdom2 2.0.6 XML 파싱 예제 코드다음은 JDOM2 라이브러리를 사용하여 XML을 파싱하는 예제 코드입니다.이 예제에서는 XML 문자열을 파싱하여, 각 상품의 가격, 장소, 무..

java 2024.09.06

[gitlab] 특정시점의 branch 만들기

GitLab에서 특정 시점의 Commit으로부터 Branch 생성하는 방법 GitLab에서 Commit으로부터 브랜치 생성하기GitLab에서 기존 commit을 기반으로 새로운 브랜치를 만들고자 할 때, 특정 시점의 commit을 선택하여 새로운 branch를 생성할 수 있습니다. 이는 기존의 작업을 그대로 유지하면서 새로운 기능을 개발할 때 유용하게 사용됩니다.이번 글에서는 GitLab에서 특정 시점의 commit을 기반으로 브랜치를 생성하는 방법을 단계별로 설명합니다. 1. Commit SHA 복사하기새로운 브랜치를 만들고자 하는 시점의 commit을 선택해야 합니다.이를 위해 GitLab의 Repository 메뉴에서 Commits 탭을 클릭하여 commit 히스토리를 확인할 수 있습니다.생성하려는..

개발 2024.08.26

[C#] DTMF 전송 방식 (In-band vs Out-of-band) 및 RTP 패킷

[C#] DTMF (Dual Tone Multi Frequency) 전송 방식 정리 및 RTP 패킷 구현DTMF 신호 전송은 VoIP 및 전화 시스템에서 숫자 입력을 처리할 때 핵심적인 요소입니다.이 글에서는 C#으로 구현하는 DTMF RTP 패킷 생성 방법과 함께, In-band와 Out-of-band 전송 방식의 차이점도 정리합니다. 1. DTMF 전송 방식: In-band vs Out-of-bandIn-band 방식DTMF 신호를 음성 주파수 대역 내에서 전송추가 경로가 필요 없고 구현이 간단음성 압축, 잡음 등의 영향으로 신호 왜곡 가능성 있음Out-of-band 방식DTMF 신호를 음성 신호와 별도로 RTP 또는 SIP 메시지로 전송정확하고 신뢰도 높은 전송 가능VoIP 시스템에서 표준적으로 사..

c# 2024.08.07

[Java] String을 int와 Integer로 변환하는 방법

Java에서 String을 int와 Integer로 변환하는 방법Java에서 문자열을 숫자로 변환하는 경우가 많습니다.이 글에서는 Integer.parseInt()와 Integer.valueOf()의 차이, 캐싱 범위, 객체 비교 방법까지 상세히 설명합니다. 1. String을 int로 변환 (Integer.parseInt)Integer.parseInt() 메서드를 사용하면 문자열을 기본형 int로 변환할 수 있습니다.String str = "123";int num = Integer.parseInt(str); 이 코드는 "123"이라는 문자열을 int로 변환하여 num에 저장합니다.만약 입력 문자열이 숫자가 아니라면 NumberFormatException이 발생할 수 있으므로 유효성 검사를 추천합니다. ..

java 2024.08.05

[java] 자료형 변환의 종류

Java 자료형 변환의 종류Java에서는 다양한 상황에서 자료형(타입)을 변환할 수 있습니다.이 글에서는 자바의 주요 자료형 변환 방법을 자동 형변환, 강제 형변환, Wrapper 클래스 변환으로 나누어 예제와 함께 정리합니다. 1. 자동 형변환 (Implicit Type Casting)자동 형변환은 자바 컴파일러가 명시적 코드 없이도 자동으로 수행하는 자료형 변환입니다.주로 작은 크기의 자료형에서 큰 크기의 자료형으로 변환할 때 발생합니다. 변환 가능한 예byte → short → int → longchar → intfloat → doubleint value = 100;long longValue = value; // 자동으로 int → long 변환float f = 10.5f;double d = f;..

java 2024.08.02

Java Thread 클래스 사용법

Java Thread 클래스 사용법: 쓰레드 생성, 시작, 중단Java에서 멀티스레드를 구현할 때 가장 기본이 되는 Thread 클래스의 사용 방법을 정리했습니다.Thread 클래스 상속, run() 오버라이딩, interrupt 처리 등 실전 예제와 함께 소개합니다. 1. Thread 클래스 상속하여 쓰레드 생성하기Java에서 새로운 쓰레드를 만들기 위해서는 Thread 클래스를 상속받고,run() 메서드를 오버라이딩하는 방식이 가장 기본입니다.이 방식은 반복적인 작업이나 백그라운드 처리가 필요한 로직에 적합합니다. 아래는 Thread 클래스를 상속받아 구현한 Java 쓰레드 예제입니다:private class MyThread extends Thread { private int interval =..

java 2024.08.01

Spring HandlerInterceptor 사용법

Spring HandlerInterceptor 사용법과 적용 예제Spring MVC에서 인터셉터를 사용하면 컨트롤러 실행 전후 또는 전체 요청 처리 완료 후에 사용자 정의 로직을 삽입할 수 있습니다. 이 글에서는 HandlerInterceptor 인터페이스 구현 방법과 실전 적용 예제를 소개합니다. 1. HandlerInterceptor란?HandlerInterceptor는 Spring Web MVC에서 요청 처리 과정의 특정 시점에 개입할 수 있는 인터페이스입니다.주로 인증, 로깅, 성능 측정 등의 목적에 활용됩니다. HandlerInterceptor는 아래 세 가지 메서드를 통해 요청 흐름을 제어합니다preHandle() – 컨트롤러 실행 전 호출, 요청 차단 가능postHandle() – 컨트롤러 ..

java 2024.07.26
반응형