목록전체 글 (229)
devops
HTTP http는 HyerText Transfer Protocol의 줄임말, HTML과 같은 문서를 전송하기 위한 Application Layer 프로토콜이다. HTTP는 웹 브라우저와 웹 서버의 소통을 위해 디자인 되었다. HTTP는 특정 상태를 유지하지 않는 특징이 있어, Stateless(무상태성)을 가지고 있다. HTTP message는 클라이언트와 서버 사이에서 데이터가 교환되는 방식을 말한다. HTTP 메세지는 요청(Requests)와 응답(Responses)의 유형으로 나뉜다. HTTP Message의 구조 1) Start line : start line에는 응답의 상태를 나타낸다. 항상 첫 번째 줄에 위치. 응답에서는 status line이라고 한다. 2) HTTP headers : 요청..
public IP와 Private IP의 차이점 Public IP 인터넷 상에서 사용할 수 있는 IP주소를 말한다. 전세계적으로 ICANN이라는 기관이 국가별로 사용할 IP대역을 관리하고 우리나라는 KISA에서 우리나라 내에서 사용할 주소를 관리하고 있다. 아무 IP 주소나 내PC에 지정한다고 인터넷이 되지 않으며, 할당 받은 주소를 설정해야만 인터넷에 접속이 가능하다. A 클래스는 네자리의 IP 주소 대역 중에서 두번째, 세번째, 네번째 주소를 마음대로 부여할 수 있는 최상의 클래스로 클래스 당 255 x 255 x 255 개의 주소를 가질 수 있다. B 클래스는 네자리의 IP 주소 대역 중에서 세번째, 네번째 주소를 마음대로 부여할 수 있는 클래스로 클래스 당 255 x 255 개의 주소를 가질 수 ..
클라이언트 - 서버 아키텍처 클라이언트(client)와 서버(server)는 요청과 응답을 주고 받는 관계다. 요청이 선행되고 그 후에 응답이 온다. 클라이언트(리소스를 사용하는 앱) - 서버(리소스를 전달해주는 앱) - 데이터베이스(리소스 저장 공간) 서버는 일반적으로 리소스를 전달하는 역할을 한다. 리소스를 저장하는 공간을 별도로 마련하는 데 이를 '데이터베이스'라고 한다. 이 구조를 3티어 아키텍처라고 한다. API(Application Programming Interface) 서버는 클라이언트에게 리소스를 활용할 수 있도록 인터페이스를 제공하는데 이를 API라고 한다. 주로 클아이언트와 서버는 서로 HTTP라는 프로토콜(통신 규약, 약속)을 이용하여 요청과 응답을 주고받는데, 주소(URL, URI..
런타임 프로그래밍 언어가 구현되는 환경으로 어떤 프로그램이 동작할 때, 프로그램이 동작하는 곳이다. 크롬, 사파리같은 웹브라우저를 말함. node.js는 javascripts의 새로운 런타임으로 javascripts가 브라우저가 아닌곳에서 실행할 수 있게 해준다. node.js 등장ㅈ 후에는 javascripts를 이용해 웹페이지, 서버 등 과같은 다른 프로그램을 만들 수 있게 되었다. // runnode.js const testFunction = function(arg){ console.log("Arg is : ", arg); } testFunction(20); 런타임은 프로그래밍 언어가 실행되는 환경, node.js는 Javascripts의 런타임이다. node.js는 다음과 같은 특징이 있다. - ..
리눅스 권한 리눅스 파일권한은 4개로 등분되어있다. 1번은 파일의 종류를 나타내는 것으로 Directory, Regular, Symbolic link 이 세 가지를 나타낸다. 2번은 User의 권한, 3번은 Group의 권한, 4번은 파일에 대한 모든 유저의 권한이다. 세부 권한은 위에 보이는 것처럼 rwx로 나타내는데 r은 read로 읽기, w는 write로 쓰기, x는 excute 실행이다. 위처럼 모든 파일과 디렉토리엔 저렇게 파일의 종류, 유저 혹은 그룹의 세부 권한이 나타난다. 권한을 변경하는 방법 파일 혹은 폴더의 읽기, 쓰기, 실행 권한을 변경하려면 chmod 명령어를 사용한다. 위 자료처럼, rwx를 3bit로 해석하여 숫자 3자리로 권한을 표시하는 Absolute Form과 +, - = ..
> wc access.log 줄, 단어, 바이트 >wc -l access.log 줄 >head -n 50 access.log | wc -l SED > head -n 5 access.log | sed 's/0000/9999/' | grep '9999' 앞 5줄에 0000을 9999로 바꾸지만 원본은 바뀌지않음. 파이프라인은 원본은 바뀌지않는다. 출력에만 바뀐다. > head -n 5 access.log | sed '3 s/0000/9999/' | grep 9999 세번째 라인만 바꿀 수 있음. > head -n 5 access.log | sed '1,3 s/0000/9999/' | grep 9999 1~3번째 라인까지만 9999로 바꿈. > head -n 2 access.log | cut -d " " -f..
표준스트림과 stdin, stdout, stderr 특정한 프로그래밍 언어 인터페이스뿐 아니라 유닉스 및 유닉스 계열 운영 체제에서 컴퓨터 프로그램과 그 환경(일반적으로 단말기) 사이에 미리 연결된 입출력 통로를 가리킨다. 일반적으로 유닉스에서 동작하는 프로그램은 실행 시 세 개의 스트림이 자동으로 열린다. 이를 표준 스트림이라고 부른다. 하나는 입력을 위한 스트림(Standard input, STDIN, 0), 하나는 출력을 위한 스트림(Standard Output, STDOUT, 1), 하나는 오류 메시지를 출력하기 위한 스트림(Standard Error, STDERR, 2)이며, 이 세 개의 표준 스트림은 사용자의 터미널에 부착된다. 표준 입력 (stdin) 표준 입력은 프로그램으로 들어가는 데이터..
프로세스 확인 : ps 백그라운드 확인 : jobs 프로세스 죽이기 : kill 백그라운드 실행 : nohup & 백그라운드 로그 확인 : nohup.out TEST - cat app.js | head | tail -n 2 - head app.js > headResult.txt - cat rmResult.txt 있는것을 삭제하면 에러없음, 없는 것을 지우면 Error가 뜬다. 만약 Error를 기록하고 싶다면? - rm devops2nd.txt 2> rmResult.tx 2가 stder를 의미 그냥 >를 쓰면 stdout 이라고 볼 수 있음 -..
스레드(Thread) 하나의 스레드는 코드가 실행되는 하나의 흐름이기 때문에, 한 프로세스 내에 스레드가 두 개라면 코드가 실행되는 흐름이 두 개 생긴다는 의미 멀티 프로세스(Multi-Thread) 멀티 프로세스가 애플리케이션 단위의 멀티 태스킹이라면, 멀티 스레드는 애플리케이션 내부에서의 멀티 태스킹 백그라운드(background) 백그라운드 방식은 명령어 뒤에 &를 붙여서 실행하고, 다른 명령어를 추가적으로 입력. 작업시간이 오래 걸리는 작업인 경우 nohup 명령어를 이용하여 백그라운드로 실행하면 사용자의 터미널 세션이 종료되어도 작업이 종료될 때까지 프로세스를 실행 표준 스트림(Standard Stream) 프로그램을 드나드는 데이터를 흐름으로 표현한 단어 리다이렉션(Redirection) 리눅..
Dev와 Ops팀의 목표 차이 그리고 상충되는 부분? Dev(개발팀)의 목표 - 잦은 배포와 업데이트 - 어플리케이션을 통한 쉽게 빠른 리소스 제공 Ops(개발팀)의 목표 - 프로덕션앱(공식 버전)의 안정성 - 인프라 관리 - 모니터링 및 제어 개발팀은 사용자의 요구조건에 맞춰 잦은 '변화'를 지향해야하지만, 운영팀은 '안정'을 목표로 합니다. IT 서비스에 대해 프로세스, 도구의 차이, 그리고 서로 다른 목적 등으로 인해 개발팀과 운영팀 간에 충돌이 빈번히 발생하게 됩니다. 이러한 고민에서 데브옵스(DevOps)라는 개념이 출현하게 됩니다. 데브옵스(DevOps)는 개발자와 운영자의 소통, 협업 및 통합을 강조하는 문화, 방법론, 프로세스, 도구 모두를 의미합니다. 이렇게 데브옵스의 정의가 폭넓은 이유..