순간을 기록으로

[코드스테이츠] 백엔드 부트캠프 6일차 본문

코드스테이츠 백엔드 부트캠프

[코드스테이츠] 백엔드 부트캠프 6일차

luminous13 2022. 5. 2. 19:52

[회고]

오늘은 리눅스와 CLI 사용법에 대해 배웠다. 일반적으로 대부분의 사용자는 GUI가 있는 personal 컴퓨터를 사용한다. 하지만 서버로 사용되는 컴퓨터의 경우 24시간 작동해야 하기 때문에 성능을 잡아먹는 GUI(그래픽 요소를 처리하면 램을 많이 사용한다)보단 CLI 방식을 많이 사용한다. 그래서 아마존 데이터 센터를 보면 GUI를 조작하는 IO장치가 없다.

 

IO장치가 없는 서버 컴퓨터

 

백엔드 개발자는 서버를 자주 접하고 다루기 때문에 CLI에 익숙하면 좋다. CLI는 GUI보다 생산성과 자동화에 있어 좋다. mkdir을 이용하면 폴더 1000개 만드는데 10초도 안 걸린다..!

 

CLI를 배운 후에는 패키지와 패키지 매니저에 대해 배웠다. 패키지는 프로그램이 정상 설치되고 동작하기 위해 필요한 모든 파일을 압축한 파일이다. 프로그램을 하나하나 다운로드하기보다는 패키지를 통해 다운로드하면 나중에 프로그램 관리(업데이트 등)를 하기가 더 쉽다. 이러한 패키지는 패키지 매니저를 이용해 다운로드할 수 있다. 우분투의 경우 패키지 매니저로 apt이 있고 Mac Os의 경우 brew가 있다.

 

그다음에는 사용 권한과 사용자에 대해 학습했다. 폴더와 파일에는 각각 사용권한과 소유자가 있다. 권한에는 읽기(read), 쓰기(write), 실행(execute) 3가지 권한이 있고, 사용자의 경우 소유자, Group, other가 있다. 사용권한과 사용자는 CLI에서 chmod 명령어를 사용해서 설정할 수 있다.

 

마지막으로 환경변수에 대해 학습했다. 환경변수란 환경에 따라 프로그램의 동작에 영향을 미치는 변수를 말한다. 환경변수는 지역 환경변수와 전역 환경 분수로 분류된다. 지역 환경변수는 특정 사용자만 사용할 수 있는 반면, 전역 환경변수는 모든 사용자가 사용할 수 있다. 또한 터미널 창에서 그냥 입력하면 해당 터미널 창이 닫히면 변수가 사라지지만, 지역변수의 경우. zshrc(또는. bashsrc) 파일에 입력하고 저장하거나 전역 환경변수의 경우 맥에서 /etc/profile파일에 입력하면 영구적으로 사용할 수 있다.

 


[CLI]

  • GUI(Graphic User Interface): 그림을 사용하여 직관적으로 컴퓨터를 제어할 수 있는 방식
  • CLI(Command Line Interface):그림을 사용하지 않고 명령어를 사용하여 컴퓨터를 제어하는 방식
    • GUI보다 배우기 어렵지만 생산성이 높고 자원들 덜 잡아먹는다.
  • 프롬프트(Prompt): 컴퓨터가 입력을 기다리고 있음을 알려주는 표시

 

  • rm + [파일명]: 파일을 삭제한다
  • rm -rf [디렉토리명]: 디렉터리를 삭제한다
    • -r: 반복적인 속성
    • -f: 강제
  • mv + [폴더나 파일 이름] + [도착 폴더 이름]: 폴더나 파일을 다른 폴더로 옮깁니다.
  • 컴퓨터가 파일을 옮기는 원리
    • 1. 파일의 임시 저장한다.
    • 2. 원래 파일/폴더를 삭제한다.
    • 3. 도착 폴더에 임시저장을 사용해서 새로운 파일/폴더를 생성한다.
  • 컴퓨터가 파일을 복사하는 원리
    • 1. 파일을 임시 저장한다.
    • 3. 도착 폴더에 임시저장을 사용해서 새로운 파일/폴더를 생성한다.
  • cp [원본 파일] [새로운 파일 이름]: 파일을 복사합니다.
  • cp -rf [원본 폴더] [새로운 폴더 이름]: 폴더를 복사합니다.
  • ~:홈디렉터리, 사용자 폴더 경로 (절대경로, /User/kchs94)
  • /: 루트 디렉토리
  • .: 현재 디렉터리(상대 경로)
  • ..: 상위 디렉터리(상대 걍로)

 


[관리자 권한과 경로]

  • 배경: 시스템 보호
  • 관리자: 프로그램 설치, 변경, 삭제 권한을 가진다.
  • 사용자: 프로그램 실행 권한만 가진다.

 

  • sudo: 리눅스 환경에서 사용자는 'sudo'를 사용해서 일시적으로 프로그램을 설치, 변경, 삭제할 수 있는 권한을 빌려 쓸 수 있다.
  • 절대 경로: 루트 디렉토리(/)를 기준으로 특정 파일이나 폴더 위치를 나타낸다.
  • 상대경로: 현재 위치(.)를 기준으로 특정 파일이나 폴더 위치를 나타낸다.
  • ./: 현재 폴더 안
  • 루트 디렉터리
    • 일반 사용자의 권한으로 설치, 변경, 삭제를 할 수 없는 영역
  • vim vs nano
    • 터미널 텍스트 에디터
    • nano는 사용 편하지만 vim을 제대로 학습하면 강력하다.

[패키지와 패키지매니저]

  • 패키지
    • 프로그램을 설치하고 동작하는데 필요한 모든 파일을 압축한 파일
  • 패키지 매니저
    • 패키지를 설치하는 프로그램
    • 패키지를 관리한다.(설치, 업데이트, 변경 등)
    • 우분투: apt
    • Mac: brew
      • brew search 패키지명: 해당 이름을 가지는 패키지를 찾는다
      • brew install 패키지명: 패키지를 설치한다.
      • ...

[사용권한]

  • 각 파일이나 폴더에는 사용 권한과 소유자가 있다. 
  • d: 디렉토리를 의미한다.
  • -: 파일을 의미한다.
  • rwxr-xr-x
    • 소유자:읽기, 쓰기, 실행
    • Group: 읽기, 실행
    • other: 읽기 쓰기

[chmod]: 사용 권한을 변경한다.

chmod 744 hello.java
  • 7: read, write, execute
  • 4:read only

[환경변수]

환경변수란 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임이다.

 

임시로 환경변수 적용하기 - Mac

[지역 환경변수 임시 적용]

Application=hello

[전역 환경변수 임시 적용]

export string="this is test"
  • 등호 옆에 공백이 없어야 합니다.
  • 값에 공백이 있을 경우 따옴표로 묶어야 합니다.

[지역/전역 환경변수 값 확인하기]

 

echo $spring
echo $string

환경변수 영구 적용하기 - mac

[지역 환경변수 영구 적용]

  1. 홈디렉토리(~)에서 .zhsrc/에 환경변수 입력하기
  2. source .zshrc로 변경내용 업데이트하기
  3. echo로 출력하기

 

[전역 환경변수 영구 적용]

  1. /etc/profile 파일 권한을 변경하기(sudo chmod 777 /etc/profile)
  2. echo로 출력하기

 

[export로 영구 환경변수 조회하기]

Comments