ASP.NET Core에서의 의존성 주입 기법과 서비스 라이프사이클 관리
의존성 주입의 핵심 원리
의존성 주입(Dependency Injection, DI)은 객체 간 결합도를 낮추기 위한 설계 패턴으로, 클래스가 필요한 종속 항목을 외부에서 제공받는 방식이다. 이는 직접 인스턴스화하거나 정적 참조를 사용하는 대신, 생성자나 메서드를 통해 의존성을 전달함으로써 유연성과 테스트 용이성을 확보한다.
대표적인 구현 방식인 생성자 주입은 클래스가 요 ...
7월 1일 01:29에 게시됨
이진 트리 기반 알고리즘 문제 풀이
최대 이진 트리 구성하기
주어진 고유한 정수 배열을 이용해 최대 이진 트리를 생성하는 문제입니다. 알고리즘은 다음과 같습니다:
배열에서 가장 큰 값을 루트 노드로 설정합니다.
해당 값의 왼쪽 부분 배열로 좌측 서브트리를 재귀적으로 구성합니다.
오른쪽 부분 배열로 우측 서브트리를 재귀적으로 구성합니다.
기본 재귀 구현
class Solution {
public:
int get ...
7월 1일 01:13에 게시됨
Linux 서버에서의 VSFTD 설치 및 가상 사용자 계정 관리 기법
1. 패키지 의존성 확보 및 서비스 배포
안정적인 파일 전송 프로토콜 서버를 구축하기 위해首先需要 기본 패키지를 로드합니다. 여기서는 레드햇 기반 운영체계를 전제로 yum 을 통해 컴포넌트를 적용하되, 데이터베이스 유틸리티도 함께 포함해야 합니다.
[root@server ~]# yum install vsftpd db-utils -y
Resolving Dependencies
--> Package vsftpd.x86_64 0:3.0.3-4. ...
7월 1일 00:42에 게시됨
VS2022 + Qt 6.7.2 타이머 사용법 두 가지
1. QObject 타이머 이벤트 활용
QObject를 상속받는 모든 클래스는 timerEvent(QTimerEvent *event) 가상 함수를 제공합니다. startTimer()로 간격과 타이머를 시작하고, 이 함수를 재정의하여 작업을 처리합니다. 여러 타이머는 ID로 구분하며, killTimer()로 종료합니다.
// 헤더에서 선언
protected:
void timerEvent(QTimerEvent *event) override;
int m_time ...
7월 1일 00:29에 게시됨
ASP.NET JWT 인증 구현 가이드
1. NuGet 패키지 설치
JWT 라이브러리를 NuGet을 통해 프로젝트에 추가합니다. JWT 패키지를 설치해야 합니다.
2. JWT 헬퍼 클래스 작성
using JWT;
using JWT.Algorithms;
using JWT.Exceptions;
using JWT.Serializers;
using System;
using System.Collections.Generic;
namespace ProjectName.Tool
{
public class JwtTokenHelper
{
private static ...
7월 1일 00:08에 게시됨
파이썬 3 핵심 개념 정리
입출력 처리
str() 함수는 사람이 읽기 쉬운 형식으로, repr() 함수는 인터프리터가 이해하기 쉬운 형식으로 데이터를 표현합니다.
rjust()는 오른쪽 정렬, ljust()는 왼쪽 정렬, center()는 가운데 정렬을 수행합니다. zfill()은 지정된 길이에 맞게 문자열 앞에 0을 채웁니다.
네임스페이스
네임스페이스는 이름과 객체 간의 매핑 관계를 의미합니다.
네임스페이스는 ...
7월 1일 00:06에 게시됨
React 입문 가이드
React의 핵심 개념과 사용 방법을 설명합니다.
React 소개
React는 Facebook에서 시작된 JavaScript 라이브러리로, 사용자 인터페이스를 구축하는 데 사용됩니다. React는 MVC 프레임워크가 아니며, 단순히 V(뷰) 계층에 해당하는 기능만 제공합니다.
JSX 문법과 컴포넌트
React에서는 JSX 문법을 통해 컴포넌트를 생성하며, 이를 통해 함수형 UI 프로그래밍 방식을 지 ...
7월 1일 00:05에 게시됨
QML에서 시그널과 슬롯 구현 방법
QML에서 시그널은 컴포넌트 간 통신을 위한 메커니즘으로, 특정 이벤트 발생 시 다른 객체에 알리는 역할을 합니다. 파라미터를 포함할 수 있으며, on 구문이나 Connections 요소를 통해 처리합니다.
1. 시그널 정의 방식
사용자 정의 컴포넌트에서 signal 키워드로 시그널을 선언할 수 있습니다.
// MyComponent.qml
import QtQuick 2.15
Item {
id: componentRoot
...
7월 1일 00:02에 게시됨
PyTorch-CUDA 환경에서 슬라이딩 윈도우 어텐션 고속화하기
분산 환경에서 Swin Transformer 계열 모델을 훈련할 때 GPU 활용률이 40%에 머무르고, NCCL 통신 오버헤드가 전방 계산 시간을 역전시키는 경험을 해본 적이 있는가? 동일 아키텍처를 사용하면서도 타 팀은 8개 GPU에서 95% 이상의 지속적인 활용률을 달성하며 두 배의 처리량을 내고 있다면, 문제는 모델 코드가 아닌 실행 환경의 차이에 있을 가능성이 높다.
이 글에서 ...
6월 30일 23:49에 게시됨
CentOS 7.9에서 Docker GPU 구성 완벽 가이드
CentOS 7.9에서 Docker GPU 사용하기
CentOS 7.9 환경에서 Docker 컨테이너가 NVIDIA GPU를 활용할 수 있도록 구성하는 과정을 단계별로 설명합니다. 이 설정은 딥러닝 모델 학습이나 GPU 가속이 필요한 작업에 필수적입니다.
Docker 엔진 설치
먼저 Docker를 시스템에 설치해야 합니다. 다음 명령어를 순서대로 실행하세요.
# 필수 의존성 패키지 설치
sudo yum insta ...
6월 30일 23:41에 게시됨