콘텐츠로 건너뛰기
Home » 21세기소년 » Page 6

21세기소년

21세기소년 / IT / 정보기술 / 인터넷 / 프로그래밍 / 미래 / 과학 / 과학지식 / 물리 / 화학 / 천문 / 생물학 / 이과생이나 관심가질 법한 자질구레한 이야기들

SED 사용법

sed는 Stream EDitor의 약자로 매우 컴팩트한 명령 체계를 이용하여 텍스트를 파싱하고 변형하는 (고대의) 텍스트 편집 도구이다. sed는 그 전신이 되는 ed의 스크립팅 체계를 기반으로 하고 있다. vim과 같이 편집될 텍스트를 화면상에 보면서 내용을 작성/수정하는 개념의 텍스트 편집기가 개발되기 이전의 텍스트 편집기이다.

요즘의 텍스트 편집기라 하면 (일례로 메모장을 떠올려보면), 텍스트 편집기를 사용해서 텍스트 파일의 일부분을 수정하는 과정은 1) 텍스트 편집기 프로그램을 실행하고 → 2) 편집할 텍스트 파일을 열고 → 3) 커서를 움직여 편집할 위치로 이동해서 → 4) 내용을 지우거나 삽입하는 식으로 편집하고 → 5) 그 파일을 다시 저장하는 식으로 작업하고, 이것은 현대의 대부분의 사용자에게 가장 익숙한 방법일 것이다.

더 보기 »SED 사용법

SASS/SCSS 내장 함수 정리

지난 글에서  SCSS의 기본적인 문법과 확장, 믹스인, 함수를 작성하는 방법에 대해 정리해 보았다. 이번에는 SASS가 제공하는 기본 함수들을 정리했다. SASS의 기본 함수들은 크게 다음과 같이 나뉜다.

  1. 색상 관련 함수 : 색상 정보 RGB, HSL 값으로 생성하거나, 기존에 만들어져 있는 색상값을 변경할 수 있다. 특히 색상은 유지한채 밝기나 선명도를 변경하는 함수는 동일 색조 내에서 색을 변경하는데 유용하게 쓰일 수 있다.
  2. 숫자 및 문자열 관련 함수
  3. 리스트 및 맵의 데이터 타입을 다루기 위한 함수

더 보기 »SASS/SCSS 내장 함수 정리

(Swift) 시퀀스와 관련된 Swift 표준 함수들

Swift 기본함수 중에는 <a href="https://soooprmx.com/archives/7047">Sequence</a>를 만드는 함수들이 제법 있다. 이러한 함수 중에서 가장 많이 사용할 법한 함수로 우선 stride()를 들 수 있다. 이 함수는 파라미터가 다른 두 가지 버전이 있는데 하나는 stride(from:to:by:) 이고 다른 하나는 stride(from:through:by:)이다. 첫번째 버전은 to: 뒤의 경계를 포함하지 않으며, 두 번째 버전은 ClosedRange처럼 뒤쪽 경계값을 포함한다. 이 함수들은 주로 for 문과 같이 쓰이면서 주어진 범위 내에서 step을 달리하여 건너뛰는 값들을 하나씩 얻을 수 있게 한다. 보통 정수범위의 이터레이션에 쓰이는데, 다음과 같이 10~20사이에서 0.2 씩 뛰면서 반복할… 더 보기 »(Swift) 시퀀스와 관련된 Swift 표준 함수들

Cafe24에서 Python CGI 돌리기

Cafe24에서 Python CGI 돌리기

Cafe24에서 가상리눅스 호스팅 같은 걸 받으면 파이썬3도 설치할 수 있고 그렇다만, 여기서는 기본 호스팅에서 파이썬 CGI를 실행하는 방법을 살펴보도록 하자. (일단 파이썬 버전이 2.4이고 커스텀 모듈을 설치할 수도 없기 때문에 여러모로 좌절스럽긴 하다)

  1. CGI 파일의 위치는 특정한 위치에 들어갈 필요는 없다.
  2. 파일의 확장자는 반드시 .cgi 여야 한다. .py인 경우 일반 텍스트 파일처럼 처리된다.
  3. 첫행은 반드시 #!/home/bin/python 이어야 한다. cafe24 매뉴얼에서 #!/home/bin/python2라고 무려 잘못된 내용을 안내해주고 있다.
  4. 실행 권한은 상관없는 것 같기도 하다.

더 보기 »Cafe24에서 Python CGI 돌리기

jump 관련 명령 정리 – vim

vim에서 h,j,k,l 명령에만 익숙해지는 것도 사실 쉽지 않고, 일단 익숙해지면 이 키들을 연타하는 식으로 커서를 움직이는데, 특정한 위치로 바로 이동할 수 있는 jump관련 명령이 손에 익으면 그만큼 편리할 수가 없더라. jump와 관련된 명령들을 한 번은 정리하고 가자.

마커

m을 이용해서 현재 위치를 특정한 마커로 지정할 수 있고, 백팃 ` 이나 '작은 따옴표를 이용해서 그 위치로 되돌아 갈 수 있다. 보통 마크는 a-z, A-Z, 0-9 와 몇 가지 특수문자가 적용되는데, 특수문자들은 특별한 의미를 가지는 것들이다. 다음은 vim에서 사용되는 마커의 특징이다. 이 중에서 사용자가 임의로 설정할 수 있는 마커는 0-9,a-z,A-Z 이며, 이 각각은 문자의 종류에 따라 또 의미가 조금씩 다르다. 그 외에 편집/선택과 관련하여 특징적인 마커가 있으니 살펴봐두자.

  • a-z 영어 소문자는 일반적인 마크. 파일마다 따로 관리된다.
  • A-Z는 여러 파일간에 유지된다.
  • 0-9는 역시 여러 파일간에 유지되는데 … .viminfo 파일 내에 저장된다고 한다. 따라서 vim을 종료/재시작한 후에도 위치를 기억할 수 있다. (실제로 이는 vim을 빠져나갔을 때 위치를 기억한다고 한다.)
  • < > 는 이전 선택 영역의 처음과 끝을 가리킨다.
  • " 는 최종적으로 수정한 위치를 가리킨다.
  • ' 는 점프하기 이전 위치로 돌아간다.
  • ^는 삽입모드가 최종적으로 종료된 위치로 돌아간다.
  • .은 최종 변경이 시작된 위치이다.
  • [ ] 는 최종적으로 수정한 영역의 처음과 끝을 가리킨다.

:marks를 사용하면 현재 이동할 수 있는 마크들을 보여준다.더 보기 »jump 관련 명령 정리 – vim

(Swift) String타입의 기초 – 03. 활용

목차 Updated (2023-03-03) : Swift 최신 버전과 일부 다를 수 있음 기본적인 문자열 조작에 이어서 몇 가지 문자열 조작과 관련한 대소문자 및 숫자 관련 문자열 전체를 대문자화, 소문자화 하는 기능으로 lowercased(), uppercased() 가 있다. 과거 분사 형태로 된 이름으로부터 이는 본래의 문자열을 변경하는 mutating 메소드가 아니라, 변환된 사본을 생성하는 함수임을 알 수 있다. lowercased(), uppercased()의 경우에는 String 타입이 기본적으로 제공한다. 현재 로케일에서의 지역화 버전인 localizedLowercased(), localizedUppercased()는 Foundation 의 NSString으로부터 브릿징된 API도 존재한다. 문자열이 대문자나 소문자로만 이루어져 있는지를 검사하는 (파이썬의 .isupper(),… 더 보기 »(Swift) String타입의 기초 – 03. 활용

터미널에 컬러로 문자열을 출력해보자 (Python)

터미널 상에 결과를 찍어주는 간단한 프로그램을 만들 때,  특정 단어나 문장에 색을 넣어 출력하고 싶을 때가 있다. 이를 위한 Colorama 라는 패키지도 따로 있기는 한데, 사실 터미널에서 색을 입혀서 출력하는 것은 ANSI 제어 문자를 이용해서 할 수 있는 부분이라 직접 만들어 보기로 한다.
더 보기 »터미널에 컬러로 문자열을 출력해보자 (Python)

SCSS 파일을 자동으로 컴파일하게 하기 – vim

scss 파일을 저장할 때 자동으로 컴파일 해주는 기능을 만들어보자. 이런 종류의 기능은 보통 vim의 autocmd나 키맵 등을 설정하여 만들 수 있다. 오토 커맨드로 등록하는 경우, 특정한 패턴의 파일을 열거나, 파일을 새로 만들거나, 저장하는 전후 등의 시점에 자동으로 수행될 수 있다. SCSS 컴파일은 외부 컴파일러에 의존하고 있다. 따라서 vim 내에서 실행하면 해당 프로그램이 실행되는 동안 vim은 해당 프로세스가 종료되기를 기다리면서 동작을 멈추게 된다. 비록 짧은 시간이기는 하지만 이 과정이 제법 신경쓰일 수 있다. 그런데 vim8부터는 비동기로 이런 작업을 처리할 수 있는… 더 보기 »SCSS 파일을 자동으로 컴파일하게 하기 – vim