본문 바로가기
반응형

분류 전체보기127

[MAUI] 데이터 바인딩 기본 사항 .NET MAUI는 데이터 바인딩을 사용하며 두 개체의 속성을 연결하여 한 개체의 변경으로 다른 개체가 변경되도록 할 수 있다. 해당 기능은 매우 유용한 기능이며 데이터 바인딩을 코드에서 완전히 정의할 수 있지만 XAMl은 바로 가기 및 편의를 제공해준다. 데이터 바인딩 데이터 바인딩은 '원본'과 '대상'이라는 두 개체의 속성을 연결해준다. 쉽게 말해 서로 간의 속성이 연결이 되어 반응을 하는 것이다. 데이터 바인딩이 이루어지기 위해서는 두 단계가 필요하다. BindingContext 대상 개체의 속성을 원본 개체로 설정해야 한다. SetBinding 메서드는 대상 개체에서 호출하여 해당 개체의 속성을 원본 개체의 속성에 바인딩 해야 한다. 대상 속성은 바인딩 가능한 속성이여야 한다. 즉, 대상 개체가 .. 2022. 8. 16.
[MAUI] XAML 태그 확장 .NET XAML 태그 확장을 사용하면 속성을 다른 원본에서 간접적으로 참조되는 개체 또는 값으로 설정할 수 있다. 일반적으로 XAML을 사용하여 개체의 속성을 문자열, 숫자, 열거형 멤버 또는 백그라운드 값으로 변환되는 문자열과 같은 명시적 값으로 설정한다. 그러나 경우에 따라 속성은 다른 곳에 정의된 값을 대신 참조해야 하거나 런타임에 코드로 약간 처리해야 할 수 있다. 공유 리소스 만약, 동일한 XAML 속성이 여러번 사용된다면 하나로 만들어 관리하는 게 관리 포인트에 더 좋다. 하나로 만들지 않는다면 동일한 속성을 여러 번 수정하러 다니는 경우가 생기고 누락되는 경우가 생길 수 있기 때문이다. 이러한 불편함을 없애고자 나온 솔루션은 값 또는 개체를 리소스 사전에 저장하여 사용하는 것이다. 페이지에.. 2022. 8. 15.
구글 지메일(Gmail) 수신확인 간단하게 하는방법❗ (Streak) 직장인들이라면 지메일을 보편적으로 많이 쓰는데 내가 보낸 메일을 수신을 했는지 궁금한 경우가 많다. 이럴 때 지메일(Gmail) 기능인 '수신 확인 요청'으로 하는 방법이 있는데 이 방법은 메일을 작성할 때마다 설정을 해줘야 하고 수신자가 따로 응답을 해줘야 하기 때문에 불편하다. 이러한 불편함을 해결해줄 방법이 있는데 Streak 으로 간편하게 해결 가능하다. 지메일(Gmail) '수신 확인 요청' 기능 방법 평소처럼 메일 작성폼에서 를 클릭후 '수신 확인 요청' 을 클릭후 작성하면 된다. 이와같이 지메일(Gmail) 에서 하는 방법을 알 수 있다. 지메일(Gmail) 경우 수신확인 서비스는 특정한 그룹에게만 제공한다. 업무용, 친구, 가족, 클럽, 학교와 같은 그룹에 속해있어야지 해당 기능이 활성화된.. 2022. 8. 4.
[C#] lock 문 사용법 소개 lock 문은 지정된 개체에 대한 상호 배제 잠금을 획득하여 명령문 블록을 실행한 다음, 잠금을 해제한다. 잠금이 유지되는 동안 잠금을 보유하는 스레드(Thread)는 잠금을 다시 획득하고 해제할 수 있다. 쉽게 말해 다른 하나의 스레드가 잠금을 획득하면 다른 스레드는 기다리고 있다 잠금이 해제될 때까지 기다리고 잠금이 풀렸을 경우 또 다른 하나의 스레드가 잠금을 얻는 거다. lock 문이 필요한 경우는 멀티스레드(Multi-Thread)인 경우 동일한 필드에 액세스 하여 잘못된 결과를 도출을 막기 위하여 사용된다. 이런 경우를 Thread-Unsafe 하다고 한다. 사용법 사용법은 아주 간단하다. lock 호출하여 브레이스로 감싸면 된다. lock(x) { // code.. } 여기서 x는 참조 .. 2022. 8. 3.
[C#] 멀티스레드 (Multi-Thread) 멀티스레드(Multi-Thread) or 다중 스레드는 한 번에 여러 개의 스레드를 사용하는 방식이며 CPU의 성능을 활용하는 프로그래밍 기법이다. 한 번에 여러 개의 작업 or 명령을 실행할 수 있다. 기본적으로 프로세스(process) 실행시 메인 스레드(Thread)가 실행되는데 바로 이것을 메인 스레드(Main Thread)라고 한다. 멀티스레드가 사용되는 경우는 통신, 파일 로딩, DB 등 한번에 여러 개의 작업이 필요시 사용된다. 기본적인 스레드(Thread) 사용 방법은 이전 포스팅을 해놨기 때문에 사용법을 모르는 분들은 이전 포스팅을 보고 오길 바라며 해당 링크를 남겨두겠다. [2022.07.28 - [Programming/C#] - [C#] 스레드(Thread)] 메서드 3개를 서로 다른.. 2022. 8. 2.
[C#] 스레드(Thread) 스레드(Thread) 란? 스레드(Thread)는 하나의 프로세스 내에서 독립적으로 실행되는 실행 단위이다. 멀티 스레드(Multi Thread)는 뜻 그대로 여러 개의 스레드를 실행한다는 뜻이다. 여러 개의 스레드를 사용함으로써 병렬 처리가 가능해져 더욱 빠른 기대효과를 볼 수 있다. 멀티 스레드(Multi Thread) 는 한 번에 여러 스레드(Thread)를 실행하는 것이다. CPU 성능을 활용하여 한번에 많은 처리를 할 수 있다. 생성 및 호출방법 네임스페이스 : System.Threading 어셈블리 : System.Threading.Thread.dll 오버로드 생성자 설명 Thread(ParameterizedThreadStart) 스레드가 시작될 때 개체가 스레드로 전달될 수 있도록 하는 대리.. 2022. 7. 28.
[MSSQL] SSMS Local DB 확인 및 접속 SQL Server Local DB 확인 및 접속 방법 SQL Server Management Studio를 설치 후 or Local DB를 모를 때 해당 내용을 통해 쉽게 알 수 있다. [Envrionment] OS : Windows 10 SSMS : v18.12.1 먼저, SSMS 설치된 경로로 간다. 각자 설치 경로가 다르지만 기본적으로 설치시 경로를 변경하지 않았다면 해당 경로로 따라가면 된다. 여러 가지 버전이 있지만 해당 아무 버전으로 들어간다. 글쓴이는 최근 버전 '150'으로 접근했다. SqlLocalDB.exe 는 사용자가 명령줄에서 LocalDB 인스턴스를 쉽게 관리할 수 있는 간단한 도구로 해당 도구는 LocalDB 인스턴스 API에 대한 단순 래퍼로 구현되어 있다. 해당 프로그램을 .. 2022. 7. 6.
[C#] Sequence contains no elements 오류 해결 Sequence contains no elements Sequence contains no elements C# LINQ 사용시 'Sequence contains no elements' 라는 오류가 발생하면 일반적으로 First() or Single() 명령을 사용해서 발생한다. First() or Single() 을 호출시 결과값이 없다면 'Sequence contains no elements' 오류가 발생한다. 그 이유는 아래의 이미지를 보면 알 수 있다. 해당 오류를 해결하는 방법은 아주 간단하다. FirstOrDefault() 로 변경하면 해결 가능하다. 2022. 7. 5.
[C#] JSON 을 Class 로 자동 생성 (JSON to Class Generator) 만약, 당신이 JSON을 구조를 Class로 정의하기 위해 Property 속성을 50개 넘게 정의해야 한다면 어떻겠는가? Class를 만들다 시간을 다 보내게 되고 업무의 시간이 늘어나 불편함이 늘어날 것이다. 이를 해결하기 위해 JSON string을 Class 구조로 자동 생성하는 방법을 알 수 있다. 방법 1. Visual Studio 만약, 사용자가 Visual Studio를 사용한다면 간단하게 해결 가능하다. 글쓴이는 현재 Microsoft Visual Studio 2022 버전을 사용하고 있어 해당 버전으로 알려주겠다. 버전에 따라 크게 다른 부분은 없겠지만 구버전인 경우 해당 기능이 없을 수도 있으니 참고 바란다. 위치 : 편집 > 선택하여 붙여 넣기 JSON을 클래스토 붙여 넣기 XML을.. 2022. 7. 1.
[C#] JSON, JArray 직렬화, 역직렬화 간단 방법 (Newtonsoft.Json) 소개 및 의미 API 통신을 하다 보면 대부분 JSON 형식으로 많이 주고받는다. JSON을 C#에서 직렬화, 역직렬화 하여 사용하는 경우가 많은데 글쓴이는 'Newtonsoft.Json'을 이용해서 잘 사용하고 있다. 해당 글을 통해 쉽게 직렬화, 역직렬화 하는 방법을 알았으면 바란다. 직렬화? 역직렬화? 직렬화는 객체를 전송 가능한 형태로 만든다는 의미이다. 여기서는 JSON 을 직렬화한다는 표현은 JSON 형태로 만든다는 의미이다. 반대의 의미인 역직렬화는 직렬화된 형태를 다시 객체의 형태로 만드는 것이다. 직렬화는 Serializtion 이라 부르고 역직렬화는 Deserialization이라고 부른다. 직렬화, 역직렬화 해당글에서의 기본 베이스는 'Newtonsoft.Json'을 기본으로 하기 때.. 2022. 6. 30.
MBO 란? What is MBO ? MBO는 피터 드리커(Peter Drucker)가 1954년에 저술한 'The Practice of Management'를 통해서 한문적으로 널리 알려지기 시작했다. MBO는 'Management by objectives'의 약어이며 '목표에 의한 관리'를 의미한다. 목표를 달성하기 위해서 경영진과 직원들이 설정된 목표에 동의하고 조직 내에서 무엇을 해야 할지를 이해해 가는 일련의 과정이다. 목표가 진행되기 위해서는 회사의 신년과 가치가 조직 내 모든 부문을 고루 거쳐 흐르며 구성원 개개인에게 까지 전달되어야 한다. 또한 전달된 이해의 차이가 최소화되도록 노력해야 한다. 원래 MBO는 매니지먼트 기법으로 분류되었지만, 목표와 결과가 명확해짐으로써 평가에 있어 관리자와 직원의 쌍방.. 2022. 6. 28.
KPI 이란 ? (Key Perfomance Indicator) What is KPI ? KPI 란 무엇인가? KPI 는 'Key Perfomance Indicator' 의 줄임말이다. KPI 는 기업이나 조직의 목표달성과 전략을 위한 '핵심성과지표' 이다. KPI는 목표를 향해 해당 목표를 '성공'을 하였는지 or '성공' 하고 있는지에 대해 지표로 본다. KPI의 주요 구성은 '성과', '핵심' 이다. 성과를 달성했는가?, 얼마나 핵심적인가? 바로 이게 KPI 인 것이다. 둘중 하나만 만족한다고하면 그건 실패한 성과로 봐야한다. 성과 '성과'는 남에 대한 비교우위가 아니라 '목표'가 기준이 되어야 한다. 해당 목표가 다른 사람의 목표를 참고할 수 있지만 궁극적으로는 내가 정한 목표가 되어야 한다. 남과의 비교를 하여 해당 목표를 결정 지으면 안된다. 핵심 '핵심'.. 2022. 6. 27.
OKR 이란 ? (Objectives and Key Results) OKR 란? OKR 은 'Objective and key Results' 의 약자이며 '목표와 성과 지표' 라고 한다. 조직, 팀 이 달성해야 하는 목표를 설정하고 전 직원, 팀 이 달성하기 위해 노력을 하고 실제로 어디까지 달성되었는지 성과를 수치화하는 것이 목표 달성을 위한 프레임 워크이다. OKR을 함으로써 어려운 목표를 다같이 바라보며 개개인의 동기를 향상시켜 업무를 더욱 효율을 높이기 위한 목적이 있다. OKR 은 새로운 개념이 아니지만 Google 과 Intel 에서 도입하여 그 실효성이 화제가 되어 국내외 많은 기업들에서 OKR을 도입하고 있다. OKR 에서는 우선 목표(Objectives) 를 설정한다. 그 다음 목표를 달성하기 위해 해결해야하는 성과 지표(Key Results) 를 설정한.. 2022. 6. 26.
[C#] 두 날짜 차이 계산 방법 두 날짜 차이 계산 방법 두 날짜(DateTime) 의 차이를 계사하는 여러가지 방법을 알아보자. DateTime date1 = new DateTime(2022, 1, 1, 20, 00, 00); DateTime date2 = new DateTime(2022, 02, 01, 23, 00, 00); ' - ' 연산자를 통한 두 날짜 차이 계산 간단하게 '-' 연산자를 통하여 두 날짜 차이를 알 수 있다. Console.WriteLine((date2 - date1)); Console.WriteLine((date2 - date1).Days); 출력 31.03:00:00 31 가장 간단하게 할 수 있는 방법이다. 동일한 DateTime 형식으로 진행하면 된다. DateTime.Subtract 두 날짜 차이 계산.. 2022. 6. 23.
[MSSQL] SSMS 데이터 가져오기/내보내기 엑셀 오류 - 공급자는 로컬 컴퓨터에 등록할 수 없습니다. [ERROR] 공급자는 로컬 컴퓨터에 등록할 수 없습니다. SSMS 에서 데이터 내보내기 or 가져오기 할 때 '공급자는 로컬 컴퓨터에 등록할 수 없습니다.' 같은 오류가 발생할 때가 있는데 해당 경우는 엑셀 버전이 다른 경우 발생한다. 본인은 SSMS 데이터 엑셀로 내보내기 할 때 발생했다. 아래에 정확한 상세 버전정보들을 적어 두겠다. [Environment] SSMS : Excel : 365 위 이미지처럼 대상 선택시 'Excel 파일 경로' 를 선택하는 부분에서 'Excel 버전' 과 같은 버전으로 엑셀을 만들어 주면 된다. 엑셀 저장시 '파일 > 다른 이름으로 저장' Excel 버전과 동일하게 맞추어 주면 된다. 본인은 Excel 365를 쓰는 상황이지만 오류 해결 방식은 동일하다. 엑셀 내보내.. 2022. 6. 17.
[MSSQL] SSMS 줄 번호 보이기/숨기기 줄 번호 보이기 / 숨기기 SSMS 에서 줄 번호 보이기/숨기기 를 알 수 있다. 방법은 엄청 간단하다. 위 이미지는 줄 번호가 숨겨져 있는 상태이다. 줄 번호가 없으면 쿼리 찾거나 작성시 불편함이 느껴진다. 이를 해결하기 위해 SSMS 옵션에서 설정을 수정하면 된다. SSMS Version : v18.11.1 위치 : 도구 > 옵션 > 텍스트편집기 > 모든 언어 > 일반 해당 위치까지 이동 후 "줄 번호" 를 클릭하여 보이기/숨기기 설정을 할 수 있다. 2022. 6. 16.
[MSSQL] ERROR - 변경 내용을 저장할 수 없습니다. 컬럼 수정 오류 - 변경 내용을 저장할 수 없습니다. SSMS 에서 수정하고 저장하려고하면 다음과 같은 오류가 발생할 때 가 있다. [Envionment] OS : Windows 10 Tool : SSMS (SQL Server Mangement Studio) Version : v18.11.1 이러한 경우에 해결 방법을 알 수 있다. 도구 > 옵션 > 디자이너 > '테이블을 다시 만들어야 하는 변경 내용 저장 안 함(S)' 해제 한다. 해당 오류가 발생하는건 해당 옵션이 수정하는 발생 내용이 테이블을 다시 만들어 재생성하는 부분이 있을시 실행 안되도록 막기 때문이다. 예를들어 컬럼명 위치를 수정한다면 새로 임시 테이블을 만들어 임시테이블에 데이터를 넣고 기존 데이터를 삭제후 임시테이블을 기존 테이블명으로 .. 2022. 6. 14.
[MAUI] XAML 이란 XAML (Extensible Application Markup Language) XAML(Extensible Application Markup Language)은 개체를 인스턴스화 및 초기화하고 부모-자식 계층 구조에서 개체를 구성하기 위한 프로그래밍 코드 대신 사용할 수 있는 XML 기반 언어이다. XAML을 사용하면 개발자가 코드가 아닌 태그를 사용하여 .NET 다중 플랫폼 앱 UI(.NET MAUI) 앱에서 사용자 인터페이스를 쉽게 정의할 수 있다. .NET MAUI 앱에는 XAML이 필요하지 않지만, 간결하고 시각적으로 일관되며 도구 지원이 있는 경우가 많기 때문에 UI를 개발하는 것이 좋다. XAML은 XAML 기반 데이터 바인딩을 통한 viewmodel 코드에 연결된 뷰를 정의하는 MVVM(.. 2022. 6. 14.
[MAUI] .NET MAUI 소개 .NET MAUI 알고왔니? 소개 .NET MAUI 는 .NET 다중 플랫폼 앱 UI 이며 C# 과 XAML을 사용하여 네이티브 모바일 및 데스크톱 앱을 만들기 위한 플랫폼 간 '프레임워크' 입니다. .NET MAUI를 사용하여 단일 공유 코드 베이스에서 Android, iOS, macOS 및 Windows 실행할 수 있는 앱을 개발할 수 있습니다. .NET MAUI는 오픈 소스이며, 성능 및 확장성을 위해 처음부터 다시 빌드된 UI 컨트롤을 사용하여 모바일에서 데스크톱 시나리오로 확장된 Xamarin.Forms의 진화된 프레임워크 입니다. Xamarin.Forms 의 단점인 플랫폼간 소스를 정의해줘야하는데 .NET MAUI는 단일 코드 베이스이기 때문에 더욱 효율적으로 개발을 할 수 있습니다. 이점이 .. 2022. 6. 13.
직장인 비즈니스 필수단어 20가지 회사에 다니다 보면 여러 가지 단어로 소통하는 경우가 있다. 글쓴이는 개발자이지만 해당 단어들은 기본적으로 많이들 사용하고 알아두면 의사소통할 때 좀 더 쉽게 대화할 수 있다. 실 업무에서 많이 사용하는 단어이기 때문에 필수적으로 알아두길 바라는 마음으로 작성했으며 특히 신입사원 또는 입사하기 전 분들이 미리 알고 간다면 많은 도움이 될 것이다. 1. 아젠다 (Agenda) 완수해야 하는 업무 내용을 사전에 정리해 둔 항목들을 의미한다. 보통 회의 전에 미리 준비하며 이 아젠다에 따라 회의와 논의를 결정지어 나간다. 2. 애자일 (Agile) IT업계에서는 경영환경에 따른 변화에 빠르게 대응할 수 있는 유연한 시스템 개발 방법론 등을 의하는 용어로 사용하고 있다. 애자일 방법론으로 불리며 해당 방법론은 .. 2022. 6. 9.
[Git] Git 사용법(Git Bash) 기본적인 Git Bash 로 기본 사용법을 알 수 있다. 각 명렁어에 대해서 간략하게 알 수 있으며 자세하게는 따로 글을 참고하면 된다. git init 현재 디렉터리를 로컬저장소로 설정한다. ## 로컬저장소로 설정할 프로젝트 위치로 이동한다. cd C:/dev/workspace ... ## 로컬저장소로 설정한다 ## (master) 브랜치로 보이면 성공한 것이다 git init ## 만약, init을 취소하려면 아래의 명령어를 실행한다 rm -r .git git status 로컬저장소의 현재 상태를 보여준다. git status git add 파일을 Staging Area 로 옮긴다. ## a.html 파일만 추가 git add a.html ## 디렉터리 내 모든 파일을 추가 git add . ## 명.. 2022. 6. 7.
반응형