CI / CD란 ?
개발부터 배포까지 모든 단계를 자동화 하는 것이다.

 

 

CI ( Continuous Integration)

CI는 Continuous Integration의 약자로 지속적 통합이란 의미다.

애플리케이션의 새로운 코드들이 자동으로 빌드 및 테스트 되어 레포지토리에 통합되는 것을 의미한다.

 

CI의 포인트는

  • 개발자들은 최대한 작은 단위로 만들어서 개발해가며 빈번하게 merge 해야한다.
  • 애플리케이션의 빌드, 테스트, 병합하는 과정을 주기적으로 자동화시켜야 한다.

위 포인트들을 따라가면

  • 병합 시 충돌 예방이 가능하고
  • 코드의 결함이나 문제점을 빠르게 발견할 수 있다.

또한, 문제점을 빠르게 해결할 수 있는데, 이는 작은 단위로 빈번하게 merge하기 때문에 문제 발생 범위가 작다.

* 빈번하게 merge해도 빌드, 테스트가 자동이라 간편! 결과적으로 코드의 품질이 향상된다.


CD

CD는 Continuous Delivery/Deployment의 약자로 지속적 제공/배포란 의미다.

CI를 통해서 빌드, 테스트가 완료되어 배포될 준비가 끝난 애플리케이션을

개발자가 수동으로, 혹은 자동으로 배포를 진행하는 것이다.

수동일 때 Continuous Delivery, 자동일 때 Continuous Deployment라 한다.

https://llshl.tistory.com/50 참고

 


CI / CD 파이프라인
5줄 요약

 

  1. 개발자가 작은 단위로 코드를 생성하고 메인 레포지토리에 merge를 하면
  2. 자동으로 빌드되고
  3. 자동으로 테스트되어
  4. 릴리즈 되고(배포 준비 완료)
  5. 배포 된다.

https://llshl.tistory.com/50 참고

 


CI / CD를 위한 도구

https://ichi.pro/ko/hyeonjae-sayong-ganeunghan-choegoui-ci-cd-dogu-27gaji-194611649728144

 

Jenkins
  • 무료(단, 별도 서버 필요)
  • 다양한 플러그인과 IDE 지원
  • 많은 사용자와 많은 문서
  • 규모가 작은 프로젝트의 경우 설정하는데 리소스 낭비가 발생할 수 있다.
  • 지라와 연동이 불편하거나 완벽하지 않을 수 있다.

무료 서비스와 많은 사용자를 가졌다는 점

특히 많은 문서와 선례들을 통해 대부분의 문제상황에 대첳라 수 있다.

 

다만, 설정과 운영하는 측면에서 불편하다는 평이 있다.

손도 많이가고 특히 별도의 서버를 준비해 해당 서버에 설치하여 운영하는 방식이기 때문에 무료인듯 무료아는 느낌

※ 주로 t2.medium을 권한다. 규모가 적은 프로젝트에서는 비추천

 


Travis
  • 깃 허브와 연동
  • 빌드 과정을 한 눈에 이해하기 쉽다.
  • 초기 설정이 젠스킨에 비해 간편(YML 파일을 통한 설저)
  • 별도의 서버가 필요 없다. Travis에서 알아서 VM으로 호스팅 해줌
  • 기업용의 경우 다소 비싸다(월 129달러)
  • 로컬에서 CI환경과 동일한 빌드환경을 제공하지 않는다.
  • 젠스킨에 비해 플러그인이 다양하지 않다.
  • .travis.yml 파일을 수정하고 테스트하려면 git push를 반복해야 한다.

Github Action
  • 복잡한 과정 없이 바로 깃 허브에서 사용할 수 있다.
  • 빌드 과장을 눈으로 확인하기 쉽다.
  • 깃허브의 모든 이벤트에 대한 작업을 제공하고 다양한 언어와 프레임워크를 지원한다.
  • 젠스킨보다 빠르다.
  • public은 무료, private 저장소의 경우 매월 3000분 무료
  • 문서가 비교적 부족하다.
  • UI에서 개별 워크플로우 실행을 삭제할 수 없다.
  • 워크플로우에서 단일 작업만 다시 실행할 수 없다.

 

 

'IT > IT 지식' 카테고리의 다른 글

SOAP API와 REST API 차이점  (0) 2024.05.31
REST, REST API, RESTful 정리  (0) 2024.05.30
API 종류  (0) 2024.05.30
API 기초 이해하기  (0) 2024.05.30
CLI와 GUI 차이점  (0) 2024.05.30

https://www.elancer.co.kr/blog/view?seq=199 이미지 참고

 

● API(Application Programming Interface)란 무엇일까?

인터페이스는 특정 두 대상을 연결하거나 조작하기 위한 규칙과 규격을 나타내는 것으로 다양한 곳에 적용되고 있다.

IT 프로그램에서 인터페이스 역할을 하는 것이 있는데 이를 API라 한다.

APi는 소프트웨어 애플리케이션끼리 서로 소통하고 상호작용하기 위해 정의된 규약이나 프로토콜이다.

프로토콜이란 ?

컴퓨터 또는 전자기기 간의 원활한 통신을 위해 지키기로 약속한 규약
즉 시스템이 서로 통신하는 방식에 대한 일련의 규칙이다.

 


● REST API 란?

REST(Representational State Transfer)는 네트워크를 통해 컴퓨터들끼리 통신할 수 있게 해주는 아키텍처 스타일이다.

REST API는 인터넷 식별자(URI)와 HTTP 프로토콜을 기반으로 한다.

이로인해 '단순함'이 핵심이라고 볼수 있으며,  데이터 포맷으로는 브라우저 간 호환성이 좋은 제이슨(JSON)을 사용한다.

 

REST API는 구축과 확장이 간단하지만, 크고 복잡하게 만들 수 있다.

이는 API를 어떻게 만들고, 무엇을 추가하고, 어떤 목적으로 설계되었는지에 따라 달려있따.

REST API는 클라이언트와 서버 사이에서 통신할 수 있게 하고, 아키텍처를 만들 수 있게 해준다.

REST API라면 클라이언트 - 서버 모델로 구축되었다는 것을 의미하며, 정보의 페이로드(실제 전달하려는 내용)가

두 지점 사이를 왕복하게 된다.

아키텍처(Architecture)란?

# 시스템 구성 및 동작 원리
# 구성 요소 간의 관계 및 시스템 외부 환경과의 관계
즉 서비스의 동작원리를 나타낸 것이다.

 

REST API는 단일 인터페이스를 사용한다.

이러한 이유로 해당 API를 사용하는 애플리케이션들이 동일한 경로를 통해 접속해야 하고, 방식이 단순하게 된다.

이러한 방식에는 장/단점이 존재하기 때문에 향후 개발 과정에서 어떤 영향이 발생하는지 충분한 상의가 필요하다.

 

REST는 웹에 최적화되어 있고, 데이터 포맷이 JSON이기 때문에 브라우저들 간에 호환성이 좋다.

또한, 그 성능과 확장성이 뛰어나지만 그 자체의 기능이 정지되거나 앱을 먹통으로 만들 수 있다.

REST로는 풀지 못하는 문제들을 해결하기 위해 그래프 QL과 같은 언어가 생겨났다.


● SOAP API란?

SOAP(Simple Object Access Protocol)는 그 자체로 프로토콜이며, 보안이나 메시지 전송 등에 있어서

REST보다 더 많은 표준이 정해져있기 때문에 조금 더 복잡하다.

이런 표준들로 인해 오버헤드가 많기는 하지만 보안, 트랜잭션, ACID(원자성, 일관성, 고립성, 지속성)을

준수해야 하는 보다 종합적인 기능이 필요한 조직에게는 적합한 방식이다.

하지만, SOAP는 웹 서비스 시나리오에 적용하기에는 좋지 않기 때문에 기업용 애플리케이션 등의 작업이 이상적이다.

 

ACID란 ?

데이터베이스 트랜잭션들이 안정적으로 수행된다는 것을 보장하기 위한 성질을 가리키는 약어

[성질 4가지]
원자성(Atomicity)
: 트랜잭션과 관련된 작업들이 모두 수행되었는지 아니면, 모두 실행이 안되었는지를 보장하는 능력
예) 자금 이체는 성공할 수도 실패할 수도 있지만, 중간 단계까지 실행되고 실패하는 일은 없도록 하는 것.


일관성 ( Consistency )
: 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것
예) 결성 제약이 모든 계좌는 잔고가 있어야 한다면, 이를 위반하는 트랜잭션은 중단

고립성 (Isolation)
: 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것
즉 트랜잭션 밖에 있는 어떤 연산도 중간 단계의 데이터를 볼 수 없다.
예) 은행 관리자는 이체 작업을 하는 도중에 쿼리를 실행하더라도 특정 계좌간 이체하는 양 쪽을 볼 수 없다

지속성(Durability)
: DBMS가 사용자에게 트랜잭션 커밋(commit) 응답을 했을 경우, 데이터베이스 객체에 대한 변경 사항이
디스크에 반영(flush) 되기 전 시스템 장애가 발생하여도 트랜잭션의 커밋은 보장되어야 한다는 속성
DBMS는 트랜잭션의 지속성을 제공하기 위해 log(작업에 대한 기록)를 관리한다.
※ 커밋으로 갱싱된 내용이 디스크에 반영되기 전 장애가 발생하면 시스템 재 구동 시 로그를 판독하여 변경된 내용 복구

 

트랜잭션(Transaction)이란?

데이터베이스 상태를 변경시키기 위해 수행하는 작업 단위
데이터베이스 상태 변경이란 SELECT, UPDATE, INSERT, DELETE등을 수행하는 것이다.

즉, DB에서 트랜잭션은 하나의 거래를 안전하게 처리하도록 보장해주는 것이다.

 

SOAP는 보안 수준이 엄격하다.

SOAP에서는 SSL도 지원하고 WS-Security라는 자체 표준의 보안 기능도 가지고 있다.

은행용 모바일 앱처럼 보안 수준이 높아야 하거나 신뢰할 수 있는 메시징 앱,

또는 ACID를 준수해야 하는 경우라면 SOAP 방식이 선호된다.

 

SOAP 표준에는 ACID 준수에 관한 사항이 있으며, ACID를 준수하기 때문에

데이터의 변형을 줄여주고, 데이터베이스와의 상호작용에 대해 사전에 정호가하게 정의하여 데이터의 무결성을 지켜준다.

주로 금융 정보 등의 민감한 데이터를 주고받을 때 사용된다.

 


※ REST API와 SOAP API 차이점

차이점 SOAP REST
유형 프로토콜 아키텍처 스타일
기능 기능 위주 : 구조화된 정보 전송 데이터 위주 : 데이터를 위해 리소스 접근
데이터 포맷 XML만 사용 일반 텍스트, HTML, XML, JSON등
다양한 포맷 허용
보안 WS-Security와 SSL 지원 SSL과 HTTPS 지원
대역폭 상대적으로 더 많은 리소스아 대역폭 필요 상대적으로 리소스가 적게 필요하고
무게가 가볍다.
데이터 캐시 캐시를 사용할 수 없다. 캐시를 사용할 수 있다.
페이로드 처리 엄격한 통신 규약을 갖고 있으며,
모든 메시지는 보내기 전에 알려져야 한다.
미리 알릴 필요 없다.
ACID 준수 자체적인 ACID 기준이 있어서
데이터 손상을 줄여준다.
ACID 준수와 관련된 내용이 없다.

 

 

 

 

 

'IT > IT 지식' 카테고리의 다른 글

CI/CD 파이프라인  (0) 2024.06.09
REST, REST API, RESTful 정리  (0) 2024.05.30
API 종류  (0) 2024.05.30
API 기초 이해하기  (0) 2024.05.30
CLI와 GUI 차이점  (0) 2024.05.30

● REST

REST(Representational State Transfer)의 약자로

자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 것을 의미한다.

 

- REST란?

  1. HTTP URI(Uniform Resource Identifier)를 통해 자원 (Resource)을 명시하고
  2. HTTP Method(POST, GET, DELETEm PATCH 등)을 통해
  3. 해당 자원(URI)에 대한 CRUD Operation 적용을 의미한다.
CRUD Operation
CRUD는 대부분 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리기능인
Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말로
REST에서의 CRYD Operation 동작은 아래와 같다.
# Create : 데이터 생성(POST)
# READ : 데이터 조회(GET)
# Update : 데이터 수정(PUT, PATCH)
# Delete : 데이터 삭제(DELETE)

 


- REST 구성요소

  1. 자원(Resource) : HTTP URI
  2. 자원에 대한 행위(Verb) : HTTP Method
  3. 자원에 대한 행위의 내용(Representations) : HTTP Message Pay Load

- REST의 특징

  1. Server-Client(서버 - 클라이언트 구조)
  2. Stateless(무상태)
  3. Cacheable(캐시 처리 기능)
  4. Layered System(계층화)
  5. Uniform Interface(인터페이스 일관성)

- REST의 장단점

장점

 # HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라 구축이 필요없다.

 # HTTP 프로토콜의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있다.

 # HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용할 수 있다.

 # Hypermedia API의 기본을 충실히 지키면서 범용성을 보장한다.

 # REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.

 # 여러가지 서비스 디자인에서 생길 수 있는 문제를 최소화한다.

 # 서버와 클라이언트의 역할을 명확하게 분리한다.

 

단점

 # 표준규약이 존재하지 않아 정의가 필요하다.

 # HTTP Method 형태가 제한적이다.

 # 브라우저를 통해 테스트하 일이 많은 서비스라면 쉽게 고칠 수 있는 URL보다

    Header 정보의 값을 처리해야 하므로 전문성이 요구된다.

 # 구형 브라우저에서 호환이 되지 않아 지원해주지 못하는 동작이 많다. 

예) 익스플로어


● REST API

REST를 기반으로 만들어진 API를 의미한다.

REST API를 올바르게 설계하기 위해 지켜야하는 몇가지 규칙이 있다.


 

※ REST API 설계 예시

URI는 동사보다는 명사를, 대문자보다는 소문자를 사용해한다.
Bad Example http://khj93.com/Running/
Good Example  http://khj93.com/run/  

 

마지막에 슬래시 (/)를 포함하지 않는다.
Bad Example http://khj93.com/test/  
Good Example  http://khj93.com/test

 

언더바 대신 하이폰을 사용한다.
Bad Example http://khj93.com/test_blog
Good Example  http://khj93.com/test-blog  

 

파일확장자는 URI에 포함하지 않는다.
Bad Example http://khj93.com/photo.jpg  
Good Example  http://khj93.com/photo  

 

행위를 포함하지 않는다.
Bad Example http://khj93.com/delete-post/1  
Good Example  http://khj93.com/post/1  

 


● RESTful

RESTFUL이란 REST의 원리를 따르는 시스템을 의미한다.

하지만 REST를 사용했다고 하여 모두가 RESTFUL한 것은 아니다.

 

REST API의 설계 규칙을 올바르게 지킨 시스템을 RESTful하다 말할 수 있으며,

모든 CRUD 기능을 POST로 처리하는 API와 URI 규칙을 올바르게 지키지 않은 API는

REST API를 사용하였지만 규칙을 올바르게 지키지 못한 시스템으로 RESTful하지 못한 시스템이라 한다.

'IT > IT 지식' 카테고리의 다른 글

CI/CD 파이프라인  (0) 2024.06.09
SOAP API와 REST API 차이점  (0) 2024.05.31
API 종류  (0) 2024.05.30
API 기초 이해하기  (0) 2024.05.30
CLI와 GUI 차이점  (0) 2024.05.30

https://www.elancer.co.kr/blog/view?seq=199 참고

 

● Open API

외부 개발자들이 접근하여 데이터를 요청하거나, 특정 기능을 사용할 수 있도록 제공되는 형태다.

주로 Web API 형태로 제공되며, 대표적인 예로 Google Map, Twitter, 공공 데이터 등이 있따.

이런 API를 통해 애플리케이션 내 Google Map을 쉽게 삽입하고 Twitter의 정보를 가져오는 개발이 가능하다.

 

정부에서 제공하는 공공 API는 각 부처가 갖고 있는 토지 소유, 경매, 부동산 등의 데이터를 제공해준다.

 


● Internal API

기업 내부에서 사용되는 API로 주로 기업의 각 부서나 시스템 간의 통신에 사용도니다.

이는 기업 내부 시스템 내에서 데이터를 쉽게 교환할 수 있도록 주와주어 부서간의 시릿간 정보를 공유하는데 용이하다.


● Web API

 

웹 사이트나 모바일 애플리케이션과 같은 클라이언트가 서버로 부터 데이터를 요청하고 응답받을 수 있는 형태의 API다.

이는 인터넷을 통해 정보를 요청할 때 브라우저가 서버와 통신하는 방법과 유사하다.

 

Web API는 사용자가 인터넷에서 정보를 요청할 때 해당 정보를 제공하는데 사용된다.

예를들어 온라인상에서 날씨정보, 뉴스 ,지도, 상품 정보 등의 관련 데이터를 요청하고 받아볼 수 있다.

 

이런 API는 실생활에서 인터넷을 통해 다양한 정보를 검색하고 이용하는데 활용한다.

모바일 앱, IoT 앱이 서버와 데이터 통신을 위해서도 사용된다.


● Library API

Library API는 특정 기능을 제공하고 개발자들이 해당 기능을 호출하여 사용할 수 있도록 한다

 

특정 프로그래밍 언어나 플랫폼에서 제공되는 기능이 Library API 형태로 제공되며, 이런 API는 주로 개발자가

자체 앱 내에서 활용하기 위해 사용되거나 개발자들이 자체 앱을 보다 쉽게 구축 및 기능확장할 수 있도록 돕느다.


● Hardware API

하드웨어 API는 소프트웨어가 하드웨어 리소스를 효율적으로 활용할 수 있도록 하는

인터페이스를 제공하는 프로그래밍 인터페이스를 의미한다.

 

주로 운영체제 또는 응용프로그램이 하드웨어와 통신하여 하드웨어 장치의 기능을 제어 및 활용하도록 도와준다.

'IT > IT 지식' 카테고리의 다른 글

CI/CD 파이프라인  (0) 2024.06.09
SOAP API와 REST API 차이점  (0) 2024.05.31
REST, REST API, RESTful 정리  (0) 2024.05.30
API 기초 이해하기  (0) 2024.05.30
CLI와 GUI 차이점  (0) 2024.05.30

https://blog.wishket.com/블로그 참고

 

API는 손님(프로그램)이 주문할 수 있게 메뉴(명령 목록)을 정리하고, 주문(명령)을 받으면

요리사(응용 프로그램)와 상호작용하여 요청된 메뉴(명령에 대한 값)을 전달한다.

쉽게 말해, API는 프로그램들이 서로 상호작용할 수 있도록 도와주는 매개체로 볼 수 있다.

 


● API의 역할은 무엇일까?

1. API는 서버와 데이터베이스에 대한 출입구 역할을 한다.

: 데이터베이스에는 소중한 정보들이 저장되며, 모든 사람들이 해당 데이터베이스에 접근하면 안된다.

API는 이를 방지하기 위해 보유한 서버와 데이터베이스에 대한 출입구 역할을 하며, 허용된 사람만 접근성을 부여한다.

 

2. API는 애플리케이션과 기기가 원활하게 통신할 수 있도록 한다.

: API는 애플리케이션(스마트폰 어플 및 프로그램)과 기기가 데이터를 원활히 주고받을 수 있도록 돕는 역할을 한다.

 

3. API는 모든 접속을 표준화 한다.

: API는 모든 접속을 표준화하기 때문에 기계/운영체제 등과 상관없이 누구나 동일한 엑세스를 얻을 수 있다.

쉽게 정리하자면, API는 범용 플러그처럼 작동한다고 볼 수 있다.

 

액세스의 뜻
액세스는 기본적으로 '접근'이라는 의미를 가지고 있다.
무언가에 접근할 수 있는 권한 및 방법을 의미하는 단어로 사용된다.
IT 분야에서는 데이터나 시스템, 네트워크 등에 접근하는 것을 가르킨다.
넓은 의미로는 장소, 자원에 접근하여 이용할 수 있는 권한을 포괄적으로 표한하는 요어로 사용된다.

 


● API 유형은 어떤게 있을까?

1. private API

: private API는 내부 API로 회사 개발자가 자체 제품과 서비스를 개선하기 위해 내부적으로 발행한다.

내부적으로 사용하기 때문에 3자에게 노출되지 않는다.

 

2. public API

: public API는 개방형 API로 모두에게 공개된다. 누구나 제한 없이 API를 사용할 수 있다.

 

3. partner API

: partner API는 기업 데이터 공유에 동의하는 특정인들만 사용할 수 있다.

보통 비즈니스 관계에서 사용되는 편이며, 파트너 회사간에 소프트웨어 통합을 위해 사용되기도 한다.

 


● API를 사용하면 좋은점!

API를 사용하면 다양한 이점들이 있다.

Private API을 사용하면 개발자들이 애플리케이션 코드를 작성하는 방법을 표준화 함으로써

간소화되고 빠른 처리를 가능하게 한다. 또한, 소프트웨어 통합 시 개발자들 간의 협업을 용이하게 만들어 준다.

 

Public API와 Partner API를 사용하면 기업은 타사 데이터를 활용하여 브랜드 인지도를 높일 수 있다.

뿐만 아니라, 고객 데이터베이스를 확장하여 전환율까지 높일 수 있다.

'IT > IT 지식' 카테고리의 다른 글

CI/CD 파이프라인  (0) 2024.06.09
SOAP API와 REST API 차이점  (0) 2024.05.31
REST, REST API, RESTful 정리  (0) 2024.05.30
API 종류  (0) 2024.05.30
CLI와 GUI 차이점  (0) 2024.05.30

https://louis-j.tistory.com/entry/ 블로그 참조

CLI(Command Line Interface)GUI(Graphical User Interface)
사용자 인터페이스의 두가지 유형이다.

 

CLI(Command Line Interface)

CLI는 텍스트 기반 인터페이스로 키보드를 통해 명령어를 입력하여 컴퓨터와 상호작용한다.

주로 프로그래밍, 서버 관리, 시스템 관리 등과 같은 고급 작업에 사용된다.

 

명령어와 구문이 복잡할 수 있고 학습 곡선이 높을 수 있지만,

배치 작업을 자동화하고, 복잡한 작업을 빠르게 처리할 수 있다는 장점이 있다.

CLI는 GUI보다 시스템 자원을 적게 사용하므로, 시스템이 느려질 가능성이 적다.


GUI(Graphical User Interface)

GUI는 그래픽 기반 인터페이스로 마우스를 통해 메뉴, 버튼, 아이콘 등의 그래픽 요소를 클릭하여 컴퓨터와 상호작용한다.

GUI는 일반적인 사용자들에게 보다 직관적이고 친숙하다.

그래픽 요소를 사용하여 사용자가 쉽게 컴퓨터와 상호작용할 수 있도록 지원하며, 주로 응용프로그램에서 사용된다.

GUI는 보통 시각적인 요소가 많기 때문에, CLI보다 더 많은 시스템 자원을 사용할 수 있다.


CLI와 GUI 모두 각각의 장단점이 있으나 사용하는 상황에 따라 선택이 필요하다.

일반적으로 고급작업을 수행하거나 자동화가 필요한 경우엔 CLI를

보다 직관적이고 시각적인 요소가 필요한 경우 GUI를 사용한다.

 


CLI (Command Line Interface)

 

CLI는 Command-Line-Interface의 약자로, 입출력만을 이용하여 컴퓨터와 소통한다.

컴퓨터는 다양한 입력(input)과 출력(output)으로 이루어지며, 이를 I/O라 표기한다.

 

# 대표적인 CLI : Window의 cmd, Mac과 리눅스의 terminal

# 키보드와 명령어로 사용 가능하다.

# 입출력만으로 컴퓨터를 조작한다.

 


GUI (Graphical User Interface)

GUI는 Grapic User Interface의 약자로 사용자가 눈에 보이는 아이콘을 이용하여 컴퓨터를 조작한다.

우리가 흔히 사용하는 바탕화면 폴더 아이콘을 더블클릭하고 마우스를 이용해서 폴더를 생성하는 모든것이 해당된다.


편리하고 우리에게 익순한 GUI를 사용하면 되는데 왜??
개발자들은 CLI와 친해져야 할까?

 

 

GUI의 편리함도 크지만, CLI는 여러 측면에서 유리하다.

예를 들면 AWS를 사용할 경우 원격서버에 접속해야하는 일이 발생하는데,

직접 서버 컴퓨터에 찾아갈 필요 없이 효율적으로 CLI를 이용해 접속하고 데이터를 활용할 수 있다.

 


※ 활용 명령어

명령어 설명
pwd (print workin directory) 현재 위치 확인
mkdir [폴더명] (make directories) 폴더 생성
ls (list) 특정 폴더에 포함된 파일이나 폴더 확인
ls -l 파일의 포맷을 전부 표현하라는 의미
# drwxr-xr-x // 앞의 d는 directory를 의미한다.
# -rw-r--r-- // 앞의 -는 file을 의미한다.
ls -a all 이라는 의미로, 숨겨진 폴더나 파일까지 포함하여 출력한다.
open . (현재 위치 폴더) open [폴더명] (해당 폴더) 폴더 열기
cd [폴더명] 또는 cd [경로] (change directory) 폴더 진입
touch [파일명.확장자] 파일 생성
cat [파일명.확장자] 파일 내용 터미널에 출력
rm (remove) 파일 삭제
rm -rf 폴더 삭제시 
# 옵션 r (recursive) 폴더를 지울 때 사용
# 옵션 f (force) 질문을 받지 않고 지울 때 사용
mv (move) 폴더나 파일의 이름 변경 또는 위치 이동
# mv [파일명.확장자 또는 폴더명] [폴더명] 폴더/파일을 해당 폴더로 옮긴다.
# mv [파일명.확장자 또는 폴더명] [변경할 이름]
cp (copy) 폴더나 파일 복사

 


●CLI 와 GUI 의 장단점

- CLI의 장점

  • GUI 보다 정확하고 섬세하다.

 

- CLI의 단점

  • CLI는 명령어에 대한 지식이 필수적이다.
  • 오타 하나가 굉장히 큰 차이를 만들 수 있다.
  • 명령어들이 직관적이지 않다.

- GUI의 장점

  • 사용법이 쉬워 누구나 쉽게 배우고 사용할 수 있다.
  • 매우 직관적이고 학습 곡선도 높지 않다.
  • 명령어들을 암기해야 할 필요가 없으며, 복잡하지 않다.

 

- GUI의 단점

  • CLI에 비해 세밀함이 떨어진다.
  • 어떤 일련의 절차들을 반복하거나 복사하기 힘들다.

● CLI와 GUI의 차이점

Category CLI GUI
기본사항 명령어를 통한 입력 창, 스크롤, 이미지 등을 통한 입력
사용장비 키보드 마우스, 키보드
메모리 소비 낮음 높음
속도 빠름 느림
작업 수행 난이도 어려움 쉬움

 

'IT > IT 지식' 카테고리의 다른 글

CI/CD 파이프라인  (0) 2024.06.09
SOAP API와 REST API 차이점  (0) 2024.05.31
REST, REST API, RESTful 정리  (0) 2024.05.30
API 종류  (0) 2024.05.30
API 기초 이해하기  (0) 2024.05.30

+ Recent posts