본문 바로가기

전체 글252

[UML] 객체 다이어그램(Object Diagram) - 특정 시점의 객체들이 동작하는 상황을 표현 - 클래스가 아닌 인스턴스를 보여주기에 인스턴스 다이어그램이라고도 함 - 클래스 다이어그램으로 이해하기 어려울 때 이해를 쉽게하기 위해서 사용한다. 1) 객체 - 사각형에 객체의 이름을 표기하고 밑줄을 그음 2) 링크 - 객체 간의 연관 관계를 의미하면 실선으로 연결하여 표시 - 연결된 객체들끼리 메시지를 주고받음 - 클래스 간에 관계를 맺고 있음을 의미함 - 객체들은 해당 클래스의 제약 조건을 모두 만족해야 함 3) 상태 - 속성의 값들로 객체의 상태가 표현됨 - 특정 순간에 객체가 가지고 있는 속성값들이 객체의 상태가 됨 4) 동적바인딩 - 객체 다이어그램은 템플릿에 대한 동적 바인딩을 표현 - 동적 바인딩은 클래스가 아닌 객체로 만들어질 때 타입을 알려.. 2023. 10. 5.
[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.
[자기계발][글쓰기] 좋은 습관을 기르는 방법 아무 생각없이 유튜브를 보다가 유튜버 인간개조용광로님의 좋은 습관에 대한 영상을 보게 되었다. 이 영상의 앞부분을 보면서 이 내용을 글로 남겨서 정리해 놓아야겠다는 생각이 들었고, 18분 가량의 영상을 처음부터 끝까지 쭉 시청한 뒤에 다시 한 번 유튜브를 보면서 이 글을 쓰기 시작했다. 영국 사이클 팀 예시 영국 사이클 팀은 데이브 브레일스퍼드라는 새로운 코치를 영입했고, 새로운 코치는 이 팀의 정체기를 극복하기 위해 '사소한 성과들의 종합' 이라는 전략을 사용했다. 이는 모든 면에서 1%씩 개선하는 것을 의미했다. 데이브 코치는 선수들에게 사소한 것들인 자전거에 더 가벼운 타이어를 끼워 넣거나 안장을 더 편한 것으로 교체하고, 공기 저항을 덜 받는 레이싱 슈트를 입게하였고, 그 외에도 감기와 같은 각종.. 2023. 10. 3.
[UML] UML 다이어그램 - UML은 Unified Modeling Language의 약자로, 모델을 만드는 표준 언어라는 의미이다. - UML 다이어그램은 통합 모델링 언어(UML)를 사용하여 시스템 상호작용, 업무흐름, 시스템 구조, 컴포넌스 관계 등을 그린 도면이다. - 프로그래밍을 단순화 시켜 표현해 의사소통하기 좋다. - 대규모 프로젝트 구조의 로드맵을 만들거나 개발을 위한 시스템 구축에 기반을 마련할 수 있다. 1. 구조 다이어그램 : 시스템의 개념, 관계 등의 측면에서 요소들을 나타내고 각 요소들의 정적인 면을 보기 위한 것 1) Class Diagram(클래스 다이어그램) - 거의 모든 객체 지향 메서드를 관통하는 핵심 모델링 기법 - 시스템의 객체 유형과 객체 간에 존재하는 다양한 종류의 정적 관계를 설명함 2).. 2023. 10. 1.
[자기계발][글쓰기] 목표 남기기 나는 오늘 아침 '타이탄의 도구들'을 읽다가 책의 내용중 '배거본더가 되어라'라는 내용이 있었다. 이 내용은 간략히 말하면 6주이상 해외로 가서 여행을 해보라 라는 내용이었다. 그래서 문득 "나는 6주 이상 혼자 여행을 가본 적이 있나?"라는 생각을 하게 되었고, "30살 전에 한 번 쯤은 여행을 가봐야 되지 않을까?"라는 생각을 하게 되었고 이는 곧 "30살 전에 여행 한 번 가보자!"가 되었다. 그래서 가고 싶다고 생각한 것이 바로 미국이었다. 살면서 한 번도 가보지 못한 곳이기도 하고, 가보고 싶단 생각을 하지 않아본 곳이기도 했다. 미국에 가보고 싶다고 생각하고 가장 먼저 생각난 것은 영어회화였다. 근데 신기한게 평소에는 관심도 없던 영어가 미국에 가고 싶다고 생각하니 뭔가 하고싶어지는 느낌이 들.. 2023. 9. 28.
[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] WPF 시작 10일차 1. Border 컨트롤 - 테두리, 배경 등을 그리는 데 사용 - 패널을 Border로 감싸서 사용 [예제 1] Button 1 Button 2 Button 3 [결과] - Stack 패널 외부에 두께 1의 하얀 테두리가 생김 [예제 2] - CornerRadius를 조절해 테두리를 둥글게 할 수 있음 Button 1 Button 2 Button 3 [결과] - 각진 모서리가 아닌 둥근 모서리가 되었다. [예제 3] - BorderThickness를 이용해 테두리의 색상 및 두께를 조절할 수 있다. Button 1 Button 2 Button 3 [결과] - 위 아래에 좀 더 두꺼운 테두리가 생겼다. [예제 4] - LinearGradientBrush를 이용해 테두리 내부의 배경을 색칠할 수 있다. B.. 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.