Dapper ORM 사용 예제
·
C#.NET/C#
ADO.NET과 가장 동일하며 쿼리문을 직접 제어할 때 사용되는 Dapper 에 대한 사용법을 정리해 보았다.- Dapper ORM 은 일반적으로 MSSQL, MYSQL(MariaDB), Oracle, PostgreSQL, SQLite를 지원하며 이 밖에 다른 프로바이더들도 지원할 수 있다.- Dapper 는 오픈 소스이다 (https://github.com/DapperLib/Dapper)- NuGet 패키지를 통해 설치 가능하다 (https://www.nuget.org/packages/dapper)- 연결문자열을 만들기 위해 MSSQL 기준 NetCore 에서는 System.Data.SqlClient 를 NuGet 에서 받아야 할 수 있다.- NET의 ORM중 EFCore 대비 높은 성능을 보여준다. ..
테이블 및 컬럼 설명 추가/수정/조회/삭제 통합
·
DB/SQLServer
MSSQL 환경에서 테이블에 주석을 작성할 수 있는 내장 프로시저가 있다.sp_addextendedproperty 또는 sp_updateextendedproperty 뭔가 이름에서 부터 길어서 선뜻 손이 가질 않는다.https://learn.microsoft.com/ko-kr/sql/relational-databases/system-stored-procedures/sp-addextendedproperty-transact-sql?view=sql-server-ver16그래서 테이블에 설명에 대해 추가/수정/조회/삭제를 통합한 프로시저를 만들어 보았다. 프로시저 이름도 매우 짧게 작성했기에 이름이 오묘할 수 있다.사용자에 맞게 프로시저 이름을 바꿔서 사용하자그리고 주의할 부분은 로그인 계정의 테이블 스키마 접..
TechEmpower Web Framework Benchmarks (2023-10)
·
Web/Web개발 관련사이트
2023년 10월 ROUND22가 가장 최종 버전인 듯하다. 아래 사이트에서 웹 개발에 어떤 프레임워크가 성능적으로 좋은지 참고해볼 만하다. 프레임워크를 선택할 때는 이름을 알 수 없는 듣보잡 프레임워크들은 단순히 참고만 하고, 많이 사용되고 잘 알려진 프레임워크들을 비교하여 사용하자. 개인적인 생각으로는 ASP.NET Core가 성능, 안정성, MS 제품이라는 면에서 독보적이지만, 과거 NET의 심한 삽질로 국내에서 유독 약한 경향이 있다. Spring Boot는 매우 훌륭하지만, 구닥다리 무료 JDK 1.8을 사용한다면 30년 된 구축 아파트에 리모델링해 사는 느낌이기에 유료라도 최신 JDK를 사용해야 할 것으로 보여진다. PHP 할배는 여전히 건재하다. 2024년 현재 국내의 웹 프레임워크를 보면 ..
JS와 jQuery 를 사용한 모듈화
·
Web/JS & jQuery
js 파일로 빼내지 않고, 서버 뷰 페이지를 사용하여 분할뷰나 include 를 사용하여 페이지 구성을 하고 있을 때 사용하기 적합하다.모듈화는 주로 이런 용도가 아니라 객체를 대신하여, 하나의 유틸리티 같은 모듈을 만들때 사용되지만서버뷰 페이지 jsp, asp.net, php 등의 경우 index라는 페이지 속을 영역별로 각각의 페이지로 쪼갰을 떄index 페이지에 스크립트를 몰아 넣을때 용이하다.-- 아래의 사용자는 가짜  사용자 데이터다 koreanjson 의 fake json 데이터를 가져다 사용하였다 아래의 예시가 Spring 에서 index.jsp안에 페이지를 분할했을 때의 예시다. User Section Todo Section Blog Section   위..
엑셀파일을 =CONCATNATE() 함수를 통해 밀어 넣기
·
DB/SQLServer
몇년전에 핸드폰 메모장에 적어놨던 것을 우연하게 찾아서 포스팅 함운영업무를 하다보면 현업에서 엑셀파일을 던져주며 일괄로 등록해 달라고 요청할때가 있다.이때 대략 두가지 방법 중 하나룰 선택하여 밀어넣게 되는데 하나는 엑셀데이터가 방대할때 SQL에서 제공하는 벌크카피를 이용하는 것이고두번째 방법은 적당한 10 ~ 수백건 정도는 엑셀파일에 함수 수식을 붙여 쿼리문을 만드는방법을 택할 수 있다.이 중 두번째 방법에 대해 설명한다. https://support.microsoft.com/ko-kr/office/concatenate-%ED%95%A8%EC%88%98-8f8ae884-2ca8-4f7a-b093-75d702bea31d 1. 이런 데이터를 받았다고 가정한다.진짜 넣어야 할 데이터는 A2 부터 B2 , C..
Merge 문을 통해 단일 테이블 Insert/Update/Delete 프로시저 생성
·
DB/SQLServer
https://learn.microsoft.com/ko-kr/sql/t-sql/statements/merge-transact-sql?view=sql-server-ver16 MERGE(Transact-SQL) - SQL ServerMERGE(Transact-SQL)learn.microsoft.com Merge 구문은 SQL Server 2008 부터 지원하며 ,  하나의 테이블에 대해 작업을 할 수 있다.프로젝트를 다니다 보면 .NET 개발의 경우 대부분 프로시저를 많이 사용한다.그렇기에 프로시저 구문을 보면 MyProcedure_IU 이런식으로 접미사를 붙여서 관리하는 케이스를 보게 되는데,대상의 등록, 수정, 삭제 테이블이 1개라면 단순하게 Megre를 사용하는것도 방법이다.1. 기본 Merge 사용법..
Spring의 Class ToString 을 비슷하게 구현해보자
·
C#.NET/C#
Java에서는 Class에 ToString()을 오버라이드 하여 디버깅 값을 찍어볼 수 있는것이 큰 장점이다.물론 @Override 아래 구문은 IDE를 통해 클릭 한번으로 구현하는 방법이다.이를 c#에서 구현하여 사용해 보자.c# 의 경우 IDE가 아닌 언어 자체의 확장메소드를 제공하기에 더 편리하게 사용할 수 있다.- 아래의 코드를 공통 프레임워크에 넣어두자 public static string ToValue(this object obj) { if (obj == null) return "null"; Type type = obj.GetType(); PropertyInfo[] properties = type.GetProperties(); StringBuilder s..
[Core] Spring 처럼 콘솔창에 실시간 로그를 출력하자
·
C#.NET/ASP.NET
스프링의 콘솔창의 로그 찍어내는 기능은 브레이크 포인트 까지 사용하여 디버깅을 하는수고스러움을 덜어준다. 이 부분이 스프링부트를 해보며 높은 장점으로 보여졌다.Core의 기본 템플릿에 ILogger; 요녀석과 추가 패키지를 설치해서 이런 부분을 닷넷에서도 구현할 수 있다.  주의 - 이 샘플은 NET8 로 진행 하였기에 그 이하 버전에서도 잘 될수 있겠지만 사용법이 약간 다를수 있습니다. - IIS Express 를 통한 기본 디버깅에서 동작 합니다.   (Core부터는 NET CLR을 사용하지 않고 Kestrel 호스팅이기에 로컬 IIS설정을 통한 프로세스 디버깅은 패스합니다.)1. 샘플 프로젝트 상태 (솔루션 2개) - 클래스 라이브러리 : DataRepository - 웹 MVC API 사이트 : ..