soft IT life
CS 기초 지식 본문
ssh란?
- secure shell의 약자.
- 컴퓨터 네트워크를 통해 원격으로 다른 컴퓨터에 안전하게 접속하고 데이터를 전송하기 위한 프로토콜 및 이를 구현하는 프로그램.
- SSH는 원격으로 다른 컴퓨터에 접속하여 해당 컴퓨터의 shell을 사용하여 명령어를 실행하거나 파일을 관리하기에 CLI에서 작업을 하게 된다. 기본포트 22번.
- shell이란? 운영체제와 사용자 간에 상호 작용할 수 있도록 해주는 프로그램 또는 인터페이스. 사용자는 shell을 통해 운영 체제의 기능을 활용하고 명령어를 입력하여 시스템을 제어할 수 있다.
- 터미널을 이용하여 명령어를 입력하고 실행하는 것 -> 해당 운영체제의 shell을 사용하는 것이다.
- 자주 사용되는 프로그램 putty, xshell, mobaxterm
remote ssh?
- 원래는 원격으로 접속하여 vim을 사용해서 해당 컴퓨터내의 소스코드나 파일을 편집하곤 했지만, VSCode를 이용해서 손쉽게 파일을 편집하는 것
- local컴퓨터에서 원격으로 작업하는 컴퓨터내에 VSCode Server를 설치하고 동작에 필요한 Extension 설치 후 마치 Local에서 하듯 코드 개발, 실행, 테스트 등이 가능하다.
WSL2?
- 'Windows Subsystem for Linux 2'
- windows 환경에서 Linux를 실행하기 위한 기술. window와 linux를 통합하여 윈도우 운영체제에서 리눅스 명령어와 응용 프로그램을 실행할 수 있도록 해준다. -> 윈도우 사용자가 리눅스 기반의 개발 및 환경을 편리하게 이용할 수 있게 하는것
- 가상화 기술을 사용하여 Linux 커널을 호스트 Windows OS 위에서 실행한다.=
Polling / Webhooks?
Polling은 클라이언트가 주기적으로 서버에 데이터를 요청하는 것(일정한 주기), Webhooks는 서버에서 이벤트 발생 시 클라이언트로 데이터를 자동으로 전송하는 방식(실시간성).
- Polling
- 주기적으로 데이터를 업데이트 하려는 목적으로 사용.
- 일정한 주기마다 서버에 데이터를 요청.
- 구현이 비교적 간단/불필요한 요청이 발생할 수 있음. 실시간성 떨어짐
- Webhooks
- 클라이언트가 데이터를 요청하지 않고, 서버에서 클라이언트로 데이터를 자동으로 전송하는 방식
- 특정 이벤트가 발생 했을 때 호출될 엔드포인트(URI)를 등록해두고, 이벤트가 발생하면 서버에서 클라이언트로 데이터를 보내주는것.
- 실시간성 높음, 불필요한 요청이 없음/구현 복잡, 클라이언트는 직접 엔드포인트를 작성해야함.
라이브러리와 프레임워크의 차이?
라이브러리는 도구상자. 필요할 때 가져와 사용할 수 있는 독립적인 기능 모음.
프레임워크는 에플리케이션의 구조를 정의하고, 개발자가 어떻게 코드를 작성해야할지에 대한 규칙이 표준화 되어있음.
- 라이브러리
- 특정 기능에 대한 코드모음. 일반적으로 독립적으로 사용이 가능. 필요한 기능을 직접 필요할 때만 호출하여 사용.
- 개발자는 필요한 기능을 선택적으로 사용한다.
- 코드의 흐름을 개발자가 제어한다.
- 프레임워크
- 특정 목적을 가진 application을 개발하는 데 필요한 틀과 규칙을 제공.
- application의 전체 구조가 정의되어 있고, 개발자가 표준화된 규칙에 따라 코드를 작성하도록 유도된다.