분류 전체보기 221

[NexacroN] this scope

var this.varName;callbakc: function() { this.varName;}이런식으로 변수를 작성했는데, 원하는 결과물이 나오지 않을 때가 있었다.GPT에게 물어보니까function() 안의 this.varName과 밖의 this.varName이 서로 다른 것을 참조하고 있을 수 있다는 것이다.즉, callback으로 전달되는 함수는  scope이 다를 수 있다.그래서 코드를var pThis = this;var this.varName;callbakc: function() { pThis.varName;}이렇게 수정했더니 의도했던대로 동작을 한다. 나중에 읽어봐야지 nexacro 에서 변수와 함수 사용시 Scope에 대한 정의 - TOBETONGnexacro의 스크립트는 JavaScri..

회사/NexacroN 2024.12.04

[DB / MSSQL] LOB (Large Object / 대형 오브젝트)

문제상황데이터가 얼마 없는 테이블의 데이터를 조회하는데, 시간이 너무 오래 걸렸다.그런데 분명 레코드 수가 적은데 테이블 용량이 GB이다. 무언가 이상했다.컬럼들을 확인해보니 한 컬럼이 LOB 이기 때문이었다.컬럼의 DATA TYPE이 varchar(MAX) 로 정의돼있었다.LOB를 조회하기 위해 ACCESS를 해야하기 때문에 시간이 오래 걸렸던 것이다. LOB (Large Object)LOB는 DB에 저장되는 다양한 타입의 데이터들 중 구조화되지 않은 용량이 큰 데이터 (TEXT, 그래픽, 이미지, 비디오, 사운드 등) 를 처리하기 위한 타입이다.DB 내부에선 LOB 형식의 컬럼을 생성하고, 이곳에 데이터의 실제 위치를 가리키는 LOCATOR를 저장한다.DB 외부에선 BFILE을 사용한다. LOB 종류..

회사/DB 2024.10.29

[DB / MSSQL] 날짜조회 BETWEEN

BETWEEN 주의D1 부터 D2 까지의 날짜에 포함되는 데이터를 조회하려고 한다.이 때 WHERE절을 어떻게 작성해야 할지 보자.여기서 D1, D2는 DATETIME2 타입으로  yyyy-MM-dd HH:mm:ss[.nnnnnnn] 형식이다. SELECT *FROM your_tableWHERE your_date_column BETWEEN #{D1} AND DATEADD(DAY, 1, CAST(#{D2} AS DATE))DATEADD()는 #{endDate}에 하루를 더해 yyyy-MM-dd 00:00:00 형태로 처리된다.BETWEEN을 사용해 날짜를 비교할 경우, 시작과 종료값을 '포함해' 비교한다.즉, 하루를 더한 yyyy-MM-dd 00:00:00 도 포함해 데이터를 조회하게 된다.BETWEEN을..

회사/DB 2024.10.28

[DB] 파티션 프루닝 (PARTITION PRUNING)

이건 인덱스랑 파티션 정리한 후 마저 할게요 https://seoulforest.tistory.com/entry/Partition-Pruning-%ED%8C%8C%ED%8B%B0%EC%85%98-%ED%94%84%EB%A3%A8%EB%8B%9D 쉽게 정리하면 " data-og-host="seoulforest.tistory.com" data-og-source-url="https://seoulforest.tistory.com/entry/Partition-Pruning-%ED%8C%8C%ED%8B%B0%EC%85%98-%ED%94%84%EB%A3%A8%EB%8B%9D" data-og-url="https://seoulforest.tistory.com/entry/Partition-Pruning-%ED%8C%8C%..

회사/DB 2024.10.28

[DB / MSSQL] COLLATION (정렬방식)

Collation (정렬방식)주로 DBeaber를 사용하는데 아래와 같은 설정을 볼 수 있다.GPT에게 물어보니 아래와 같이 설명해준다.Korean_Wansung : 한글 완성형 문자셋을 사용한 정렬 방식이다. 한글 음절을 미리 정의해 Unicode와 달리 한글 자모가 분리되지 않고, 완성된 글자로 저장된다.CI (Case Insensitive) : 대소문자를 구별하지 않는다.AS (Accent Insentive) : 악센트나 발음 기호를 구별하지 않는다. ex) é와 e는 동일하게 취급이렇게 데이터베이스의 정렬방식을 지정하는 것이다. COLLATE 명령어COLLATE 절을 이용해 컬럼 || 식의 정렬방식을 명시적으로 지정, 변경할 수 있다.-- 컬럼 정렬방식 지정ALTER COLUMN [COLUMN_N..

회사/DB 2024.10.16

[DB / MSSQL] BEGIN, COMMIT, ROLLBACK TRAN

참고https://learn.microsoft.com/ko-kr/sql/t-sql/language-elements/begin-transaction-transact-sql?view=sql-server-ver15 BEGIN TRANSACTION(Transact-SQL) - SQL Server명시적 로컬 트랜잭션의 시작 위치를 표시합니다. 명시적 트랜잭션은 BEGIN TRANSACTION 문으로 시작되어 COMMIT 또는 ROLLBACK 문으로 끝납니다.learn.microsoft.com BEGIN TRAN ... COMMIT || ROLLBACKMSSQL 기본 설정 : AUTO-COMMIT이다.INSERT, UPDATE, DELETE 명령문을 사용 후 자동으로 COMMIT이 되면, 실수한 경우 ..

회사/DB 2024.10.16