본문 바로가기
IT 정보/IT 용어

ILSpy

by J코딩 2022. 8. 30.
반응형

.Net Framework란?

.Net Framework는 Windows에서 응용 프로그램을 빌드하고 실행하기 위한 소프트웨어 개발 프레임워크입니다. Linux, macOS, Windows, iOS, Android 등에서 어플리케이션을 빌드하기 위한 기술을 모아 놓은 .Net 플랫폼의 일부이지요.

.Net Framework의 구조에는 크게 두 가지 요소가 있습니다. 바로 Common Language Runtime(CLR)과 .Net Framework Class Library입니다. 

Common Language Runtime(CLR): 실행중인 어플리케이션을 처리하는 실행 엔진입니다. 스레드 관리, 가비지 컬렉션(Garbage collection), 예외 처리 등의 서비스를 제공합니다.
Class Library: 클래스 라이브러리는 공통 기능을 위한 API를 제공합니다. 문자열, 날짜, 숫자 등의 유형 같은 것입니다.

.Net 어플리케이션은 C#, F# 또는 Visual Basic 프로그래밍 언어로 작성됩니다. 코드는 언어에 구애받지 않는 Common Intermediate Language(CIL)로 컴파일됩니다. 컴파일된 코드는 .dll 또는 .exe 파일 확장명을 가진 어셈블리에 저장됩니다. 어플리케이션이 실행될 때 CLR은 어셈블리를 가져와서 just-in-time(JIT) 컴파일러를 사용하여 실행 중인 컴퓨터의 특정 아키텍처에서 실행할 수 있는 기계어 코드로 변환합니다.

 

ILSpy 로 소스 코드 보기
간단하게 C# 샘플 프로그램을 제작한 후 ILSpy 및 dotPeek로 소스 코드를 열어보는 작업을 보여드리려고 합니다. 샘플 프로그램은 버튼이 있고 버튼을 클릭하면 특정 메시지를 출력하는 예제입니다. 코드는 아래와 같습니다. 메시지 박스 외에 변수 몇 개도 추가해 봤습니다.

using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace Exam_ILSpy
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("ILSpy Test Sample Code");
            int a = 5, b = 10;
            int sum = a + b;
        }
    }
}

Release 모드로 빌드하여 실행파일을 생성하고, ILSpy에서 어떤 결과를 얻을 수 있는지 확인해 보겠습니다. 

 

반응형

댓글