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은 괄호 () 문법만으로 여러 개의 값을 가벼운 데이터 구조로 묶어서 반환..
Cropper.js 이미지 자르기 및 품질 조정
·
Web/JS & jQuery
이미지 업로드를 하다보면, 이미지를 자르는 UI를 접할 수 있다.몇 가지 라이브러리가 있는데 이 중 Cropper.js 가 많이 알려져 있다.레거시 jQuery 와 같은 방식으로는 1.62 버전 까지 사용 가능한 것 으로 보인다 https://github.com/fengyuanchen/cropperjs/tree/v1.6.2 GitHub - fengyuanchen/cropperjs: JavaScript image cropper.JavaScript image cropper. Contribute to fengyuanchen/cropperjs development by creating an account on GitHub.github.com1. 예제코드 이미지 자르기 & 업로드 ..
WITH 재귀 CTE (2) Bottom-Top 역방향
·
DB/SQLServer
기존 메뉴 CTE를 조금 응용해 보자면1. Bottom-Top (역방향) 으로 부서를 찾는다.2. 메뉴처럼 전체를 찾는 것이 아닌 연관성 있는 조건 값을 받아 기준점으로 시작한다.3. 나신입 이라는 백앤드팀 사원이 부장 -> 이사 -> 상무 -> 대표 형태로 역으로 나랑 연관된 조직을거꾸로 찾아 올라가는 방식이다. A. 데이터 준비 1. 테이블-- 1. 부서 테이블 (계층 구조만 담당)CREATE TABLE Tbl_Dept ( DeptCode INT PRIMARY KEY, ParentDeptCode INT NULL, DeptName NVARCHAR(50));-- 2. 사원 테이블 (소속 부서 + 결재권자 여부 포함)CREATE TABLE Tbl_Employee ( EmpID IN..
WITH 재귀 CTE (1) Top-Down 기본 재귀
·
DB/SQLServer
트리구조의 데이터를 만들때 재귀CTE를 사용하게 된다.즉 자신을 반복하여 쿼리하는 것 이다.그룹웨어 시스템의 메뉴 표현하는것을 예제로 재귀 CTE 를 설명한다테이블은 1개인데 재귀 도는 구조이다.A. 준비작업 이 메뉴는 3뎁스 구조이다. 1. 테이블 생성-- 기존 테이블이 있다면 삭제DROP TABLE IF EXISTS Tbl_Menu;-- 메뉴 테이블 생성CREATE TABLE Tbl_Menu ( NodeID INT PRIMARY KEY, -- 메뉴 고유 ID (PK) ParentNodeID INT NULL, -- 상위 메뉴 ID (Root는 NULL) MenuName NVARCHAR(100) NOT NULL, -- 메뉴명 LinkUrl NVAR..
SSMS에서 쿼리 바로가기 (3) 문자열 만능 검색
·
DB/SQLServer
https://iyak.tistory.com/entry/DB%EB%82%B4-%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80%ED%95%A8%EC%88%98%EB%B7%B0-%EB%82%B4-%EC%86%8D%ED%95%B4%EC%9E%88%EB%8A%94-%EB%AC%B8%EC%9E%90%EC%97%B4-%EA%B2%80%EC%83%88 (개선판) DB내 프로시저/함수/뷰 내 속해있는 문자열 검색출처 : https://stackoverflow.com/questions/14704105/search-text-in-stored-procedure-in-sql-server 디버깅을 위해 프로시저 내에서 문자열을 주로 테이블명을 기준으로 문자열을 찾게 되는데간간히 사용하다 보니 이iyak.tis..