AES, Base64, PBKDF2 TripleDES, Hash 암/복호화
·
C#.NET/C#
종합 암호화 Helper 이다. - AES, Base64, PBKDF2 TripleDES, Hash 유틸리티를 코드화 해 보았다 - 아래의 코드를 가져다 사용하면 된다. A. 코드 - Namespace 부분을 변경하면 된다.using System;using System.Security.Cryptography;using System.Text;namespace ConsoleApp1{ /// /// 통합 암호화 헬퍼 클래스 (최종 완성본 + 해시 모듈 추가) /// - AES-128/192/256 (AesCryptoServiceProvider) /// - URL Safe Base64 + AES-128 /// - TripleDES (Legacy Support) /// - PBK..
문자열 $ 보간자 사용
·
C#.NET/C#
$ 보간자는 NETFramework 4.6 이상 부터 사용 가능하지만.ASP.NET MVC5 의 Razor 엔진은 C# 5 버전이라 사용할 수 없는 치명적 문제를 가지고 있다.하지만 CS코드에서는 또 보간자를 사용할 수 있으며, 최신 NET에서는 당연히 사용제약이 없다1. 문자열 보간의 변화1) 과거의 고전적 문자열 결합은 다음과 같다.string name = "도그";int age = 22;string job = "개발자";string intro = "제 이름은 " + name + "이고, 나이는 " + age + "세 입니다. 직업은 " + job + "입니다.";- 위 보간방식은 레거시코드에서 정말 많이 볼 수 있다.- 이게 쿼리문 작성과 같은 문자열 결합에서 따옴표 실수와 따옴표 지옥을 겪을 수 ..
? 과 ?? 연산자 그리고 Nullable Type
·
C#.NET/C#
A. 설명- ?, ?? 연산자를 사용하면 안전 하면서, 코드를 간결하게 줄여서 사용할 수 있다.1) (Null 조건부 연산자) 목적: "안전한 접근" (에러 방지) 동작: 왼쪽 객체가 null인지 검사- null이 아니면: 해당 속성(값)을 가져옴 - null이면: 에러를 내지 않고 null을 반환하고 끝냄 2) ?? (Null 병합 연산자) 목적: "기본값 처리" (Null 대체) 동작: 왼쪽 객체가 null인지 검사- null이 아니면: 왼쪽 값을 그대로 사용 - null이면: **오른쪽 값(설정해둔 기본값)**을 반환.B. ? (Null 조건 부 연산자)1) 참조형인 string text 변수가 null 인데 강제로 null 을 구하려고 했다.바로 null 참조 오류가 발생한다.2) if 문을 통해..
Tuple(ValueTuple) 다중 반환 값
·
C#.NET/C#
메서드를 작성하다 보면 리턴 값이 하나로는 부족할 때가 있다. 예를 들어 로그인 처리를 한다고 치면. 단순히 성공/실패(bool) 또는 10000 or -99999 만 리턴하면 되는 게 아니라,실패했다면 왜 실패했는지(메시지), 성공했다면 로그인한 유저 정보는 무엇인지도 함께 반환해야 한다.기존에는 이 문제를 해결하기 위해 보통 두 가지 방법을 썼다.1) out 파라미터 사용 - 메서드 파라미터가 지저분해지고 호출하는 쪽 코드도 길어진다.2) ResultClass - 공통 규격이 아닐때, 메서드 하나 때문에 일회용 클래스를 파일로 만드는 건 낭비다.이런 문제들을 해결하기 위해 C# 7.0부터 Tuple 기능이 강화되었다.Tuple은 괄호 () 문법만으로 여러 개의 값을 가벼운 데이터 구조로 묶어서 반환..
개인정보 * 표 마스킹 헬퍼
·
C#.NET/C#
어떤 프로젝트의 개인정보 보호가 매우 높아서모든 메뉴 개인정보가 표시되는 부분에 개인정보 부분을 마스킹 처리해 달라는 요청을 받은적이 있었다.그래서 작성된 코드이다. 1. 메인코드기본 asp.net mvc 의 netframework 4.6 정도 c# 7.3에서 동작 가능하지만 아마도 c#6 에서동작 가능할 것으로 보인다. 이 부분이; 문제가 되면 문자열 보간 부분만 string.Format() 로 바꿔주면 될 것으로 보인다.using System;using System.Linq;using System.Text.RegularExpressions;namespace DogAcademy.Lib{ /// /// 문자열 마스킹 유틸리티 /// public class MaskingUtilit..
확장 메서드
·
C#.NET/C#
C# 확장 메서드는 기존 클래스의 코드를 직접 수정하지 않고도 새로운 기능을 추가할 수 있게 해주는 특별한 문법입니다. 마치 원래부터 그 클래스에 포함된 메서드인 것처럼 사용할 수 있어 매우 편리합니다. 확장메서드에 대한 사전적 정의이며 아래 코드를 가지고 예를 들자면 - DateTime.Now() 을 사용하면 "2025-08-03 오후 4:56:24" 라고 C# 에서는 기본 날짜포맷이 사용되어 표시된다. - 이를 24시간 형태로 " 2025-08-03 16:56" 표현 하고자 할때 a) 유틸리티 메서드를 개발하는 방식 b) DateTime 자료형에 확자에서드를 구현하여 DateTime 자료형에 . 을 찍어서 특정자료형에 유틸리티메서드를 직관적으로 표현하는 형태가 있다. c) 즉 Dat..
VisualStudio 2022 단축키 모음
·
C#.NET/C#
출처의 내용에 대해 AI요약 정리 한 내용이다. 출저 :https://learn.microsoft.com/ko-kr/visualstudio/ide/default-keyboard-shortcuts-in-visual-studio?view=vs-2022 바로 가기 키 - Visual Studio (Windows)다양한 명령과 창에 액세스할 수 있는 Visual Studio 기본 바로 가기 키에 대해 알아봅니다.learn.microsoft.com 분류기능단축키설명편집 (Editing)코드 자동 정렬Ctrl + K, D현재 문서의 코드 서식을 자동으로 정리합니다.주석 처리/해제Ctrl + K, C / Ctrl + K, U선택한 코드 블록을 주석으로 만들거나 주석을 해제합니다.선택 영역 확장/축소Ctrl + W /..
C# 에서 POST로 API 보내기
·
C#.NET/C#
한동안 API 지옥에 바졌다 헤어난 기념으로c#을 이용한 API 소스코드를 정리해본다.자바스크립트의 Ajax 나 Fetch 와 같은 방법을 c# 으로 보내는 방법이다굳이 서버api를 사용하는 이유는- 데이터 노출이 되지 않는다- 대용량 발송 시 성능이 좋음- 브라우저의 CORS 제한을 받지 않음1. NewtonSoft.JSON 사용- 익명 JSON 을 매개변수로 사용using System;using System.Net.Http;using System.Text;using System.Threading.Tasks;using Newtonsoft.Json;public class SampleAPI{ private static readonly HttpClient client = new HttpClient()..