현 블로그에서는

오래된 PC 하드 HDD에서 SSD로 교체, 윈도우 OEM 제품키 확인하기 (1)

에 이어 오래된 데스크탑 보드 체크 및 청소와 윈도우 설치 과정을 설명합니다.

 

( 글 순서 )

1. 윈도우 드라이브 마이그레이션

2. 윈도우 제품 키 확인 + PC 청소

3. 윈도우 설치 USB 만들기 + 윈도우 설치 

 

윈도우 설치하기 전에 PC 청소 겸 구매한 SSD 연결 포트 확인을 위해 메인보드 확인을 해 보았습니다. 오래된 PC 이긴 하지만 그 당시 고사양이라 그런지 메인보드에 SATA 포트가 총 6개가 보였고, 4개가 SATA2(@3Gbps)고 2개 포트가 SATA3(@6Gbps) 인것을 확인할 수 있었습니다. 내장형 SSD 연결에서는 SATA3 한포트를 이용했고요, GPU도 해체해서 보니 세월이 흔적이 많이 보였습니다. 

 

 

 

분리된 GPU 그림에서처럼 냉각팬간 써멀구리스가 마르고 닳아있어서, 이참에 CPU와 GPU 각각 분리해서 청소하고 써멀구리스 새로 도포해줬습니다. 써멀구리스 구매와 사용방법은 검색해보시면 많은 블로그에 잘 설명되어 있으니 참고하시면 됩니다.  

 

3. 윈도우 설치 USB 만들기 + 설치

 

기존에 윈도우10이 설치 되어 있었기 때문에 설치 디스크도 윈도우10으로 만들었고요, 설치 USB를 만들기 위해 기본적으로 8G 이상 USB를 준비하면 됩니다. 설치 USB 만들어보니 과정이 쉽게 되어있어서 금방 만들수 있었습니다.

 

윈도우10 설치 usb 만들기 https://www.microsoft.com/ko-kr/software-download/windows10

 

위 주소 화면에서 아래와 같이 “Windows 10 설치 미디어 만들기” 선택하면 됩니다. 중간 과정인 원하는 작업 선택에서는 “다른 PC용 설치 미디어 만들기” 선택, 사용할 미디어 선택에서는 “USB 플래시 드라이브” 선택하고, USB 플래시 드라이브 선택에서 PC에 삽입한 8G USB 선택하면 완료가 됩니다.

 

설치 USB가 만들어지면 USB 레이블이 “ESD-USB”로 바뀌어 있는것을 확인할 수 있습니다.

 

 

 

USB 설치 디스크가 만들어졌으니 간략히 설치 진행 과정을 설명하겠습니다. 설치 진행 전 구매한 내장형 SSD를 연결하고, 설치 USB를 PC에 삽입합니다.

 

1) 부팅을 USB로 해야합니다. 따라서 BIOS를 통해 부팅 순서를 USB로 변경 합니다. 제 PC의 경우 부팅 후 ESC키를 반복적으로 눌러 진입 할 수 있었습니다. 변경 후 재부팅을 하면 USB를 통해 윈도우 설치가 진행 됩니다.

2) 윈도우 설치가 진행되면 다른 변경 없이 다음으로 계속 진행

3) 정품 인증이 나오면 “제품 키 없음”으로 진행

4) 윈도우 버전 선택에서는 제 경우 기존과 동일한 버전 선택

5) 설치 유형은 “사용자 지정” 선택

6) 윈도우 설치 위치 지정에서는 장착해놓은 SSD 선택, 필요에 따라 여기서 포맷도 할 수 있음

7) 여기까지 설치 완료. 재부팅 시 USB 제거

8) 재부팅 후 윈도우 기본 설정 진행하고 정품인증, 업데이트 진행 이후 부팅 순서 변경

 

정품인증의 경우 기존 윈도우 제품키를 찾아놨었는데 브랜드 PC에 OEM이다 보니 윈도우가 설치되면서 자동 인증이 되어있어서 별도 정품인증은 하지 않았습니다. 그리고 윈도우 설정시 이메일 계정단계가 있는데 윈도우10에 경우 이메일 없이 로컬계정으로 사용이 가능합니다. 

10년이 훨씬 넘은 구형 데스크탑 PC가 한대 있어 어떻게 처리할까 살펴보다가 SSD 교체로 재사용 해보기로 했습니다. 그 당시 고성능 PC로 i5 3.3GHz에 1TB 7200RPM SATA 3G, GeForce 550Ti가 장착되어 있었고요, 어느때부터 아이들 교육용 PC로 사용하다가 HDD가 오래되다보니 버벅거리는 상태가 되었네요. 하드디스크 HDD 교체와 램 RAM 만 추가해주면 기본적인 영상처리 알고리즘 구현 및 프로그래밍 정도는 가능할 수 있어 보였습니다. 그래서 PC 리뉴얼을 위해 제가 확인하고 진행한 과정은 아래와 같습니다. 

 

( 글 순서 )

1. 윈도우 드라이브 마이그레이션

2. 윈도우 제품 키 확인 + PC 청소

3. 윈도우 설치 USB 만들기 + 윈도우 설치

 

위 세 과정을 진행하면서 중간중간 시간을 허비한 부분이 있어, 도움 될 만한 부분이 있으면 참고하셨으면 좋겠습니다.

 

1. 윈도우 C: 드라이브 마이그레이션

 

SSD 교체 시 여러 방법들을 찾아보던 중에 드라이브 마이그레이션 방법을 알게 되어서 시도를 했습니다. 윈도우 설치 파일을 만들 필요도 없고 윈도우 제품키도 필요 없으니 이거다 싶었죠. 내장형 SSD 하나를 구매하고 마이그레이션 툴들을 검색해보니 여러 종류가 있는데 유료와 무료로 나뉩니다. 무료라고 하는 툴들도 정책이 바뀌었는지 진행하다보면 비용 지불 팝업이 뜨네요. 제가 사용해 본 툴은 매크리움 리플렉트 Macrium Reflect 툴이고요, 현 시점 30일 무료로 사용할 수 있습니다.

 

https://www.macrium.com/reflectfree?mo

 

위 사이트에 들어가면 Home User > Reflect X Home Free Trial로 설치하면 됩니다. 툴 사용법은 여러 블로그들에 설명이 잘 되있고요, HDD 전체 드라이브를 SDD 전체 드라이브로 마이그레이션 하는 방법과 실제 OS로 사용하는 C: 드라이브만 선택적으로 마이그레이션 할 수 있습니다. 주의할 점은 전체를 하든 일부 파티션만 하든 각 용량과 같거나 커야 합니다. 예를 들어 HDD 전체가 500G라면 SDD도 500G 이상으로 준비하면 됩니다.

 

제 경우 OS로 사용하는 C: 드라이브만 마이그레이션을 시도 했었고요, 결론적으로는 실패했습니다. 이유는 오랜기간 HDD를 사용하다보니 배드섹터 Bad Sector가 많아 마이그레이션 오류가 문제 였습니다. 디스크 정리를 하면 된다고 하는데 OS 드라이브다보니 문제가 될 수 있어 포기하고 깨끗하게 새로 설치하기로 했습니다.

 

2. 윈도우 Window 제품키 확인

 

윈도우를 새로 설치하게 되면 기존 제품키를 알고 있거나 구매를 해야하는데 우선 현재 윈도우 버전과 제품키를 확인했습니다. 구형 PC가 모 브랜드 PC여서 본체에 제품키를 확인할 수 있었습니다. 그런데 최초 윈도우7에서 중간에 윈도우 10으로 업그레이드를 해서 제품키를 한번더 확인해 봤고요, 윈도우 키 확인 방법들도 여러가지 있는데 아래 두가지로 확인해 봤습니다.

 

( 윈도우키 확인 방법 )

1) wmic path softwarelicensingservice get Oa3xOriginalProductKey

2) reg query “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform” /v BackupProductKeyDefault

 

명령 프롬프트 cmd 창을 열어서 위 둘 중에 하나를 넣어 주시면 됩니다. 제 PC의 경우 2)번으로 시리얼키 25자리 확인할 수 있었습니다. 최초 윈도우7일때 키와 윈도우10으로 업그레이드 되면서 윈도우 키도 바뀐걸 알 수 있었고, 윈도우 구매 없이 설치 진행해 갈 수 있었습니다.

 

PC 청소 및 윈도우 설치 과정은 다음 블로그에서 확인할 수 있습니다. 

윈폼 환경에서 개발을 하다 보면 여러개의 SubForm 생성이 필요한 경우 가 빈번합니다. 첫 번째 예에서는 한장의 이미지를 Main에서 Sub로 전달하는 방법입니다. 예에서는 이미지를 읽어 와서 전달하는 예이지만 메모리에 저장되어 있는 Bitmap 등의 이미지도 동일한 방법으로 전달이 가능합니다. 예에서는 SubForm에 PictureBox가 이미 추가 되어 있다고 가정합니다.

 

1) 이미지 한장 전달 시, 서브폼 SubForm 및 메인폼 MainForm

using System;
using System.Drawing;
using System.Windows.Forms;

// sub form
public partial class SubForm : Form
{
    public SubForm(Image image)
    {
        InitializeComponent();
        if (image != null)
        {
            pictureBox1.Image = image; // picture box
        }
    }
}

 

using System;
using System.Drawing;
using System.Windows.Forms;

// main form
public partial class MainForm : Form
{
    private Image lenaImage;

    public MainForm()
    {
        InitializeComponent();
        lenaImage = Image.FromFile("Lena.jpg");  // 로컬 이미지 로드
    }

    private void btnOpenSubForm_Click(object sender, EventArgs e) // 버튼
    {
        SubForm subForm = new SubForm(lenaImage);
        subForm.Show();
    }
}

 

필요따라 여러 장의 이미지를 전달할 경우도 있습니다. 두번째 예에서는 리스트 List를 이용하여 여러 이미지를 전달하는 방법입니다. 이미지 뿐만 아니라 다른 형 Type에 여러 데이터를 전달 할때에는 ArrayList를 활용하면 쉽게 전달 할 수 있습니다.

 

2) 이미지 여러장 전달 시, 서브폼 SubForm 및 메인폼 MainForm

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

// sub form
public partial class SubForm : Form
{
    public SubForm(List<Image> images)
    {
        InitializeComponent();
        
        if (images != null && images.Count > 0)
        {
           // 여러 Picture Box에 각 이미지 표시
            pictureBox1.Image = images[0];
            pictureBox2.Image = images[1];
            pictureBox3.Image = images[2];
            
        }
    }
}

 

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

// main form
public partial class MainForm : Form
{
    private List<Image> imageList = new List<Image>();

    public MainForm()
    {
        InitializeComponent();

        // 예시: 이미지 여러 개 로드
        imageList.Add(Image.FromFile("A.jpg"));
        imageList.Add(Image.FromFile("B.jpg"));
        imageList.Add(Image.FromFile("C.jpg"));
    }

    private void btnOpenSubForm_Click(object sender, EventArgs e)
    {
        SubForm subForm = new SubForm(imageList);
        subForm.Show();
    }
}

프로그래밍을 하다보면 두 개의 집합 사이 관계를 계산해야 될 때가 많습니다. 아래는 DataTable의 활용 시에 두 개의 Table 사이에 차집합을 구하는 LINQ를 활용한 두 가지 예입니다. 비교적 간단하거나 짧은 행의 Table에 적용하면 유용하며, 또한 처리 시간에 구애받지 않는다면 유용할 수 있습니다. 큰 Table들이면서 실시간 처리가 목적이라면 어렵지 않을까 합니다.

 

첫 번째 예제에서는 AsEnumerable().Where()와 Any()문을 활용하여 특정 행을 비교하여 차집합을 구하는 방식입니다. 두 번째 예에서는 AsEnumerable().Except()와 DataRowComparer.Default를 이용한 방식 입니다.

 

예제 #1. AsEnumerable().Where() 사용 예

using System;
using System.Data;
using System.Linq;

class Program
{
    static void Main()
    {
        // 첫 번째 DataTable 생성 및 데이터 추가
        DataTable dt1 = new DataTable();
        dt1.Columns.Add("Num", typeof(int));
        dt1.Columns.Add("Tag", typeof(string));

        dt1.Rows.Add(1, "A");
        dt1.Rows.Add(2, "B");
        dt1.Rows.Add(3, "C");

        // 두 번째 DataTable 생성 및 데이터 추가
        DataTable dt2 = new DataTable();
        dt2.Columns.Add("Num", typeof(int));
        dt2.Columns.Add("Tag", typeof(string));

        dt2.Rows.Add(2, "B");
        dt2.Rows.Add(3, "C");

        // 차집합: dt1에는 있고 dt2에는 없는 행
        var difference = dt1.AsEnumerable()
            .Where(row1 => !dt2.AsEnumerable().Any(row2 =>
                row1.Field<int>("Num") == row2.Field<int>("Num") &&
                row1.Field<string>("Tag") == row2.Field<string>("Tag")));

        // 결과 출력
        Console.WriteLine("차집합 결과 (dt1 - dt2):");
        foreach (var row in difference)
        {
            Console.WriteLine($"ID: {row["Num"]}, Name: {row["Tag"]}");
        }
    }
}

 

예제 #2. AsEnumerable().Except() 사용 예

using System;
using System.Data;
using System.Linq;

class Program
{
    static void Main()
    {
        // 첫 번째 DataTable 생성
        DataTable dt1 = new DataTable();
        dt1.Columns.Add("Num", typeof(int));
        dt1.Columns.Add("Tag", typeof(string));

        dt1.Rows.Add(1, "A");
        dt1.Rows.Add(2, "B");
        dt1.Rows.Add(3, "C");

        // 두 번째 DataTable 생성
        DataTable dt2 = new DataTable();
        dt2.Columns.Add("Num", typeof(int));
        dt2.Columns.Add("Tag", typeof(string));

        dt2.Rows.Add(2, "B");
        dt2.Rows.Add(3, "C");

        // 차집합 구하기
        var difference = dt1.AsEnumerable()
                            .Except(dt2.AsEnumerable(), DataRowComparer.Default);

        // 결과 출력
        DataTable resultTable = difference.CopyToDataTable();
        Console.WriteLine("차집합 결과:");
        foreach (DataRow row in resultTable.Rows)
        {
            Console.WriteLine($"{row["Num"]}, {row["Tag"]}");
        }
    }
}

 

When using deep learning in Python, setting up the GPU and CUDA environment is important. There are two main ways to do this:

 

● Personal use – You can install the latest CUDA and PyTorch versions that work best with your GPU.

Work – You may need to use a specific version of PyTorch to match project requirements.

 

To make sure everything runs smoothly, your GPU driver, CUDA, cuDNN, and PyTorch versions must be compatible. Since reinstalling or rolling back versions can take a lot of time, it’s best to set up the environment correctly from the start and focus on actual development.

 

This blog explains how to set up the environment based on PyTorch 1.13, assuming your GPU meets the requirements.

 

1. Checking GPU Environment: Run ‘cmd’ and execute ‘nvidia-smi’ to check the GPU status

Verify the installed CUDA and driver versions. The CUDA version displayed in the command prompt represents the highest supported version, but older versions are also compatible. As of April 2025, the latest driver update for RTX 30 series GPUs includes CUDA 12.x and driver 5xx.xx. Visit the official website below to check for the latest updates and install them accordingly.

 

NVIDIA Driver: docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#cuda-major-component-versions

 

 

2. Checking CUDA Version for PyTorch 1.13

PyTorch can be installed using either conda or pip, and you should set up the CUDA environment based on your personal system before proceeding with the installation. In this step, we are only checking the CUDA version. PyTorch 1.13 is confirmed to be compatible with CUDA 11.6x and 11.7x.

 

pytorch.org/get-started/previous-versions/

 

3. Capability Based on GPU Environment

Additionally, you need to check the Capabilityof your specific GPU. For RTX 3050, 3060, 3070, 3080, and 3090, the capability is 8.6 and they can be used with CUDA 11.1 or later.

 

GPU Capability: en.wikipedia.org/wiki/CUDA

 

4. Setting Up the CUDA Environment and Installing PyTorch

Based on PyTorch 1.13, install CUDA 11.7.x, followed by cuDNN 11.x, considering the GPU capability. For cuDNN, extract the files and copy them into the folder where CUDA is installed to complete the environment setup. Finally, install PyTorch 1.13 using either pipor conda, as previously explained.

 

CUDA: developer.nvidia.com/cuda-toolkit-archive

cuDNN: developer.nvidia.com/rdp/cudnn-archive

 

5. Checking Environment Setup and Functionality: nvcc - - version

You can verify the installation by running "nvcc --version" (or "nvcc -V") in the command prompt “cmd”. The following code can be used to check whether the GPU is available. 

import torch
print(torch.cuda.is_available())


Additionally, in practical applications, the code below can be used to automatically assign the device.

device = torch.device('cuda:0') if torch.cuda.is_available() else torch.device('cpu')

 

** Refer to korean version

파이썬 Python 기반에 Deep Learning(D/L) 활용 시 GPU 및 CUDA 환경 설정에 대한 설명입니다. 환경 설정에 방향은 두 가지 정도로 나뉠 수 있습니다. 개인적인 활용에서는 GPU 환경에 맞춰 CUDA 및 Pytorch 최신 환경으로 구성할 수 있고, 업무 환경 상 Pytorch 특정 버전에 맞춰 환경을 구성해야 될 수도 있겠습니다.

 

환경 설정에서는 GPU 드라이버, CUDA, cuDNN, Pytorch 버전이 호환되어야 정상 활용 가능하므로 개인적인 환경에 따라 다를 수 있겠지만 상황에 따라 재설치 및 Rollback 시간이 상당하므로 가능하면 환경설정에 시간 소모를 줄이고 개발에 집중하는 것이 좋다고 생각합니다.

 

현 블로그에서는 기본적으로 GPU 환경 조건이 충분하다는 상황에서 Pytorch 1.13 기준에서 환경 설정 과정을 설명합니다.

 

1. GPU 환경 확인: cmd 실행 후 ‘nvidia-smi’ 확인, 드라이버 업데이트

CUDA 버전과 드라이버 버전 확인 합니다. cmd 창에 출력되는 CUDA 버전은 지원 가능한 버전이므로 이하 버전들도 적용 가능합니다. 23년 12월 기준 RTX 30 시리즈 드라이버 최신 업데이트 시 CUDA 12.x와 드라이버 5xx.xx 입니다. 아래 주소 확인 후 최신 업데이트 합니다.

 

NVIDIA Driver: docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#cuda-major-component-versions

 

 

 

2. Pytorch 1.13 기준 CUDA 버전 확인

파이토치 설치 방법은 conda와 pip으로 구분되어 있으며 개인 환경에 맞춰 CUDA 환경 구성 후 설치하면 됩니다. 현 시점에서는 CUDA 버전만 확인합니다. 파이토치 1.13은 CUDA 11.6x와 11.7x와 연동되는 것을 확인 할 수 있습니다.

 

pytorch.org/get-started/previous-versions/

 

 

3. GPU 환경에 따른 Capability

추가로 본인 GPU 환경에 따른 Capability를 확인해야 됩니다. RTX 3050/30603070/3080/3090의 경우 Capability 8.6 이며, 이는 CUDA 11.1 이상에서 활용 가능함을 확인 할 수 있습니다.

 

GPU Capability: en.wikipedia.org/wiki/CUDA

 

 

 

4. CUDA 환경 구축 및 Pytorch 설치

파이토치 1.13 호환성 기준으로 Capability 고려하여 CUDA 11.7.x 설치 후 cuDNN 11.x 설치하면 됩니다. cuDNN의 경우 압축 해제 후 파일들을 CUDA 설치된 폴더에 복사/붙여넣기하여 환경 구성을 완료합니다. 이후 앞에서 확인한 파이토치 1.13을 pip 또는 conda로 최종 설치합니다.

 

CUDA: developer.nvidia.com/cuda-toolkit-archive

cuDNN: developer.nvidia.com/rdp/cudnn-archive

 

 

 

5. 환경 구성 및 동작 확인: nvcc - -version

cmd 창에서 ‘nvcc –V’ 또는 ‘nvcc –version’으로 설치 확인 할 수 있습니다. 아래 코드를 통해 GPU 사용 및 할당 가능한지 확인할 수 있습니다.

 

import torch

print(torch.cuda.is_available()) # True면 활용 가능

 

추가로 실무에서 아래 코드로 디바이스 자동 지정 할 수 있습니다.

device = torch.device('cuda:0') if torch.cuda.is_available() else torch.device('cpu')

프로그래밍을 할 수 있는 언어는 크게 인터프리터 Interpreter와 컴파일 Complile 언어로 구분할 수 있습니다. 앞에서 설명한 C-언어가 컴파일 언어의 대표 예입니다. 인터프리터 언어에는 요즘 많이 활용 중인 파이썬 Python과 매트랩 Matlab 언어가 있습니다.

 

매트랩 Matlab은 수치 컴퓨팅, 데이터 분석 및 시각화에 활발히 사용 됩니다. 인터프리터 언어 특성상 사용하기 쉽고 다양한 소프트웨어 패키지를 이용하여 물리, 수학, 금융 및 제어 시스템을 포함한 다양한 과학 및 엔지니어링 분야에서 널리 사용됩니다. 그러나 파이썬은 무료에 반해 매트랩은 유료로 사용할 수 있습니다.

 

파이썬 Python의 경우 인공지능 분야 활용 확대로 활용성이 급격히 상승한 언어 중에 하나이며 다양한 응용 분야에서 활용되고 있습니다. 웹 Web 개발, Deep Learning(D/L), 네트웍, 서버, 게임, GUI 등등. 다만 무료 사용은 장점이지만 파이썬 버전에 따른 활용에 주의할 필요도 있습니다.

 

넘피 NumPy, 판다스 Pandas, Matplotlib, scikit-learn 등의 라이브러리는 다양한 데이터 분석에 활용 됩니다. 장고 Django와 플라스크 Flask와 같은 프레임워크는 확장 가능한 웹 응용 프로그램을 쉽게 개발할 수 있으며, 인공지능 Artificial Intelligence 과 자연어 처리  Natural Language Processing  분야에서는 텐서플로우 TensorFlow와 파이토치 PyTorch와 같은 프레임워크를 활용하여 훈련하는데 사용됩니다.

 

SciPy와 SymPy와 같은 라이브러리는 과학적 컴퓨팅, 수학적 문제 해결, 시뮬레이션 수행을 위한 도구들을 제공합니다. Pygame 라이브러리는 간단한 비디오 게임을 작성하기 위한 모듈을 제공합니다.

 

파이썬은 그래픽 사용자 인터페이스(GUI) 개발하는 데 사용될 수 있으며, Tkinter, PyQt 및 Kivy와 같은 라이브러리는 Desktop Application을 쉽게 구축할 수 있습니다.

C 언어는 1970년 초 벨 연구소(Bell Lab.)에서 유닉스 시스템의 운영체제를 만들기 위해 개발된 프로그래밍 언어 입니다. 역사가 오래되기도 했지만 현재까지 폭넓게 사용되는 언어이기도 합니다. C++ C에 확장판으로 객체지향 프로그래밍을 지원하기 위해 개발된 언어이며, C#은 마이크로 소프트사(Microsoft)에서 C++ 언어를 기반으로 닷넷 프레임워크(.NET Framework)의 응용 프로그램 개발을 위한 언어 입니다. 유사한 성격에 JAVA 언어 진영에 대응하기 위한 목적도 있다고 하죠.

 

C 프로그래밍 언어에 역사에서처럼 C 프로그래밍 문법을 잘 알면 C#까지 익히는데 많은 시간이 필요하지 않습니다. 프로그래밍 언어 습득은 전공과도 연관성이 있겠지만 업무와도 사용에 지속성에서 상당한 연관이 있습니다. 외국어를 습득하는 과정처럼 사용하면 사용할수록 느는 게 프로그래밍 언어도 같습니다.

 

 

프로그래밍 기술에서는 C 언어에 문법을 기본적으로 알고 있다는 가정하에 영상처리 기술들을 확인해보고 검증해보는 도구로 마이크로 소프트사의 Visual Studio에 포함된 MFC(Microsoft Foundation Classes)를 사용할 예정이고 간혹 C#에 대한 이야기도 할 예정입니다. 개발 환경 설치나 기본적인 내용들은 많은 블로그에 잘 나와 있으니 프로그래밍 이야기에서는 다양한 프로젝트들을 진행하면서 문제 해결이나 유용하게 사용했던 코드들에 대한 이야기를 해 볼까 합니다.

   프로그래밍은 컴퓨터가 이해할 수 있는 언어로 목적에 따라 동작 할 수 있게 구체화 시켜주는 작업을 의미합니다. 그 작업을 코딩(Coding)이라 부르며 더 나아가 컴퓨터 프로그램, 소프트웨어 또는 알고리즘 등에 구현을 의미하기도 합니다. 대부분에 전자기기에는 목적에 따라 작고 큰 소프트웨어가 담겨져 있습니다. 그 소프트웨어에 포함된 알고리즘들에 따라 특정 동작을 하게 되어 있으며 예를 들어 스마트폰에 각 기능별 아이콘을 터치하면 목적에 맞게 동작하는 것도 소프트웨어 기술이라 하겠습니다. 영상처리 기술들도 컴퓨터 프로그램과 매우 밀접하며 프로그래밍 언어를 통해 하나에 알고리즘으로 구현될 수 있습니다.

   컴퓨터가 알아들을 수 있는 프로그래밍 언어는 어떤 것들이 있을까요? 실제 사용되는 언어들은 수십 종류 이상일 듯 합니다. 아래는 세계적으로 사용되고 있는 프로그래밍 언어 중 가장 빈도수가 높은 것부터 순서대로 표시한 목록입니다.

 

 

 

   한번씩 들어본 언어도 있을 테고 사용을 해봐서 익숙한 언어도 있겠죠. 제 경우는 C/C++/C# MATLAB 언어에 익숙하고 앞으로 프로그래밍 이야기에서는 C 계열 언어를 기준으로 기술해 나 갈 예정입니다. 모든 언어를 잘 다루기는 어려울 수도 있습니다. 다만 자신에게 필요한 언어 중 하나만 정확하게 사용할 수 있다면 다른 언어를 배우고 응용 할때 상당한 도움이 될 수 있습니다.

+ Recent posts