본문 바로가기

개발56

C# 제네릭 메서드 제너릭 메서드에 대해서 소개합니다. 제너릭 이란? 저장하거나 사용하는 하나 이상의 형식에 대한 자리 표시자(형식 매개 변수)를 포함하는 클래스, 구조체, 인터페이스 및 메서드라고 정의되어 있는데, 쉽게 말하자면, 한 가지 기능(클래스, 구조체, 인터페이스, 메소드)에 여러 형식(문자열, 숫자, 객체 등등)을 받고 싶다! 라고 생각하시면 됩니다. 예를 들어 Dictionary에 문자열 타입과 숫자타입이 공존한다고 치면, 아래와 같은 메서드를 사용할 수 있습니다. public static T GetValue(Dictionary dictionary, string key, T defaultValue = default(T)) { try { if (dictionary.ContainsKey(key)) { object.. 2023. 7. 21.
Vite, Typescript 상대 Path 잡는 법 tsconfig.json "baseUrl": ".", "paths": { "@/*": ["src/*"] } vite.config.js import { defineConfig } from 'vite' import path from "path"; // https://vitejs.dev/config/ export default ({ mode }) => { console.log("Run Mode : " + mode); console.log(`directory : ${__dirname}`); return defineConfig({ resolve: { alias: [ { find: "@", replacement: path.resolve(__dirname, "src") } ] }, }) } 2개의 파일에 추가한다. .. 2023. 4. 21.
Update 쿼리 시 주의사항 Update 쿼리 시 주의해야할 점이 있다. Update, Delete, Insert 쿼리는 Exclusive Lock 이 걸리는 쿼리라고 알고 있을 것이다. Exclusive Lock은 테이블 row에 걸리는 락이고, 읽기&쓰기가 모두 락이 걸린다. 하지만, update 쿼리 시 Where 절이 들어가는 쿼리는 해당 Where절에 인덱싱이 사용되는지 안되는지에 따라서 동작은 바뀐다. 인덱싱이 걸려있는 쿼리는 해당 row에만 락이 걸리고, 인덱싱이 걸려있지 않은 쿼리는 테이블 락이 걸린다. 2개의 차이는 데이터 양이 많아질 경우에 문제가 발생하는데, 데이터 양이 많아지면, 당연히 데드락이 발생할 가능성이 있으므로 문제가 있다. 따라서 인덱싱을 잘 설정해줘야 한다. 2022. 11. 3.
응용 프로그램이 미리 컴파일되었으므로 "{폴더}" 디렉터리를 사용할 수 없습니다. 이벤트 뷰어에 아래와 같은 에러가 발생하는 경우가 있다. 이 경우는 사이트에 접근만하면 바로 에러를 발생한다. App_GlobalResources 라는 폴더를 사용할수 없다는 에러인데, 여기 문구에도 적혀있드시 "미리 컴파일"이 되었다는 내용이 있는데, 이 의미는 bin폴더에 DLL이 이미 포함되어 있다는 의미이다. 위와 같이 DLL파일과 폴더가 중첩되는 배포를 하였기 때문에, 에러가 발생한다. 이 경우에는 폴더를 지워야 정상동작을 한다. 그렇다면 폴더와 DLL로 포함되는 설정은 어디서 할까? 게시 중 미리 컴파일이라는 설정으로 폴더와 DLL로 배포할지를 결정한다. 2022. 10. 28.
반응형