쪽지발송 성공
Click here
재능넷 이용방법
재능넷 이용방법 동영상편
가입인사 이벤트
판매 수수료 안내
안전거래 TIP
재능인 인증서 발급안내

🌲 지식인의 숲 🌲

🌳 디자인
🌳 음악/영상
🌳 문서작성
🌳 번역/외국어
🌳 프로그램개발
🌳 마케팅/비즈니스
🌳 생활서비스
🌳 철학
🌳 과학
🌳 수학
🌳 역사
해당 지식과 관련있는 인기재능

안녕하세요 . 고객님들이 믿고 사용할 수 있는 프로그램을 개발하기 위해 항상 노력하고있습니다.각 종 솔루션에 대한 상담이 가능하며 , &nb...

* 단순한 반복 작업* 초보자는 하기힘든 코딩 작업* 다양한 액션 기능* 테블렛PC, 데스크탑, 스마트폰 제어 모두 해결 가능합니다. 컴퓨...

현재 한국디지털미디어고등학교에 재학중인 학생입니다. 아드이노는 중 1 처음 접하였으며  횟수로 5년동안 아두이노를 해오...

c언어c++,   erwin을 이용한 데이터베이스 설계java,    jsp,     javascript,      c#  ...

러스트 vs Go: 데이터베이스 커넥션 풀 관리 성능

2024-11-13 21:54:50

재능넷
조회수 336 댓글수 0

러스트 vs Go: 데이터베이스 커넥션 풀 관리 성능 대결! 🏆

 

 

안녕, 친구들! 오늘은 정말 흥미진진한 주제로 찾아왔어. 바로 러스트(Rust)와 고(Go) 언어의 데이터베이스 커넥션 풀 관리 성능을 비교해볼 거야. 😎 이 두 언어는 최근 프로그래밍 세계에서 엄청난 인기를 끌고 있지. 특히 고성능 시스템 프로그래밍이나 웹 서비스 개발에서 많이 사용되고 있어. 그래서 오늘은 이 두 언어의 장단점을 살펴보면서, 데이터베이스 커넥션 풀 관리에서 어떤 차이가 있는지 자세히 알아볼 거야.

참고로, 이런 프로그래밍 언어나 기술에 대한 지식은 요즘 정말 중요해. 재능넷같은 재능 공유 플랫폼에서도 프로그래밍 관련 재능이 인기가 많다고 해. 그러니까 이 글을 통해 새로운 지식을 얻고, 혹시 관심 있다면 재능넷에서 관련 재능을 찾아보는 것도 좋을 거야!

자, 그럼 본격적으로 시작해볼까? 🚀

1. 러스트와 Go: 두 언어의 특징 살펴보기 🔍

먼저 러스트와 Go 언어의 기본적인 특징부터 알아보자. 이 두 언어는 각각 독특한 철학과 장점을 가지고 있어.

1.1 러스트(Rust)의 특징

  • 메모리 안전성: 러스트는 컴파일 시점에 메모리 관련 버그를 잡아내는 강력한 기능을 제공해.
  • 동시성 처리: 스레드 안전성을 보장하는 독특한 소유권 모델을 가지고 있어.
  • 제로 비용 추상화: 고수준의 추상화를 제공하면서도 저수준의 성능을 유지해.
  • 패턴 매칭: 복잡한 데이터 구조를 쉽게 다룰 수 있는 강력한 패턴 매칭 기능을 제공해.

1.2 Go(고)의 특징

  • 간결한 문법: 단순하고 읽기 쉬운 문법으로 빠른 학습이 가능해.
  • 고루틴(Goroutine): 경량 스레드를 사용한 효율적인 동시성 처리가 가능해.
  • 가비지 컬렉션: 자동 메모리 관리로 개발자의 부담을 줄여줘.
  • 빠른 컴파일 속도: 대규모 프로젝트에서도 빠른 컴파일이 가능해.

이렇게 보면 두 언어 모두 정말 매력적이지? 😍 하지만 우리의 주제인 데이터베이스 커넥션 풀 관리에서는 어떤 차이가 있을까? 그걸 알아보기 전에, 먼저 데이터베이스 커넥션 풀이 뭔지부터 간단히 설명해줄게.

1.3 데이터베이스 커넥션 풀이란?

데이터베이스 커넥션 풀은 데이터베이스 연결을 관리하는 방법이야. 애플리케이션이 데이터베이스에 연결할 때마다 새로운 연결을 만들고 닫는 대신, 미리 일정 수의 연결을 만들어두고 필요할 때 가져다 쓰는 방식이지. 이렇게 하면 연결 생성에 드는 시간과 리소스를 절약할 수 있어 성능이 크게 향상돼.

자, 이제 기본적인 개념은 알았으니 본격적으로 러스트와 Go의 데이터베이스 커넥션 풀 관리 성능을 비교해볼까? 🤓

2. 러스트의 데이터베이스 커넥션 풀 관리 🦀

러스트는 메모리 안전성과 동시성 처리에 강점이 있는 언어야. 이런 특징들이 데이터베이스 커넥션 풀 관리에서 어떤 장점을 가져다주는지 살펴보자.

2.1 러스트의 커넥션 풀 구현

러스트에서는 주로 r2d2라는 라이브러리를 사용해 데이터베이스 커넥션 풀을 관리해. 이 라이브러리는 러스트의 강력한 타입 시스템과 소유권 모델을 활용해 안전하고 효율적인 커넥션 풀을 제공해.

간단한 예제 코드를 통해 살펴볼까?


use r2d2;
use r2d2_postgres::{PostgresConnectionManager, TlsMode};

fn main() -> Result<(), Box<dyn std::error::error>> {
    let manager = PostgresConnectionManager::new(
        "host=localhost user=postgres", 
        TlsMode::None
    )?;
    let pool = r2d2::Pool::new(manager)?;

    // 커넥션 가져오기
    let conn = pool.get()?;

    // 커넥션 사용
    conn.execute("CREATE TABLE IF NOT EXISTS users (id SERIAL PRIMARY KEY, name VARCHAR NOT NULL)", &[])?;

    Ok(())
}
</dyn>

이 코드에서 볼 수 있듯이, 러스트는 강력한 타입 시스템을 통해 컴파일 시점에 많은 오류를 잡아낼 수 있어. 예를 들어, 커넥션을 잘못 사용하거나 해제하지 않는 실수를 미리 방지할 수 있지.

2.2 러스트의 장점

  • 메모리 안전성: 러스트의 소유권 시스템은 데이터 레이스와 같은 동시성 문제를 컴파일 시점에 방지해줘.
  • 성능: 제로 비용 추상화를 통해 고수준의 추상화를 제공하면서도 C 수준의 성능을 달성할 수 있어.
  • 동시성 처리: 러스트의 async/await 문법과 결합하면 매우 효율적인 비동기 커넥션 풀을 구현할 수 있어.
  • 타입 안전성: 강력한 타입 시스템으로 런타임 오류를 줄일 수 있어.

하지만 러스트가 장점만 있는 건 아니야. 단점도 살펴볼까?

2.3 러스트의 단점

  • 학습 곡선: 러스트의 소유권 개념과 라이프타임 시스템은 처음 접하는 개발자들에게 어려울 수 있어.
  • 컴파일 시간: 복잡한 타입 체크로 인해 컴파일 시간이 길어질 수 있어.
  • 생태계: Go에 비해 상대적으로 작은 생태계로 인해 일부 라이브러리나 도구가 부족할 수 있어.

자, 이제 러스트의 특징을 살펴봤어. 그럼 이번엔 Go 언어는 어떤지 알아볼까? 🤔

3. Go의 데이터베이스 커넥션 풀 관리 🐹

Go 언어는 간결한 문법과 강력한 동시성 처리 기능으로 유명해. 이런 특징들이 데이터베이스 커넥션 풀 관리에서 어떤 효과를 발휘하는지 살펴보자.

3.1 Go의 커넥션 풀 구현

Go에서는 표준 라이브러리인 database/sql 패키지에서 이미 커넥션 풀 기능을 제공해. 이는 Go의 "배터리 포함" 철학을 잘 보여주는 예야.

Go에서의 커넥션 풀 사용 예제를 볼까?


package main

import (
    "database/sql"
    "log"
    _ "github.com/lib/pq"
)

func main() {
    db, err := sql.Open("postgres", "user=postgres dbname=mydb sslmode=disable")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    // 최대 연결 수 설정
    db.SetMaxOpenConns(10)
    db.SetMaxIdleConns(5)

    // 쿼리 실행
    _, err = db.Exec("CREATE TABLE IF NOT EXISTS users (id SERIAL PRIMARY KEY, name VARCHAR NOT NULL)")
    if err != nil {
        log.Fatal(err)
    }
}

이 코드를 보면 Go의 간결함이 잘 드러나지? 몇 줄 안 되는 코드로 데이터베이스 연결부터 커넥션 풀 설정, 쿼리 실행까지 모두 할 수 있어.

3.2 Go의 장점

  • 간결성: 단순하고 읽기 쉬운 문법으로 빠르게 개발할 수 있어.
  • 고루틴: 경량 스레드인 고루틴을 사용해 효율적인 동시성 처리가 가능해.
  • 표준 라이브러리: 데이터베이스 연결 관리를 위한 기능이 표준 라이브러리에 포함되어 있어 별도의 라이브러리 설치가 필요 없어.
  • 빠른 컴파일: 컴파일 속도가 빨라 개발 생산성이 높아.

물론 Go도 완벽한 언어는 아니야. 단점도 있지.

3.3 Go의 단점

  • 제네릭스 지원: 최근에 제네릭스가 추가되었지만, 아직 러스트만큼 강력하지 않아.
  • 에러 처리: 명시적인 에러 체크가 필요해 코드가 다소 장황해질 수 있어.
  • 메모리 안전성: 러스트에 비해 런타임에 메모리 관련 오류가 발생할 가능성이 더 높아.

자, 이제 두 언어의 특징을 대략적으로 알아봤어. 그럼 이제 본격적으로 성능 비교를 해볼까? 🏁

4. 성능 비교: 러스트 vs Go 🏋️‍♂️

이제 진짜 핵심이야! 러스트와 Go, 어떤 언어가 데이터베이스 커넥션 풀 관리에서 더 뛰어난 성능을 보일까? 여러 가지 측면에서 비교해볼게.

4.1 메모리 사용량

메모리 사용량은 커넥션 풀 관리에서 중요한 요소야. 불필요하게 많은 메모리를 사용하면 전체 시스템 성능에 영향을 줄 수 있거든.

  • 러스트: 러스트는 가비지 컬렉터가 없고, 메모리를 수동으로 관리해. 이는 더 정확한 메모리 제어를 가능하게 하지만, 개발자의 주의가 필요해.
  • Go: Go는 가비지 컬렉터를 사용해. 이는 개발을 편리하게 만들지만, 때때로 예측하기 어려운 메모리 사용 패턴을 만들 수 있어.

대체로 러스트가 Go보다 메모리 사용량이 적은 편이야. 특히 대규모 시스템에서 이 차이가 더 두드러질 수 있지.

4.2 처리 속도

커넥션 풀에서 연결을 가져오고 반환하는 속도, 그리고 실제 쿼리 실행 속도를 비교해볼게.

  • 러스트: 제로 비용 추상화로 인해 매우 빠른 실행 속도를 자랑해. 특히 복잡한 연산이 필요한 경우 더 큰 강점을 보여.
  • Go: Go도 꽤 빠른 편이지만, 일반적으로 러스트보다는 조금 느려. 하지만 간단한 작업에서는 그 차이가 크지 않을 수 있어.

대부분의 벤치마크 테스트에서 러스트가 Go보다 약간 더 빠른 처리 속도를 보여줘. 하지만 실제 애플리케이션에서는 그 차이가 미미할 수 있어.

4.3 동시성 처리

여러 요청을 동시에 처리하는 능력은 데이터베이스 커넥션 풀에서 매우 중요해.

  • 러스트: 러스트의 async/await 문법과 강력한 타입 시스템은 안전하고 효율적인 동시성 처리를 가능하게 해.
  • Go: Go의 고루틴과 채널은 매우 직관적이고 효율적인 동시성 모델을 제공해. 특히 많은 수의 동시 연결을 처리하는 데 강점이 있어.

동시성 처리에서는 두 언어 모두 뛰어난 성능을 보여줘. Go의 고루틴은 특히 가볍고 효율적이라 대규모 동시성 처리에 강점이 있어.

4.4 리소스 관리

커넥션 풀에서 연결을 효율적으로 관리하고 재사용하는 능력을 비교해볼게.

  • 러스트: 러스트의 소유권 시스템은 리소스 누수를 방지하는 데 매우 효과적이야. 컴파일 시점에 많은 문제를 잡아낼 수 있지.
  • Go: Go의 defer 키워드와 가비지 컬렉션은 리소스 관리를 쉽게 만들어주지만, 때로는 예측하기 어려운 동작을 할 수 있어.

리소스 관리 측면에서는 러스트가 조금 더 안전하고 예측 가능한 편이야. 하지만 Go도 충분히 좋은 성능을 보여줘.

자, 여기까지 두 언어의 성능을 여러 측면에서 비교해봤어. 그럼 이제 실제 사용 사례를 통해 더 자세히 알아볼까? 🕵️‍♀️

5. 실제 사용 사례 분석 📊

이론적인 비교도 좋지만, 실제 프로젝트에서는 어떤 차이가 있을까? 몇 가지 사례를 통해 알아보자.

5.1 대규모 웹 서비스의 경우

수백만 명의 사용자를 가진 대규모 웹 서비스를 예로 들어볼게.

  • 러스트 사용 사례: Discord는 실시간 음성 채팅 서버의 일부를 러스트로 재작성했어. 그 결과, CPU 사용량이 크게 줄고 성능이 향상됐대.
  • Go 사용 사례: Dropbox는 성능 크리티컬한 백엔드 컴포넌트를 Go로 재작성했어. 그 결과, 메모리 사용량이 줄고 동시성 처리 능력이 향상됐대.

대규모 서비스에서는 두 언어 모두 훌륭한 성능을 보여줬어. 러스트는 CPU 집약적인 작업에서, Go는 I/O 집약적인 작업에서 각각 강점을 보였지.

5.2 마이크로서비스 아키텍처

여러 개의 작은 서비스로 구성된 마이크로서비스 아키텍처에서의 사용 사례를 볼게.

  • 러스트 사용 사례: 일부 기업들은 성능 크리티컬한 마이크로서비스를 러스트로 작성해. 메모리 사용량이 적고 응답 시간이 빨라서 좋대.
  • Go 사용 사례: 많은 기업들이 마이크로서비스 개발에 Go를 선택해. 빠른 개발 속도와 효율적인 동시성 처리 때문이래.

마이크로서비스 환경에서는 Go가 더 널리 사용되는 경향이 있어. 개발 속도가 빠르고 학습 곡선이 낮기 때문이지. 하지만 러스트도 점점 더 많이 사용되고 있어.

5.3 데이터 분석 및 처리

대량의 데이터를 분석하고 처리하는 시스템에서의 사용 사례를 살펴볼게.

  • 러스트 사용 사례: 일부 데이터 처리 파이프라인에서 러스트를 사용해 성능을 크게 향상시켰대. 특히 메모리 사용량과 처리 속도 면에서 큰 이점을 얻었어.
  • Go 사용 사례: 많은 기업들이 ETL(Extract, Transform, Load) 프로세스에 Go를 사용해. 간단한 문법과 좋은 성능 때문이래.

데이터 처리 분야에서는 두 언어 모두 각자의 장점을 가지고 있어. 러스트는 복잡한 알고리즘이나 고성능이 필요한 경우에, Go는 빠른 개발과 충분한 성능이 필요한 경우에 선호되는 편이야.

이런 실제 사용 사례를 보면, 두 언어 모두 각자의 장단점이 있다는 걸 알 수 있어. 그럼 이제 어떤 상황에서 어떤 언어를 선택하는 게 좋을지 정리해볼까? 🤔

6. 언제 어떤 언어를 선택해야 할까? 🤷‍♂️

자, 이제 러스트와 Go의 특징과 성능을 자세히 살펴봤으니, 어떤 상황에서 어떤 언어를 선택하는 게 좋을지 정리해볼게. 프로젝트의 특성에 따라 적합한 언어가 다를 수 있거든.

6.1 러스트를 선택해야 할 때

  • 극도의 성능이 필요할 때: CPU 집약적인 작업이나 메모리 사용을 최적화해야 하는 경우 러스트가 좋아.
  • 시스템 프로그래밍: 운영 체제, 디바이스 드라이버 등 저수준 시스템 프로그래밍에 적합해.
  • 메모리 안전성이 중요할 때: 금융 시스템이나 보안이 중요한 애플리케이션에서 러스트의 메모리 안전성은 큰 장점이 될 수 있어.
  • 복잡한 비즈니스 로직: 러스트의 강력한 타입 시스템은 복잡한 비즈니스 로직을 안전하게 구현하는 데 도움을 줘.

6.2 Go를 선택해야 할 때

  • 빠른 개발이 필요할 때: Go의 간결한 문법과 풍부한 표준 라이브러리는 빠른 개발을 가능하게 해.
  • 네트워크 프로그래밍: Go의 동시성 모델은 네트워크 서비스 개발에 매우 적합해.
  • 클라우드 네이티브 애플리케이션: Go는 Docker, Kubernetes 등 많은 클라우드 도구들의 개발 언어로, 클라우드 환경에 잘 맞아.
  • 대규모 팀 프로젝트: Go의 단순성은 대규모 팀에서 코드의 일관성을 유지하는 데 도움을 줘.

물론, 이건 일반적인 가이드라인일 뿐이야. 실제로는 프로젝트의 구체적인 요구사항, 팀의 경험, 기존 시스템과의 통합 등 다양한 요소를 고려해야 해.

6.3 두 언어의 장점을 모두 활용하기

때로는 한 프로젝트 내에서 두 언어를 모두 사용하는 것도 좋은 선택일 수 있어. 예를 들면:

  • Go로 전반적인 서비스 구조를 만들고, 성능이 중요한 부분만 러스트로 구현하기
  • 러스트로 코어 라이브러리를 만들고, Go로 이를 사용하는 애플리케이션 작성하기

이렇게 하면 각 언어의 장점을 최대한 활용할 수 있지!

자, 이제 우리의 여정이 거의 끝나가고 있어. 마지막으로 전체 내용을 정리하고 결론을 내볼까? 🏁

7. 결론: 최종 승자는? 🏆

우리는 지금까지 러스트와 Go의 데이터베이스 커넥션 풀 관리 성능을 다양한 측면에서 비교해봤어. 그래서 최종 승자는 누구일까?

7.1 성능 측면

순수한 성능만 놓고 보면, 러스트가 살짝 앞서는 것 같아. 메모리 사용량, 처리 속도, 리소스 관리 측면에서 러스트가 미세하게 우위를 보이거든. 하지만 그 차이가 실제 애플리케이션에서 큰 영향을 미칠 정도는 아닐 수 있어.

7.2 개발 생산성 측면

개발 속도와 편의성 측면에서는 Go가 우세해. 간결한 문법, 풍부한 표준 라이브러리, 빠른 컴파일 속도 등이 Go의 강점이지. 특히 대규모 팀 프로젝트에서 이런 특징들이 빛을 발할 수 있어.

7.3 안전성 측면

코드의 안전성과 버그 방지 측면에서는 러스트가 앞서. 강력한 타입 시스템과 소유권 모델이 많은 런타임 에러를 컴파일 시점에 잡아내거든. 하지만 이는 학습 곡선을 높이는 요인이기도 해.

결국, '어떤 언어가 더 좋다'라고 단정 짓기는 어려워. 프로젝트의 요구사항, 팀의 역량, 개발 일정 등 다양한 요소를 고려해서 선택해야 해.

7.4 최종 조언

  • 극도의 성능과 안전성이 필요하다면 러스트를 고려해봐.
  • 빠른 개발과 충분한 성능이 필요하다면 Go를 선택해.
  • 가능하다면 두 언어를 함께 사용해보는 것도 좋은 방법이야.
  • 어떤 언어를 선택하든, 지속적인 학습과 실험이 중요해!

자, 이렇게 우리의 러스트 vs Go 데이터베이스 커넥션 풀 관리 성능 대결이 끝났어! 😄 두 언어 모두 각자의 장단점이 있고, 적절한 상황에서 사용하면 훌륭한 성능을 발휘할 수 있어. 중요한 건 프로젝트의 요구사항을 정확히 파악하고, 그에 맞는 도구를 선택하는 거야.

이 글이 너의 프로그래밍 여정에 도움이 되었길 바라! 그리고 혹시 이런 주제에 관심이 있다면, 재능넷에서 관련 강의나 멘토링을 찾아보는 것도 좋을 거야. 실제 현업에서 일하는 개발자들의 경험을 들어보면 더 깊이 있는 이해를 할 수 있을 거거든.

그럼 다음에 또 재미있는 주제로 만나자! 안녕~ 👋

관련 키워드

  • 러스트
  • Go
  • 데이터베이스
  • 커넥션 풀
  • 성능 비교
  • 메모리 관리
  • 동시성
  • 시스템 프로그래밍
  • 웹 개발
  • 마이크로서비스

지적 재산권 보호

지적 재산권 보호 고지

  1. 저작권 및 소유권: 본 컨텐츠는 재능넷의 독점 AI 기술로 생성되었으며, 대한민국 저작권법 및 국제 저작권 협약에 의해 보호됩니다.
  2. AI 생성 컨텐츠의 법적 지위: 본 AI 생성 컨텐츠는 재능넷의 지적 창작물로 인정되며, 관련 법규에 따라 저작권 보호를 받습니다.
  3. 사용 제한: 재능넷의 명시적 서면 동의 없이 본 컨텐츠를 복제, 수정, 배포, 또는 상업적으로 활용하는 행위는 엄격히 금지됩니다.
  4. 데이터 수집 금지: 본 컨텐츠에 대한 무단 스크래핑, 크롤링, 및 자동화된 데이터 수집은 법적 제재의 대상이 됩니다.
  5. AI 학습 제한: 재능넷의 AI 생성 컨텐츠를 타 AI 모델 학습에 무단 사용하는 행위는 금지되며, 이는 지적 재산권 침해로 간주됩니다.

재능넷은 최신 AI 기술과 법률에 기반하여 자사의 지적 재산권을 적극적으로 보호하며,
무단 사용 및 침해 행위에 대해 법적 대응을 할 권리를 보유합니다.

© 2024 재능넷 | All rights reserved.

댓글 작성
0/2000

댓글 0개

해당 지식과 관련있는 인기재능

  Matlab 이나 C 형태의 알고리즘을 분석하여 회로로 설계하여 드립니다. verilog, VHDL 모두 가능합니다. 회로설계후 simula...

안녕하세요.안드로이드 앱/라즈베리파이/ESP8266/32/ 아두이노 시제품 제작 외주 및 메이커 취미 활동을 하시는 분들과 아두이노 졸업작품을 진행...

반드시 문의 먼저 부탁드려요저는 전국 기능경기대회(정보기술 분야) 금 출신 입니다 대회준비하며 엑셀에 있는 모든기능을 사용해 보았다고 ...

   안녕하세요^^ 엑셀을 사랑하는 개발자입니다. 간단한 함수작업부터 크롤링,자동화 프로그램, DB연동까지  모두 ...

📚 생성된 총 지식 10,365 개

  • (주)재능넷 | 대표 : 강정수 | 경기도 수원시 영통구 봉영로 1612, 7층 710-09 호 (영통동) | 사업자등록번호 : 131-86-65451
    통신판매업신고 : 2018-수원영통-0307 | 직업정보제공사업 신고번호 : 중부청 2013-4호 | jaenung@jaenung.net

    (주)재능넷의 사전 서면 동의 없이 재능넷사이트의 일체의 정보, 콘텐츠 및 UI등을 상업적 목적으로 전재, 전송, 스크래핑 등 무단 사용할 수 없습니다.
    (주)재능넷은 통신판매중개자로서 재능넷의 거래당사자가 아니며, 판매자가 등록한 상품정보 및 거래에 대해 재능넷은 일체 책임을 지지 않습니다.

    Copyright © 2024 재능넷 Inc. All rights reserved.
ICT Innovation 대상
미래창조과학부장관 표창
서울특별시
공유기업 지정
한국데이터베이스진흥원
콘텐츠 제공서비스 품질인증
대한민국 중소 중견기업
혁신대상 중소기업청장상
인터넷에코어워드
일자리창출 분야 대상
웹어워드코리아
인터넷 서비스분야 우수상
정보통신산업진흥원장
정부유공 표창장
미래창조과학부
ICT지원사업 선정
기술혁신
벤처기업 확인
기술개발
기업부설 연구소 인정
마이크로소프트
BizsPark 스타트업
대한민국 미래경영대상
재능마켓 부문 수상
대한민국 중소기업인 대회
중소기업중앙회장 표창
국회 중소벤처기업위원회
위원장 표창