본문 바로가기
728x90

언어(C, C++, C#)15

[언어] 컴파일 언어, 인터프리터 언어, 하이브리드 언어 컴파일 언어코드 실행 과정소스 코드를 컴파일러가 읽어 전체를 기계어로 번역해 실행 파일을 생성한다.실행 파일을 독립적으로 실행한다.(컴퓨터가 직접 실행할 수 있다.)장점빠른 실행 속도(성능) : 실행 파일이 이미 기계어로 번역되어 있어 실행 시 번역이 필요없다.에러 검출 : 컴파일 과정에서 문법적 오류를 사전에 모두 검출해준다.자원 관리 : 메모리 관리 및 시스템 자원 사용이 효율적이다.보안 : 컴파일된 코드는 기계어이기 때문에 사람이 이해하기 어려워 보안과 안정성이 높다.단점개발 속도 : OS 별로 컴파일 과정이 필요하기 때문에 개발 주기가 길어질 수 있다. 또, 수정 시에 재컴파일이 필요하다.플랫폼 종속성 : 특정 운영 체제나 하드웨어 환경에 맞게 컴파일된 실행 파일은 다른 환경에서 동작하지 않는다... 2024. 12. 7.
[C#] 가상 함수 테이블 가상 함수란?기본 클래스에서 선언되고, 파생 클래스에서 재정의(override)할 수 있는 함수이다.virtual 키워드를 통해 선언하고, override 키워드를 통해 재정의할 수 있다.overriding, overloadingoverloading(오버로딩) : 같은 이름의 메서드를 여러 개 정의하는 기법으로, 메서드의 매개변수의 수나 타입을 다르게 설정하여 동일한 메서드 이름을 여러 용도로 사용할 수 있게 해준다.overriding(오버라이딩) : 부모 클래스에서 정의된 메서드를 자식 클래스에서 재정의하여 사용하는 기법이다.런타임 다형성을 구현하는 중요한 방법 중의 하나로, 자식 클래스에서 부모 클래스의 메서드를 변경하여 자식 클래스만의 방식으로 동작하게 할 수 있다.Virtual Table(VTab.. 2024. 11. 17.
[C#] 리플렉션(Reflection)과 속성(Attribute) 리플렉션(Reflection)리플렉션은 프로그램 실행 중 메타데이터를 검사하고 객체의 정보(형식, 이름, 프로퍼티 목록, 메소드 목록, 필드, 이벤트 목록 등)를 탐색, 조작하는 기능을 제공하는 기법이다. 이를 통해 코드가 실행 중에 클래스, 메서드, 프로퍼티, 필드 등의 정보를 조회하고 다룰 수 있으며, 주로 System.Reflection 네임 스페이스에 정의된 클래스를 사용한다.장단점장점유연성 및 확장성 : 코드가 컴파일될 때 타입을 알 필요 없이 런타임에 타입 정보를 가져와 동적으로 조작할 수 있다. 이로 인해 애플리케이션이 런타임에 새로운 타입을 로두하고 사용할 수 있다.동적 로딩 및 실행 : 리플렉션은 Assembly.Load, Type.GetType 등의 기능을 통해 외부 라이브러리나 플러그.. 2024. 11. 14.
[C#] const vs readonly const와 readonly는 C#에서 값을 변경할 수 없도록 하는 역할을 한다는 공통점이 있지만, 서로 다른 상황에서 사용된다.const(상수)컴파일 타임 상수이다. 즉, 컴파일 시 값이 결정된다.정적으로 할당되며(static의 성질을 갖고 있음) 클래스의 모든 인스턴스가 동일한 값을 공유한다.선언 시 반드시 값을 초기화해야 한다.const 변수는 컴파일 시 코드에 직접 삽입되어, code 영역에 저장된다.코드에서 참조될 때 마다 실제 값을 복사하여 사용하게 된다. 따라서 모든 인스턴스에서 같은 값을 가진다.내장 자료형에만 사용이 가능하다.따라서 사용자 정의 클래스로는 불가능하다.readonly(읽기 전용 필드)런타임 상수이다. 따라서 선언과 동시에 값을 지정하거나, 생성자에서 값을 할당할 수 있다.선.. 2024. 11. 9.
[C#] delegate와 event C#에서 delegate(대리자)와 event(이벤트)는 둘 다 메서드를 가리키고 실행할 수 있는 기능을 제공하는 요소지만, 사용 목적과 방식에 차이가 있다.delegatedelegate는 특정 메서드의 참조를 저장하고 호출할 수 있는 타입이다. C++에서 함수 포인터와 비슷한 개념이라 생각하면 된다.파라미터와 리턴 타입을 통해 정의하게 되며 이후 리턴, 파라미터 타입이 같은 메소드들과 호환되어 이 메소드들에 대한 참조를 가질 수 있게 된다.사용 예시 : 콜백(callback) 메커니즘을 구현하거나, 특정 시점에 실행할 작업 목록을 정의할 때 유용하다.콜백 메커니즘 : 특정 이벤트나 작업이 완료된 후 실행될 메서드를 미리 지정하는 방식/// 매개변수가 없는 delegatepublic delegate vo.. 2024. 11. 8.
[C#] .NET, 컴파일 과정, CLS, CTS, CIL, CLI, CLR, JIT 컴파일 C# 스크립트는 .NET 실행 환경에서 동작하게 되는데, 이 때 .NET이란 무엇이고 C# 스크립트가 실행되기까지 어떤 과정을 거치는지 정리하려 한다..NET Framework.NET Framework(이후 닷넷 또는 .NET)는 마이크로소프트에서 만든 소프트웨어 개발 및 실행 환경이다. 네트워크 작업과 인터페이스 등 많은 작업을 캡슐화하고, Windows 응용 프로그램을 개발하고 실행하는 데 필요한 라이브러리와 런타임 환경을 제공한다. 닷은 크게 두 가지 주요 구성 요소로 나눌 수 있다 :CLR(Common Languange Runtime) : 프로그램 실행 시 메모리 관리, 예외 처리, 가비지 걸렉션 등을 담당하는 런타임 환경이다.(일종의 가상 머신이라고 생각해도 된다.)BCL(Base Class L.. 2024. 11. 6.
728x90