● 오늘 공부한 것
- CLI (Command Line Interface)
- 컴퓨터가 상용화 되기전에, 개발자들은 컴퓨터와 소통하기 위해 프로그래밍언어를 통해서 소통해야했는데, 그 명령을 주로 터미널같은 CLI를 통해 소통했다.
- 터미널에서 입력하는 CLI 명령줄 대기모드는 프롬프트(promt)이다.
- 하지만, 컴퓨터가 상용화되면서 일반사람들은 소통이 어려워지게 되자, GUI가 탄생한 것이다.
- GUI(Graphical User Interface)
- 그래픽으로 표시된 아이콘, 그래픽으로 표시된 아이콘, 창, 버튼 등을 사용하여 사용자가 컴퓨터와 상호 작용할 수 있는 방법을 제공하는 시스템이다. GUI는 사용자가 마우스, 키보드 또는 터치스크린과 같은 입력 장치를 사용하여 프로그램을 실행하고 작동하는 방법을 제어할 수 있다.
- 이전에 사용되었던 CLI와는 대조적으로 비주얼적이고 직관적인 인터페이스를 제공한다. 사용자는 마우스를 사용하여 창을 이동하고 크기를 조정하고 버튼을 클릭하여 컴퓨터와 소통할 수 있다. 대부분의 컴퓨터 운영 체제는 GUI를 사용하여 사용자가 시스템과 상호 작용하도록 하며, 많은 소프트웨어 응용 프로그램도 GUI를 사용하여 사용자에게 직관적이고 편리한 사용자 경험을 제공하고 있다.
- Linux 명령어
- pwd : 현재의 위치가 어디인지 알려준다.
pwd
# DAEUNs-Macbook-Pro:~ kimdaeun$
- open ./ : 현재 디렉토리 파일을 열어준다.
- cd ~ : 홈디렉토리로 이동한다.
- mkdir : 디렉토리 즉, 폴더를 만들어준다.
mkdir helloWorld
- ls : 현재위치에 있는 폴더나 파일들을 보여준다.
- ls -a : 숨겨진 파일과 폴더까지 모두 보여준다.
- ls -l : 파일의 속성, 종류, 수정된 날짜, 용량 등 자세한 정보까지 보여준다.
- ls -al : 숨겨진 파일과 폴더의 상세내역을 다 보여준다.
ls
#Applications Downloads Pictures
#Creative Cloud Files Library Public
#Desktop Movies
#Documents Music
ls -al
#drwxr-xr-x@ 23 kimdaeun staff 736 2 8 20:54 도트
#drwxr-xr-x@ 14 kimdaeun staff 448 12 3 00:10 다은
#-rw-r--r--@ 1 kimdaeun staff 1008 1 26 18:50 강의url.rtf
#-rw-r--r--@ 1 kimdaeun staff 9363 1 6 21:46 자소서.rtf
#drwxr-xr-x@ 15 kimdaeun staff 480 2 24 10:56 계산기
#drwxr-xr-x@ 7 kimdaeun staff 224 2 22 15:15 니꼬쌤
위에서 보는 것처럼 d로 시작하면 디렉토리 즉, 폴더이고 -r로 시작하면 파일을 뜻한다.
- cd : 파일에 진입하게 해준다.
pwd
#/Users/kimdaeun/Desktop
cd ../
pwd
#/Users/kimdaeun
- touch : 파일을 생성해준다.
ls
# hello.txt
touch bye.txt
ls
# hello.txt bye.txt
- cat : 파일의 내용을 보여준다.
cat bye.txt
# 안녕ㅎ? 이건 bye 텍스트파일이야
- rm : 파일을 없애준다.
- rm -rf [폴더명] : 폴더를 없애준다.
ls
# bye.txt hello.txt hello
rm bye.txt
ls
# hello.txt hello
rm -rf hello
ls
# hello.txt
- mv [파일명] [디렉토리] : 파일을 다른 폴더로 이동한다.
- mv [파일명] [새파일명] : 파일의 이름을 수정해준다.
- mv [폴더명] [새폴더명] : 폴더의 이름을 수정해준다.
ls
# hello hello.txt bye bye.txt
mv hello.txt hello
ls
# hello bye bye.txt
mv bye goodbye
ls
# hello goodbye bye.txt
mv bye.txt goodbye.txt
ls
# hello goodbye goodbye.txt
- cp [파일명] [새파일명] : 파일을 복사해준다.
- cp -rf [폴더명] [새폴더명] : 폴더를 복사해준다.
ls
# bye.txt
cp bye.txt hello.txt
ls
# bye.txt hello.txt
ls
#hello
cp -rf hello bye
ls
# hello bye
- 관리자(root / )권한
- 절대 경로의 기준점인 루트 폴더(/)는 Linux의 관리자 영역이다.
- 일반 사용자의 권한으로는 어떤 폴더나 파일도 생성, 변경, 삭제할 수 없다.
- Linux 관리자의 가장 큰 특징은, 어떤 일이 있더라도 일반 사용자에게 관리자 권한(루트 권한)을 완전하게 넘기지 않는다.
- 사용자와 관리자를 명확히 분리하여 사용자의 실수로 발생할 수 있는 시스템 에러로부터 운영체제를 보호한다.
- sudo 는 관리자 권한을 획득하는 명령이다. 일시적으로 관리자 권한을 획득해 원하는 명령을 내릴 수 있다.
- 패키지
- 패키지는 라이브러리와 유사한 개념으로, 라이브러리가 개발을 위해 사용되는 코드의 묶음이라고 치면, 패키지는 배포를 위해 사용되는 코드의 묶음이라고 볼 수 있다.
- 패키지 매니저는 이러한 패키지의 설치, 변경, 삭제 등, 관리를 편하게 해주는 도구를 말한다.MAC의 대표적인 패키지 매니저에는 brew가 있다. 마치 핸드폰에서 내가 원하는 앱을 설치하고, 업데이트하고, 삭제할 수 있는 것과 같다.
- brew 자체 업데이트 : brew update
- 업데이트가 필요한 파일 조회 : brew outdated
- 프로그램 업데이트 : brew upgrade 프로그램이름
- 프로그램 검색 : brew search 검색어
- 프로그램 정보 확인 : brew info 프로그램이름
- 프로그램 설치 : brew install 프로그램이름
- 프로그램 삭제 : brew uninstall 프로그램이름
- 설치된 프로그램 보기 : brew list
- nvm
- nvm은 node.js의 버전을 관리해주는 시스템이다.
- nvm은 버전관리용이고 npm은 Node.js 생태계의 패키지 매니저다.
#nvm아 내 버전과 받았던 버전 보여줘
nvm ls
#nvm아 그 버전 좀 사용하자
nvm use 버전
# 현재의 버전과 이전에 다운 받았던 버전들을 보여준다.
-> v18.14.2
system
default -> lts/* (-> v18.14.2)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v18.14.2) (default)
stable -> 18.14 (-> v18.14.2) (default)
lts/* -> lts/hydrogen (-> v18.14.2)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.19.1 (-> N/A)
lts/hydrogen -> v18.14.2
- package.json
- 만든 기능들, 프로젝트들을 배포하기 전에, 이 프로젝트가 돌아가기 위해서는 어떤 모듈이 필요한지 사람들에게 적는 명세서라고 생각하면 된다. 장바구니 같은 느낌. 떡볶이를 만들고 싶으면, 떡, 파, 물엿, 오뎅, 물, 라면사리 가 필요한 것처럼, 이 프로젝트가 돌아가기 위해서 어떤 준비물이 필요한지 적는 것이다.
- 명세서는 npm init을 통해 package.json (=준비물리스트)를 만든다.
- 준비물 리스트는 개필요한것과 덜필요한 것으로 나뉘는데, dependency(필수요소), devDependency(잇으면 좋고)로 나뉜다.
#원하는 디렉토리에 package.json 만들어줘
npm init
ls
# package.json
# package.json 내용좀보자
cat package.json
#실행결과는 아래 사진
- git & github
- git : Git이란 개발자의 코드를 효율적으로 관리하기 위해서 개발된 ‘분산형 버전 관리 시스템’ 이다.
- github : Github은 Git Repository를 관리할 수 있는 클라우드 기반 서비스이다.
아래는 깃과 모듈 패키지 개념이 이해가 안돼서 따로 포스팅했다.
● Git & Github
● fork , clone git fork : 다른 사람의 레파지토리를 내 레파지토리에 가져오는 것 github 페이지에서 쉽게 가능하다 git clone : 그 레파지토리를 내 데스크탑에 가져오는 것 (HTTPS 나 SSH 프로토콜로 가
ddaeunbb.tistory.com
● 모듈과 패키지 도대체 그게 뭔데? 뭐냐고 걔
● 모듈 - 모듈(Module)은 프로그래밍에서 코드를 여러 개의 독립적인 단위로 분리하여 작성하고 관리하는 방법 중 하나이다. 모듈은 일반적으로 관련된 코드들을 그룹화하고, 다른 코드와 분리하
ddaeunbb.tistory.com
● 끝맺음
- 느낀점
- 아니 뭐야 시간 뭐예요 이거뭔데요
- 📍 수업이외 학습
- 깃공부..
- 모듈 패키지 공부. . .
- 알고리즘 다시풀기