이번 포스팅에서는 사용자와 컴퓨터 또는 소프트웨어 간의 상호 작용을 위한 두 가지 주요 방법인 CLI와 웹 인터페이스에 대하여 공부를 해보고자 한다.
CLI(Command-Line Interface)
CLI는 텍스트 기반 인터페이스로, 사용자는 명령어를 입력하여 컴퓨터에게 작업을 지시한다.
주로 터미널 창, 명령 프롬프트 또는 콘솔 창을 통해 실행되며, 사용자는 명령어와 옵션을 입력하여 파일 및 폴더 조작, 프로그램 실행, 시스템 설정 등 다양한 작업을 수행할 수 있다.
CLI는 주로 개발자, 시스템 관리자 및 전문가들에게 사용되며, 명령어의 정확한 구문과 옵션을 알고 있어야 한다.
또한 CLI는 강력하고 유연한 인터페이스이지만, 비전문가에게는 사용이 어려울 수 있다.
웹 인터페이스(Web Interface)
웹 인터페이스는 그래픽 사용자 인터페이스(GUI)를 통해 사용자와 상호 작용한다.
웹 브라우저를 통해 액세스 되며, HTML, CSS, JavaScript 등의 웹 기술을 사용하여 구현되며, 사용자는 웹 페이지의 폼, 버튼, 링크 등을 통해 작업을 수행하고 결과를 확인할 수 있다.
웹 인터페이스는 일반 사용자에게 친숙하고 직관적이며, 복잡한 작업도 비교적 쉽게 수행할 수 있다.
또한 웹 인터페이스는 인터넷에 연결되어야 하며, 웹 서버와 통신하여 데이터를 주고받는다다.
작동 방식의 차이
CLI
- CLI는 텍스트 명령어를 입력하고 실행하는 방식으로 작동한다.
- 사용자가 명령어를 입력하면 컴퓨터는 해당 명령어를 해석하고 실행 결과를 텍스트로 반환한다.
- CLI는 명령어를 사용하여 특정 작업을 수행하며, 이는 주로 컴퓨터의 로컬 리소스에 직접 접근한다.
# 예시(Flask를 이용한 예시 코드)
import argparse
def main():
parser = argparse.ArgumentParser()
parser.add_argument("name", help="enter your name")
args = parser.parse_args()
print(f"Hello, {args.name}!")
if __name__ == "__main__":
main()
이 코드는 CLI를 이용해 실행할 때, python app.py Alice와 같이 커맨드라인 인자로 이름을 입력받아 "Hello, Alice!" 라는 결과를 출력한다.
웹 인터페이스
- 웹 인터페이스는 웹 브라우저를 통해 사용자가 입력한 데이터를 웹 서버로 전송한다.
- 웹 서버는 이 데이터를 받아 처리하고 결과를 생성하여 웹 페이지로 반환한다.
- 사용자는 웹 페이지에서 결과를 확인하고 필요에 따라 추가 작업을 수행할 수 있다.
- 웹 인터페이스는 클라이언트-서버 아키텍처에 기반하며, 사용자는 웹 브라우저를 클라이언트로 사용하여 서버와 통신한다.
# 예시(Flask를 이용한 예시 코드)
from flask import Flask, request
app = Flask(__name__)
@app.route("/")
def index():
return """
<form action="/hello">
<label>Enter your name:</label>
<input type="text" name="name">
<button type="submit">Submit</button>
</form>
"""
@app.route("/hello")
def hello():
name = request.args.get("name")
return f"Hello, {name}!"
if __name__ == "__main__":
app.run(debug=True)
이 코드는 웹 브라우저에서 http://localhost:5000 주소로 접속하면, 이름을 입력받는 폼이 표시되고, 제출하면 /hello URL로 요청이 전송된다.
/hello URL에서는 request.args를 이용해 입력받은 이름을 가져와 "Hello, {name}!" 을 반환한다.
결론적으로, CLI는 텍스트 기반의 인터페이스로 명령어를 입력하고 실행하는 방식으로 작동하며, 주로 터미널 창을 사용하는 반면, 웹 인터페이스는 그래픽 기반의 인터페이스로 웹 브라우저를 통해 사용자와 상호 작용하고, 웹 서버와 데이터를 주고받는 방식으로 작동한다.
'DevStudy' 카테고리의 다른 글
[Network] CDN(Content Delivery Network) (0) | 2023.06.10 |
---|---|
[WEB] 크로미움(Chromium) (0) | 2023.06.08 |
[Server] API & REST API (0) | 2023.06.04 |
[Network] 네트워크 연결 스토리지(NAS) (0) | 2023.06.04 |
[Network] 라우팅(Routing) (0) | 2023.06.01 |