[10] Go 설치와 맥OS 디렉터리

SeoChanhee·2020년 10월 16일
0
post-thumbnail

다른 언어를 공부해보는 것이 이미 알고 있는 언어를 더 잘 이해하는 데에도 도움이 된다고 하여 호기심에 Go 언어 기초 강의를 들어보았다. 강의 가장 처음에 Go의 특징에 대해 설명해주면서 Go가 아주 빠르다는 것을 보여주었다. 데이터를 끌어오는 속도를 파이썬과 비교하는 것을 보여주었는데 Go의 속도는 파이썬과 비교도 할 수 없을 정도로 정말 빨랐다.
그 신기함에 이끌려 바로 설치를 진행했다. 사용 환경이 좀 특이해서 처음에는 설치 과정이 이해가 안 갔지만, 덕분에 방법을 찾으며 맥 OS의 디렉터리까지 공부할 좋은 기회가 되었다.

GOROOT와 GOPATH

특이하게도 Go는 실제로 설치가 되는 GOROOT 경로와 Go의 프로젝트를 진행할 GOPATH 경로로 나누어져 있다. 콘솔에서 go env라는 명령어로 확인할 수 있다.

GOROOT

나는 Go 사이트에서 pkg 파일을 다운받아 설치했다. 그대로 설치하면 Go 언어는 /usr/local/go에 설치되며 이 경로가 바로 GOROOT이다.

GOPATH

GOPATH는 Go 언어로 된 프로젝트를 사용하거나 개발할 때 사용할 워킹 디렉터리를 가리키는 환경변수다.

출처: Go 언어 설치 - Outsiders's Dev Story

GOPATH는 변경해서 사용 가능하지만 Go에서 의도한 대로 모든 Go 프로젝트는 하나의 경로에서 작업하는 것이 좋을 것 같다. 매번 경로를 수정해서 사용하기에는 너무 번거로울 것이다. (따로 변경하지 않으면 GOPATH 경로는 ~/go이다.)


맥OS 디렉터리

디렉터리 구조

macOS의 파일 시스템의 기본 디렉터리 구조는 표준 디렉터리유닉스-고유 디렉터리로 나눌 수 있다.

1. 표준 디렉터리

루트(root) 디렉터리에서 숨겨지지 않은 폴더(파일명이 한글 혹은 대문자로 시작한다)가 표준 디렉터리이다. 라이브러리, 사용자, 시스템과 응용 프로그램이 그 폴더입니다.

이 디렉터리는 maxOS X가 제공하는 앱이나 사용자가 설치한 앱, 그 외 프로그램을 사용하면서 생성한 파일들을 저장하는 곳입니다. 맥 사용자라면 아주 친숙한 폴더들입니다.

2. 유닉스-고유 디렉터리

root 디렉터리에서 숨겨진 시스템 폴더(파일명이 소문자로 시작한다)가 유닉스-고유 디렉터리이다. 애플에서는 일반 사용자가 알 필요 없는 파일이나 디렉터리를 Finder 등 몇몇 사용자 인터페이스에서 숨긴다고 한다.

  • /bin : 필수적인 ‘명령줄 (command-line)’ ‘실행 파일 (binaries)’ 을 담고 있는 곳입니다. 보통 ‘명령줄’ 에서 이 실행 파일 이름을 쳐서 실행하게 됩니다.
  • /dev : ‘보조 하드웨어 장비’ 와 같은 필수적인 ‘장치 파일 (device files)’ 을 담고 있는 곳입니다.
  • /etc : 사용자 고유의 설정 파일을 담는 곳입니다.
  • /sbin : 필수적인 시스템 실행 파일을 담고 있는 곳입니다.
  • /tmp : 앱이나 시스템에서 생성한 임시 파일들을 담는 곳입니다.
  • /usr : 필수적이지는 않은 ‘명령줄 실행 파일’ 이나 라이브러리, 헤더 파일, 그리고 기타 자료들을 담는 곳입니다.
  • /var : ‘log (로그)’ 파일 및 ‘변수 값’ 을 가지고 있는 파일들을 담는 곳입니다.

이번 기회에 아무 생각 없이 시키는 대로 사용했던 폴더들의 역할을 알 수 있게 되어서 좋다. 더 자세한 내용은 여기에서 볼 수 있다.


디렉터리 경로

'/' : 루트 디렉터리

루트 디렉터리에는 안 좋은 추억이 있어서 잊을 수가 없다. 생활코딩으로 리눅스 공부를 하던 중 egoing님께서 rm -rf /는 모든 걸 삭제하기 때문에 절대 쓰지 말라고 하셨다. 멍청한 나는 폴더 내부의 모든 파일을 삭제한다는 건 줄 알고 폴더를 만들고 그 안에 파일 2개를 만들었다. 그리고 폴더 안으로 들어가 당당하게 rm -rf /를 시전했다.
콘솔 창에 엄청 빠르게 삭제되는 파일 목록들이 올라오기 시작했다. 등에서는 식은땀이 흘렀다. 삭제가 진행되는 걸 멈추는 방법조차 몰라서 멈추기 위한 방법을 인터넷에 검색하는 동안에도 파일은 삭제되고 있었다. 결국 콘솔을 강제 종료해서 멈추기는 했지만 이미 너무나 많은 파일이 삭제되어 있었다. 기본 터미널조차 제대로 동작하지 않았다. 복구 방법을 열심히 찾아보고 시도했지만 할 수 없었다. 포기하고 맥OS를 다시 설치했다.
그래도 큰 깨달음을 얻었다. 아, /는 루트구나! rm -rf /는 뿌리부터 파일을 제거하는구나!

'~' : 홈 디렉터리

~홈 디렉터리라는 것은 알고 있었지만, 그 이라는 것이 무엇인지 알지 못했다.

‘홈 (home) 디렉터리’ 는 ‘다중 사용자’ 환경에 대한 사용자 파일을 저장하고 관리하는 디렉터리를 말합니다. 여기서 ‘다중 사용자 환경’이라는 것은 로그인한 사용자마다 별도의 홈 디렉터리가 생긴다는 것을 의미합니다.

'다중 사용자 환경'에서 /Users/username이라는 경로를 가지는 것이다. 당연하지만 또한 루트 경로 안에 있었다. 이를 축약해서 ~로도 쓰는 것이고.




더 공부할 내용

  1. 유닉스-고유 디렉터리 폴더들의 역할 공부하기(macOS: 파일 시스템 (APFS) 의 유닉스-고유 디렉토리 알아보기)


출처: macOS: 파일 시스템 (APFS) 의 기본 디렉토리 구조 - xho95's Swift Life,
macOS: 파일 시스템 (APFS) 의 유닉스-고유 디렉토리 알아보기 - xho95's Swift Life

0개의 댓글