본문 바로가기 대메뉴 바로가기

테크니컬 스토리

아이티마야의 새로운 기술 뉴스를 만나보세요.
개발 환경에서 Linux를 많이 사용하는 이유
등록일
2022.11.25
첨부파일
개발 환경에서 Linux를 많이 사용하는 이유
개발 환경으로 Linux에 주로 사용하는 CentOS와 Ubuntu의 환경 차이점
Linux에 대해
  • 리눅스는 리누스 토르발스가 커뮤니티 주체로 개발한 컴퓨터 운영체제입니다.

    리눅스는 유닉스 운영체제를 기반으로 만들어진 운영체제이고, 유닉스와 같은 다중 사용자, 다중 작업(멀티태스킹), 다중 스레드를 지원하는 네트워크 운영체제(NOS)입니다.

    리눅스는 서버로 작동하는데 최적화되어 있어, 서버에서 사용되는 운영체제로 많이 사용되고 있습니다.

  • Linux의 특징
  • 리눅스는 유닉스와 완벽하게
    호환이 가능합니다.

  • 공개 운영체제로 오픈소 스이므로
    아무나 자유롭게 수정이 가능합니다.

  • PC용 OS보다 안정적이며
    우수한 성능을 지니고 있습니다.

  • 배포판이 아닌 리눅스 자체는
    무료입니다.

  • 다중 사용자 멀티태스킹을
    지원합니다.

    • Linux 패키지에 대해
    Linux 패키지는 Linux System에서 소프트웨어를 실행하는데 필요한 파일들이 담겨있는 설치 파일 묶음입니다. [예) 실행파일, 설정 파일, 라이브러리 등]
    Linux 패키지 종류에는 소스 패키지(Source Package), 바이너리 패키지(Binary Package)가 있습니다.
    Source Package [장점] 소스 패키지는 바이너리 패키지와 달리 원하는 대로 소프트웨어를 수정하여 사용할 수 있어 사용자의 입맛에 맞게 사용할 수 있다는 장점이 있습니다.

    [단점] Source Package는 소스코드가 들어있는 패키지로 컴파일 과정을 통해 바이너리 파일로 만들어야 실행할 수 있습니다. 설치할 때 컴파일 작업도 진행하므로 설치 시간이 길고 컴파일 작업 과정에서 오류가 발생할 확률이 있습니다.
    Binary Package [장점] Binary Package는 컴파일 작업이 되어있는 바이너리 파일이 들어있는 패키지입니다. 때문에 바로 설치가 가능하며, 오류가 없는 파일들로 컴파일이 되어있어 소스 패키지에 비해 설치 시간이 짧고 오류 발생 확률도 낮습니다. 그래서 리눅스의 기본 설치 패키지들은 대부분 바이너리 패키지입니다.

    [단점] 패키지 의존성이 있습니다. 바이너리 패키지는 컴파일이 되어있어 사용자의 컴퓨터 환경과 바이너리 패키지가 컴파일된 환경이 달라 문제가 발생할 수 있습니다. 특정 버전의 라이브러리가 필요하다면, 그 라이브러리들을 가지고 있지 않을 시 제대로 프로그램을 실행할 수 없다는 것입니다.
    • Linux의 종류
    Linux의 종류에는 매우 다양하게 있으나 크게 대중적으로 사용하는 CentOS와 Ubuntu가 있습니다.
    CentOS에 대해 CentOS는 Community Enterprise Operating System의 약자로 Red Hat 이 공개한 RHEL을 그대로 가져와 브랜드와 로고만 제거하고 배포한 배포본입니다. RHEL의 소스를 그대로 사용하고 있어 RHEL과 OS 버전, 패키지 구성이 똑같고 바이너리가 100% 호환됩니다. 무료로 사용이 가능하지만, 커뮤니티를 통해 지원이 되므로 패치가 느립니다.
    Ubuntu에 대해 영국의 캐노니컬이라는 회사에서 만든 배포판으로 쉬운 설치와 이용방법 덕분에 초보자들이 쉽게 접근할 수 있어 개인용 워크스테이션으로 많이 사용됩니다. 서버용으로 성능이나 기능이 부족하지 않지만 서버용 리눅스 점유율로 볼 때는 CentOS가 좀 더 높습니다.
    Linux에서 많이 사용하는 Ubuntu와 CentOS의 차이점
       Ubuntu CentOS
    System core 데비안 기반 레드헷 기반
    Update 자주 가끔
    보안 약하진 않지만 추가 구성 필요 강함
    플랫폼의 초점 개인 개발 서버(데스크톱) 사용자에게 적합 실제로 서비스를 실행중인 상용화서버에 적합
    패키지 apt-get, aptitude Yum
    클라우드 인터페이스 OpenStack OpenStack, OpenNebula, CloudStack
    가상화 KVM, Xen 기본 KVM 지원
    안정성 좋다 강함
    호스팅 시장 점유율 대략 33% 정도 대략 12% 정도
    개발용으로 좋은 Ubuntu에 대해

    1. 오픈소스 무료이며, 그래픽 사용자 인터페이스(GUI)와 명령행 인터페이스(CLI)가 있습니다. GUI를 사용할 시 단추, 창, 텍스트 상자 등의 그래픽 구성 요소를 사용해 쉽게 작업을 수행할 수 있습니다.

    2. CLI를 사용할 시 사용자는 명령을 입력하고 신속하게 실행이 가능합니다.

    3. 사용자는 Ubuntu 소프트웨어 센터 또는 다른 APT 기반 패키지 관리 도구에서 많은 무료 소프트웨어 및 도구를 다운로드할 수 있으며,많은 자료와 커뮤니티들로 초심자도 쉽게 사용할 수 있습니다.(Edubuntu라는 교육 응용 프로그램이 있는 우분투 교육용이 있습니다.)

    4. 대비안으로부터 이어받은 APT를 통해 소프트웨어의 설치·관리 · 제거를 쉽게 할 수 있기 때문에 리눅스뿐만 아니라 컴퓨터 자체를 처음 접하는 이들에게 있어서도 최고의 리눅스 배포판이라고 할 수 있습니다.

    5. 편리를 제공하기 위해 여러 하드웨어가 필요로 하는 다수의 펌웨어, 드라이버, 그리고 사용자가 주로 필요로 하는 여러 실용적인 소프트웨어들을 미리 탑재하고 있습니다. 덕분에 하드웨어 인식 기능이 뛰어납니다.

    • Ubuntu, Ubuntu LTS의 차이
    Ubuntu 정규 버전으로 6개월 주기로 배포하며, 배포 일로부터 9개월간 업데이트를 지원합니다. 배포 주기와 지원 주기가 짧지만 새로운 기능이 포함되어 있기 때문에 우분투의 기술을 체험해 보고 싶은 사용자들이 사용하기에 좋습니다. (데스크탑용으로 적합)
    Ubuntu LTS Long Term Support의 약자로 장기 지원을 뜻합니다. LTS 버전은 2년마다 새로운 버전을 배포하며, 업데이트는 배포 일로부터 5년까지 지원합니다.(서버용으로 적합)
    • Ubuntu 패키지 설치방법
    Ubuntu는 기본적으로 apt 명령과 apt-get, apt-cache 명령어를 사용하므로, 아래는 패키지 설치를 위한 간단한 명령어 비교 테이블입니다.
    apt와 apt-get, apt-cache 차이
    apt 명령 기존명령 설명
    apt install apt install 패키지 목록, 설치
    apt remove apt remove 패키지 삭제
    apt purge apt purge 패키지와 관련된 설정 제거
    apt upgrade apt upgrade 업그레이드 가능한 모든 패키지 업그레이드
    apt update apt update 레파지토리 인덱스 갱신
    apt autoremove apt-get auto remove 불필요한 패키지 제거
    apt full-upgrade apt-get disc-upgrade 의존성 고려한 패키지 업그레이드
    apt search apt-cache search 프로그램 검색
    apt show apt-cache show 패키지 상세 정보출력
    apt edit-sources 소스 리스트 편집
    상용화 서버에 좋은 CentOS에 대해

    1. 무료입니다.
    2. CentOS는 RHEL의 자유 형식입니다.
    3. 각 버전은 최대 10년 동안 지속되고, 보안 업데이트도 제공하여 안정성이 높습니다.
    4. CentOS는 Red Hat Branding을 대체하여 (동일한 소스코드) RHEL에서 실행 가능한 것들은 CentOS에서도 호환이 가능합니다.

    • CentOS, RHEL의 차이
    CentOS RHEL(레드햇 리눅스)의 동일한 소스코드로 무료로 RHEL을 사용할 수 있지만, 서비스를 받을 수 없어 유지가 가능한 사람들이 있어야 합니다. (엔터프라이즈 지원이 없습니다.)
    RHEL 레드햇의 공식 배포판으로 레드햇이 지원하는 서비스를 받을 수 있지만, 유료입니다.(엔터프라이즈 지원이 가능합니다.)
    • CentOS 패키지 설치방법
    CentOS는 기본적으로 YUM 명령어와, RPM 명령어를 사용합니다. 아래는 두 명령어의 비교 테이블입니다.
    YUM 명령 RPM 명령 설명
    yum install rpm-Uvh 패키지 설치
    yum remove rpm-e 패키지 삭제
    yum update rpm-qa 업데이트
    yum list rpm-qi 목록
    YUM (Yellow dog Updater Modified) 인터넷을 통해 필요한 파일을 저장소에 다운로드한 뒤에 패키지를 구성한 요소를 전부 갖추어 설치하는 방법으로, 외부 서버랑 통신이 가능해야 합니다. (의존성 문제를 해결한 방식입니다.)
    RPM (Red Hat Package Manager) 리눅스 초기부터 사용해온 방식이며, 확장자는 RPM입니다. 인터넷 없이 RPM으로만 설치가 가능하나, 의존하는 패키지를 모두 직접 설치해야 합니다. (의존성 문제가 있습니다.)
    PLEASE WAIT WHILE LOADING...