오늘은 Day 10
2023년 04월 24일
오늘 월요일 헣 아직도 감기 진행중 ㅠㅠ
오늘 새로운 페어분과 두번째 페어였다~ 역시 잘하시는 분들이랑 못하는 사람이랑
페어를 시켜주시나보다 ㅋㅋㅋ 난 완전 코딩 신생아인디 페어분 넘나 잘하시는디?!
어버버 해서 너무 죄송했다 열심히 해야겠다....감기도 빨리 나아지면 좋겠다
더욱 건강 관리 컨디션 관리에 힘써야지!!
CLI 란?
Command-Line Interface
- 컴퓨터와 사용자 간 상호작용하는 인터페이스 중 하나입니다.
- CLI는 텍스트 명령어를 사용하여 사용자가 컴퓨터와 상호 작용할 수 있게 해주는 텍스트 기반 인터페이스입니다.
- CLI는 GUI(Graphical User Interface)와 대비되며, GUI는 그래픽과 아이콘 등을 사용하여 사용자가 컴퓨터와 상호 작용할 수 있게 해줍니다.
- CLI는 대개 프로그래머나 전문가를 위한 인터페이스로 사용되며, 작업을 자동화하고 더욱 빠르게 처리할 수 있습니다.
CLI 명령어는 운영체제에 따라 다르지만, 일부 공통적인 명령어가 있습니다.
- cd: 디렉토리 변경
- ls: 디렉토리 내 파일 및 폴더 목록 표시
- mkdir: 디렉토리 생성
- rm: 파일 삭제
- rmdir: 디렉토리 삭제
- cp: 파일 또는 디렉토리 복사
- mv: 파일 또는 디렉토리 이동 또는 이름 변경
- cat: 파일 내용 출력
- grep: 파일 내에서 문자열 검색
- ping: 네트워크 호스트에 대한 연결 상태 테스트
- ifconfig/ipconfig: 네트워크 인터페이스 정보 표시
- ssh: 원격 서버에 로그인
- scp: 원격 서버에 파일 복사
- tar: 파일 또는 디렉토리 아카이브 및 압축
- curl: 웹 페이지 또는 API 요청
- ps: 현재 실행 중인 프로세스 목록 표시
- kill: 프로세스 종료
- top: 시스템 리소스 사용량 모니터링
텍스트 에디터 nano
- nano는 CLI 환경에서 사용할 수 있는 간단한 텍스트 에디터입니다.
- nano는 일반적으로 리눅스 운영체제에서 많이 사용됩니다.
- nano는 키보드 단축키를 사용하여 파일을 편집할 수 있으며, 이는 다른 텍스트 에디터와 비교하여 더욱 직관적이고 쉽게 사용할 수 있도록 구성되어 있습니다.
더보기
nano를 실행하려면 터미널을 열고 "nano"를 입력한 다음, 엔터 키를 누르면 됩니다.
nano에서 파일을 열 때는 파일 경로와 파일 이름을 함께 입력해야 합니다.
예를 들어, "nano /home/user/file.txt"와 같은 명령어를 입력하면 "/home/user" 경로에 있는 "file.txt" 파일이 nano에서 열립니다.
nano에서는 Ctrl 키와 다른 키를 조합하여 다양한 작업을 수행할 수 있습니다.
예를 들어, Ctrl + X를 누르면 현재 파일을 저장하고 종료할 수 있습니다. Ctrl + O를 누르면 파일을 저장할 수 있고, Ctrl + W를 누르면 파일 내에서 검색할 수 있습니다.
Ctrl + K를 누르면 현재 커서 위치부터 텍스트를 잘라내고, Ctrl + U를 누르면 텍스트를 붙여넣을 수 있습니다.
nano는 기본적으로 사용하기 쉬우며, 빠르고 간편하게 파일을 편집할 수 있는 간단한 텍스트 에디터입니다.
패키지와 패키지 매니저
- 패키지는 소프트웨어의 실행 파일, 라이브러리, 설정 파일, 문서 등을 포함하는 소프트웨어 패키지입니다.
- 패키지는 소프트웨어를 설치, 업데이트, 제거하는 데 필요한 모든 파일을 포함하고 있으며, 일반적으로 운영 체제에서 지원되는 포맷으로 제공됩니다.
- 패키지는 소프트웨어를 쉽게 관리할 수 있도록 해주며, 종속성 문제를 해결하는 데도 사용됩니다.
- 패키지 매니저는 패키지를 관리하는 도구입니다.
- 패키지 매니저는 패키지를 검색, 설치, 업데이트, 제거하는 등의 작업을 수행할 수 있습니다.
- 패키지 매니저는 일반적으로 운영 체제에서 기본적으로 제공되며, 리눅스에서는 dpkg, rpm, pacman 등의 패키지 매니저가 있습니다.
- 패키지 매니저는 패키지를 관리할 때 종속성을 고려하여 다른 패키지를 필요로 할 경우 자동으로 설치합니다.
- 또한 패키지 매니저는 소프트웨어의 보안 업데이트를 자동으로 적용할 수 있으며, 시스템의 안전성과 보안을 유지할 수 있습니다.
- 패키지 매니저는 소프트웨어를 쉽게 설치, 업데이트, 제거할 수 있도록 해주므로, 일반 사용자뿐만 아니라 시스템 관리자와 개발자들도 널리 사용하고 있습니다.
Node.js
- Node.js는 구글 크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임입니다.
- Node.js는 자바스크립트를 서버 사이드에서 실행할 수 있도록 해줍니다.
- Node.js는 이벤트 기반, 비동기식 입출력 모델을 사용하며, 이를 통해 높은 처리 성능을 제공합니다.
- Node.js는 자바스크립트를 이용하여 서버 사이드 개발을 할 수 있으며, HTTP 서버, 웹 소켓 서버, RESTful API 서버, 블록체인 등 다양한 분야에서 사용됩니다.
- Node.js는 모듈 시스템을 사용하여 코드를 구성하며, 이를 통해 코드 재사용성과 유지보수성을 향상시킬 수 있습니다.
- Node.js는 npm(Node Package Manager)을 통해 패키지를 관리하며, 이를 통해 다른 개발자들이 만든 모듈을 쉽게 사용할 수 있습니다.
- Node.js는 또한 대규모 애플리케이션 개발을 위한 도구와 프레임워크도 많이 제공하고 있습니다.
- 대표적인 예로는 Express.js, Koa.js, Nest.js 등이 있습니다.
- Node.js는 크로스 플랫폼이므로, 윈도우, 맥, 리눅스 등 모든 운영 체제에서 사용할 수 있습니다.
- Node.js의 인기는 계속해서 증가하고 있으며, 현재 많은 기업에서 Node.js를 사용하여 서버 개발을 진행하고 있습니다.
더보기
Node.js 의 사용
- 웹 개발: Node.js는 HTTP 모듈을 제공하므로, 웹 서버를 쉽게 개발할 수 있습니다. 대표적인 웹 프레임워크로는 Express.js, Koa.js, Nest.js 등이 있습니다.
- API 개발: Node.js를 이용하여 RESTful API를 개발할 수 있습니다. 이를 위해 Express.js와 같은 웹 프레임워크와 함께 API 서버를 개발하는 것이 일반적입니다.
- 실시간 웹 어플리케이션 개발: Node.js는 웹 소켓을 지원하므로, 실시간 웹 어플리케이션 개발에 적합합니다. Socket.io와 같은 라이브러리를 이용하여 쉽게 개발할 수 있습니다.
- 데이터베이스 연동: Node.js는 다양한 데이터베이스와의 연동을 지원합니다. MongoDB, MySQL, PostgreSQL, Redis 등의 데이터베이스를 사용하여 데이터를 관리할 수 있습니다.
- 빌드 도구: Node.js를 사용하여 프론트엔드 자바스크립트 라이브러리나 프레임워크를 빌드하거나, 빌드 도구를 개발할 수 있습니다. 대표적인 빌드 도구로는 Grunt, Gulp, Webpack 등이 있습니다.
- IoT: Node.js는 실시간 처리와 비동기식 입출력 모델을 지원하기 때문에, IoT 애플리케이션에서도 사용됩니다. Node.js를 이용하여 하드웨어와 통신하는 라이브러리를 개발할 수 있습니다.
Node.js는 다양한 분야에서 사용되며, 쉽게 배울 수 있고 개발 생산성이 높은 장점을 가지고 있습니다. 또한, npm을 통해 다양한 패키지와 라이브러리를 사용할 수 있어서, 개발 시간을 단축할 수 있습니다.
npm(Node Package Manager)은 Node.js에서 사용되는 패키지 관리자입니다.
npm을 이용하면 다른 개발자들이 만든 패키지를 쉽게 설치하고 사용할 수 있습니다.
npm은 Node.js를 설치하면 함께 설치되며, CLI(Command Line Interface)에서 사용할 수 있습니다. npm을 이용하여 패키지를 설치하면, 해당 패키지를 사용할 수 있게 되며, 다른 패키지와 의존성을 가질 수 있습니다.
npm을 이용하여 패키지를 설치하는 방법은 다음과 같습니다.
- npm install <패키지 이름> 명령어를 실행하여 패키지를 설치합니다. 예를 들어, npm install express 명령어를 실행하면 Express.js 패키지를 설치할 수 있습니다.
- npm install <패키지 이름> --save 명령어를 실행하여 패키지를 설치하면서, 해당 패키지를 package.json 파일에 의존성으로 추가합니다. 이를 통해, 해당 프로젝트를 다른 환경에서 실행할 때, 의존하는 패키지를 쉽게 설치할 수 있습니다.
- npm install <패키지 이름> --global 명령어를 실행하여 패키지를 전역적으로 설치합니다. 이를 통해, 여러 프로젝트에서 해당 패키지를 공유하여 사용할 수 있습니다.
npm은 이외에도 다양한 기능을 제공합니다. 예를 들어, npm init 명령어를 실행하여 새로운 프로젝트를 생성하면, package.json 파일을 생성할 수 있습니다. 또한, npm update 명령어를 실행하여 설치된 패키지를 업데이트할 수 있습니다.
nvm(Node Version Manager)은 Node.js의 버전 관리를 도와주는 도구입니다.
Node.js는 버전별로 호환성이 다를 수 있기 때문에, nvm을 이용하여 프로젝트별로 Node.js의 버전을 관리할 수 있습니다.
nvm을 이용하여 Node.js를 설치하고, 버전을 관리하는 방법은 다음과 같습니다.
- nvm을 설치합니다. 설치 방법은 https://github.com/nvm-sh/nvm 에서 확인할 수 있습니다.
- nvm ls-remote 명령어를 실행하여, 설치 가능한 Node.js의 버전 목록을 확인합니다.
- nvm install <원하는 Node.js 버전> 명령어를 실행하여, 원하는 버전의 Node.js를 설치합니다. 예를 들어, nvm install 14.17.0 명령어를 실행하면, Node.js 14.17.0 버전을 설치할 수 있습니다.
- nvm use <설치한 Node.js 버전> 명령어를 실행하여, 프로젝트에서 사용할 Node.js 버전을 선택합니다.
- node -v 명령어를 실행하여, 현재 프로젝트에서 사용되는 Node.js의 버전을 확인할 수 있습니다.
Git은 분산 버전 관리 시스템(Distributed Version Control System)으로, 소스 코드의 변경 이력을 추적하고 관리하는 도구입니다.
Git은 다음과 같은 기능을 제공합니다.
- 코드 변경 이력의 추적: Git은 파일이나 디렉토리의 변경 내용을 추적하며, 각각의 변경 이력에 대한 메타 정보를 저장합니다.
- 분산 버전 관리: Git은 중앙 서버가 없이도 여러 개발자들이 분산된 환경에서 협업할 수 있도록 합니다.
- 브랜치 관리: Git은 브랜치(Branch)를 생성하고, 브랜치 간에 쉽게 전환할 수 있도록 합니다. 이를 통해 여러 개발자들이 동시에 다양한 작업을 수행할 수 있으며, 변경 이력을 병합(Merge)할 수 있습니다.
- 원격 저장소(Remote Repository) 연동: Git은 원격 저장소와 연동하여, 다른 개발자들과 협업할 수 있습니다. 이를 통해, 여러 개발자들이 동시에 프로젝트를 관리하고, 변경 이력을 공유할 수 있습니다.
Git을 이용하여 코드 변경 이력을 추적하고 관리하는 방법은 다음과 같습니다.
- git init 명령어를 실행하여, Git 저장소를 초기화합니다.
- git add <파일 이름> 명령어를 실행하여, 파일을 Staging Area에 추가합니다.
- git commit -m "<커밋 메시지>" 명령어를 실행하여, 변경 이력을 커밋합니다.
- git push <원격 저장소 이름> <브랜치 이름> 명령어를 실행하여, 변경 이력을 원격 저장소에 업로드합니다.
- 다른 개발자가 작성한 변경 이력을 가져오려면, git pull <원격 저장소 이름> <브랜치 이름> 명령어를 실행합니다.
Git은 이외에도 다양한 기능을 제공하며, Git을 이용하여 개발 프로젝트를 효율적으로 관리할 수 있습니다.