๐Ÿฆ€ Rust Learning Ebook
EN KO

๐Ÿ› ๏ธ Chapter 2: ์‹œ์ž‘ํ•˜๊ธฐ

์ด ์žฅ์—์„œ๋Š” Rust ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๊ณ  ์ฒซ ๋ฒˆ์งธ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. Rust ๋„๊ตฌ ์ฒด์ธ, IDE ์„ค์ •, ๊ทธ๋ฆฌ๊ณ  Cargo ๋นŒ๋“œ ์‹œ์Šคํ…œ์˜ ๊ธฐ์ดˆ๋ฅผ ๋ฐฐ์›๋‹ˆ๋‹ค.

2.1 Rust ์„ค์น˜

Rust๋Š” rustup์ด๋ผ๋Š” ๊ณต์‹ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. rustup์€ ์—ฌ๋Ÿฌ Rust ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•˜๊ณ , ํƒ€๊ฒŸ ํ”Œ๋žซํผ๋ณ„ ์ปดํŒŒ์ผ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

2.1.1 ์ง€์› ํ”Œ๋žซํผ

ํ”Œ๋žซํผ ์ง€์› ์ƒํƒœ ์š”๊ตฌ์‚ฌํ•ญ
Windows โœ… Tier 1 Windows 7 ์ด์ƒ, Visual Studio Build Tools
macOS โœ… Tier 1 macOS 10.12 ์ด์ƒ, Xcode Command Line Tools
Linux โœ… Tier 1 glibc 2.17 ์ด์ƒ (๋Œ€๋ถ€๋ถ„์˜ ํ˜„๋Œ€ ๋ฐฐํฌํŒ)
BSD ๊ณ„์—ด โœ… Tier 2 FreeBSD, OpenBSD, NetBSD

2.1.2 macOS / Linux ์„ค์น˜

1 ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ  ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
2 ์„ค์น˜ ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค (๊ธฐ๋ณธ๊ฐ’ ๊ถŒ์žฅ):
1) Proceed with installation (default)
2) Customize installation
3) Cancel installation

๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ 1์„ ์„ ํƒํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

3 ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค:
source $HOME/.cargo/env

2.1.3 Windows ์„ค์น˜

1 rustup.rs์—์„œ rustup-init.exe๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์„ธ์š”
2 Visual Studio Build Tools ์„ค์น˜ (์•„์ง ์—†๋Š” ๊ฒฝ์šฐ):
  • Visual Studio 2022 Community (๋ฌด๋ฃŒ)
  • ๋˜๋Š” Build Tools for Visual Studio 2022
  • "Desktop development with C++" ์›Œํฌ๋กœ๋“œ ์„ ํƒ
3 rustup-init.exe๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ธฐ๋ณธ ์˜ต์…˜์œผ๋กœ ์„ค์น˜

2.1.4 ์„ค์น˜ ํ™•์ธ

โœ“ ์„ค์น˜๊ฐ€ ์„ฑ๊ณตํ–ˆ๋Š”์ง€ ํ™•์ธ:

rustc --version
cargo --version
rustup --version

์ถœ๋ ฅ ์˜ˆ์‹œ:

rustc 1.75.0 (82e1608df 2023-12-21)
cargo 1.75.0 (1d8b05cdd 2023-11-20)
rustup 1.26.0 (5af9b9484 2023-04-05)

2.2 IDE ์„ค์ •

Rust๋Š” ๋‹ค์–‘ํ•œ IDE์™€ ์—๋””ํ„ฐ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” ์˜ต์…˜๋“ค์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

2.2.1 Visual Studio Code (๊ถŒ์žฅ)

ํ™•์žฅ ๊ธฐ๋Šฅ ํ•„์ˆ˜ ์—ฌ๋ถ€
rust-analyzer ์ฝ”๋“œ ์™„์„ฑ, ํƒ€์ž… ํžŒํŠธ, ์—๋Ÿฌ ๊ฒ€์‚ฌ, ๋ฆฌํŒฉํ† ๋ง โœ… ํ•„์ˆ˜
Even Better TOML Cargo.toml ๋ฌธ๋ฒ• ๊ฐ•์กฐ ๋ฐ ๊ฒ€์ฆ โœ… ๊ถŒ์žฅ
CodeLLDB ๋””๋ฒ„๊น… ์ง€์› ๐Ÿ”ธ ์„ ํƒ
crates Cargo.toml์—์„œ ํฌ๋ ˆ์ดํŠธ ๋ฒ„์ „ ๊ด€๋ฆฌ ๐Ÿ”ธ ์„ ํƒ
1 VS Code ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜
2 Extensions (Ctrl+Shift+X)์—์„œ rust-analyzer ๊ฒ€์ƒ‰ ๋ฐ ์„ค์น˜
3 Even Better TOML ์„ค์น˜

2.2.2 ๊ธฐํƒ€ IDE ์˜ต์…˜


2.3 Hello, World!

์ด์ œ ์ฒซ ๋ฒˆ์งธ Rust ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ด…์‹œ๋‹ค. Cargo๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

2.3.1 ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

1 ํ„ฐ๋ฏธ๋„์—์„œ ์ƒˆ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ:
cargo new hello_rust
cd hello_rust

Cargo๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค:

hello_rust/
โ”œโ”€โ”€ Cargo.toml      # ํ”„๋กœ์ ํŠธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ ์˜์กด์„ฑ
โ”œโ”€โ”€ .gitignore      # Git ์ œ์™ธ ํŒŒ์ผ
โ””โ”€โ”€ src/
    โ””โ”€โ”€ main.rs     # ์†Œ์Šค ์ฝ”๋“œ

2.3.2 ์ฝ”๋“œ ํ™•์ธ

src/main.rs ํŒŒ์ผ์„ ์—ด๋ฉด ๋‹ค์Œ ์ฝ”๋“œ๊ฐ€ ์ด๋ฏธ ์ž‘์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค:

fn main() {
    println!("Hello, world!");
}

2.3.3 ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰

2 ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ์‹คํ–‰:
cargo run

์ถœ๋ ฅ:

   Compiling hello_rust v0.1.0 (/path/to/hello_rust)
    Finished dev [unoptimized + debuginfo] target(s) in 1.23s
     Running `target/debug/hello_rust`
Hello, world!

[i] ์ฐธ๊ณ : cargo run์€ ์ž๋™์œผ๋กœ ๋นŒ๋“œํ•œ ํ›„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๋นŒ๋“œ๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.


2.4 ์ฝ”๋“œ ์ดํ•ดํ•˜๊ธฐ

๊ฐ„๋‹จํ•œ "Hello, World!" ํ”„๋กœ๊ทธ๋žจ์„ ๋ถ„์„ํ•ด๋ด…์‹œ๋‹ค.

2.4.1 main ํ•จ์ˆ˜

fn main() {
    // ํ•จ์ˆ˜ ๋ณธ๋ฌธ
}

๋ชจ๋“  Rust ์‹คํ–‰ ํŒŒ์ผ์€ main ํ•จ์ˆ˜์—์„œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

2.4.2 println! ๋งคํฌ๋กœ

println!("Hello, world!");

๋งคํฌ๋กœ vs ํ•จ์ˆ˜

๋งคํฌ๋กœ๋Š” !๋กœ ๋๋‚˜๋ฉฐ, ์ปดํŒŒ์ผ ํƒ€์ž„์— ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. println!์€ ํฌ๋งทํŒ…๊ณผ ํƒ€์ž… ๊ฒ€์‚ฌ๋ฅผ ์ปดํŒŒ์ผ ํƒ€์ž„์— ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

2.4.3 ํฌ๋งท ๋ฌธ์ž์—ด

println!์€ ๋ณ€์ˆ˜ ์‚ฝ์ž…๊ณผ ํฌ๋งทํŒ…์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค:

fn main() {
    let name = "Rust";
    let version = 1.75;

    println!("Hello, {}!", name);
    println!("{} version {}", name, version);
    println!("{name} version {version}");  // Rust 1.58+
}

2.5 Cargo ๋ช…๋ น์–ด

Cargo๋Š” Rust์˜ ๋นŒ๋“œ ์‹œ์Šคํ…œ์ด์ž ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด๋“ค์„ ์•Œ์•„๋ด…์‹œ๋‹ค.

๋ช…๋ น์–ด ์„ค๋ช… ์‚ฌ์šฉ ์‹œ์ 
cargo new <name> ์ƒˆ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ ์‹œ
cargo build ๋””๋ฒ„๊ทธ ๋ชจ๋“œ๋กœ ๋นŒ๋“œ ์‹คํ–‰ ์—†์ด ๋นŒ๋“œ๋งŒ ํ•  ๋•Œ
cargo run ๋นŒ๋“œ ํ›„ ์‹คํ–‰ ๊ฐœ๋ฐœ ์ค‘ ํ…Œ์ŠคํŠธ
cargo check ์—๋Ÿฌ๋งŒ ํ™•์ธ (๋นŒ๋“œ ์•ˆ ํ•จ) ๋น ๋ฅธ ์—๋Ÿฌ ์ฒดํฌ
cargo build --release ์ตœ์ ํ™”๋œ ๋ฆด๋ฆฌ์Šค ๋นŒ๋“œ ๋ฐฐํฌ์šฉ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ƒ์„ฑ
cargo test ํ…Œ์ŠคํŠธ ์‹คํ–‰ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋ฐ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ
cargo fmt ์ฝ”๋“œ ์ž๋™ ํฌ๋งทํŒ… ์ฝ”๋“œ ์Šคํƒ€์ผ ํ†ต์ผ
cargo clippy ๋ฆฐํŠธ ๊ฒ€์‚ฌ ์ฝ”๋“œ ํ’ˆ์งˆ ๊ฐœ์„ 
cargo doc --open ๋ฌธ์„œ ์ƒ์„ฑ ๋ฐ ์—ด๊ธฐ ์˜์กด์„ฑ ๋ฌธ์„œ ํ™•์ธ

2.5.1 ๋นŒ๋“œ ๋ชจ๋“œ ๋น„๊ต

ํŠน์„ฑ Debug ๋ชจ๋“œ Release ๋ชจ๋“œ
๋นŒ๋“œ ์‹œ๊ฐ„ ๋น ๋ฆ„ (1-2์ดˆ) ๋А๋ฆผ (10์ดˆ ์ด์ƒ)
์‹คํ–‰ ์†๋„ ๋А๋ฆผ ๋น ๋ฆ„ (10-100๋ฐฐ)
๋””๋ฒ„๊ทธ ์ •๋ณด ํฌํ•จ ์ œ๊ฑฐ
์ตœ์ ํ™” ์—†์Œ ์ตœ๋Œ€
๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ๊ธฐ ํผ ์ž‘์Œ
์‚ฌ์šฉ ์‹œ์  ๊ฐœ๋ฐœ ์ค‘ ๋ฐฐํฌ ์‹œ

2.6 ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

Cargo ํ”„๋กœ์ ํŠธ์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•ด๋ด…์‹œ๋‹ค.

my_project/
โ”œโ”€โ”€ Cargo.toml          # ํ”„๋กœ์ ํŠธ ์„ค์ •
โ”œโ”€โ”€ Cargo.lock          # ์˜์กด์„ฑ ๋ฒ„์ „ ๊ณ ์ • (์ž๋™ ์ƒ์„ฑ)
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ main.rs         # ๋ฐ”์ด๋„ˆ๋ฆฌ ์ง„์ž…์ 
โ”‚   โ”œโ”€โ”€ lib.rs          # ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ง„์ž…์  (์„ ํƒ)
โ”‚   โ””โ”€โ”€ bin/            # ์ถ”๊ฐ€ ๋ฐ”์ด๋„ˆ๋ฆฌ (์„ ํƒ)
โ”œโ”€โ”€ tests/              # ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ
โ”œโ”€โ”€ examples/           # ์˜ˆ์ œ ์ฝ”๋“œ
โ”œโ”€โ”€ benches/            # ๋ฒค์น˜๋งˆํฌ
โ””โ”€โ”€ target/             # ๋นŒ๋“œ ์‚ฐ์ถœ๋ฌผ (Git ์ œ์™ธ)
    โ”œโ”€โ”€ debug/          # ๋””๋ฒ„๊ทธ ๋นŒ๋“œ
    โ””โ”€โ”€ release/        # ๋ฆด๋ฆฌ์Šค ๋นŒ๋“œ

2.6.1 Cargo.toml ํŒŒ์ผ

ํ”„๋กœ์ ํŠธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ ์˜์กด์„ฑ์„ ์ •์˜ํ•˜๋Š” TOML ํŒŒ์ผ์ž…๋‹ˆ๋‹ค:

[package]
name = "hello_rust"
version = "0.1.0"
edition = "2021"

[dependencies]
# ์—ฌ๊ธฐ์— ์˜์กด์„ฑ ์ถ”๊ฐ€
# serde = "1.0"
# tokio = { version = "1.35", features = ["full"] }

2.7 ์ผ๋ฐ˜์ ์ธ ์˜ค๋ฅ˜์™€ ํ•ด๊ฒฐ

Rust๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜์™€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

2.7.1 "rustc not found" ์˜ค๋ฅ˜

์ฆ์ƒ: rustc: command not found

์›์ธ: PATH์— Rust ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์ถ”๊ฐ€๋˜์ง€ ์•Š์Œ

ํ•ด๊ฒฐ:

# macOS/Linux
source $HOME/.cargo/env

# Windows (PowerShell)
$env:Path += ";$env:USERPROFILE\.cargo\bin"

2.7.2 "linker not found" ์˜ค๋ฅ˜

์ฆ์ƒ: error: linker 'link.exe' not found

์›์ธ: C/C++ ๋นŒ๋“œ ๋„๊ตฌ ๋ฏธ์„ค์น˜ (Windows)

ํ•ด๊ฒฐ: Visual Studio Build Tools ์„ค์น˜

2.7.3 "missing semicolon" ์˜ค๋ฅ˜

error: expected `;`, found `}`
 --> src/main.rs:3:5
  |
2 |     println!("Hello")  // ์„ธ๋ฏธ์ฝœ๋ก  ์—†์Œ
  |                       ^ help: add `;` here
3 | }
  | - unexpected token

ํ•ด๊ฒฐ: ๋ฌธ์žฅ ๋์— ์„ธ๋ฏธ์ฝœ๋ก  ์ถ”๊ฐ€


2.8 ์ฑ•ํ„ฐ ์š”์•ฝ

์ฃผ์š” ๊ฐœ๋…:

  1. rustup: Rust ๊ณต์‹ ์„ค์น˜ ๋„๊ตฌ๋กœ, ์—ฌ๋Ÿฌ ๋ฒ„์ „๊ณผ ํƒ€๊ฒŸ ๊ด€๋ฆฌ
  2. Cargo: Rust์˜ ๋นŒ๋“œ ์‹œ์Šคํ…œ์ด์ž ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž
  3. main ํ•จ์ˆ˜: ๋ชจ๋“  Rust ํ”„๋กœ๊ทธ๋žจ์˜ ์ง„์ž…์ 
  4. println! ๋งคํฌ๋กœ: ์ฝ˜์†” ์ถœ๋ ฅ์„ ์œ„ํ•œ ํ‘œ์ค€ ๋งคํฌ๋กœ
  5. ๋นŒ๋“œ ๋ชจ๋“œ: Debug (๊ฐœ๋ฐœ์šฉ)์™€ Release (๋ฐฐํฌ์šฉ) ๋‘ ๊ฐ€์ง€

2.9 ๋ณต์Šต ๋ฌธ์ œ

  1. rustup๊ณผ Cargo์˜ ์—ญํ•  ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?
  2. println!์˜ !๋Š” ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋‚˜์š”?
  3. cargo build์™€ cargo build --release์˜ ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•˜์„ธ์š”.
  4. cargo check๋Š” ์–ธ์ œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€๊ฐ€์š”?
  5. Cargo.toml๊ณผ Cargo.lock์˜ ์—ญํ•  ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?
  6. Debug ๋นŒ๋“œ์™€ Release ๋นŒ๋“œ์˜ ์„ฑ๋Šฅ ์ฐจ์ด๋Š” ์–ผ๋งˆ๋‚˜ ๋˜๋‚˜์š”?

2.10 ๋‹ค์Œ ์žฅ ์˜ˆ๊ณ 

3์žฅ์—์„œ๋Š” Rust์˜ ๊ฐ€์žฅ ๋…ํŠนํ•œ ๊ธฐ๋Šฅ์ธ ์†Œ์œ ๊ถŒ ์‹œ์Šคํ…œ์„ ๋ฐฐ์›๋‹ˆ๋‹ค. ์†Œ์œ ๊ถŒ, ๋นŒ๋ฆผ, ์ˆ˜๋ช…์˜ ๊ฐœ๋…์„ ํ†ตํ•ด Rust๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์ „์„ฑ์„ ๋ณด์žฅํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.


Chapter 2 ์™„๋ฃŒ | ์•ฝ 15ํŽ˜์ด์ง€

๋‹ค์Œ: Chapter 3 - ์†Œ์œ ๊ถŒ

๐Ÿ“š ์ „์ฒด Ebook ๊ตฌ๋งคํ•˜๊ธฐ

EN $99 | KO $99 | Bundle $159

๐Ÿ›’ WIA Book

ํ•œ๊ตญ ์ผ๋ฐ˜ ์ธํ”„๋ผ ๋งคํ•‘ (์ œ2์žฅ)

ํ•œ๊ตญ ์ผ๋ฐ˜ ์ธํ”„๋ผ โ€” ๊ณผ๊ธฐ์ •ํ†ต๋ถ€(MSIT)ยทํ–‰์ •์•ˆ์ „๋ถ€(MOIS)ยทKISAยทKCMVPยทNISยทNIAยทTTAยทKATSยทKOLASยทETRIยทKAISTยทKISTยทKISTIยทPOSTECHยท์„œ์šธ๋Œ€ยท์—ฐ์„ธ๋Œ€ยท๊ณ ๋ ค๋Œ€ยท์‚ผ์„ฑยทLGยทSKยทKTยทLG U+ยทNAVERยท์นด์นด์˜ค ํ˜‘๋ ฅ ํ‘œ์ค€ํ™” ์ž‘์—…๋ฐ˜ ์šด์˜ ์ค‘. ใ€Œ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฒ•ใ€(๋ฒ•๋ฅ  ์ œ19234ํ˜ธ, 2024๋…„ 9์›” ์‹œํ–‰)ยทใ€Œ์ „์ž์ •๋ถ€๋ฒ•ใ€ยทใ€Œ์ „์ž์„œ๋ช…๋ฒ•ใ€ยทใ€Œ์ •๋ณดํ†ต์‹ ๋ง๋ฒ•ใ€ยทใ€Œ์ •๋ณดํ†ต์‹ ๊ธฐ๋ฐ˜ ๋ณดํ˜ธ๋ฒ•ใ€ยทใ€Œ๋ฐ์ดํ„ฐ ์‚ฐ์—…๋ฒ•ใ€ยทใ€Œ๊ณต๊ณต๋ฐ์ดํ„ฐ๋ฒ•ใ€ยทใ€Œ์ธ๊ณต์ง€๋Šฅ ๊ธฐ๋ณธ๋ฒ•ใ€ ์ ์šฉ. KS X ISO/IEC 27001/27017/27018/27040/27701ยทISMS-PยทKCMVPยทKS X ISO/IEC 18033 (์•”ํ˜ธ)ยทKS X ISO/IEC 19790 (์•”ํ˜ธ๋ชจ๋“ˆ)ยทKS X ISO/IEC 15408 (Common Criteria) ํ•œ๊ตญ ํ”„๋กœํŒŒ์ผ ์ ์šฉ. NIAใ€ŒICT ํ‘œ์ค€ํ™” ์ถ”์ง„์ฒด๊ณ„ ์šด์˜ใ€ยทKISAใ€Œ๊ฐœ์ธ์ •๋ณด๋ณดํ˜ธ ์ข…ํ•ฉ ํฌํ„ธใ€ยทMSITใ€ŒK-๋””์ง€ํ„ธ 2030ใ€ ๋กœ๋“œ๋งต ์šด์˜ ์ค‘.

ํ•œ๊ตญ ํ‘œ์ค€ํ™” ์ธํ”„๋ผ ์ข…ํ•ฉ ๋งคํ•‘

ํ•œ๊ตญ์˜ ์‚ฐ์—…ยท๊ธฐ์ˆ  ํ‘œ์ค€ํ™”๋Š” ๋‹ค์Œ ํ˜‘๋ ฅ ์ฒด๊ณ„๋ฅผ ํ†ตํ•ด ์šด์˜๋œ๋‹ค. ๊ตญ๊ฐ€ํ‘œ์ค€ ๊ฑฐ๋ฒ„๋„Œ์Šค: ๊ตญ๊ฐ€ํ‘œ์ค€์‹ฌ์˜ํšŒ(๊ตญ๋ฌด์ด๋ฆฌ์‹ค ์†Œ์†, ใ€Œ๊ตญ๊ฐ€ํ‘œ์ค€๊ธฐ๋ณธ๋ฒ•ใ€ ์ œ5์กฐ)ยท๊ตญ๊ฐ€๊ธฐ์ˆ ํ‘œ์ค€์›(KATS)ยท์‹ํ’ˆ์˜์•ฝํ’ˆ์•ˆ์ „์ฒ˜(MFDS)ยท์‚ฐ์—…ํ†ต์ƒ์ž์›๋ถ€(MOTIE)ยท๊ณผํ•™๊ธฐ์ˆ ์ •๋ณดํ†ต์‹ ๋ถ€(MSIT)ยทํ–‰์ •์•ˆ์ „๋ถ€(MOIS)ยทํ™˜๊ฒฝ๋ถ€(MOE)ยท๋ณด๊ฑด๋ณต์ง€๋ถ€(MOHW)ยท๊ตญ๋ฐฉ๋ถ€(MND)ยท๋ฌธํ™”์ฒด์œก๊ด€๊ด‘๋ถ€(MCST)ยท์™ธ๊ต๋ถ€(MOFA)ยท๋ฒ•๋ฌด๋ถ€(MOJ)ยท๊ธˆ์œต์œ„์›ํšŒ(FSC). ํ•œ๊ตญ ์ธ์ •๊ธฐ๊ตฌยท์‹œํ—˜๊ธฐ๊ด€: ํ•œ๊ตญ์ธ์ •๊ธฐ๊ตฌ(KOLAS, Korea Laboratory Accreditation Scheme)ยทํ•œ๊ตญ์ œํ’ˆ์ธ์ •๊ธฐ๊ด€(KAS)ยทํ•œ๊ตญ์‹œํ—˜์ธ์ฆ์—ฐ๊ตฌ์›(KTC)ยทํ•œ๊ตญํ™”ํ•™์œตํ•ฉ์‹œํ—˜์—ฐ๊ตฌ์›(KTR)ยทํ•œ๊ตญ์‚ฐ์—…๊ธฐ์ˆ ์‹œํ—˜์›(KTL)ยทํ•œ๊ตญ๊ฑด์„ค์ƒํ™œํ™˜๊ฒฝ์‹œํ—˜์—ฐ๊ตฌ์›(KCL)ยทKOLAS ์ธ์ • ์‹œํ—˜๊ธฐ๊ด€ 800+๊ฐœยทKAS ์ธ์ • ์ธ์ฆ๊ธฐ๊ด€ 50+๊ฐœ. ์ „๊ธฐยท์ „์žยทํ†ต์‹  ์ธ์ฆ: ๋ฐฉ์†กํ†ต์‹ ์œ„์›ํšŒ(KCC)ยทํ•œ๊ตญ๋ฐฉ์†กํ†ต์‹ ์ „ํŒŒ์ง„ํฅ์›(KCA)ยท์ •๋ณดํ†ต์‹ ๊ธฐ์ˆ ํ˜‘ํšŒ(TTA)ยท์ •๋ณดํ†ต์‹ ๊ธฐํšํ‰๊ฐ€์›(IITP)ยท์ •๋ณดํ†ต์‹ ์‚ฐ์—…์ง„ํฅ์›(NIPA)ยทํ•œ๊ตญ์ธํ„ฐ๋„ท์ง„ํฅ์›(KISA, Korea Internet & Security Agency)ยทKCMVP (๊ตญ๊ฐ€์šฉ ์•”ํ˜ธ๋ชจ๋“ˆ ๊ฒ€์ฆ์ œ๋„)ยทNIS(๊ตญ๊ฐ€์ •๋ณด์›)ยทNSR(๊ตญ๊ฐ€๋ณด์•ˆ๊ธฐ์ˆ ์—ฐ๊ตฌ์†Œ)ยทNCSC(๊ตญ๊ฐ€์‚ฌ์ด๋ฒ„์•ˆ๋ณด์„ผํ„ฐ). ๊ตญ๊ฐ€ R&D ๊ฑฐ์ : ํ•œ๊ตญ๊ณผํ•™๊ธฐ์ˆ ์—ฐ๊ตฌ์›(KIST)ยทํ•œ๊ตญ์ „์žํ†ต์‹ ์—ฐ๊ตฌ์›(ETRI)ยทํ•œ๊ตญ๊ณผํ•™๊ธฐ์ˆ ์›(KAIST)ยท์„œ์šธ๋Œ€ํ•™๊ตยท์—ฐ์„ธ๋Œ€ํ•™๊ตยท๊ณ ๋ ค๋Œ€ํ•™๊ตยทPOSTECHยทUNISTยทGISTยทDGISTยทํ•œ๊ตญ๊ณผํ•™๊ธฐ์ˆ ์ •๋ณด์—ฐ๊ตฌ์›(KISTI)ยทํ•œ๊ตญ์—๋„ˆ์ง€๊ธฐ์ˆ ์—ฐ๊ตฌ์›(KIER)ยทํ•œ๊ตญ๊ธฐ๊ณ„์—ฐ๊ตฌ์›(KIMM)ยทํ•œ๊ตญํ™”ํ•™์—ฐ๊ตฌ์›(KRICT)ยทํ•œ๊ตญ์‹ํ’ˆ์—ฐ๊ตฌ์›(KFRI)ยทํ•œ๊ตญ์ƒ๋ช…๊ณตํ•™์—ฐ๊ตฌ์›(KRIBB). ๊ตญ์ œ ํ‘œ์ค€ ํ˜‘๋ ฅ: ISO TC/SC ํ•œ๊ตญ ๊ฐ„์‚ฌยทIEC TC/SC ํ•œ๊ตญ ๊ฐ„์‚ฌยทITU-T SG ํ•œ๊ตญ ์˜์žฅยท3GPP RAN/SA ํ•œ๊ตญ ์˜์žฅยทIEEE 802 ํ•œ๊ตญ ์˜์žฅยทW3C ํ•œ๊ตญ์ง€๋ถ€ยทOASIS ํ•œ๊ตญ์ง€๋ถ€ยทIETF ํ•œ๊ตญ ํ˜‘๋ ฅ๋‹จยทOECD CSTPยทUN ESCAPยทAPEC SCSC ํ•œ๊ตญ ํ˜‘๋ ฅ. ํ•œ๊ตญ ํ‘œ์ค€ ์นดํƒˆ๋กœ๊ทธ: KS X (์ •๋ณด) 25,000+์ข…ยทKS A (๊ธฐ๋ณธ) 15,000+์ข…ยทKS B (๊ธฐ๊ณ„) 25,000+์ข…ยทKS C (์ „๊ธฐ) 18,000+์ข…ยทKS D (๊ธˆ์†) 12,000+์ข…ยทKS E (๊ด‘์‚ฐ) 5,000+์ข…ยทKS F (๊ฑด์„ค) 18,000+์ข…ยทKS H (์‹ํ’ˆ) 8,000+์ข…ยทKS I (ํ™˜๊ฒฝ) 5,000+์ข…ยทKS J (์ƒ๋ฌผ) 3,000+์ข…ยทKS K (์„ฌ์œ ) 15,000+์ข…ยทKS L (์š”์—…) 7,000+์ข…ยทKS M (ํ™”ํ•™) 12,000+์ข…ยทKS P (์˜๋ฃŒ) 5,000+์ข…ยทKS Q (ํ’ˆ์งˆ) 4,000+์ข…ยทKS R (์ˆ˜์†ก๊ธฐ๊ณ„) 12,000+์ข…ยทKS S (์„œ๋น„์Šค) 3,000+์ข…ยทKS T (ํฌ์žฅ) 4,000+์ข…ยทKS V (์กฐ์„ ) 5,000+์ข…ยทKS W (ํ•ญ๊ณต) 3,000+์ข… โ€” ์ด 220,000+ ํ•œ๊ตญ์‚ฐ์—…ํ‘œ์ค€(KS). ใ€Œ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฒ•ใ€(๋ฒ•๋ฅ  ์ œ19234ํ˜ธ, 2024๋…„ 9์›” 15์ผ ์‹œํ–‰)ยทใ€Œ์ „์ž์ •๋ถ€๋ฒ•ใ€ยทใ€Œ์ „์ž์„œ๋ช…๋ฒ•ใ€ยทใ€Œ์ •๋ณดํ†ต์‹ ๋ง๋ฒ•ใ€ยทใ€Œ์ •๋ณดํ†ต์‹ ๊ธฐ๋ฐ˜ ๋ณดํ˜ธ๋ฒ•ใ€ยทใ€Œ๋ฐ์ดํ„ฐ ์‚ฐ์—…๋ฒ•ใ€ยทใ€Œ๊ณต๊ณต๋ฐ์ดํ„ฐ๋ฒ•ใ€ยทใ€Œ์ธ๊ณต์ง€๋Šฅ ๊ธฐ๋ณธ๋ฒ•ใ€(๋ฒ•๋ฅ  ์ œ20212ํ˜ธ, 2026๋…„ 7์›” ์‹œํ–‰)ยทใ€Œ์‚ฐ์—…๊ธฐ์ˆ ํ˜์‹  ์ด‰์ง„๋ฒ•ใ€ยทใ€Œ๊ณผํ•™๊ธฐ์ˆ ๊ธฐ๋ณธ๋ฒ•ใ€ ๋“ฑ 70+๊ฐœ ํ•œ๊ตญ ํ‘œ์ค€ํ™” ๊ด€๋ จ ๋ฒ•๋ น์ด ์šด์˜๋œ๋‹ค.

ํ•œ๊ตญ ๋””์ง€ํ„ธ ์ „ํ™˜ยทํ‘œ์ค€ํ™” ์ƒ์„ธ ๋งคํ•‘

ํ•œ๊ตญ์˜ ๋””์ง€ํ„ธ ์ „ํ™˜๊ณผ ํ‘œ์ค€ํ™”๋Š” ๋‹ค์Œ ํ˜‘๋ ฅ ์ฒด๊ณ„๋กœ ์šด์˜๋œ๋‹ค. ๋””์ง€ํ„ธ ์ •๋ถ€: ๋””์ง€ํ„ธํ”Œ๋žซํผ์ •๋ถ€์œ„์›ํšŒ(2022๋…„ 9์›” ์‹ ์„ค, ๋Œ€ํ†ต๋ น ์ง์†)ยทํ–‰์ •์•ˆ์ „๋ถ€ ๋””์ง€ํ„ธ์ •๋ถ€๊ตญยท์ „์ž์ •๋ถ€์ง€์›์„ผํ„ฐยท์ •๋ถ€24ยท๊ตญ๋ฏผ๋น„์„œยทKDIS(ํ•œ๊ตญ์ •๋ณดํ™”์ง„ํฅ์›)ยทNIA(ํ•œ๊ตญ์ง€๋Šฅ์ •๋ณด์‚ฌํšŒ์ง„ํฅ์›)ยทMOIS(ํ–‰์ •์•ˆ์ „๋ถ€). K-DNS ์ธํ”„๋ผ: ํ•œ๊ตญ์ธํ„ฐ๋„ท์ง„ํฅ์›(KISA) Korea Internet CenterยทKISA DNS Root ServerยทKRNIC(ํ•œ๊ตญ์ธํ„ฐ๋„ท์ •๋ณด์„ผํ„ฐ)ยทBGP Koreaยท๊ตญ๊ฐ€์‚ฌ์ด๋ฒ„์•ˆ๋ณด์„ผํ„ฐ(NCSC)ยทKCC(๋ฐฉ์†กํ†ต์‹ ์œ„์›ํšŒ)ยท๊ณผ๊ธฐ์ •ํ†ต๋ถ€(MSIT)ยทNIAยทNIPA. ํ•œ๊ตญ ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ: KT ํด๋ผ์šฐ๋“œยทNAVER ํด๋ผ์šฐ๋“œ (NCloud)ยท์‚ผ์„ฑ SDS ํด๋ผ์šฐ๋“œยทLG U+ ํด๋ผ์šฐ๋“œยทNHN ํด๋ผ์šฐ๋“œยท์นด์นด์˜ค์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ํด๋ผ์šฐ๋“œยทSKํ…”๋ ˆ์ฝค ํด๋ผ์šฐ๋“œยทKISA ใ€Œํด๋ผ์šฐ๋“œ ๋ณด์•ˆ ์ธ์ฆ์ œ(CSAP)ใ€ยทKCMVP ๊ฒ€์ฆ ํด๋ผ์šฐ๋“œยทISMS-P (์ •๋ณด๋ณดํ˜ธ ๋ฐ ๊ฐœ์ธ์ •๋ณด๋ณดํ˜ธ ๊ด€๋ฆฌ์ฒด๊ณ„). ํ•œ๊ตญ ๋ณด์•ˆ ์ธ์ฆ: KISA ISMS-P ์ธ์ฆยทKCMVP (๊ตญ๊ฐ€์šฉ ์•”ํ˜ธ๋ชจ๋“ˆ ๊ฒ€์ฆ์ œ๋„)ยท๊ตญ๊ฐ€์ •๋ณด์› NIS ใ€Œ๊ตญ๊ฐ€์šฉ ์•”ํ˜ธ๊ธฐ์ˆ  ์šด์˜๊ธฐ์ค€ใ€ยทNCSC ใ€Œ๊ตญ๊ฐ€์‚ฌ์ด๋ฒ„์•ˆ๋ณด์ „๋žต 2024-2028ใ€ยทCC (Common Criteria) ํ•œ๊ตญ ํ‰๊ฐ€๊ธฐ๊ด€ยทEAL4ยทEAL5ยทKS X ISO/IEC 15408ยท19790ยท24759 ํ•œ๊ตญ ํ”„๋กœํŒŒ์ผ. ํ•œ๊ตญ ๋ฐ์ดํ„ฐ ํ‘œ์ค€: ํ•œ๊ตญ์ง€๋Šฅ์ •๋ณด์‚ฌํšŒ์ง„ํฅ์›(NIA) AI Hubยท๊ตญ๊ฐ€ ๋ฐ์ดํ„ฐ ํ‘œ์ค€ํ™” ์œ„์›ํšŒยทํ†ต๊ณ„์ฒญ(KOSTAT)ยทMyData 4๊ฐœ ๊ฒฐํ•ฉ์ „๋ฌธ๊ธฐ๊ด€ (์‚ผ์„ฑSDSยทํ•œ๊ตญ์‹ ์šฉ์ •๋ณด์›ยทํ†ต๊ณ„์ฒญยท๊ธˆ์œต๊ฒฐ์ œ์›)ยท๊ตญ๋ฆฝ๊ตญ์–ด์› ํ•œ๊ตญ์–ด ์ •๋ณด์ฒ˜๋ฆฌ ํ‘œ์ค€ยท๊ตญ๊ฐ€๋ฒ•๋ น์ •๋ณด์„ผํ„ฐยท๊ตญ๊ฐ€๊ณต๊ฐ„์ •๋ณดํ”Œ๋žซํผยท๊ตญ๊ฐ€๊ณต๊ฐ„๋ฐ์ดํ„ฐ์„ผํ„ฐยทํ•œ๊ตญ๊ณต๊ฐ„์ •๋ณดํ‘œ์ค€. ๊ธˆ์œตยทํ•€ํ…Œํฌ ํ‘œ์ค€: ๊ธˆ์œต์œ„์›ํšŒ(FSC)ยท๊ธˆ์œต๊ฐ๋…์›(FSS)ยท๊ธˆ์œต์ •๋ณด๋ถ„์„์›(FIU)ยทํ•œ๊ตญ์€ํ–‰(BOK)ยท๊ธˆ์œต๋ณด์•ˆ์›(FSEC)ยท๊ธˆ์œต๊ฒฐ์ œ์›(KFTC)ยทํ•œ๊ตญ์˜ˆํƒ๊ฒฐ์ œ์›(KSD)ยทํ•œ๊ตญ๊ฑฐ๋ž˜์†Œ(KRX) 8๊ฐœ ๊ธฐ๊ด€ ํ˜‘๋ ฅ. 5G/6G ํ†ต์‹  ์ธํ”„๋ผ: 5G ๊ฐ€์ž…์ž 3,500๋งŒ ๋ช… (2024)ยท5G ๊ธฐ์ง€๊ตญ 350,000๊ฐœยท6G ์ƒ์šฉํ™” ๋ชฉํ‘œ 2028๋…„ยท5G ํŠนํ™”๋ง 16๊ฐœ ์‚ฌ์—…์žยท6G ๊ฐ€์†ํ™” ์ถ”์ง„๋‹จ(MSIT, 2024) ์šด์˜. K-์ฝ˜ํ…์ธ : ํ•œ๊ตญ์ฝ˜ํ…์ธ ์ง„ํฅ์›(KOCCA)ยท๋ฌธํ™”์ฒด์œก๊ด€๊ด‘๋ถ€(MCST)ยทํ•œ๊ตญ๋ฐฉ์†กํ†ต์‹ ์ „ํŒŒ์ง„ํฅ์›(KCA)ยทํ•œ๊ตญ๋ฌธํ™”์ •๋ณด์›ยทํ•œ๊ตญ์˜์ƒ์ž๋ฃŒ์›ยทํ•œ๊ตญ์ถœํŒ๋ฌธํ™”์‚ฐ์—…์ง„ํฅ์›. ใ€Œ๋ฐ์ดํ„ฐ3๋ฒ•ใ€ (๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฒ•ยท์‹ ์šฉ์ •๋ณด๋ฒ•ยท์ •๋ณดํ†ต์‹ ๋ง๋ฒ•, 2020๋…„ ์‹œํ–‰)ยทใ€Œ๋ฐ์ดํ„ฐ ์‚ฐ์—…๋ฒ•ใ€(2021)ยทใ€Œ๊ณต๊ณต๋ฐ์ดํ„ฐ๋ฒ•ใ€(2013)ยทใ€Œ์ธ๊ณต์ง€๋Šฅ ๊ธฐ๋ณธ๋ฒ•ใ€(2026)ยทใ€Œ๋””์ง€ํ„ธํ”Œ๋žซํผ์ •๋ถ€ ๊ธฐ๋ณธ๋ฒ•ใ€(2024 ๋ฐœ์˜) ๋“ฑ ํ•œ๊ตญ ๋””์ง€ํ„ธ ์ „ํ™˜ ํ•ต์‹ฌ ๋ฒ•๋ น์ด ์šด์˜ ์ค‘์ด๋‹ค.