본문 바로가기

Study64

[UML] 순차 다이어그램(Sequence Diagram) - 시스템이 전달하는 메시지의 시간적 흐름을 나타내려고 하는 상호작용 다이어그램이다. - 객체간의 동적 상호작용을 시간적 개념을 중심으로 모델링하는 과정이다. - 객체가 서로 긴밀하게 일을 분담하여 처리함으로써 주어진 문제를 해결하는 방식이 전제되는 체계이다. - 다이어그램의 수직방향이 시간의 흐름을 나타낸다. - 객체 간의 관계, 메시지의 시간적 순서 강조 표현 - UseCase 시나리오를 시간과 순서에 따라서 묘사 및 도식화 - 복잡한 시나리오나 실시간 명세 표현, 메시지의 명시적인 순서 표현 1) 객체(Object) - 활동의 주체 - 직사각형으로 표현 2) 생명선(Lifeline) - 시간의 경과를 의미 - 객체에서 이어지는 점선으로 표현 3) 활성 박스(Activation Box) - 현재 객체.. 2023. 10. 5.
[UML] 활동 다이어그램(Activity Diagram) - 활동 다이어그램은 동작 다이어그램이고, 일련의 Activity들로 어떤 프로스세스를 표현하는 다이어그램이다. - 모든 종류의 프로세스를 표현하는 데 사용될 수 있다. - 프로그램의 흐름을 대략적으로 보여주어 사용자가 특정 운영 작업에 관련된 조건과 제약을 더욱 명확히 이해하고 활동 간 메시지 흐름을 확인할 수 있다. 1. Action/ Activity - 모서리가 둥근 사각형 - 어떤 Action이나 Activity의 집합 - 동사 + 명사로 이름이 붙여짐 2. Object Node - 직사각형 - 개체 흐름 집합에 연결된 개체를 나타냄 3. Control Flow - 화살표 - 실행 순서를 나타내는 화살표 4. Object Flow - 점선 - 오브젝트의 흐름을 나타냄 5. Initial Node .. 2023. 10. 4.
[C#][Study] 확장 메서드(Extension Method) 1. 확장 메서드 - 기존 클래스의 기능을 확장하는 기법(상속과는 다름) - 클래스 외부에서 클래스의 메서드처럼 사용할 수 있는 새로운 메서드를 만들 수 있는 기능 2. 확장 메서드 생성방법 1) static class 2) static method 3) 첫번째 매개변수 this 키워드 using System; namespace StudyCSharp { class Program { static void Main(string[] args) { int a = 10; int b = 20; // int의 메서드처럼 IntToString 함수를 사용가능 string A = a.IntToString("aaaa"); string B = b.IntToString("bbbb"); Console.WriteLine(A); .. 2023. 10. 4.
[UML] 클래스 다이어그램(Class Diagram) - 클래스 다이어그램은 구조 다이어그램으로 클래스 내부 구성요소 및 클래스 간의 관계를 도식화하여 시스템의 특정 모듈이나 일부 및 전체를 구조화한다. - 클래스 다이어그램을 그리게 되면 시스템 내 클래스 간의 의존성 파악이 쉬워진다. - 클래스 다이어그램은 목적에 따라 개념, 명세, 구현 단계로 나눌 수 있다. - 개념 단계에서는 클래스만 도출하여 관계를 단순화하는 것을 목적으로 하고, 명세와 구현 단계에서는 개발 직전 설계나 구현 이후 설명 목적으로 한다. 1. 클래스 - 클래스 다이어그램에서 클래스는 이름, 속성(변수), 메서드 순으로 나열한다. - 속성과 메서드는 생략이 가능하지만 이름은 필수로 입력해야 한다. - 속성이나 메서드 앞에 붙은 "+, -, #, ~"은 각각 public / privat.. 2023. 10. 4.
[UML] UML 다이어그램 - UML은 Unified Modeling Language의 약자로, 모델을 만드는 표준 언어라는 의미이다. - UML 다이어그램은 통합 모델링 언어(UML)를 사용하여 시스템 상호작용, 업무흐름, 시스템 구조, 컴포넌스 관계 등을 그린 도면이다. - 프로그래밍을 단순화 시켜 표현해 의사소통하기 좋다. - 대규모 프로젝트 구조의 로드맵을 만들거나 개발을 위한 시스템 구축에 기반을 마련할 수 있다. 1. 구조 다이어그램 : 시스템의 개념, 관계 등의 측면에서 요소들을 나타내고 각 요소들의 정적인 면을 보기 위한 것 1) Class Diagram(클래스 다이어그램) - 거의 모든 객체 지향 메서드를 관통하는 핵심 모델링 기법 - 시스템의 객체 유형과 객체 간에 존재하는 다양한 종류의 정적 관계를 설명함 2).. 2023. 10. 1.
[WPF][MVVM][Study] MVVM 실습 4 - 주소록 만들기 MVVM을 이용해 주소록을 만드는 과정을 실습하였다. ⚠️주의 : dll 파일 오류로 인해 실행이 안될 수 있음! 0. 파일 구조 - 파일 구조는 아래와 같다. 1. MainView[View] 1) xaml 2) code-behind // MainView.xaml.cs using System.Windows; using WPF_MVVM_EX_4_2.Interface; namespace WPF_MVVM_EX_4_2.View { /// /// MainView.xaml에 대한 상호 작용 논리 /// public partial class MainView : Window , IWindowView // 인터페이스 IWindowView 상속 { // 생성자 public MainView(ViewModel.MainView.. 2023. 9. 27.
[WPF][MVVM][Study] ReactiveUI 다운 UI를 화면에 바로바로 연동시키기위해 Notify~로 시작하는 인터페이스를 상속받아 사용할 수 있다. 그런데 이를 좀 더 편하게 사용하고자 만들어 놓은 라이브러리가 있는데 그것이 ReactiveUI이다. 찾고 다운받고 이러는데 엄청 힘들었어서 다음에도 이런일이 있을까봐 미리 dll 파일만 올려놓는다. 이 파일의 압축을 풀고 비주얼 스튜디오 솔루션 탐색기에서 참조를 오른쪽 클릭하여 참조추가 버튼을 누른 뒤 찾아보기로 들어가 이 파일속 모든 dll 파일을 드래그하여 넣어주면 된다. 2023. 9. 26.
[WPF][C#][Study] DataGrid 컨트롤 DataGrid 컨트롤 - ListView와 비슷하지만 추가기능 제공(데이터에 따라 열 자동 생성, 편집 가능) [예제 1] - DataGrid 기본 형태 1) xaml 2) code-behind using System; using System.Collections.Generic; using System.Windows; namespace WpfTutorialSamples.DataGrid_control { public partial class SimpleDataGridSample : Window { public SimpleDataGridSample() { InitializeComponent(); List users = new List(); users.Add(new User() { Id = 1, Name =.. 2023. 9. 25.
[C#][Study][기초다지기] Action, Func, Predicate 1. 사용 목적 - 딜리게이트 선언의 불편함을 보완 ex) delegate 사용 delegate void DelegateFunction(); // 이렇게 매번 선언을 해줘야 하는 불편함이 있음 static void Main(string[] args) { DelegateFunction df = () => Console.WriteLine("실행"); // 아래 두가지 방법 중 하나로 실행 가능 df(); // 실행 방법 1 df.Invoke(); // 실행 방법 2 } ex) Action 사용 static void Main(string[] args) { Action ac = () => Console.WriteLine("실행"); ac(); ac.Invoke(); } - 이처럼 간결하게 나타낼 수 있다. 2... 2023. 9. 25.
[C#][Study][기초다지기] 제네릭 Generic 제네릭 - 코드 type 안전성, 성능 및 코드 유용성을 향상시킴 - 대부분 Generic은 컬렉션 클래스를 생성하는데 사용됨(List, Vector 등) - System.Collections.Generic 네임스페이스를 추가해 제네릭을 사용할 수 있음 - 자신만의 코드를 만들 수 있음 1) 선언 public class GenericList { void Add(T input) { } } 2) 사용 class TestGenericList { private class ExampleClass { } static void Main() { // int형 리스트 GenericList list1 = new GenericList(); // string형 리스트 GenericList list2 = new GenericL.. 2023. 9. 23.
[C#][Study][기초다지기] 다형성 다형성 1) 정적 다형성(컴파일 다형성) - 컴파일 시간동안 함수를 객체와 바인딩 - 프로그램을 작성하는 동안 객체로 함수에 태그를 지정(초기 바인딩) - 함수 오버로딩이 해당 2) 동적 다형성(런타임 다형성) - 후기 바인딩(Late Binding), 메서드 재정의(Method Override) 라고도 함 - virtual 또는 override 키워드를 사용해 기본 클래스 함수를 재정의 함 3) 오버로딩 - 매개변수에 따라 함수가 다르게 동작 4) 오버라이딩 - 이름과 매개변수, 리턴형이 모두 같지만 다른 동작을 하는 것을 의미 2023. 9. 23.
[C#][Study][기초다지기] 내장 delegate 내장 delegate - Microsoft에서 제공하는 2종류의 내장 delegate가 있다. - 내장 delegate를 이용해 이벤트 처리 코드를 쉽게 작성할 수 있다. - 이벤트를 발생시킬때 규칙에 따라 필수 매개변수들을 delegate로 전달해야함 public delegate void EventHandler(object sender, EventArgs e); public delegate void EventHandler(object sender, TEventArgs e); 1) 예시 1 - 리턴값이 없는 이벤트 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threadin.. 2023. 9. 23.