본문 바로가기
반응형

분류 전체보기127

[C#] XML 직렬화, 역직렬화 (Serialize, Deserialize) 해당 글에서는 XML 직렬화, 역직렬화하는 방법을 알 수 있다. 간단하게 직렬화와 역직렬화를 설명하겠다. 직렬화는 객체를 바이너리 형식으로 변환하는거며 역직렬화는 바이너리를 객체로 변환하는 거다. 직렬화와 역직렬화는 결국 반대의 일을 해주는 것이다. 데이터를 주고받는 형식으로 JSON 외 XML이 주로 사용되고 있으니 알아두면 유용하게 사용할 수 있다. XmlSerializer 네임스페이스 : System.Xml.Serialization 어셈블리 : System.Xml.XmlSerializer.dll XMl 형식으로 객체를 직렬화하고, 역직렬화 하는데 사용하는 클래스이다. XmlSerializer 클래스 (System.Xml.Serialization) XML 문서로 개체를 직렬화하고 XML 문서에서 개체.. 2023. 1. 6.
[C#] switch 식 소개 switch 식은 C# 버전 8.0에서 나온 기능이다. 보통 switch case 문 조건으로 처리를 하는데 switch 식을 이용함으로써 좀 더 간결하고 명시적으로 사용 가능해졌다. 개인적으로 switch 식을 알고 있기 전과 이후로 많은 코딩 변화가 일어났다. 사용방법 switch case 문 public string GetColorName(int colorNum) { string colorName = string.Empty; switch(colorNum) { case 0: colorName = "red"; break; case 1: colorName = "blue"; break; case 2: colorName = "green"; break; case 3: colorName = "yellow".. 2022. 12. 2.
[C#] 확장메서드 (Extension Method) 소개 확장 메서드(Extension Method)는 C# 3.0부터 지원하는 static 메서드이다. 확장 메서드는 클래스, 구조체, 인터페이스 등에 적용될 수 있다. 확장 메서드를 사용하면 클래스를 직접 변경하지 않고도 클래스 외부에서 정의함으로써 기능을 확장한 효과를 얻는다. 확장 메서드는 static class 안에 static method로 정의한다. 첫 번째 매개변수는 확장 메서드가 사용될 타입을 지정하며 매개변수 앞에 this 키워드를 사용한다. 그다음 매개변수들을 정의하여 메서드 사용 시 받는 매개변수를 정의한다. 예제 Country enum 정의 public enum Country { KOR, USA, GBR, UKR, NOR, RUS } Extensions 클래스에 Name 확장 메서드 .. 2022. 10. 28.
[DBeaver] 쿼리 단일 실행, 여러개 실행 DBeaver에서 쿼리를 단일로 실행 or 여러 개 실행하는 방법을 알아보자. [환경] OS : Windows 10 Version : 22.2.2.202210092258 단일 실행 단축키 : Ctrl + Enter SELECT NOW() 여러 개 실행 단축키 : 쿼리 드래그 + Alt + X 주의사항이 있다면 쿼리 뒤에 세미콜론을 붙여야지 오류가 발생하지 않는다. SELECT NOW(); SELECT ADDDATE(NOW(), -1); 2022. 10. 20.
[C#] List 정렬 총정리(기본정렬, 여러개 정렬) List를 정렬하는 방법을 총정리한다. 해당 정리로 다양한 정렬을 할 수 있고 예시를 통해 쉽고 빠르게 이해하도록 하자. 정렬은 기본적으로 Enumerable 클래스의 메서드를 사용한다. Linq 패턴을 따른다. 해당 정리는 .NET6 기준으로 정리했다. class User { public int idx { get; set; } public string name { get; set; } public int age { get; set; } } User 클래스를 가지고 List 를 생성하여 진행할 것이다. public static void Main(string[] args) { List users = new List() { new User() { idx = 1, name = "김씨", age = 30 }, .. 2022. 10. 18.
[MSSQL] 날짜 변환표 (Convert) 날짜 및 시간 데이터를 형식에 맞게 반환하는 방법을 알 수 있다. ⚪참고 SQL Server는 쿠웨이트 알고리즘을 통해 아랍어 스타일의 날짜 형식을 지원한다. 사용방법 -- Concvert Syntax: CONVERT(data_type[(length)], expression, [style]) data_type : 데이터 형식. length : 사용자가 지정하는 길이. 생략 가능. 기본값은 30 style : 식을 변환하는 방법을 지정하는 정수 식. SELECT CONVERT(VARCHAR, GETDATE(), 25) [출력] 2022-10-13 16:15:12.490 날짜변환표 두 자리 연도(yy) 네 자리 연도(yyyy) 입/출력 - 0 또는 100 mon dd yyyy hh:miAM(또는 PM) 1 .. 2022. 10. 13.
[C#] JsonConvert null 해결방법 JSON 데이터를 직렬화/역직렬화할때 null로 인한 오류가 발생하는 경우가 있다. 이런 경우 해결법이 몇 가지 있는데 간단하게 확인해보자. { "id":0, "name":null, "nickName":null, "createTime":null, "claimTime":null } 위와 같은 데이터를 받는다고 가정하자. 'id' 필드를 제외한 나머지 값들은 모두 null 인 상태이다. class User { public int id { get; set; } public string name { get; set; } public string nickName { get; set; } public DateTime createTime { get; set; } public DateTime claimTime { ge.. 2022. 10. 13.
[MAUI] 상대 바인딩 - 상위 항목에 바인딩 상대 바인딩 - 상위 항목에 바인딩 모드는 시작 전 트리에서 특정 유형의 부모 요소에 바인딩하는 데 사용된다. FindAncestor 모드는 Element 형식에서 파생되는 부모 요소에 바인딩하는 데 사용된다. FindAncestorBidningContext 모드는 부모 요소의 BindingContext에 바인딩하는 데 사용된다. FindAncestor 및 FindAncestorBindingContext 상대 바인딩 모드(상위 항목에 바인딩)를 사용할 때는 AncestorType 속성을 Type으로 설정해야 한다. 그러지 않으면 XamlParseException 이 throw 된다. Mode 속성이 설정되지 않은경우, AncestorType 속성을 Element에서 파생된 형식으로 설정하면 Mode 속성.. 2022. 10. 11.
[MAUI] 상대 바인딩 - 자기 자신에게 바인딩 상대 바인딩중 자기 자신에게 바인딩하는 방법을 알아보자. 자기 자신에게 바인딩하는 방법은 RelativeSource 속성을 Self로 지정하여 사용한다. 요소의 속성을 다른 속성에 바인딩할 때 사용한다. 예제) 해당 예제에서 width 속성 값을 height 속성에 바인딩 하였다. 해당 두 속성의 값은 동일하다. 바인딩 시 요소의 속성을 바인딩 시 유형이 같아야 하며 만약 다르다면 변환기를 통해 지정하면 된다. 더보기 [참고] https://learn.microsoft.com/ko-kr/dotnet/maui/fundamentals/data-binding/relative-bindings#bind-to-self 상대 바인딩 - .NET MAUI .NET MAUI 상대 바인딩은 바인딩 대상의 위치를 기준으로 .. 2022. 10. 4.
[MAUI] 상대 바인딩 상대 바인딩 이란? MAUI의 상대 바인딩은 바인딩 대상의 위치를 기준으로 바인딩 소스를 설정하는 기능이다. 상대 바인딩은 RelativeSource 태그 확장을 사용하여 생성되며, 바인딩 식의 Source 속성으로 설정된다. RelativeSource 태그 확장 RelativeSource는 RelativeSourceExtension 클래스에서 지원된다. Mode : 바인딩 대상의 위치에 상대적으로 바인딩 소스의 위치를 설명한다. AncestorType (Type : Type) : Mode 속성이 FindAncestor 인 경우 살펴보아야 할 상위 항목 유형이다. AncestorLevel (Type : int) : Mode 속성이 FindAncestor인 경우 살펴보아야 할 선택적 상위 항목 수준이다. .. 2022. 10. 4.
[MAUI] 바인딩 변환기 매개변수 바인딩 클래스는 ConverterParameter 속성을 정의한다. 이 속성이 설정되어 있는 경우 값은 parameter 매개변수로 Convert 및 ConvertBack 메서드에 전달된다. 예제를 통해 ConverterParameter 속성 사용방법을 알아보자. BoxViewModel public class BoxViewModel : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; private int _width = 50; public int width { get { return _width; } set { if(_width != value) { _width = value; PropertyChanged.. 2022. 9. 30.
[Java] SQL [n/a]; nested exception is org.hibernate.exception execute statement 오류 해결 해당 오류 내용을 대략 번역해보면 'SQL 구문에 오류가 있다.'라는 내용이다. 이와 관련해서 여러 글들을 찾아보면 대부분 SQL 이 잘못되어 있거나 Model 명과 실제 테이블 컬럼의 명이 다르거나 SQL 쿼리 문이 잘못되어 있다는 거였다. 나도 처음에는 쿼리문이 잘못 되어있는줄 알고 찾아보았지만 쿼리문에는 문제가 없었다. 그러다 알게 된 사실인데 테이블을 생성할 때 예약어를 컬럼명이나 DB 명으로 생성하는 안 되는 거였다. 그중 난 'Order'라는 단어를 사용했는데 이것 조차 안 되는 건 줄 몰랐다. 해결 방식 1. 쿼리 문에 문제가 있는지 확인한다. 2. 예약어를 사용했는지 확인한다. DB 예약어 링크 Oracle https://docs.oracle.com/cd/B19306_01/em.102/b4.. 2022. 9. 29.
CSF 란? - 핵심 성공 요인(Critical Success Factor) 핵심 성과 지표(KPI)는 효율적으로 결과에 도달하기 위한 하나의 수단이다. 핵심 성과 지표를 설정하는데 많은 이들은 어려움을 겪을 때가 있다. KPI를 설정한 후에도 성과를 얼마나 측정해야 하는지 잘 모른 채 감에 의존하고는 한다. 이렇듯 많은 사람들이 KPI를 제대로 이해하지 못하고 잘못된 이해 때문이다. 이럴 때 핵심 성공 요인(CSF)을 활용하여 어떤 지표를 얼마나 잡아야 할지 설정하면 된다. What is CSF ? CSF 란 무엇인가? 핵심 성공 요인(CSF)은 "기업 경쟁력 향상을 위한 핵심 내부역량이며, 목표 달성을 위해 반드시 수행해야 하는 필수 요소"이다. CSF는 최고 경영자의 정보 요구를 이해하기 위해 수단으로 다듬기 시작했다. 여기서 주목해야 하는 키워는 '경영자'이다. CSF는 .. 2022. 9. 28.
[MAUI] 바인딩 변환기 속성(IValueConverter) 값 변화기 클래스에는 속성 및 일반 매개 변수가 있을 수 있다. 값 변환기는 원본에서 대상에 대한 제네릭 형식의 개체로 변환할 수 있다. 예시 BoolToObjectConvert Class class BoolToObjectConvert : IValueConverter { public T TrueObject { get; set; } public T FalseObject { get; set; } public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { return (bool)value ? TrueObject : FalseObject; } public object ConvertBack(object v.. 2022. 9. 23.
[MAUI] 바인딩 값 변환기 (IValueConverter) MAUI 바인딩은 일반적으로 원본 속성에서 대상 속성으로 데이터를 전송하고 경우에 따라 대상 속성에서 원본 속성으로 데이터를 전송한다. 데이터 바인딩의 속성을 이용하여 다른 형식의 변환을 원하는 경우 IValueConverter 인터페이스를 구현하는 클래스에 일부 특수한 코드를 작성하면 된다. IValueConverter를 구현하는 클래스를 값 변환기 / 바인딩 변환기 / 바인딩 값 변환기라고 한다. IValueConverter IValueConverter는 기본적으로 Convert, ConvertBack 메서드를 갖고 있다. 바인딩 값 변환을 하기 위한 인터페이스이다. Convert public object Convert(object value, Type targetType, object paramet.. 2022. 9. 23.
[MAUI] 바인딩 경로 - Path .NET MAUI에서 클래스의 속성(Binding)을 단일 속성, 하위 속성 or 컬렉션의 멤버를 Path로 설정할 수 있다. 위의 예제는 TimePicker 를 통해 Path를 설정하는 방식을 알 수 있다. 쉽게 생각하면 BInding 된 속성에 대해서 어떤 값을 사용할지 정한다고 보면 된다. 더보기 [참고] https://learn.microsoft.com/ko-kr/dotnet/maui/fundamentals/data-binding/binding-path 바인딩 경로 - .NET MAUI .NET MAUI 데이터 바인딩을 사용하여 Binding 클래스의 Path 속성을 사용하여 하위 속성 및 컬렉션 멤버에 액세스할 수 있습니다. learn.microsoft.com 2022. 9. 21.
프로 직장인의 필수 급여체❗ 1. 디벨롭(Develop) 특정 업무의 내용을 보완하거나 발전시키다. 2. 아이데이션(Ideation) 아이디어를 끌어내는 일 or 그 과정 자체를 뜻한다. 3. 어레인지(Arrange) 상황이나 일정, 문서 등을 조율하거나 다듬고 정리하다. 4. 피드백(Feedback) 업무에 대해 전하는 의견 및 조언 5. 컨펌(Confirm) (주로 상사나 결정권자의) 승인 및 확인 6. 인볼브(Involve) 업무나 프로젝트 등에 참여, 합류, 관여하다 7. 캐파(Capacity, Capa) 업무를 수용하거나 감당할 여력, 역량 (=케파) 8. 캐주얼(Casual) 상세하거나 무겁지 않은, 가벼운 형식으로 진행하는 업무 등 9. 크로스체크(Cross-Check) 한 업무를 2명 이상이 교차 검토하는 것. 문제나.. 2022. 9. 20.
[C#] Json 직렬화/역직렬화 속성 제외하는 방법 Class 속성 중 Json 직렬화/역직렬화시 속성 제외하는 방법을 알 수 있다. 기본적으로 직렬화/역직렬화 하면 모든 public 속성을 직렬화/역직렬화 한다. 그중 일부 속성을 사용하지 않도록 하는 방법이 있다. Newtonsoft.Json의 속성을 사용하거나 System.Text.Json을 사용하는 방법이 있다. 공통적으로는 [JsonIgnore]를 사용한다. 방법 1. Newtonsoft.Json 이미지 기준 직렬화 제외할 속성에 [JsonIgnore] 사용하면 제외된다. 해당 이미지의 코드를 아래 같이 표기해두겠다. Newtonsoft.Json 공홈 public class Account { public string FullName { get; set; } public string EmailAdd.. 2022. 9. 14.
[MAUI] 문자열 서식 지정 MAUI에서 데이터 바인딩을 사용하여 개체 또는 값을 표현 시 서식을 지정하여 표현이 가능하다. 문자열 서식 지정은 일반적으로 String.Format 메서드를 사용하여 수행된다. String.Format 관련해서는 MS Docs에 잘 나와 있기 때문에 해당 링크를 공유해 두겠다. (String.Format MS Docs 링크) 서식 문자열은 작은따옴표 문자로 구분되어 중괄호를 다른 태그 확장으로 처리하지 않도록 주의해야한다. 이전, Viewmodel 바인딩 소스를 응용하여 좀 더 예시를 들어보겠다. 각 Slider에 맞는 Label을 설정하여 각 슬라이드의 값을 표시하고 있다. 원하는 형식의 포멧으로 다양하게 값을 표현할 수 있다. 더보기 문자열 서식 지정 - .NET MAUI | Microsoft D.. 2022. 9. 6.
[MAUI] Viewmodel 바인딩 데이터 바인딩에서 Viewmodel을 사용하는 경우 Viewmodel은 데이터 바인딩 원본이다. Viewmodel의 속성 값이 변경될 때 알림 메커니즘을 이용하여 속성 값을 변경한다. 알림 메커니즘은 INotifyPropertyChanged 인터페이스이며 PropertyChanged라는 이벤트를 정의한다. 이 인터페이스를 구현하는 클래스는 일반적으로 public 속성 중 하나가 값을 변경할 때 이벤트를 발생합니다. 예시 간단하게 색상을 변경하는 예시이며 Hue, Saturation, Luminosity 값들을 받아 색상을 재정의하는 예시이다. ColorViewModel 클래스 public class ColorViewModel : INotifyPropertyChanged { public event Prop.. 2022. 8. 24.
[MAUI] 바인딩 모드 .NET MAUI 바인딩 가능 속성에는 바인딩 가능한 속성을 만들 때 설정되고 개체의 속성에서 사용할 수 있는 기본 바인딩 모드가 있다. 기본 바인딩 모드는 속성이 데이터 바인딩 대상일 때 적용되는 모드를 나타낸다. Rotaion, Scale, Opacity와 같은 대부분의 속성에 대한 기본 바인딩 모드는 OneWay이다. 데이터 바인딩 대상인 경우에는 대상 속성이 원본에서 설정된다. 여기서 말하는 대상은 데이터 바인딩이 설정된 개체이며, 원본은 데이터 바인딩에서 참조하는 개체 이다. 종류 Default OneWay : 원본에서 대상으로 전송 OneWayToSource : 대상에서 원본으로 전송 TwoWay : 원본과 대상 간에 양방향으로 전송 OneTime : 원본에서 대상으로 전송되지만 변경되는 경우.. 2022. 8. 17.
반응형