030. Visual Studio 오류
·
사소한 아이의 소소한 스킬/C#
29번째... 이번에도 쉬어가는 부분.. 모든 개발은 혼자서 진행할 수없다... 뭐 간단한 프로젝트나, 학교숙제라면 가능하지만.... 개발을 혼자 하지않는다면 코드 병합이 참으로 중요하다... 내가 작업을 한것을 다른사람과 공유되어야 하고 다른사람이 작업한게 나에게 공유되어야 하고... 그리하여 Git이라는 코드병합 방법을 말한 적이 있다. 2021.11.01 - [사소한 아이의 소소한 스킬] - 022. Git 분명 Git도 굉장히 좋지만... 나는 사실 Git은 많이 쓰지 않고 SVN을 주로 사용하였다.. SVN이란 자체 Local에 서버를 두고 해당 Local 서버를 동기화 서버로 하는 것( Git은 클라우드 기반, SVN은 Local 기반으로 생각하면 좋겠다) Git은 계정만 만들면 클라우드에 알..
029. Logical Operator (| , & 연산자)
·
사소한 아이의 소소한 스킬/C#
살짝 가벼운 주제.. 코딩을 하면서 if문을 사용안할수가 없다. if문 안에는 true/false를 나타낼수 있는 조건문을 넣어야 한다. 즉, 1 2 3 4 5 6 7 8 9 10 11 12 13 bool bflag = true; if( bflag ) { /// true } else { /// false } cs 이러한 형태로 구성을 하여야 할 것이다. 그렇다면 저 bflag 부분은 저렇게만 넣을 수 있는가? 당연히 아니죠.. 2가지, 3가지의 변수값을 확인 해야 할 때도 있다. 이런 상황 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 bool bflag1 = true; bool bflag2 = true; bool bflag3 = true..
028. UI Thread
·
사소한 아이의 소소한 스킬/C#
UI Thread에 대해서 알아보자.... (기본적으로 지금부터 하는말은 내가 이해한 수준으로 하는 말이므로 실질적으로는 다를수도 있다...) WPF의 경우 UI에 데이터를 변경 할 시에는 UI Thread라는 Thread에서 모두 처리가 된다. 즉, 우리는 단순히 Label의 Content를 수정하지만, 내부적으로 파고 들어가면 UI Thread가 해당 작업을 해준다는 것.. 그만큼 우리가 신경쓸게 많이 없단 이야기!! 그만큼 편하다!!!! 하지만 이러한 문제 때문에 문제가 발생되는 경우도 존재한다. WPF의 기본 Thread(MainWindow의 작업)에서는 문제가 발생하지 않지만, 만약 다른 Thread를 만들어서 처리를 한다면. UI Thread와 새로 만든 Thread간의 UI Component..
027. 압축설정/압축해제
·
사소한 아이의 소소한 스킬/C#
이번엔 압축하기와 압축해제하기.. 보통은 그냥 반디집으로 다 압축해버리지... 누가 또 프로그래밍을 해서...하겠는가..... 근데 또 모를일이지...압축까지 해버리면.....또 편하니깐..... 그러니..압축하는것과 압축해제하는 부분을 해보자!! 바로 코드 ㄱㄱ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Colored by Color Scripter cs 일단 UI는 뭐가 없다... 그냥 버튼3개.. 압축버튼/압축해제 버튼/폴더압축버튼!! 각각 버튼에 Code-behind에다가.... 처리... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ..
026. 통계정보들
·
사소한 아이의 소소한 스킬
이번에는....기술 포스팅이라기보단... 그냥 통계정보들을 적어보자...... 기본적으로 나는 C#만 사용한다....... 뭐 물론 C/C++/QT 등도 좀 사용할줄은 알지만.... 필드에서 사용할 수준은 못되는거같다. 이직을 하려고 이직사이트를 확인해보면.. C/JAVA/파이썬 등을 많이 구하는것을 볼수 있다.. C#은 왜이렇게 없을까.....C#을 잘 사용하지 않는것인지...... 그리하여 C#을 얼마나 사용하는지 확인해보자..... 전세계적으로 사용되는 순위다... 최신 2021.11월 자료..! 위에 말했던 언어들이.... 상위1,2,3위..많은 이유가 있었...... 1위는 파이썬, 2위는 C, 3위는 자바. 4위 C++, 5위 C# 그래도 5위다.. C#!! 근데 왜...없을까...........
025.Thread/Task
·
사소한 아이의 소소한 스킬/C#
25번째까지 왔다... 사실 내가 적으면서도... 약간 대충 적는것도 있고... 큰 설명을 적지않는거 같아 좀 그렇지만. 꼭 필요한 부분들은 적는거 같으니...... 세세한 내용은 msdn이나...stackoverflow를...... 일단.. 이번엔 Task와 Thread다.. 사실 프로그래밍을 하다보면 일반적으로 thread를 굉장히 많이 쓰게 된다... 그러면서도 어려운게 thread...... thread형태로 가면 WPF 경우 UI Thread와의 충돌도 생길수 있고... lock 부분의 문제도 생길수 있고 (이부분은 2021.10.19 - [사소한 아이의 소소한 스킬/C#] - 001. Thread Safe) 이거를 추가로 함 봐보자!! 아무튼.... 그리하여 thread와 task 사용법에 대..
024. Chart
·
사소한 아이의 소소한 스킬/C#
이번엔 Chart를 써보자...... 일반적인 Line Chart... 나는 지금까지 Chart는 Infragistics의 Chart만 써보았지만.... 이게 참...애매한거같아서.... 그냥 무료 Chart를 한번 써보도록해보자... 일단.. Chart를 쓰려면... 기본 프로젝트 생성 후에......... NuGet에서 Livechart를 검색해서 설치해주자..!! NuGet은 아래와 같이 Project 에서 우클릭해서 NuGet 패키지 관리를 누르면 나온다. 설치가 완료되면 준비단계는 끝..!! xaml에서 아래와 같이 입력해주자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Colored by Color Scripter cs 이러면 기본 Grid에 Line Ch..
023. String Operator
·
사소한 아이의 소소한 스킬/C#
String Operator다. 말이 어렵지.. 그냥 string 에 string 더하는 연산.......... 즉 "A" + "B" = "AB" 이거... 이거를 어떻게 진행하느냐.... 어렵지 않지... 고냥... 1 2 3 string A = "A"; string B = "B"; string C = A + C; cs 이게 끝........ 이리 쉬운걸 왜 포스팅을............ 근데 만약 이런 작업이 10000번을 수행한다면?? 그래도 뭐 문제없이 작동은 된다... 하지만.... 시간이?? 그래 10000번은 좀 기다린다 치자... 그러다면 100000번 해야한다면? 사실 이런 경우를 안만드는게 가장 베스트겠지... 하지만 굳이 수행해야한다면..?? stringbuilder를 사용하면 그나마..
022. Git
·
사소한 아이의 소소한 스킬
기술은 아니고.... 나도 써본적은 없지만... 관심은 있던... Git... 사실 집에서는 코딩을 하지않고(직업병인가..) 회사에서만 하는데... 회사는 자체 SVN 서버(외부망 접속 가능)를 두고있으니.. 굳이... 그리고 약간 또 불안한 느낌도 없지않아 있기도하고.... 결국 자료가 클라우드에 저장되는거니...... 아무튼... 개인적인 용도로 쓰기엔 나쁘지않겠다 싶은 Git이다!! Git은 간단히 말하면 소스 저장소, 즉 SVN과 동일하다. 하지만 SVN의 경우 로컬에 저장소도 저장해두어야 하고, 관련 설정도 해주어야 하고... 귀찮은게 한두개가 아니다.. 하지만 Git은 이것저것 간단하게 다 제공해주므로... 단순 Visual Studio랑 연결만 해주면 Git에 저장소가 알아서 생성/알아서 관..
021. Multi Trigger
·
사소한 아이의 소소한 스킬/C#
이번엔 Multi Trigger이다. 말그대로 여러개의 Trigger라고 생각하면될듯싶다 즉 1 2 3 4 5 if( 조건1 && 조건2) { // 수행 } cs 이런거로 보면 될듯 싶다. 코드 ㄱㄱ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 Colored by Color Scripter cs CheckBox를 2개 두고 2개가 모두다 check되면 글씨의 색상과 내용을 변경하는 코드.. 어렵지 않죠..? 수행화면 굳.! 코드는
020. Data Trigger
·
사소한 아이의 소소한 스킬/C#
이번엔 Data Trigger이다. 모든 Trigger가 그렇듯.. 코드 비하인드의 if문을 생각하면 좋다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 if( 나는 부자다 ) { /// 돈을 쓰자 } else { /// 열심히 모으자 } cs 이러한 if문을 xaml로 쓰는게 trigger문.. 이번엔 Data Trigger이다. Data Trigger... 이름만 봐도 뭐.. Data를 비교하여 수행하는 것.. 바로 코드 ㄱㄱ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 Colored by Color Scripter cs 이거도 ..
019. Event Trigger
·
사소한 아이의 소소한 스킬/C#
Property Trigger에 이어 이번엔 Event Trigger다 Event Trigger는 특정 Event가 발생되었을때 수행되는 Trigger다 코드 ㄱㄱ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 Colored by Color Scripter cs 코드가 길긴하지만..... 보면 뭐 없는 코드다. 일단 1개의 Rectangle을 선언해주고.. 그 Rectangle의 Style을 지정해준다. 그후 Event Trigger를 선언..!! 마우스가 Rectangle 위로 올라왔을때와 내려왔을때 2가지를 선언해주고. Rectangle의 ..
018. Style Trigger
·
사소한 아이의 소소한 스킬/C#
이번엔 UI의 스타일을 알아보자... 그중에서도 Trigger... Trigger는 기본적으로 4가지가 존재한다. Property : 기본 Property값을 변경 할시 Event : Event가 발생될 시 Data : Binding 문법으로 연결된 데이터가 수정될 시 Multi : 조건을 다수 적용 할 시 이중에서 첫번째 Property Trigger에 대해 알아보자.. 간단한 Trigger를 만들어보았다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Colored by Color Scripter cs Rectangle을 하나 만들고... Trigger를 통해 Rectangle의 Fill값을 변경하도록 한 코드.. 코드가 어렵지않아 확..
017. ViewBox
·
사소한 아이의 소소한 스킬/C#
이번엔 ViewBox다. 이건 진짜진짜 별게없다...... 단순히 Image를 보여주는 정도... Image를 쓰는것과 차이가 없으나... 끽하면 Stretch정도일까? 아니 Image도 Stretch가 있던걸로 기억하는데...?? 아무튼.... 코드를 확인해보자.. 1 2 3 4 5 cs 이게 끝이다.... 이리 보이고.... Width, Height에 따라서 크기가 잘 Stretch 될 것이다... 간....단...!!!
014. LINQ Query Operators
·
사소한 아이의 소소한 스킬/C#
LINQ는 사용을 해봤고.. 그렇다면.. LINQ문은 Where 문, select문만 존재하는것인가? 아니다.. 종류는 이렇게 많다 Operator Category LINQ Query Operators Names Filtering Where, OfType Sorting OrderBy, OrderByDescending, ThenBy, ThenByDescending Set Except, Intersect, Union, Distinct Quantifier All, Any, Contains Projection Select, SelectMany Partitioning Skip, SkipWhile, Take, TakeWhile Join Join, GroupJoin Grouping GroupBy, ToLookup S..
013. LINQ Query/Method Syntax
·
사소한 아이의 소소한 스킬/C#
이번엔 LINQ다.. Query Syntax는 Query문을 수행해주는 것이라 생각하면 속편하다. (DB의 Query를 생각해주자) 바로 코드.. 이건 xaml 1 2 3 4 5 6 7 8 9 10 11 12 13 Colored by Color Scripter cs 이건 Code-Behind 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 ..
016. Window - UserControl 간 파라미터 전달
·
사소한 아이의 소소한 스킬/C#
이번엔 컴포넌트가 아닌 UI단위의 기술을 이야기해보자. WPF로 시작하면.... MainWindow가 기본으로 생긴다. 여기서 MainWindow내부에 UserControl을 만든다고 생각한다면 이런식으로..... 만약 이렇다면... MainWindow에서 UserControl로 변수를 넘기는 방법은 무엇이 있을까? 만약 반대의 경우라면? 또 각각의 경우에 따라 변수가 다같이 동기화가 되야 한다면?? 복잡.. 그 자체....... 그냥 간단히 생각해보자 각각 MainWindow의 특정 변수가 있고... UserControl에도 특정 변수를 만들어서.. 2개를 항상 동일하게 변경해준다면... 이런 경우 문제가 발생될 일이 없을 것으로 생각된다.... 그러취? 이렇게 값이 변경될때 신경안쓰고 데이터가 동기화..
015. Endian(엔디안)
·
사소한 아이의 소소한 스킬/C#
이번엔 엔디안에 대해 써보고자 한다.. 엔디안이란 데이터를 메모리에 넣는 순서를 정하는거라고 생각하면 될 것 같다. (내맘대로 생각...) (https://ko.wikipedia.org/wiki/%EC%97%94%EB%94%94%EC%96%B8) 나무위키도 함 봐보자! 그러면 이러한 엔디안은 어떠한 것들이 있는가? 단 2가지 뿐이다. Big-Endian(빅엔디안), Little-Endian(리틀엔디안) 그렇다면 빅엔디안과 리틀엔디안의 차이는 무엇인가? 아까 말했듯 데이터에 넣는 순서가 다르다는 것.. 예시로 확인해보자. Int32 Type의 TEMP_INT 라는 변수가 있다고 생각해보자. 1 int TEMP_INT = 123456789 cs 이렇게 변수가 있다면... 이 변수는 과연 4바이트 메모리에 어..
012. Tab Control - TabStripPlacement
·
사소한 아이의 소소한 스킬/C#
탭컨트롤이다.. 뭐 별거없는 탭컨트롤... 그냥 크롬의 탭을 생각해도되고... 오피스의 탭을 생각해도 되고... TabStripPlacement는 단순히 탭을 어느위치에 둘것인지 이다. 왼쪽/오른쪽/위/아래 4가지가 존재... 이건 굳이 코드까지 적힐필요도 없지만......... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 Colored by Color Scripter cs 뭐 없다.... 코드도 제외!
011. ListBox
·
사소한 아이의 소소한 스킬/C#
11번째다.... 이번엔 ListBox... Listbox는 그냥 말 그대로 List 정보.. DataGrid와는 살짝 다른.... DataGrid를 가장 많이 쓰지만... 일반 Listbox도 알고는 가야지.... Listbox에 텍스트를 주로 넣지만... 난 그냥 Rectangle을 넣어봤다.. 코드 바로 궈궈 간단히 설명하자면... DataBinding을 위해 DataContext에 ViewModel을 연결해주고.. ListBox 선언 후 LS라는 Property와 ItemSource를 연결.! 그러면 끝 버튼 누를시에는 이렇게 ViewModel 접근해서 LS 프로퍼티에 데이터를 넣어준다. 그러면 디 엔딩 (기본적인 DataContext 생성방법등은 2021.10.21 - [사소한 아이의 소소한 스..
010. Grid
·
사소한 아이의 소소한 스킬/C#
그냥 생각나는 컴포넌트들을 다 작성하고 있다... 그래서....좀..순서가 뒤죽박죽....하지만 뭐...내가 남겨두려하는거니까..!! 검색해서 보면되고!!! 그리하여 이번엔 Grid.. Grid가 참..잘쓰면 좋고....나쁘게 쓰면 안좋고.... 처음에 UI를 잡을때 잘 고려해야 한다. 만약 위와 같은 화면을 레이아웃 잡는다고 하면? 또한 위 화면 사이즈를 조절했을때 가운데 파란화면만 가로가 늘어난다면?? 이러한 부분들을 잘 고려해서 Grid를 생각한다면.... 정말 좋은 UI Layout이 될 것이다.. 물론 여기에 StackPanel 등을 또 섞어서 넣으면 금상첨화! 만약 내가 저런 UI Layout을 만든다면 이렇게 짤듯.. 이건 정말 간단한 Layout이니깐...금방...후딱후딱... 하지만.....
009. WaterMark TextBox
·
사소한 아이의 소소한 스킬/C#
간단한 WaterMark TextBox를 만들어볼까한다. 유니티를 쓰면 기본적인 InputBox에 DefaultText를 입력하여서 Watermark를 만들필요가없지만... C#은 그런거없지.. 코드작성 고고 난 일단 워터마크를 이미지로 박을 예정이기에... 간단한 Textbox를 만들고..백그라운드로 티스토리 로고를 하나 박아준다. 티스토리 로고는 프로젝트에 추가해주어야 하며, 속성을 아래와 같이 해주어야 한다. 그리고 Behind 코드는 이렇게 Text의 내용이 있을때와 없을때를 구분지어 백그라운드를 보여줄지 말지로 해준다. 그리하면 텍스트 입력 전 텍스트 입력 중 이리된다. 만약에 이미지를 사용하지 않는다면.. 이미지 사용관련된 코드는 지우고... Behind 코드에서 Text가 Null이거나 빈칸..
008. StackPanel
·
사소한 아이의 소소한 스킬/C#
이번엔 요새 정말 많이 쓰는거같은 StackaPanel... StackPanel이란 말그대로 계속 Stack을 해주는 Control이라고 생각하면된다. UI를 구성할때 UI의 사이즈가 변경 될 시 UI 위치를 어떻게 배치할것인지 항상 고민이 된다. 이럴때 StackPanel을 사용하면 참 편하다. 특정 위치에 Grid를 배치한 후 StackPanel을 생성하여 여러 Control을 배치하면.. 알아서 순서대로 넣어주므로 margin값을 넣어주지 않아도 알아서 배치가 딱딱되는 것!!! 사용법은 아래와 같이 사용하면 된다. 이렇게 넣어주면 알아서 자동으로 TextBlock과 Button이 차곡차곡 쌓인다 아래처럼. 만약 세로로 쌓는게 아니라 가로로 쌓으려면 StackPanel의 Orientation 정보를 ..
007. Menu
·
사소한 아이의 소소한 스킬/C#
7번째는 Menu... 뭐..간단한... Menu..... 보통 모든 Application의 경우 모두 Menu가 있다... 파일탐색기에도 있고..... 이러한 Menu는 코드로 어떻게 작성하면 되는 것인가? 아래와 같다. 이렇게 적으면 화면은 요롷게 만들어진다. 그렇다면... 만든 메뉴를 선택하면 특정 이벤트가 발생되도록 하려면..? 이렇게 xaml에서 클릭하는 menu에 따라 입력해주면된다. 그리고 Code-Behind에서 특정 행위를 코딩하면된다.. 또한 메뉴에서 Check 버튼이 보이게 하려면?? 이렇게 IsCheckable 변수값이 존재한다. 이렇게 Check값이 보여진다.. 이상!!
006. ValueConverter
·
사소한 아이의 소소한 스킬/C#
6번째... ValueConverter이다. ValueConverter 또한 DataBinding시 사용되는 기술로써.. 어렵게 생각할 필요 없이... 그냥 ValueType을 변경해주는 중간 다리 역할이라고 생각하면 된다. 지난번 DataBinding시의 이미지를 보면 이렇게 중간에 ValueConverter가 들어간다. 그렇다면 어떠한 중간다리 역할을 하는것인가... 예를 들어 UI를 Visible할 시 Visible하거나 Collapsed 하려할 시 Visibility Type의 데이터를 가져와서 데이터를 입력해주어야 한다. 그런데 Visibility Type을 가져와서 값을 설정해주는 것이 아니라 bool Type의 true, false를 가지고 입력해준다면? 이럴때 사용되는 것이 ValueCon..
005. MVVM Util
·
사소한 아이의 소소한 스킬/C#
Data Binding을 말하면서 MVVM 패턴을 이야기하였다. Model - View - ViewModel ( MVVM ) 의 연동 Model이야 기본 Class를 선언하면 되지만.. ViewModel에서는 프로퍼티로 선언해주고 해당 프로퍼티가 변경되었을 시 PropertyChange라는 함수를 선언및 생성 해주어서 View로 데이터 변경을 알려주고, Model로 데이터 변경을 알려주어야 한다고 하였다. 모르겠다면... ( 2021.10.21 - [사소한 아이의 소소한 스킬/C#] - 003. DataBinding ) 근데 이러한 방법들을 매번 INotifyPropertyChange Interface를 상속받아서 해야하는가? 아니다. 너무나도 잘 되어있는 MVVM Libary들이 인터넷에 떠돈다. 그중..
004. DataBinding
·
사소한 아이의 소소한 스킬/C#
WPF에서 가장 많이 사용되는 기술이라고 생각된다 UI와 Code를 쉽게 연결해주는 방법!! DataBinding!!! 정말 간단히 말해서 DataBinding이란.. 변수의 값을 변경만 하면 알아서 UI에 변경된 값이 표출되고. UI에서 값을 변경하면 해당 변수값이 자동으로 변경되는 기능!! 변수값을 수정했다고 따로 UI처리를 해주지 않고, UI에서 수정했다고 따로 변수값을 처리해주지 않아도 된다는 편리함이 있다!!! 이미지로 표출하자면 위와 같다!! (ValueConverter는 다음 포스팅에서..... 현재는 신경쓰지 않아도 되는 부분...) (또한 DataBinding을 위해서는 MVVM 패턴을 적용시켜야 하는데 해당 포스팅도 다음에.... 일단은 무조건 따라하기 식....) DataBinding..
003. MVVM 디자인패턴
·
사소한 아이의 소소한 스킬/C#
MVVM 디자인은 Model-View Model-View로 이루어진 패턴이다. Model은 표현하고자 하는 특정 Entity라고 생각하면된다. 데이터를 표출하기 위한 기본 단위.. View는 말 그대로 UI라고 생각하면된다. TextBox, InputBox, Label 등 ViewModel은 View와 Model을 연결해주는 요소. MVVM에서의 핵심 요소이다. ViewModel은 프로퍼티와 커맨드등이 작성된다. MVVM을 쓰는 가장 큰 이유는 View와 Model을 연결해주는 DataBinding이 가장 큰 이유라고 생각된다. DataBinding이 되면 View에서 수정한 데이터가 자동으로 Model의 데이터로 변경도 되고, Model 데이터를 변경 시 자동으로 View에서의 데이터가 변경된다. 그러..