Dependency Inversion Principle(DIP, 의존성 역전 원리)

Dependency Inversion Principle(DIP, 의존성 역전 원리) https://learn.microsoft.com/en-us/dotnet/architecture/modern-web-apps-azure/architectural-principles#dependency-inversion The direction of dependency within the application should be in the direction of abstraction, not implementation details.애플리케이션 내의 종속성 방향은 구현 세부 사항이 아닌 추상화 방향이어야 합니다. Most applications are written such that compile-time dependency flows in the direction of runtime execution, producing a direct dependency graph.대부분의 애플리케이션은 […]

Dependency Inversion Principle(DIP, 의존성 역전 원리) 더 읽기"

Consuming REST Web APIs

Consuming REST Web APIs 1. 프로젝트 생성(MVC UI) ASP.Net Core Web App (MVC) 2. GET Controller 생성 HttpClient 적용 .Net에서 제공하는 HttpClient Class https://learn.microsoft.com/ko-kr/dotnet/api/system.net.http.httpclient?view=net-8.0 HTTP 요청을 보내고 URI로 식별된 리소스에서 HTTP 응답을 수신하기 위한 클래스를 제공합니다. 사용 예제 HttpClient를 사용하려면, Program.cs 파일에 HttpClient Factory를 설정 이를 통해 효율적으로 HttpClient 인스턴스를 관리하고, 특히 성능 문제를 해결할

Consuming REST Web APIs 더 읽기"

Repository Pattern – 저장소 패턴

Repository Pattern 정의 및 목적 Data access logic을 business logic에서 분리하여 코드를 더 깨끗하고 유지 보수가 쉽도록 만드는데 중점을 둔 패턴 애플리케이션의 도메인 계층과 데이터 액세스 계층 간의 중간 계층을 제공하여, 데이터베이스와의 상호작용을 추상화하고 코드의 일관성을 유지 Repository Pattern은 데이터 저장소(데이터 베이스, 파일 시스템 등)와 도메인 모델 간의 연결을 처리하는 역할 이 역할은 Data access logic을 캡슐화 하고, business logic이 데이터 저장소의 구현 세부 사항에 의존하지 않도록 합니다. 구조와 구성 요소 및 사용 예제

Repository Pattern – 저장소 패턴 더 읽기"

DTO – Data Transfer Object

DTO – Data Transfer Object Data Transfer Object는 애플리케이션의 여러 계층 간에 데이터를 전송하기 위해 사용하는 객체 DTO는 데이터베이스나 비즈니스 로직 계층의 내부 구현을 외부로 노출하지 않고 데이터를 캡슐화하여 전송하는 역할 주요 역할과 이점 UserEntity UserDTO 사용 예제 UserDTO는 UserEntity에서 필요한 데이터만 클라이언트로 전송

DTO – Data Transfer Object 더 읽기"

REST – REpresentational State Transfer (.Net Core)

REST REST(REpresentational State Transfer)는 웹 서비스 설계의 Architecture Style 입니다.  REST는 리소스를 나타내는 URL과 리소스 상태를 조작하기 위한 HTTP 메서드(POST, GET, PUT, DELETE … )를 사용하여  분산 시스템을 간단하고 효율적으로 구축하도록 도와줍니다. 주요 개념 .NET Core가 지원하는 기능 (REST) HTTP Verbs HTTP 메서드는 웹 애플리케이션에서 리소스와 상호작용하는 방법을 정의 Routing 라우팅은 URL 경로를 서버의 코드와 매핑하는 과정입니다: Model Binding 모델 바인딩은 클라이언트의 요청 데이터를 컨트롤러 메서드의 파라미터나 모델 객체에 자동으로 매핑하는 과정입니다: Content Negotiation Content Negotiation은 서버가 클라이언트의 Accept 헤더를 기반으로 응답 콘텐츠 유형을 결정하는 과정입니다: Response Types 응답 유형은 서버가 클라이언트에게 반환하는 다양한 데이터의 형식을 정의합니다: 실습 도메인 모델링(Domain Modeling) 도메인 모델링은 애플리케이션의 특정 도메인(문제 영역)을 표현하는 모델을 정의하는 과정 비즈니스 로직과 데이터를 구조화하고, 데이터베이스와의 상호작용을 관리하는 데 사용  데이터베이스 설계와 밀접한 관련이 있으며, ORM(Object-Relational Mapping) 프레임워크를 사용하는 경우  데이터베이스 테이블과 애플리케이션의 객체 간의 매핑을 정의하는 데 중요 Walk 속성 타입 설명 Id Guid 걷기 경로의 고유 식별자 Name string 걷기 경로의 이름 Description string 걷기 경로의 설명 LengthInKm double 걷기 경로의 길이 (킬로미터 단위) WalkImageUrl string? 걷기 경로의 이미지 URL (nullable) DifficultyId Guid 난이도 식별자 RegionId Guid

REST – REpresentational State Transfer (.Net Core) 더 읽기"

Visual studio WPF Basic Folder Structure

Understand Files & Folder Structure Visual studio의 Solution Visual Studio에서 솔루션(Solution)은 프로젝트들을 관리하고 구성하는 상위 개념이자 아키텍처(architecture) Visual studio의 Porject File launchSettings.json launchSettings.json 파일은 .NET 프로젝트에서 디버깅 설정을 관리하는 데 사용 이 파일은 프로젝트의 Properties 폴더 안에 위치해 있으며, 애플리케이션이 디버깅 모드로 실행될 때의 설정을 정의합니다. 주요 섹션 아래와 같이 값을 수정하여 디버깅 프로필에 적용할 수 있으며 웹브라우저 변경도 가능 (설치된 브라우저) Controllers Folder Controllers Folder는 ASP.NET Core MVC (모델-뷰-컨트롤러) 애플리케이션에서 매우 중요한 역할을 합니다.  이 폴더에는 주로 컨트롤러 클래스들이 위치합니다. 컨트롤러는 사용자의 요청을 처리하고, 필요한 데이터를 모델에서 가져와 뷰에 전달하는 역할을 합니다. appsettings.json appsettings.json 파일은 .NET Core 및 ASP.NET Core 애플리케이션에서 설정(configuration) 정보를 저장하는 데 사용되는 파일 이 파일은 JSON 형식으로 작성되며, 애플리케이션이 실행될 때 필요한 각종 설정 값을 포함 주요 역할 Program.cs Program.cs 파일은 .NET Core 및 ASP.NET Core 애플리케이션에서 진입점을 정의 이 파일은 애플리케이션이 시작될 때 처음 실행되는 코드를 포함하고 있으며, 주로 애플리케이션의 설정과 기본적인 실행을 담당합니다. 주요 역할

Visual studio WPF Basic Folder Structure 더 읽기"

Windows Presentation Foundation 개요 – 번역

Overview 개요 https://learn.microsoft.com/en-us/dotnet/desktop/wpf/overview/?view=netdesktop-8.0 Desktop Guide (WPF .NET)(데스크톱 가이드) Welcome to the Desktop Guide for Windows Presentation Foundation (WPF), a UI framework that is resolution-independent and uses a vector-based rendering engine, built to take advantage of modern graphics hardware.(Windows Presentation Foundation (WPF) 데스크톱 가이드에 오신 것을 환영합니다. WPF는 해상도에 독립적인 UI 프레임워크로, 벡터 기반의 렌더링 엔진을

Windows Presentation Foundation 개요 – 번역 더 읽기"

STAThread 속성 – WPF

WPF 애플리케이션에서 [STAThread] 속성은 Main Thread가 STA(Single-Threaded Apartment) 모델을 사용하도록 지정합니다. STA 모델은 COM(Component Object Model)의 스레드 모델 중 하나로, UI 요소들이 단일 스레드에서 안전하게 처리되도록 보장합니다. 이는 스레드 간 동기화 문제를 줄여주며, UI 컴포넌트와의 호환성이 좋습니다.

그러나 STA 모델은 모든 작업이 단일 스레드에서 실행되므로 성능 저하가 발생할 수 있습니다. 이를 해결하기 위해서는 스레드를 새로 만들어 작업을 분리하고, UI와의 상호작용 시 Dispatcher.Invoke를 사용하여 UI 스레드에서 코드를 실행해야 합니다.

STAThread 속성 – WPF 더 읽기"

위로 스크롤