전체 글 249

[C#] onetime, oneway, twoway, onewaytosource

onetimeMODE를 onetime으로 설정하게 되면 ViewModel의 요소를 최초에 한번 수정했을때는 View의 값이 변경되고,이후에는 연결이 끊어지게 되면서 ViewModel의 요소를 변경하더라도 View에 반영되지 않는다. oneway소스의 값 -> 인터페이스의 값 한 방향으로만 바인딩을 허용한다는 의미이다.ViewModel에서 요소를 변경했을때 View에 변경된 내용이 반영되지만 View에서의 변경이 ViewModel에 반영되지는 않는다. twowayViewModel에서 요소를 변경했을때 View에 변경된 내용이 반영되고, 반대로 View에서의 변경도 ViewModel에 반영 된다. onewaytosourceoneway의 정 반대라고 보면 된다.

카테고리 없음 2026.02.19

[C#] LINQ(데이터 쿼리)

LINQ (Language Integrated Query)는 컬렉션을 SQL처럼 질의하는 문법이다. foreach + if문을 통해 조건에 맞는 요소를 찾는 것을 구현하게 되면 코드가 길어지면서 가독성이 떨어지는 문제가 발생하지만 LINQ를 통해 구현하게 되면 코드 한줄을 통해 원하는 행위를 명확하게 표현할 수 있다.WhereWhere는 컬렉션에서 조건을 만족하는 요소만 골라내는 필터다.List list = new List();list.Add("Apple");list.Add("Grape");list.Add("Banana");list.Add("AAA");list.Add("BDFA");IEnumerable q = list .Where(p => p.StartsWith("A")); foreach(va..

C# 2026.02.19

스레딩

스레드란 명령어를 실행하기 위한 스케줄링 단위 윈도우는 프로세스를 생성할 때 기본적으로 한 개의 스레드를 함께 생성(메인 스레드) 프로그램 실행 종료에 영향을 미치는 스레드를 가리켜 전경 스레드(foreground thread)라 한다.배경 스레드(background) => 프로그램 종료에 영향 Xstatic void Main(string[] args){ Thread t = new Thread(threadFunc); t.IsBackground = true; t.Start(); //실행 안됨}static void threadFunc(){ Console.WriteLine("60초 후에 프로그램 종료"); Thread.Sleep(1000 * 10); Console.WriteLi..

C# 2026.01.13

[WPF] 계산기 만들기

WPFWindows Presentation Foundation의 약자마이크로소프트에서 만든 UI 프레임워크.NET으로 빌드가 가능 MVVM 패턴model : 데이터를 다루는 부분, 비즈니스 로직을 포함 View : 레이아웃과 화면을 보여주는 역할, 사용자 인터페이스 담당 ViewModelView에서 발생하는 이벤트 감지하고, 해당 이벤트에 맞는 비즈니스 로직을 수행Model과 상호작용하여 데이터를 가져오거나 업데이터View에 데이터를 업데이터하는 역할View에 표시할 데이터를 가공하여 제공 MVVM패턴 동작과정사용자의 Action이 View를 통해 들어온다.View에 Action이 들어오면 ViewModel에 Action을 전달ViewModel은 Model에게 데이터를 요청Model이 ViewModel에..

WPF 2026.01.09

[C#] 대리자(delegate)

delegate는 메서드를 값처럼 전달하기 위해서 사용한다.이를 통해 메서드를 변수처럼 저장하고, 매개변수로 전달하거나, 다른 메서드로부터 반환받을 수 있다.대리자 사용 방법대리자 선언 : 대리자 타입을 선언하고, 대리자가 참조할 메서드의 반환 타입과 매개변수를 정의한다.대리자 인스턴스화 : 선언된 대리자 타입을 사용하여 대리자 인스턴스를 생성한다.(여기서 대리자가 참조할 메서드를 지정한다.)대리자 호출 : 대리자 인스턴스를 통해 메서드를 호출 대리자는 .NET 고급 프로그래밍의 핵심을 이루며, 콜백 메커니즘 구현, 이벤트 처리, 비동기 프로그래밍 등 다양한 영역에서 광범위하게 활용된다. 콜백 메커니즘 구현콜백 메커니즘은 프로그램에서 어떤 작업이 완료된 후 특정 동작을 실행할 수 있게 하는 편리한 방법이..

C# 2026.01.08

[C#] Collection / Generic Collection

CollectionCollection은 여러 자료구조를 공통된 인터페이스와 규칙으로 묶어 놓은 자료구조들의 집합이며, .Net 프레임워크에서 비제네릭 컬렉션 클래스를 담당하는 대표적인 네임스페이스이다. Collection 주요 클래스ArrayList : 크기가 가변적인 배열, 인덱스를 통해 데이터에 접근 가능Hashtable : Key-Value 저장Queue : FIFOStack : LIFO // ArrayList 예제 ArrayList al = new ArrayList(); al.Add(10); al.Add("Hello"); foreach(var item in al){ Console.WriteLine(item); } ..

C# 2026.01.04

Artillery 애플리케이션 부하 테스트

Artillery란?Artillery는 node.js기반의 애플리케이션 부하 테스트 도구이며, HTTP,HTTPS, Websocket등의 다양한 프로토콜을 지원한다.또한, 테스트 시나리오를 JSON 또는 YAML파일로 작성하여 테스트 하는 점이 특징이다. 기존에 사용하던 JMeter와 비교했을때 설치가 쉽지만 테스트 케이스를 YAML/JSON로 직접 작성해야 된다는 단점이 있다고 느꼈다.하지만 이 부분은 어느정도 사용해보면 적응할 수 있을 것 같다.Artillery 설치 방법 Set up Artillery CLI · ArtilleryLearn how to get up and running with Artillery with reference docs, guides, tutorials and other r..

BackEnd 2025.11.19

[JPA] N+1 문제

N+1 문제는 ORM 기술에서 특정 객체를 대상으로 수행한 쿼리가 해당 객체가 가지고 있는 연관관계 또한 조회하게 되면서 N번의 추가적인 쿼리가 발생하는 문제를 말한다. N+1문제로 인해 불필요하게 많은 쿼리를 보내면 성능 저하로 이어질 수 있기 때문에 적절한 방법을 통해 N+1을 예방하는 것이 중요하다. 실습실습에서 사용된 엔티티간의 연관 관계는 다음과 같다.국가 : 도시 (1:N)한 국가에 여러 도시가 리스트로 포함 @Entity@Getter@Setterpublic class CountryEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(unique = true) ..

BackEnd/Database 2025.11.07

Spring Boot 예외 처리 전략 [Custom Exception, ExecptionHandler]

Custom Exception커스텀 예외란 자바의 기본 예외(RuntimeException, IllegalArgumentException 등)를 상속받아 비즈니스 로직에 맞는 의미 있는 예외 클래스를 직접 정의하는 것을 말한다. 자바에서 제공하는 기본 예외를 이용하여 try-catch문을 통해 예외 처리를 해줘도 오류 상황을 면할수는 있지만, 어떤 비즈니스 로직에서 어떤 원인으로 예외가 발생했는지 명확하게 표현하기 힘들다. 기본 예외를 서비스 계층에서 던지게 구현을 했다면 컨트롤러에서 try-catch문을 통해 모두 예외 상황에 맞는 HTTP 상태코드를 지정해줘야 한다.@RestController@RequiredArgsConstructor@RequestMapping("/api/users")public c..

BackEnd/Spring Boot 2025.10.22