회사내에서 인턴과 이야기하다가 redirection 와 PIPE 라는 용어를 설명하게 되었다.

리다이렉션이라는 컴퓨터 용어가 여러가지 있는데(HTTP에서도 HTTP status 301, 302 도 redirection 이라고 부른다.) 그 중 운영체제에서 사용되는 용어는 https://ko.wikipedia.org/wiki/%EB%A6%AC%EB%8B%A4%EC%9D%B4%EB%A0%89%EC%85%98 이런 의미가 있다. 

일반적으로 프로그램  >> 파일명,  프로그램 > 파일명  으로 많이 사용된다. 이 리다이렉션은 윈도우, 리눅스, 맥 모두 사용가능하다.

dir >> filelist.txt    또는   dir > filelist.txt    이런 식으로 해서 dir 가 콘솔로 나오는 결과를 따로 저장할 수 있다.

>> 과 > 의 차이는  >> 은 파일이 존재하는 경우. 기존 파일뒤에 추가하는 형태이고   > 는 기존파일이 있으면 지우고 추가한다. 


PIPE의 경우 프로그램 사이에서 사용할 수 있으며 한 프로그램의 결과가 다른 프로그램의 입력으로 사용된다. 윈도우즈에서는 지원하지 않는다.
ps aux | grep nginx 
이런 식으로 사용한다. 

 리눅스 서버에 내가 만든 서버를 올릴려고 할 때, 어느 경로에 올려야 하는지 참 고민되게 한다. 그리고 로그파일을 만들게 되면 이 것은 어디에다 올려야 하는지 고민하게 만든다. 이러한 것이 표준이 있긴 한 것 같다. 이 표준을 FHS(Filesystem Hierachy Standard) 라 하는 것 같다.



https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC%EC%8B%9C%EC%8A%A4%ED%85%9C_%EA%B3%84%EC%B8%B5%EA%B5%AC%EC%A1%B0_%ED%91%9C%EC%A4%80


내 경우 아래와 같이 이용한다. 


*  /opt  : 파이썬 같은 패키지를 다시 컴파일 해서 설치하는 경우(apt-get install 이 아닌, build 부터 하게 되는 경우에 한해서..)로 넣는 편이다. 

* /var/log/ : 로그파일, 일반적으로 /var/log/nginx,  /var/log/uwsgi 처럼 거기에 맞는 폴더를 생성하는 편이다.

* /etc : 환경설정파일, 그래서 nginx 환경설정 파일은  /etc/nginx/ 내에 존재 한다. 

* /usr/share/ : http 서비스를 이용하는 경우, 보통 nginx 를 이용하는 경우 보통 /user/share/nginx 아래에 둔다. uwsgi 서비스도 결과적으로 nginx 를 사용하기 때문에 여기에 둔다. 



그리고 공부하면서 알게 된 것..

* /var/run/ :  daemon 파일,  pid 파일을 여기다 넣으면 좋을 것 같다. (uwsgi 가 돌면서 생성하는 daemon 을 넣으면 좋을 것 같다.) 

* /etc/opt/  :  /opt/ 에 설치된 프로그램에 대한 설정파일. nginx 를 컴파일 해서 설치하면 환경설정은 여기에 넣는게 좋을 것 같다. 


 예전에는 IT 쪽 지식을 컴뮤니티에서 얻었고, 한 동안은 블로그를 통했는데, 요즘은 facebook 그룹을 통해 얻는 편이다. 그런데, 어느날 내가 모르는 단어가 나왔다. kebab-case. 이 때까지 되도록 facebook을 통해 질문을 전혀하지 않았는데, 어쩔 수 없기 질문을 하게 되었다. 도대체 kebab-case 가 뭔지...



 프로그램언어에서 이름지을 때,  camelCase 의 경우 두 단어 사이어 두번째 단어부터 대문자를 사용하거나, snake_case 처럼 underscore(밑줄)을 사용하기도 한다. 그리고 어떤 언어에서는 하이픈을 사용하기도 하는데, 그럴 경우 kebab-case 라고 한다. 중앙아시아 유목민이 고기를 꼬챙이 끼워 요리하는 것을 케밥이라고 한다.( https://ko.wikipedia.org/wiki/%EC%BC%80%EB%B0%A5  ). 


꼬챙이가 마치 하이픈 같이 느껴졌나 보다.