본문 바로가기

전체 글

[Linux]표준 스트림과 리다이렉션, 파이프 표준 스트림(Standard Stream)이 뭘까? 스트림(Stream)이란 프로그램을 드나드는 데이터를 흐름으로 표현한 단어이다. 보통 프로그램은 입력과 출력으로 이루어진다. 터미널을 예시로 들면 다음과 같다. UNIX에서는 장치를 추상화해서 각 장치를 파일처럼 다뤘다. 파일처럼 모든 장치들을 다루기 위해, 파일을 읽고 쓰고 오류를 표시하는 한 가지 방법으로 통일했다. 아래 표의 stdin(입력), stdout(출력), stderr(오류)이다. 따라서 정상 동작하는 프로그램을 실행할 때, 세 개의 스트림이 자동으로 열리고, 이를 표준 스트림이라 한다. 리다이렉션(Redirection)은 뭘까? 표준 스트림의 흐름을 바꿔, 파일로 입/출력을 할 수 있도록 한다. 리다이렉션 기호 방향 의미 > 표준 출력 .. 더보기
[Linux]프로세스, 스레드, 멀티 스레드 프로그램과 프로세스는 뭘까? 프로그램 : 일반적으로 사용자가 원하는 일을 처리할 수 있도록 프로그래밍 언어를 사용하여 수행절차를 표현해 놓은 명령어들의 집합이다. 정적인 상태의 파일이다. 프로세스 : 사용자가 프로그램을 실행하면, 운영체제로부터 실행에 필요한 메모리를 할당받아 프로그램의 코드를 실행하는데, 이때 실행되는 프로그램을 프로세스라 한다. 우분투에서 System Monitor를 실행했을 때 보이는 모든 것이 프로세스이다. 스레드(Thread) 한 가닥의 실이라는 뜻이다. 하나의 스레드는 코드가 실행되는 하나의 흐름이라는 것까지만 알아두자. 멀티 스레드(Multi-Thread) 우선 해당 그림만 알아두자. 더보기
[JavaScript]알고리즘과 수도코드 알고리즘은 무엇일까? 어떤 문제를 해결하기 위한 일련의 절차나 방법을 정해진 형태로 표현한 것이다. 문제 해결을 위한 고민을 논리적으로 풀어내는 작업을 하는 방법이다. 수도코드(pseudocode)는 무엇일까? 개발에 앞서 문제 해결의 논리적인 과정을 인간의 언어로 작성하며 모든 과정을 좀 더 쉽게 확인 할 수 있는 것. 왜 쓸까? 아무리봐도 소프트웨어의 동작 원리는 너무 복잡하기에, 좀 더 깔끔하고 더 효율적인 알고리즘을 적용하기 위한 방법을 생각해내기 위해 쓴다. 어떻게 쓸까? 다음 문제를 보자. 더보기 convertScoreToGradeWithPlusAndMinus 문제 점수를 입력받아 점수에 해당하는 등급을 리턴해야 합니다. 입력 인자 1 : score number 타입의 정수 출력 string .. 더보기
[Linux]패키지와 패키지 매니저 무엇일까? 패키지는 윈도우의 압축파일(.zip)과 비슷하게 프로그램을 실행하는데 필요한 것들의 집합이다. 패키지 매니저는 패키지들의 설치, 변경, 삭제 등 관리를 편하게 해주는 도구다. Linux Ubuntu 경우 apt라는 패키지 매니저가 있고 다양한 명령어들을 통해 패키지 관리를 돕는다. 왜 쓸까? 쉽고, 무료고, 우분투뿐 아니라 데비안과 같은 다른 리눅스 배포판에도 적용된다. 패키지 업데이트 관리가 용이하고, 구버전 패키지는 자동으로 삭제되어, 버전을 충돌없이 깔끔하게 유지할 수 있다. What Is the APT Package Manager: Why and How To Use It | Packagecloud Blog A description of what the APT package manager.. 더보기
[JavaScript]조건문 무엇일까? 어떤 값 또는 변수가 조건을 만족하는지 기준을 세워 판별하는 문법. 조건을 만족하는지 알아보기 위해 비교 연산자(comparison operator)를 사용한다. 조건을 만족한다면 true, 그렇지 않다면 false 값을 출력하는데, 이를 Boolean 타입의 자료라 한다. 왜, 어디에 쓸까? 기본 문법으로 어느 코딩, 언어에도 사용된다. 예를 들어 배고픈 컴퓨터에게 밥을 먹이는 프로그램을 만들고 싶다면, 밥을 먹이기 전 배가 고픈지부터 물어봐야 한다. 이렇듯 우리 일상에 의사결정에 있어서 기본 질문과 같다. 어떻게 쓸까? if (조건1) { } else if (조건2) { } else { } 비교연산자(Comparison operator) > 초과 = 이상 2) //false !undefin.. 더보기
[Linux]개념과 필요성 리눅스가 뭐냐? 운영체제(Operation System)다. 왜 리눅스를 쓰냐? 현재 대부분의 서버가 리눅스 위에 구현되어 있다. CLI 자동화 가능하다. 무료다! CLI 자동화가 뭔데? Command-Line Interface. 명령어를 입력해 컴퓨터를 조작하는 방식. 흔히 쓰는 GUI(Graphical User Interface)와 대비되는 개념이다. 이 명령어 입력 방식으로 인해 DevOps에 중요한 자동화가 완성될 것이다. 수평확장 시 새로운 컴퓨터를 실행하고 노드를 다운로드받고 서버를 돌린다고 치면, 이 과정이 리눅스를 통하여 CLI 자동화로 이루어 지게 될 것이다. 컴퓨터 조작을 위한 입출력을 I/O(Input/Output)이라 함. AWS 같은 경우 대여를 위한 서버 컴퓨터를 최소 5만대 이.. 더보기