본문 바로가기
Today I Learned

[TIL] 231201 ~ 20231203

by 질서정연_ 2023. 12. 4.

1201

 

작업단위 (batch)

실행을 위해 응용 프로그램으로부터 서버로 동시에 전송되어 실행되는 다수개의 T-SQL 문장조합

 

GO는 배치단위를 구분하는 명령으로 사용된다.

일괄처리를 지정하기위해 GO를 사용한다.

 

1202

 

SQL Server는 인메모리 DB를 지원한다.

디스크에서 처리되던 데이터를 RAM 에서 처리해서 기존 쿼리 처리 속도가 올라갔다.

 

컴퓨터 하나에 SQL 서버 여러개를 만들 수 있다. => 이 과정이 SQL Server 실행시 명명된 인스턴스 연결이다.

Windows 사용자를 DBMS 관리자로 임명하는게 윈도우 연결.

 

(나중에 더 알아볼 것)

회사에서는 SQL Server 2022 구성관리자 -> SQL Server 네트워크 구성 -> MSSQL Server에 대한 프로토콜 -> TCP/IP 를 사용으로 해뒀다. 

(아직 왜이렇게 해줬는지 모르겠음 나중에 찾아보자)

 

데이터베이스 물리명 : CREATE TABLE 에 사용될 이름. DB에서 사용될 이름

논리명: 테이블의 설계상 이름

 

USE ShopDB : ShopDB 를 사용하겠다는 뜻

 

1203

뷰는 가상 테이블을 뜻한다. 진짜 테이블에 링크 된 개념이다.

사용자별로 테이블에서 보이는 열을 다르게 해주고 싶을때 사용할 수 있다. 

 

저장 프로시저는 SQL 을 하나로 묶어서 편리하게 사용할 수 있다. 

 

트리거는 테이블에 부착되어서 INSERT, UPDATE, DELETE 작업이 발생되면 실행되는 코드다.

 

.NET 은 윈도우에서만 실행가능한 프로그램을 만들 수 있고 .NET Core는 다른 운영체제에서도 사용가능하게 만들 수 있다.

 

멤버는 클래스안에 선언된 필드, 메소드, 프로퍼티 등 요소들을 말한다.

필드는 클래스 안에 선언된 변수를 말한다.

 

static 은 메소드나 필드가 클래스의 인스턴스가 아닌 클래스 자체에 소속되도록 지정하는 한정자이다.

static으로 수식한 필드는 프로그램 전체에 걸쳐 하나밖에 존재하지 않는다.

 

정적메소드는 클래스의 인스턴스를 생성하지 않아도 호출이 가능하다.

 

this()는 자신의 생성자를 가리킨다.

생성자에서만 사용될 수 있다.

 

public Hi : this(){

    Console.WriteLine("한번 더 인사해요");

}

처럼 ~

 

클래스는 태생이 참조형식이다.

주소를 복사하는 것 = 얕은 복사

값 자체를 복사해 힙에 넣고 그 복사한 값을 가리키도록 하는 것 = 깊은 복사

 

객체 외부에서는 객체 필드나 메소드에 접근할때 객체의 이름을 사용한다면, 객체 내부에서는 필드나 메소드에 접근할 때 this를 사용한다. 

 

은닉성 : 사용자에게 필요한 최소의 기능만 노출하고 내부를 감출것을 요구하는것 

필드는 상수를 제외하고는 무조건 감추는게 좋다.

 

public : 클래스의 내부/외부 모든것에서 접근할 수 있다.

protected: 클래스의 외부에서 접근 불가. 자식클래스에서 접근 가능하다.

private: 클래스 내부에서만 접근 가능하다. 자식에서도 접근 불가.

접근 한정자를 지정하지않으면 클래스 멤버는 무조건 private 이 된다.

클래스 내의 멤버는 일단 감추고 나중에 공개할지 결정하는게 좋다. 

 

자식은 객체를 생성할때 부모 생성자 먼저 실행 -> 자식 생성자 실행

종료자는 자식 종료자 먼저 실행 -> 부모 종료자 실행

 

base : 기반 생성자를 가리킨다.

base()는 기반클래스의 생성자.

 

기반과 파생 사이에는 족보를 오르내리는 형식변환이 가능함.

파생클래스의 인스턴스는 기반 클래스의 인스턴스로서도 사용가능.

 

is: 객체가 해당 형식에 해당하는지 검사. 결과 불리언 반환

-> if (mammal is Dog)  

as: 변환 실패시 객체 참조를 null 로 만듬.

-> Cat cat = mammal2 as Cat;

as는 참조형식에 대해서만 사용이 가능하다. 값 형식은 기존 형식 변환자로 변환하자.

 

다형성 : 객체가 여러 형태를 가질 수 있음을 의미.

이는 하위형식 다형성의 준말이다. 상속받아 만들어진 파생 클래스를 통해 다형성을 실현한다.

기반 클래스에서 virtual 로 메소드를 지정해두면

파생 클래스에서 override로 메소드를 오버라이딩 할 수 있다.

 

오버라이딩을 위해 virtual 키워드로 한정되어있어야한다!

public override void Initialize() 이렇게 오버라이딩 가능 !

 

값을 readonly 로 선언하면 생성자 안에서 한번 값을 지정한 이후로는 값 변경을 할 수 없다.

private readonly int min;

이렇게 ~ 

댓글