Accept Client가 받아들일 수 있는 데이터 형식을 Server에게 알려주기 위해 사용합니다. 예를들어 Client가 JSON 데이터만 해석할 수 있다면, Server로 요청을 보낼 때 "Accpet: application/json"을 헤더에 추가하면 됩니다. 그러면 Server는 Accpet 헤더 값을 읽고 응답 형식을 결정하는데 참고하게 됩니다. Content-Type HTTP Body에 포함된 데이터의 형식이 무엇인지 나타냅니다. 예를들어 HTTP Header에 "Content-Type: application/json"이 포함되어 있다면, 우리는 Body에 포함된 데이터가 JSON이라는 것을 알 수 있습니다. Client가 Server로 요청를 보낼 때 Header에 Content-Type을..
Node.js에서 React, Vue 등의 프로젝트를 빌드 할 때 발생하는 다음 오류에 대한 대응방법을 정리하였습니다. 오류내용 Node.js 버전 17 이상으로 업데이트 한 경우, 프로젝트 빌드 시 다음과 같은 오류가 발생할 수 있습니다. { opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ], library: 'digital envelope routines', reason: 'unsupported', code: 'ERR_OSSL_EVP_UNSUPPORTED' } 오류원인 Node.js는 버전 17부터 OpenSSL 3.0을 포함하게 되었습니다. OpenSSL 3.0은 허용하는 알고리즘과 Key 크..
운영체제 마다 서로 다른 줄바꿈 문자를 사용합니다. 대표적으로 Microsoft 계열 운영체제에서는 CR+LF, Unix 계열 운영체제에서는 LF를 사용합니다. Unix계열인 Linux, iPhone, Android 운영체제도 LF를 개행문자로 사용합니다. Windows, Unix 계열 이외에도 여러 운영체제가 존재하며 줄바꿈 문자로 CR만 사용하거나 LF+CR, NL, RS 등 다양한 문자를 사용합니다. 이렇게 운영체제 마다 서로 다른 줄바꿈 문자를 사용하기 때문에, 운영체제가 달라지면 텍스트가 다르게 출력되거나 예기치 못한 프로그램 오류로 이어지기도 합니다. 여기에서는 왜 Windows와 Unix 계열 운영체제가 서로 다른 개행문자를 사용하게 되었는지 소개합니다. 줄바꿈? CR, LF란? CR과 LF..
수를 표현하기 위한 문자들을 숫자라고 합니다. 보통 0~9까지 10개의 문자를 사용하여 수를 표현하는데 이러한 문자를 아라비아 숫자라고 합니다. 굳이 아라비아 숫자가 아니더라도 Ⅰ,Ⅱ,Ⅲ...Ⅸ나 一二三...九 등 다양한 숫자들이 존재합니다. 또한 자릿수를 올리는 단위에 따라 다양한 진법들이 존재하는데 일상생활에서는 10진법을 많이 사용합니다. 소프트웨어 개발 분야에서는 2진법, 16진법, 64진법(Base64) 등이 주로 사용됩니다. 대부분 아라비아 숫자+10진법 조합을 많이 사용하지만, 이 외에도 다양한 조합들이 존재합니다. 대부분의 프로그래밍 언어들은 아라비아 숫자와 2진법, 8진법, 16진법, 64진법을 기본 지원합니다. 하지만 32진법, 62진법 등을 사용해야하거나 아라비아 숫자 외에 다른 문자..
C#에서 Object를 복제하는 것은 쉽고 단순해 보이지만 실제로는 복잡하고 실수가 발생하기 쉬운 작업 입니다. 여기서는 C# Object 복제에 관한 다양한 방법들을 소개합니다. 얕은복사 vs 깊은복사 객체를 복사하는 방법은 크게 얕은복사(Shallow Cloning)와 깊은복사(Deep Cloning) 2가지로 나뉩니다. 구분 값 유형 (Value Type) 참조 유형 (Reference Type) 얕은복사 값 복사 참조된 객체 공유 깊은복사 값 복사 참조된 객체 복사 두 방식 모두 값 유형(Value Type)의 멤버변수에 대해서는 동일하게 값 복사를 진행합니다. 참조 유형(Reference Type)의 멤버변수에 대해, 얕은복사는 주소 값을 공유하며 깊은복사는 객체를 복사합니다. 그림으로 나타내면..
2012년 소개된 C# 5부터 사용 가능한 CallerMemberName Attribute를 사용하면 함수 호출자의 이름을 전달받을 수 있습니다. 예를들어 다음 소스코드를 실행하면, 컴파일러는 매개변수 callerName에 함수를 호출한 "Main"을 할당합니다. [샘플코드] static void Main(string[] args) { DoWork(); } //[CallerMemberName]를 사용하면, 컴파일러는 매개변수 callerName에 함수를 호출한 "Main"을 할당함 static void DoWork([CallerMemberName] string callerName = null) { Console.WriteLine("함수 호출자 이름 : " + callerName); } [실행결과] Cal..
우리는 MVVM을 위해 다음처럼 복잡한 INotifyPropertyChanged 코드를 매번 작성해야 했습니다.public class UserViewModel : INotifyPropertyChanged{ private string _UserName; public string UserName { get => _UserName; set => SetProperty(ref _UserName, value); } private DateTime? _BirthDate; public DateTime? BirthDate { get => _BirthDate; set => SetProperty(ref _BirthDate, value); } public event PropertyChangedEven..
UTF-8 기준 문자열 길이 계산 UTF-8은 문자코드 값에 따라 문자당 1~4 Byte를 사용합니다. JavaScript에서 UTF-8 Byte 길이 계산 시 주의해야 할 부분이 있는데, JavaScript는 내부적으로 문자열을 UTF-16(UCS-2)로 처리하기 때문에 UTF-16의 특성을 고려해주어야 합니다. 예를들어 UTF-8에서 4Byte 문자인 '𒀀'의 경우 UTF-16에서는 문자 2개를 결합하여 표현합니다. 아래 함수는 이러한 특성을 고려하여 작성되어 있습니다. function getByteLengthOfUtf8(str) { //UTF8 기준 Byte Length 계산 var byteLength = 0; for (var i = 0, strLength = str.length; i < strLe..
쿠키의 유형 쿠키는 영구쿠기와 세션쿠키라는 유형으로 나뉩니다. 세션쿠키(Session Cookie/Temporary Cookie) : 브라우저가 쿠키를 메모리에 저장하게 됩니다. 브라우저가 종료되는 즉시 쿠키도 소멸합니다. 즉 브라우저의 세션(브라우저가 실행되는 시간) 동안만 유지되는 쿠키입니다. 쿠키를 생성할 때 만료날짜를 지정하지 않을 경우 세션쿠키가 됩니다. 영구쿠키(Persistent Cookie) : 브라우저가 쿠키를 디스크에 저장하게 됩니다. 브라우저가 종료되더라도 쿠키의 값은 유지가 됩니다. 브라우저를 종료하고 다시 실행하면 디스크에 저장된 쿠키를 복구하게 됩니다. 쿠키를 생성할 때 만료날짜를 지정할 경우 영구쿠키가 됩니다. 영구쿠키의 만료날짜가 지나면 자동으로 삭제됩니다. 세션쿠키와 영구쿠..
Language-Culture Codes 국가별 언어코드에서 대한민국은 ko-KR, 북한은 ko-KP로 표현됩니다. 여기서 앞 ko는 언어코드(한글)을 의미하며 KR, KP는 국가/지역코드로 각각 대한민국(Republic of Korea), 북한(Democratic People's Republic of Korea)을 의미합니다. 다른 예시로 영어-미국(United State)은 en-US, 영어-영국(Great British)은 en-GB를 사용합니다. C#에서는 이러한 언어, 국가/지역 코드를 바탕으로 문자열을 비교할 수 있습니다. 문자열을 비교할 때 StringComparison 매개변수를 통해서 언어, 국가/지역의 특수성을 어떻게 반영할 지 결정할 수 있습니다. StringComparison 열거형..
- React
- ASP.NET Core
- VisualStudio
- npm
- flutter
- Xamarin
- Vue
- Xamarin.Forms
- .NET Standard
- WPF
- ios
- TypeScript
- Android
- Xamarin.iOS
- Xamarin.Forms 요약
- Xamarin.Forms eBook
- windows
- MS SQL
- material-ui
- c#
- Total
- Today
- Yesterday