2장. 도커와 쿠버네티스 첫걸음

마지막 업데이트: 2022년 4월 6일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
- 클러스터의 개념 이해하기
→ 각 노드는 도커, kubelet, kube-proxy를 생성한다. kubectl 클라이언트 명령어는 마스터 노드에서 실행중인 쿠버네티스 API 서버로 REST 요청을 보내 클러스터와 상호작용을 한다.

보건복지부

보건복지부(장관 권덕철)는 공모 절차(접수 4.26~5.14, 선정평가 6.1)를 거쳐 ‘제1기 지역환자안전센터’로 5개소(강원대학교병원, 삼성서울병원, 대한의사협회, 대한간호협회, 대한약사회)를 지정하였다고 6월 11일(금) 밝혔다.

지역환자안전센터는 중앙환자안전센터와 연계하여 환자안전사고 정보 공유, 주의경보 발령 전파 등 환자의 보호 및 의료 질 향상을 위한 교육사업, 예방 및 홍보, 안전사고 보고 지원 등의 업무를 수행한다.

「환자안전법」개정(‘2020.7 시행)에 따라, 지역환자안전센터 설치를 위한 법적 근거가 신설되었으며, 지정기간은 ‘21.7.1~’23.12.31 까지 2년 6개월이며, 사업수행 지원을 위해 기관당 매년 평균 8,000만 원의 보조를 받게된다.

신청 자격 조건인 상급종합병원, 500병상 종합병원 또는 의료단체 등 총 10개 기관이 신청서를 제출하였으며, 선정평가위원회에서 사업계획서에 대한 서류 심사 및 구두 발표 평가를 거쳐 의료기관 2곳, 의료단체 3곳을 선정하였다.

의료기관의 경우, 지역 내 중소병원 및 네트워크 의료기관을 대상으로 환자안전 활동 및 예방 방법(knowhow, 노하우)를 전파하고 의료기관의 환자안전 역량 강화를 위한 2장. 도커와 쿠버네티스 첫걸음 교육‧맞춤형 컨설팅 등을 수행하며,

의료단체의 경우, 전국적인 네트워크를 활용하여 환자안전 활동이 다소 취약할 수 있는 소규모 의료기관, 약국 등을 대상으로 실질적인 환자안전 교육, 홍보, 환자안전사고 보고 및 예방 활동 등을 지원하게 된다.

※ 삼성서울병원, 대한의사협회, 대한약사회는 ’20년도에 지역환자안전센터 예비 사업에 참여한 바 있음

지정 센터는 매년 사업계획서 및 결과보고서를 제출하여 성과를 관리받게 되며, 3년 차에 최종 평가를 통해 재지정 여부를 결정하게 된다.

보건복지부 오창현 의료기관정책과장은 “이번 제1기 지역환자안전센터 지정은 환자안전 사각지대 해소 및 환자안전 관리 체계를 강화 하는 데 의미가 있으며, 향후 지역(권역)별로 지역 센터를 1개소 이상씩 지정할 수 있도록 계속 확충할 예정이다”라고 밝혔다.

  • [보도참고자료]_제1기_‘지역환자안전센터’_강원대학교병원_등_5개소_지정.hwp (649 KB / 다운로드 : 1043)
  • [보도참고자료]_제1기_‘지역환자안전센터’_강원대학교병원_등_5개소_지정.pdf (342 KB / 다운로드 : 972)

공공누리 제1유형

텍스트 데이터는 공공누리 출처표시의 조건에 따라 자유이용이 가능합니다. 단, 사진, 이미지, 일러스트, 동영상 등의 일부 자료는 보건복지부가 저작권 전부를 갖고 있지 아니하므로, 자유롭게 이용하기 위해서는 반드시 해당 저작권자의 허락을 받으셔야 합니다

2장. 도커와 쿠버네티스 첫걸음

- 컨테이너 이미지에 버전 지정하기
→ 이미지를 참조할 때 명시적으로 태그를 지정하지 않으면, 도커는 lateste 태그를 참조한 것으로 간주한다. 다른 버전의 이미지를 실행하려면 다음과 같이 이미지 이름에 태그를 같이 지정해야 한다.

- 이미지를 위한 Dockerfile 생성
→ 애플리케이션을 이미지로 패키징하기 위해 먼저 Dockerfile이라고 부르는 파일을 생성해야한다. Dockerfile에는 도커가 이미지를 생성하기 위해 수행해야 할 지시 사항이 담겨있다. Dockerfile은 실행하고자 하는 소스파일?과 동일한 디렉터리에 있어야하며 아래와 같은 내용을 갖고있어야 한다.

FROM 줄은 시작점(이미지 생성의 기반이 되는 기본 이미지)으로 사용할 컨테이너 이미지를 정의한다.
두번째 줄은 로컬디렉터리늬 app.js파일을 이미지 루트 디렉터리에 동일한 이름으로 추가한다.
마지막줄에서는 이미지를 실행했을 때 수행돼야 할 명령어를 정의한다.

- 컨테이너 이미지 생성
→ 이미지를 빌드하려면 다음 도커 명령어를 실행한다.

도커에게 현재 디렉터리의 콘텐츠를 기반으로 Kubia 라고 부르는 이미지를 빌하라고 요청했다(빌드 명령아 마지막에 있는 .(마침표) 주의.

- 이미지 레이어에 관해 이해하기
→ 서로 다른 이미지가 여러개의 레이어를 공유 가능하기 때문에 이미지의 저장과 전송에 효과적이다.
→ 이미지를 가져올 때도 도커는 각 레이어를 개별적으로 다운로드한다.
→ Dockerfile이 새로운 레이어를 하나만 생성한다고 생각할수 있지만 그렇지 않다. 이미지를 빌드하는 동안 기본 이미지의 모든 레이어를 가져온 다음, 도커는 그 위에 새로운 레이어를 생성하고 app.js파일을 그 위에 추가한다. 그런 다음 이미지가 실행할 때 수행돼야 할 명령을 지정하는 또 2장. 도커와 쿠버네티스 첫걸음 하나의 레이어를 추가한다. 이 마지막 레이어는 kubia.latest 라고 태그를 지정한다.
→ 이미지 빌드 프로세스가 완료되면 새로운 이미지가 로컬에 저장된다. 아래와 같이 로컬에 저장된 이미지 리스트를 도커에게 요청할 수 있다.

- 컨테이너 이미지 실행
다음 명령어를 사용 해 이미지 실행을 할 수 있다

위 명령어는 도커가 kubia 이미지에서 kubia-container 라는 이름의 새로운 컨테이너를 실행하도록 한다. 컨테이너는 콘솔에서 분리돼(-d 플래그) 백그라운드에서 실행됨을 의미한다. 로컬머신의 8080포트가 컨테이너 내부의 8080포트와 매핑 되므로 http://localhost:8080으로 애플리케이션에 접근할 수 있다.(로컬 머신에서 도커 데몬이 실행중이 아니라면 localhost 대신에 실행중인 2장. 도커와 쿠버네티스 첫걸음 가상머신 호스트 이름이나 IP를 사용해야한다. 이 정보는 DOCKER_HOST 환경번수로 확인이 가능하다.)

- 실행중인 모든 컨테이너 조회하기
→ 기본정보

도커는 컨테이너의 상세 정보를 JSON 형식으로 출력할 것이다.

- 실행중인 컨테이너 내부 탐색하기

이 명령어는 현재 실행중인 kubia-container 컨테이너 내부에 bash를 실행한다. bash 프로세스는 컨테이너의 메인 프로세스와 동일한 리눅스 네임스페이스를 갖는다.

    • i : 표준입력(STDIN)을 오픈 상태로 유지한다. 셸에 명령어를 입력하기 위해 필요하다.
    • t : 의사(pesudo) 터미널(TTY)을 할당한다.
      일반적인 셸을 사용하는 것과 동일하게 셸을 사용하고 싶다면 두 옵션이 필요하다. 첫번째 명령어 옵션을 빼면 셸 명령어를 입력할 수 없고, 두번째 옵션을 빼면 프롬프트가 화면에 표시되지 않는다. 또 어떤 명령어들은 TERM 변수가 선언되지 않아 에러가 난다.

    - 컨테이너 내부에서 프로세스 조회하기

    단지 세 개의 프로세스만 볼 수 있고 호스트 운영체제의 다른 프로세스는 볼 수가 없다.

    - 호스트 운영체제에서 샐행중인 컨테이너 프로세스

    이는 컨테이너에서 실행중인 프로세스가 호스트 운영체제에서 실행중이라는 것을 증명한다.

    - 컨테이너 중지와 삭제

    $ docoker ps -a 로 보면 실행중인 컨테이너와 중지된 모든 컨테이너를 출력한다.

    - 이미지 레지스트리에 이미지 푸시
    다른 컴퓨터에서도 이미지를 실행하려면 이미지 저장소에 이미지를 푸시해야 한다.
    → 도커허브(http://hub.docker.com)
    → Quay.io
    → 구글 컨테이너 레지스트리
    이미지를 푸시하기 전에 이미지저장소 규칙에 따라 이미지 태그를 다시 지정해야 한다. 도커허브는 이미지의 리포지터리 이름이 도커허브 ID로 시작해야만 이미지를 푸시할 수 있다. http://hub.docker.com에 등록해 도커허브 ID를 생성한다. (ID : hiyena)

    - 도커허브에 이미지 푸시하기

    다른 머신에서 이미지 실행 시
    $ docker run -p 8080:8080 -d hiyena/kubia
    와 같은 명령어로 이미지를 실행 할 수 있다.

    ✔️ 쿠버네티스 클러스터 설치

    자세한 설명은 http://kubernetes.io 에 상세하게 기재되어 있음

    - Minikube를 활용한 단일 노드 쿠버네티스 클러스터 실행하기.
    → 단일 이진 파일로 다운로드 후 실행 가능한 특정 경로(path)에 저장한다.

    • GKE 설치 방법은 https://cloud.google.com/containerngine/docs/before-you-begin
      → GKE의 장점은 모든 클러스터의 노드와 네트워킹을 수동으로 설정할 필요가 없으며 쿠버네티스를 처음 접하는 사람들의 부담을 줄여준다.

    - 클러스터의 개념 이해하기
    → 각 노드는 도커, kubelet, kube-proxy를 생성한다. kubectl 클라이언트 명령어는 마스터 노드에서 실행중인 쿠버네티스 API 서버로 REST 요청을 보내 클러스터와 상호작용을 한다.

    클러스터의 모든 노드를 조회한다.

    💡TIP
    gcloud compute ssh 명령으로 노드에 로그인해 노드에 무엇이 실행 중인지 살펴볼 수 있다.

    - 오브젝트 세부 정보 가져오기

    - 자동완성(alias) 활용하기
    → alias k=kubectl 등 자동완성 단어를 ~/.bashrc나 이에 준하는 파일에 추가한다.
    → bash 에서 탭 완성을 활성화 하려면 bash-completion 패키지를 설치한 후 아래 명령어 실행해야 한다.
    $ source < (kubectl completion bash)
    → 위 방식은 k 별칭 이용시 사용할 수 없다 아래와 같이 변경해야 사용 가능
    $ source < (kubectl completion bash | sed s/kubectl/k/g)

    ✔️ 쿠버네티스에 첫번째 애플리케이션 실행하기

    - 파드 소개
    → 하나 이상의 밀접하게 연관된 컨테이너의 그룹으로, 같은 워커 노드에서 같은 리눅스 네임스페이스로 함께 실행된다.
    → 각 파드는 자체 IP, 호스트이름, 프로세스 등이 있는 논리적으로 분리된 머신이다.
    → 파드에서 실행중인 모든 컨테이너는 동일한 논리적인 머신에서 실행하는 것처럼 보이는 반면, 다른 파드에 실행중인 컨테이너는 같은 워커노드에서 실행 중이라 할지라도 다른 머신에서 실행 중인 것으로 나타난다. 파드는 다른 워크노드에 널리 퍼져있다.

    - 파드 조회하기
    → 컨테이너는 독릭적인 쿠버네티스 오브젝트가 아니기 때문에 개별컨테이너를 조회할 수 없다. 대신 파드를 조회해야한다. 파드는 아래와 같이 조회한다.

    → kubectl describe pod 명령어로 파드의 세부 정도 조회 시 파드가 pending 상태로 멈춰 있다면 쿠버네티스가 레지스트리로부터 이미지를 가져오지 못했기 때문일 수도 있다. 자체 이미지를 사용한다면 도커 허브에서 퍼블릭으로 표시돼 있는지 확인해야한다. 이미지를 가져올수 있는지 확인하기 위해 다른머신에서 docker pull 명령으로 이미지 풀링을 시도해 볼 수 있다.

    - 웹 애플리케이션에 접근하기
    → 각 파드는 자체 IP주소를 가지고 있지만 이 주소는 클러스터 내부에있으며 외부에서 접근이 불가능하다. 외부에서 접근을 가능하게 하려면 서비스 오브젝트를 통해 노출해야 한다. 외부에서 접근이 가능하도록 하려면 Load Balancer 유형의 특별한 서비스를 생성해야 한다. 로드밸런서 유형의 서비스를 생성하면 외부 로드 밸런서가 생성되므로 로드밸런서의 퍼블릭 IP를 통해 파드에 연결할 수 있다.

    💡TIP
    Minikube 를 사용한다면 minikube service kubia-http 를 실행해 서비스에 접근 가능한 IP와 포트를 얻을 수 있다.

    - 레플리케이션컨트롤러, 파드, 서비스가 서로 동작하는 방식 이해
    → 앞서 설명했듯이 독자 여러분이 컨테이너를 직접 생성하거나 동작시키지는 않는다. 대신 쿠버네티스의 기본 빌딩 블록인 파드를 이용한다. 그러나 파드도 직접 생성하지 않는다. kubectl run 명령을 수행하면 레플리케이션컨트롤러를 생성하고 레플리케이션컨트롤러가 실제 파드를 생성한다. 클러스터 외부에서 파드에 접근케 하기 위해 쿠버네티스에게 레플맅케이션컨트롤러에 의해 관리되는 모든 파드를 단일 서비스로 노출하도록 명령한다.

    - 파드와 컨테이너의 이해
    → 시스템의 가장 중요한 구성 요소는 파드다. 파드는 원하는 만큼의 컨테이너를 포함시킬 수 있다. 파드는 자체의 고유한 사설 IP 주소와 호스트 이름을 갖는다.

    - 레플리케이션컨트롤러의 역할 이해
    → 다음 구성요소는 kubia 레플리케이션컨트롤러 이다. 항상 정확하게 하나의 파드 인스턴스를 실행하도록 지정한다. 보통 레플리케이션 ㅋ컨트롤러는 파드륵 복제하고 항상 실행 상태로 만든다. 어떤 이유로 pod가 사라진다면 레플리케이션 컨트롤러는 사라진 파드를 대체하기 위해 새로운 파드를 생성할 것이다.

    - 서비스가 필요한 이유
    → 시스템의 세번째 구성 요솔는 kubia-http 서비스다. 서비스가필요한 이유를 이해하기 위해 파드의 주요 특성을 알아야 한다. 파드는 일시적이다. 파드는 언제든 사라질 수 있다. 파드가 실행중인 노드가 실패할 수도 있고, 누군가 파드를 삭제할수도 있고 비정상 노드에서 파드가 제거될 수도 있다. 이러한 상황에서 사라진 파드는 레플리케이션컨트롤러에 의해 생성된 파드로 2장. 도커와 쿠버네티스 첫걸음 대체된다.(새로운 파드는 다른 IP를 할당받는다.) 이것이 바로 서비스가 필요한 이유다. 서비스는 항상 변경되는 파드의 IP 주소 문제와 여러 개의 파드를 단일 IP와 포트의 쌍으로 노출시키는 문제를 해결한다. 서비스는 어떤 파드가 어디에서 존재하는지(어느 IP를 갖는지)에 관계없이 파드중 하나로 연결하여 요청을 처리하도록 한다.
    → 서비스는 동일한 서비스를 제공하는 하나 이상의 파드 그룹의 정적 위치를 나타낸다. 서비서의 IP와 포트로 유입된 요청은 그 순간 서비스에 속해 있는 파드 중 하나에게 전달된다.

    - 애플리케이션 수평 확장
    → 쿠버네티스를 사용하는 주요 이점 중 하나는 간단하게 배포를 확장할 수 있다는 점이다.

    실행중인 인스턴스를 세개로 증가시키기 위해 파드를 관리하는 레플리케이션컨트롤러를 위 명령어를 통해 살펴보자.

    → 의도하는 레플리카 수를 늘리려면 레플리카 컨트롤러에서 의도하는(Desired) 레플리카 수를 변경해야한다.

    쿠버네티스에게 파드 인스턴스 세 개를 항상 유지해야 한다는 것을 알려줬다.

    가장 기본적인 쿠버네티스 원칙 중 하나는 쿠버네티스가 어떤 액션을 수행해야하는지 정확하게 알려주는 대신에 시스템의 의도하는 상태(Desired state)를 선언적으로 변경하고 쿠버네티스가 실제 현재상태(current state)를 검사해 의도한 상태로 조정(reconcile)한다.

    - 쿠버네티스 대시보드 소개
    → 대시보드에서 파드, 레플리케이션컨트롤러, 서비스 같은 클러스터의 많은 오브젝트 조회 할 수 있고 생성, 수정, 삭제 또한 가능하다.
    → GKE 를 사용하는 경우 kubectl cluster-info 명령으로 대시보드 URL을 찾을 수 있다.

    동아사이언스

    연재 목록 보기

    [누리호를 만드는 기업들](15)국방드론서 쌓은 데이터 실시간 처리기술 우주발사체로 확대하다

    누리호 발사 장면. 한국항공우주연구원 유투브 캡쳐

    우리 힘으로 만든 첫 국산 우주발사체 누리호가 지난해 10월 21일 전남 고흥 외나로도 나로우주센터에서 불꽃을 내뿜으며 하늘로 날아올랐다. 발사를 준비한 대부분 관계자들이 누리호가 우주에 안착할 때까지 긴장감을 놓을 수는 없었지만 발사 직후 하늘로 솟구쳐 오르는 누리호를 보며 다른 이들보다 조금 먼저 뿌듯해한 사람들이 있었다. 누리호와 발사대 장비가 발사 직전까지 정해진 프로그램에 따라 작동하게 하는 지상제어시스템을 맡은 한국항공우주연구원 연구원들과 시스템 개발을 맡은 유콘시스템 관계자들이다.

    지상제어시스템은 우주발사체가 발사 전 지상에 대기할 때 외부에서 기능을 확인하고 각종 기능을 제어하는 장치다. 조립 과정에서 1~3단에 이르는 누리호 각 단의 전자장비 상태와 연료를 공급하는 시스템의 정상 작동 여부, 가스 유출 상태를 면밀히 알려준다. 엔진 성능을 시험하는 추진기관시험장에서는 발사체에 명령을 내려 엔진을 켜고 시험이 끝나면 멈추는 신호도 지상제어시스템이 보낸다. 발사체를 발사대로 옮기는 명령을 내리기도 한다. 발사 전 대기 상태의 누리호를 관리하는 집사 역할을 하는 셈이다.

    누리호가 발사대에 하늘을 향해 수직으로 서면 역할이 더 많아진다. 발사통제동에 수많은 모니터로 누리호에 실린 탑재장비와 밸브, 회로가 제공하는 수치 자료를 보내고 명령을 받는 기능을 한다. 누리호 발사가 임박해 발사체에 연료와 산화제를 주입하는 명령도 지상제어시스템을 통해 내려진다. 이렇게 준비가 끝나면 누리호는 발사 10분전부터 외부의 도움을 받지 않고 스스로 발사 준비에 들어가는데 이런 '자동발사시퀀스' 프로그램도 지상제어시스템을 통해 입력된다. 발사 직전 발사대인 엄빌리컬 타워와 누리호를 잇는 각종 선들을 풀고 집게 형태의 고정장치를 해제하는 역할도 맡고 있다.

    지상제어장치는 누리호가 발사되면 비로소 소임을 마친다. 누리호가 비행을 시작하는 시각이 지상제어장치의 임무가 비로소 끝나는 순간이다. 이달 4일 대전 유성구 유콘시스템 본사 사무실에서 만난 고진현 유콘시스템 체계사업실 수석연구원은 지난 누리호 1차 발사 때를 회상하며 "누리호 개발에 참여한 기업 관계자들 가운데 우리 회사 사람들이 나로우주센터에 가장 일찍 출근하고 가장 늦게 퇴근하는 사람들이었을 것 같다"면서 "누리호 1차 2장. 도커와 쿠버네티스 첫걸음 발사가 목표를 완수하지 못해 안타까웠지만 누리호가 떠오르는 순간 임무가 끝났다는 생각에 잠시 안도하는 마음이 들기도 했다”고 말했다.

    항우연은 이렇게 누리호의 개발과 조립, 발사 전 모든 단계에서 중요한 기능을 담당하는 지상제어장치를 무인항공기 전문기업 유콘시스템과 함께 개발했다.

    한국은 무게 1.5t의 인공위성을 고도 600∼800㎞의 지구 저궤도(LEO)로 쏘아올리는 능력을 확보하기 위해 3단형 우주발사체인 누리호를 개발하고 있다. 길이 47.2m, 무게 200t에 이르는 거대한 누리호 동체에는 엔진과 비행, 단 분리, 통신을 담당하는 수많은 전자장비가 들어간다. 이런 장비들이 모두 오류 없이 정확히 작동해야만 목표한 고도에 인공위성을 올려보낼 수 있다. 지상제어시스템은 이런 누리호 내부의 전자장비가 잘 작동하도록 발사전까지 외부에서 지원하는 모든 장비를 통칭해 부르는 용어다.

    유콘시스템 제공

    지상제어시스템은 조립과 점검 과정에 쓰이는 ‘탑재장비 점검시스템(GTCS)’과 ‘탑재장비 발사운용시스템(GLPS)’, ‘발사준비 제어시스템(PACS)’으로 구성됐다. GTCS는 항우연 본원과 우주센터 조립동, 우주센터 추진기관시험설비 등 조립과 시험이 진행되는 세 곳에 각각 구축됐다. GLPS와 PACS는 누리호가 발사대에 기립한 이후 발사까지 전 과정을 발사동과 멀리 떨어진 발사통제센터에서 실시간으로 제어할 수 있게 돕는다.

    성능은 얼마나 빠르게 누리호와 제어를 담당하는 이들 사이에 양방향으로 데이터를 전달하느냐에 좌우된다. 데이터 수신과 명령 전송, 알고리즘을 통한 자동 제어가 밀리초(ms·1000분의 1초) 단위로 진행되는데 이 짧은 시간에 방대한 데이터를 처리하는 시스템을 구축해야 하기 때문이다.

    유콘시스템은 2001년 창업한 드론 전문기업이다. 한국의 첫 무인 군용 정찰기 ‘송골매’를 개발한 개발자들이 주축이 돼 회사를 설립했다. 항우연과 국방과학연구소(ADD)의 무인기 사업에 다수 참여하며 드론을 조종하는 지상제어시스템도 함께 개발했다. 드론용 지상통제장비는 2004년과 2011년 아랍에미리트(UAE)에 수출하기도 하는 등 기술력을 인정받았다.

    하지만 10년 이상 국방 드론 지상제어 기술을 개발하면서 기술력을 쌓은 유콘시스템에게도 누리호 개발은 큰 도전이었다. 크기가 작은 드론은 간단한 명령만으로도 제어가 가능하지만 37만 개에 달하는 부품으로 구성된 거대 기계장치인 누리호를 정확히 제어하려면 막대한 양의 데이터를 동시에 처리하는 기술이 필요했다. 고 수석연구원은 “누리호 제어에 쓰이는 데이터는 드론을 비롯한 다른 제어시스템과 비교하면 수백 배 크다”고 말했다.2장. 도커와 쿠버네티스 첫걸음

    한국은 발사체 개발 역사가 비교적 짧은 편이다. 뒤늦게 시작했지만 각국이 기술 공개를 꺼려 참고할 만한 첨단 시스템은 많지 않다. 발사체 제어시스템은 완벽해야 하기 때문에 검증이 안된 새로운 컴퓨터와 장비를 도입하는 것을 꺼리는 경우가 많다. 해외 사례를 모방해 장비를 도입해도 오래된 모델이 대부분이라 실제 현장에서 성능이 부족한 경우도 생겼다. 서진호 항우연 체계종합팀 책임연구원은 "데이터 수신, 명령 전송과 알고리즘을 실시간 처리해야 했는데 충분한 검토 끝에 도입한 장비의 성능이 부족한 경우도 있었다"고 말했다.

    유콘시스템은 항우연과 함께 한국만의 개선된 시스템을 만드는 방법을 택했다. 발사체 선진국보다 더 첨단 장비를 도입해 다른 나라와 비교해도 손색이 없는 시스템을 구축한 것이다. 지상에서 제어를 담당하는 담당자들이 조작하는 그래픽 기반 소프트웨어도 모두 유콘시스템이 제작했다. 고 수석연구원은 "여러 번의 시행착오를 거치면서 성능과 기능도 늘었고, 사용자 인터페이스(UI) 도 우주개발 선진국보다 더 낫게 업그레이드했다"고 말했다.

    유콘시스템은 누리호의 지상 제어를 맡은 운영자들이 사용하는 장치인 콘솔 51대, 제어에 사용되는 콘솔 화면 4872개를 개발했다. 발사대에 누리호를 직접 세우지 않고도 누리호가 서있는 것처럼 가정하고 기능을 시험할 수 있도록 '시뮬레이터(SIM)'도 개발했다. 시뮬레이터는 실제 누리호가 내는 신호와 같은 신호를 낸다. 발사체 없이도 발사대 시험과 검증을 가능하게 만드는 기술이다.

    유콘시스템 제공

    유콘시스템이 누리호 개발에 참여하게 된 것은 2014년으로 거슬러 올라간다. 유콘시스템이 국방 분야에서 보여온 기술력을 눈여겨 본 항우연이 개발 참여를 권유하면서다. 서 책임연구원은 8년전을 회상하며 “유콘시스템이 드론 지상제어시스템에 적용한 실시간 데이터 처리 기술을 확장하면 우주발사체에도 활용할 수 있다고 판단해 적극적으로 사업 참여를 권유했다"며 “제안을 한 다른 기업들은 대부분 기술 난이도가 높고 과업 범위가 넓다는 이유로 참여를 거절했는데 유콘시스템만 선뜻 도전해보겠다는 뜻을 보내와 인상적이었다”고 말했다.

    유콘시스템은 지난해 매출액 134억 원을 기록했다. 동시에 18억7000만 원의 영업손실을 기록했다. 유콘시스템은 최근 3년간 영업손실을 기록하고 있다. 유콘시스템의 주력 사업이던 드론 산업이 중국산 저가 드론 공세에 시달리면서 최근 침체기를 겪는 여파가 반영됐다. 유콘시스템은 드론 침체기가 이어지는 가운데 누리호 사업과 관련한 매출이 발생한 것은 긍정적인 상황으로 2장. 도커와 쿠버네티스 첫걸음 보고 있다.

    유콘시스템은 현지 기술을 다른 우주발사체에도 충분히 활용될 수 있을 것으로 기대하고 있다. 정부가 차세대발사체 개발사업 예비타당성 조사를 시작하며 신규 발사체 개발사업이 추진되고 있고 민간에서도 발사체 개발 의지를 밝히면서 지상제어시스템 분야도 시장이 더 커질 것으로 기대하고 있다.

    항우연도 누리호 지상제어시스템을 처음부터 여러 발사체에 활용할 수 있는 범용성을 감안하고 설계했기 때문에 다른 발사체 지상제어에 활용하는 것도 가능하다고 보고 있다. 서 책임연구원은 “누리호에 쓰인 지상제어시스템은 확장성과 유연성에서 뛰어나다"며 "조금만 수정해도 다른 우주발사체에 그대로 적용할 수 있다"고 평가했다.

    유콘시스템이 해외보다 더 최신 기술을 많이 적용한 제어시스템을 구축하면서 확보한 노하우도 강점을 발휘할 것으로 기대된다. 고 수석연구원은 “지상제어시스템을 개발하며 실시간 데이터 처리기술과 자동화 시나리오 기술을 새로 축적했다”며 “발사체 이외 다른 분야에도 활용을 기대하고 있다”고 말했다.

    누리호 개발에 참여한 다른 중소벤처 기업들처럼 유콘시스템 관계자들도 국내 우주산업이 아직 태동기인 만큼 국가의 전략적 투자가 필요하다고 입을 모았다. 고 수석연구원은 “저희 회사도 우주산업에 뛰어들었기 때문에 국가적으로든 산업적으로든 성숙기에 빨리 접어들어 국가경쟁력이나 기업체들의 발전이 빨리 일어났으면 하는 바람이 있다”며 “아직은 기업 차원에서 큰 사업 투자를 끌고 나가지 못하는 상황인 만큼 정부가 적극적으로 기반이 마련될 때까지는 2장. 도커와 쿠버네티스 첫걸음 투자를 이어가 줬으면 좋겠다”고 말했다.

    부를 관리하는 첫걸음

    모아시스 이벤트 모아시스 이벤트

    행정안전부가 내년도 예산을 약 80조원으로 편성했다. 행안부는 새정부 핵심국정과제인 지역균형발전과 재난안전 강화 등에 집중 투자할 방침이다.

    행안부는 내년도 예산안을 올해 (70조 6649억원) 대비 13.3% 증액된 80조 724억원으로 편성했다고 30일 밝혔다.

    지방교부세는 내년도 내국세 추정액 증가 예상에 따라 올해 대비 10조2322억원이 늘어난 75조2883억원이다. 내년도 인건비와 기본경비는 올해 예산 수준인 3852억원을 편성했다. 특히 2023년 사업예산은 디지털플랫폼정부 구현, 선진화된 재난안전 관리체계 구축, 지역균형발전 인프라 강화 등 새정부 핵심국정과제에 중점을 두고 4조3989억원을 편성했다.

    행안부는 디지털플랫폼정부 구현을 위해 국민비서 서비스 및 모바일 신분증을 확대하고 마이AI서비스, 데이터플랫폼 등을 구축할 계획이다.

    또 재난안전 관리체계를 구축하기 위해 재해위험지역정비 및 우수저류시설 설치사업을 확대하고, 침수우려 취약도로 자동 차단시설 구축사업도 신규로 추진한다.

    행안부의 2023년 4대 2장. 도커와 쿠버네티스 첫걸음 분야별 주요사업예산은 △디지털 정부혁신 9353억원 △재난안전 1조 1365억원 △지역경제 1조 6496억원 △과거사 등 기타 6776억원 등이다. 먼저 행안부는 디지털 정부혁신 방안으로 민간앱을 통해 생활정보를 안내하는 국민비서 서비스를 확대하고, 맞춤형 서비스를 제공하는 마이AI서비스를 구축할 계획이다. 이와 함께 모바일 신분증 확대와 범정부 데이터플랫폼 구축도 추진한다.

    자연재해로 발생하는 침수, 붕괴 등 위험요인 해소를 위한 정비사업 예산으로는 2022년 6205억원에서 2023년 6858억원으로 확대 편성했다. 아울러 침수피해 예방을 위해 우수저류 시설 설치사업을 조기 완공하고 대상지를 확대할 예정이다.

    지역경제 활성화 조치로는 지방소멸대응기금을 2022년 7500억원에서 2023년도 1조원으로 확대 편성하고, 인구감소지수 및 지역별 투자계획 등을 고려해 지역별로 지원할 계획이다. 주민 10인 미만의 작은 섬에 대해선 최소한의 생활 여건을 개선하기 위한 사업도 신규로 추진한다.

    행안부는 과거사 문제해결 사업도 지속 추진한다.

    4.3사건법 개정·시행으로 명문화된 보상 근거에 따라 제주4·3사건 희생자에 대한 명예회복을 지원한다. 또한 여수·순천사건법 시행에 따라 여순사건 희생자에 대한 진상규명 및 심사결정을 위한 사실조사 등을 지원한다.

    하병필 기획조정실장은 "2023년도 행정안전부 예산안은 디지털플랫폼정부 구현, 선진화된 재난안전 관리체계 구축, 지역균형발전 인프라 강화 등 국정과제 추진 기반 마련에 중점을 두었다"면서 "정부안이 원안 반영될 수 있도록 국회 심의단계에서 최선의 노력을 다할 계획"이라고 전했다.


0 개 댓글

답장을 남겨주세요