분류 전체보기
[컴파일러] 컴파일러란?
컴파일러 컴파일러는 명령어 번역 프로그램이다. 컴파일러는 소스 코드 혹은 원시 코드를 목적 코드로 옮겨주는 역할을 한다. 쉽게 설명하면 여기서 소스 코드는 사람이 작성한 코드이며, 목적 코드는 기계어(컴퓨터가 이해할 수 있는 언어)라고 생각할 수 있겠다. 물론, 목적 코드가 문서 파일이나, 그림 파일 등이 될 수도 있다. 컴파일러가 왜 필요한가? 우리가 사용하는 C, C++, 파이썬 자바스크립트 등은 "사람이 이해하기 쉬운 형태"의 언어이다. 우리가 열심히 작성한 코드를 사실 컴퓨터는 이해하지 못한다. 여기서 컴파일러는 우리가 작성한 코드를 일정한 규칙을 가지고 컴퓨터가 이해할 수 있도록 바꿔준다. 즉, 우리와 미국인 사이에 국어와 영어를 모두 아는 컴파일러라는 통역사가 의사소통을 돕는 것이다. 이 컴파..
[리눅스] 파일 접근 권한
파일 접근 권한 다음과 같은 "permission denied" 경고를 본적 있는가? 이는 파일 접근 권한때문에 생기는 이슈이다. 특정 파일이 읽을 수는 있어도 실행할 수 없을 수도 있고, 디렉토리에 접근이 불가능 할 수도 있다. 이와 같이, 모든 파일에는 사용자마다 접근할 수 있는 권한이 있다. 다음의 표로, 파일 접근 권한을 요약할 수 있다. r : read, w : write, x : execute 권한을 나타낸다. 터미널에서 ls -l 명령어로 위와 같이 파일의 권한을 볼 수 있다. 각각 순서대로 파일 속성(타입), 소유자 권한, 소유그룹 권한, 그 외 권한 으로 나타낸다. -/rw-/r--/r-- 다음의 결과를 가지고 파일 타입, 소유자 권한, 그룹 권한, 그 외 권한에 대해 설명해보겠다. 파일..
[쉘] 쉘이란?
쉘이란? 쉘 명령어와 프로그램을 실행할 때 사용하는 인터페이스. 사용자로부터 받은 명령을 해석하며, 프로그램을 실행하는 역할. = 쉘은 OS의 Kernal과 사용자간 다리역할을 한다. 다음과 같이, "터미널" 과 같이 명령어를 입력하는 환경을 의미한다. 쉘의 주요 기능 사용자 명령을 해석하고, 커널로 전달하는 명령어 해석기 기능 프로그래밍 기능 a. 여러 명령으로 반복적인 작업을 하나의 프로그램으로 만들 수 있음. ex) 쉘 스크립트 사용자 환경 설정 a. 초기화 파일로, 사용자 초기 환경 설정 가능 쉘 종류와 특징 쉘은 커널에서 분리된 별도의 프로그램이다. 그림 이외에도 다양한 쉘이 존재하나, 지금은 거의 bash(Bourne-again shell)이 사용된다. 1) Bourne Shell(sh) be..
[쉘] 쉘 스크립트 작성하고 실행하기
쉘 스크립트 쉘 스크립트란 쉘이 특정한 명령들을 실행하도록 쉘 명령들을 적어둔 스크립트 파일이다. 이 때 가장 많이 쓰이는 쉘은 bash쉘로, #!/bin/bash 라는 구문을 들어봤을 것이다. #!/bin/bash 쉘 스크립트를 만들때 항상 상단에 적어두는 것이다. 이는 스크립트 파일이, bash 쉘로 실행시킨다는 의미로, 만약 tsch(티시셸)로 실행시키고 싶다면 #!/bin/tsch 로 적어주면 된다. 쉘 스크립트를 만들고 실행하기 쉘 스크립트 만들기 우선 쉘 스크립트를 만들어야 한다. 내 컴퓨터에서 터미널을 실행한다. 쉘 스크립트를 만들고자 하는 디렉토리로 들어가서, vi test.sh 를 입력한다. 다음의 화면이 나오면, i로 입력모드로 들어간다. #!/bin/bash echo "hello wo..
[자바스크립트] 일급 객체? 함수!
일급 객체? first class object 위키백과에 따르면, 일급 객체는 다음과 같다. "컴퓨터 프로그래밍 언어에서, 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체." 일반적인 연산을 모두 지원하는 객체! 일급 객체의 조건은 다음과 같다. 변수나 데이터 구조 안에 담을 수 있다. 함수의 인수로 전달할 수 있다. 리턴값이 될 수 있다. 자바스크립트 개발자라면 "자바스크립트에서 함수는 일급객체다." 라는 말을 들어봤을 것인데, 본인이 일급객체라고 주장하는 함수에 대해서 예시를 통해 알아보자. 자바스크립트에서 함수의 활용 예시 1) 변수에 담기 let func = function hello(){ return "hello"; } // 변수 func에, hello를 반환하는 hello함수를..
[git] git 명령어
git 명령어 간단한 깃 명령어 몇개를 알아보자. git init init 명령어는 지금 위치한 저장소를 초기화해주고, 깃이 해당 폴더 콘텐츠들을 추적하도록 한다. 사용 예시) git init // 추가 인자 없이 init만 실행하면, 이제부터 이 폴더를 git이 관리하겠다는 의미이다. git add add 명령어는 commit이 되기 전 파일들을 staged 상태로 이동시킨다. commit 명령을 수행할 때, add를 실행했던 시점에서의 파일들이 커밋이 된다. 사용 예시) git add {올리고자하는 파일} git add memo.txt git commit 커밋 명령어는 기록을 의미한다. 커밋 자체가 저장하고 싶은 시점 을 의미하기도 한다. add 명령어를 실행한 시점에서의 파일의 변동사항이 커밋에 기..