분류 전체보기 (232) 썸네일형 리스트형 [ASP.NET Project] ASP.NET MVC5를 이용한 SportsStore 응용 프로그램 생성하기 ASP.NET MVC5를 사용하여 SportsStore 응용 프로그램을 생성한다.하나의 솔루션을 만들고, 그 안에 3개의 프로젝트를 추가하여 역할을 나눌 예정이다.각각의 프로젝트는 다음과 같은 역할을 수행한다. 프로젝트 구성 Domain데이터 저장 및 불러오기를 담당하는 핵심 역할을 한다.Entity Framework를 사용하여 리파지토리를 작성할 계획이다.WebUI사용자 인터페이스(UI)를 구현하며, 컨트롤러와 뷰가 포함된다.애플리케이션의 주요 동작을 처리하는 프로젝트다.UnitTestsDomain과 WebUI에서 작성한 로직에 대해 단위 테스트를 작성한다.Mocking 라이브러리를 사용해 테스트 환경을 구성할 예정이다. 도구 및 패키지 설치 프로젝트가 제대로 동작하도록 필요한 도구와 패키지를 설치.. [ASP.NET MVC5] Ninject로 의존성 주입(DI) 구현하기 의존성 주입(DI)이란? **의존성 주입(Dependency Injection)**은 인터페이스와 DI 컨테이너를 활용해 MVC 응용프로그램 내부의 구성 요소들을 서로 분리시키는 설계 방식이다. DI 컨테이너는 다음과 같은 역할을 수행한다:인터페이스 구현 인스턴스 생성: 객체가 의존하는 인터페이스 구현체의 인스턴스를 생성한다.생성자 주입: 생성된 인스턴스를 의존하는 객체의 생성자에 주입한다.결합도 감소: 클래스 간의 강한 결합을 제거하고 느슨한 결합을 구현한다. DI를 도입하지 않은 경우: 강한 결합DI를 도입하지 않으면 클래스 간의 결합도가 높아지고, 재사용성과 확장성이 떨어진다. 아래는 DI 없이 강하게 결합된 구조의 예제다. Product.csusing System;using System.Col.. [ASP.NET MVC5] 람다식을 활용한 필터링과 간결한 코드 작성 델리게이트를 사용한 필터링 Product 개체를 대상으로 델리게이트를 수행하여 원하는 방식으로 필터링할 수 있다. 다음은 기본 델리게이트를 사용한 필터링 예제다. 확장 메서드로 필터링 구현Func 타입의 델리게이트를 받아 필터링 조건을 적용하는 확장 메서드 Filter를 작성했다. public static IEnumerable Filter( this IEnumerable productEnum, Func selectorParam) { foreach (Product product in productEnum) { if (selectorParam(product)) { yield return product; } }} 이 메서드는 조건을 만족하는 Prod.. [JavaScript] 객체 복사와 Object.assign의 활용 객체의 변경과 사이드 이펙트 배열과 마찬가지로 객체도 필드를 추가하거나 설정할 때 **사이드 이펙트(Side Effect)**가 발생할 수 있다. 특히, 기존 데이터를 유지하면서 새로운 필드를 추가하거나 기본값으로 채우려면 신중한 처리가 필요하다.예를 들어, 아래와 같은 기본값 객체와 새로 추가할 데이터를 가진 객체를 보자.const defaults = { author: '', title: '', year: 2017, rating: null};const book = { author: 'Joe Morgan', title: 'Simplifying JavaScript'}; 기존 방식: Object.keys와 반복문 활용defaults와 book을 병합하려면 아래와 같은 방식으로 각 필드를 처리할 .. [JavaScript] 정적인 키-값 탐색 배열과 객체의 차이점 이전 포스팅에서 배열에 대해 살펴봤다. 배열은 구조적으로 유사하고, 다른 데이터와 교체가 자유로운 경우 사용하기 적합한 컬렉션이다. 그러나 배열만으로는 표현하기 어려운 상황도 존재한다.예를 들어, 다음은 색상 코드를 저장한 배열이다.const colors = ['#d10202', '#19d836', '#0e33d8'];이 배열에서는 각각의 색상 코드가 어떤 색상을 의미하는지 명확히 알기 어렵다. 이러한 경우, 키-값 형태의 컬렉션을 사용하는 것이 더 적합하다. 객체: 키-값 형태의 정적인 데이터 다루기 객체는 변화가 적고 구조화된 데이터를 다룰 때 유용하다. 다음은 색상 코드와 색상 이름을 키-값 쌍으로 표현한 예다. const color = { red: '#d10202', .. [ASP.NET MVC5] 확장 메서드 확장 메서드로 클래스 기능 확장하기 확장 메서드는 직접 변경할 수 없는 클래스에 새로운 메서드를 추가할 수 있는 편리한 방법이다.이번 포스팅에서는 확장 메서드를 이용해 타사에서 제공받은 Product 객체의 총합을 구하는 기능을 ShoppingCart 클래스에 추가하는 방법을 알아본다. 문제 상황Product 객체는 타사로부터 제공받은 클래스여서 소스 코드를 직접 수정할 수 없다.ShoppingCart 클래스에 담긴 Product 객체들의 **총 가격(Total Price)**을 구해야 한다.이 경우 확장 메서드를 활용하면 간단하게 문제를 해결할 수 있다. ShoppingCart 클래스 생성먼저, Product 객체를 리스트로 담는 ShoppingCart 클래스를 생성한다.ShoppingCart.c.. [ASP.NET MVC5] 자동 구현 속성 C#의 **자동 구현 속성(Auto-Implemented Properties)**은 간단한 getter와 setter를 정의할 때 코드의 간결성을 높여준다. 이번 포스팅에서는 ASP.NET MVC에서 자동 구현 속성을 활용한 모델 작성과, 이를 통해 간편하게 데이터를 다루는 방법을 살펴본다. 자동 구현 속성이란?자동 구현 속성은 다음과 같은 형태로 작성한다 public string PropertyName { get; set; } C# 컴파일러가 자동으로 내부 필드를 생성하고, getter와 setter를 제공한다. 모델에 자동 구현 속성 사용 프로젝트의 Models 폴더에 Product.cs 클래스를 생성한다. Product.csusing System;namespace LanguageFeatures... [ASP.NET MVC5] MVC 패턴과 샘플 프로젝트 MVC(Model-View-Controller) 패턴은 응용프로그램을 세 가지 주요 부분으로 나눠 관리하는 소프트웨어 디자인 패턴이다. 이 패턴은 **관심사의 분리(Separation of Concerns)**를 통해 유지보수성과 확장성을 높이는 데 중점을 둔다. MVC 패턴의 구성 요소모델(Model)사용자가 작업할 데이터를 담거나 표현한다.비즈니스 로직과 데이터 접근 계층을 포함한다.뷰(View)모델의 특정 부분을 사용자 인터페이스로 렌더링하는 데 사용된다.데이터를 화면에 표시하며, 사용자에게 전달될 정보만을 처리한다.컨트롤러(Controller)전달받은 요청을 처리하고, 필요한 모델을 이용해 작업을 수행한다.처리 후 사용자에게 렌더링할 적절한 뷰를 선택한다. 관심사의 분리MVC 패턴의 핵심은 각 역.. 이전 1 2 3 4 5 ··· 29 다음 목록 더보기