대다수의 프로젝트는 .gitignore 파일을 이용하여 Git 저장소에서 제외할 파일을 정의합니다. 만약 프로젝트에 참여하는 개발자들이 서로 다른 IDE를 사용한다면 IDE의 임시 파일을 제외할 패턴을 .gitignore 파일에 추가해야 할까요? 이 글에서는 이렇게 모호한 상황에 대한 해답을 제시합니다. Git 설정 Git은 다양한 설정을 제공합니다. 예를 들면 Git Log에 남길 이름과 이메일 주소 등도 Git의 설정으로 저장되어 있습니다. 어떤 설정이 지정되어 있는지 확인하려면 터미널에 아래 명령어를 입력합니다. $ git config --global --list Git 설정과 관련된 더 자세한 설명은 공식 문서를 참조하세요. core.excludesFile 만약 IDE 임시 파일과 같이 프로그램 ..
Touch Bar가 장착된 MacBook Pro 모델의 경우 키보드 상단의 Touch Bar 오른쪽에 Touch ID 버튼이 있습니다. 이 Touch ID 버튼은 관리자 권한이 필요한 경우 복잡한 암호를 입력하지 않고도 간편하게 관리자 인증을 할 수 있도록 도와줍니다. 하지만 터미널 환경에서는 Touch ID를 사용하지 못하고 매번 암호를 직접 입력해야 했습니다. 이번 글에서는 macOS 터미널에서 sudo를 사용할 때 Touch ID로 권한 인증하는 방법을 알아봅니다. 설정 변경하기 터미널에서 아래 명령어를 입력해 sudo에 대한 설정을 불러옵니다. 암호를 한 차례 입력해야 하는데 macOS를 업데이트 전에 터미널에서 입력하는 마지막 암호가 될 것입니다. sudo nano /etc/pam.d/sudo ..
문서를 작성하는 것은 생각보다 시간이 드는 일입니다. 내용을 정리하고, 구조화하고, 문장을 쓰고, 서식도 다듬어줘야죠. 하지만 Markdown(마크다운) 문법을 활용하면 이 과정을 상당히 간소화 할 수 있습니다. 글의 구조를 짜고, 문장으로 써내리기만 하면 됩니다. 이번 글에서는 Markdown의 특징과 문법을 공유합니다. Markdown? Markdown을 소개하기에 앞서 먼저 Markup(마크업)을 이야기해볼까 합니다. 개발을 간단히라도 배웠던 사람이라면 HTML 문법을 배우셨을겁니다. HTML은 대표적인 Markup언어입니다. 왜 Markup이라고 하는지는 문법을 보면 이해할 수 있습니다. Hello, World! 위 문법과 같이 내용이 Mark로 둘러싸인 형태를 가지고 있기 때문입니다. Markd..
지난 글에서 Jekyll을 설치하고 실행하는 단계까지 진행했습니다. 이번에는 테마를 적용하고 새로운 글을 작성하는 방법을 확인해보겠습니다. 테마 적용하기 처음 Jekyll을 실행하면 심플한 기본 테마의 페이지를 보여줍니다. 기본 테마도 이미 충분히 훌륭합니다. 만약 기본 테마가 맘에 든다면 이번 단계는 건너 뛰어도 됩니다. 하지만 새로운 테마를 적용하고 싶다면, 아래 몇 가지 단계를 거쳐서 손쉽게 테마를 변경할 수 있습니다. 테마 다운로드하기 1. GitHub에는 훌륭한 여러 테마가 공개되어 있습니다. jekyll-theme 등의 토픽을 확인해서 맘에 드는 테마를 고릅니다. 2. 맘에 드는 테마를 골랐다면 소스코드를 다운로드합니다. 조금 더 고급스럽게 작업하고 싶다면 Repository를 Clone하는 ..
https://username.github.io의 주소를 가진 블로그를 보신 적이 있을겁니다. 이런 블로그들은 GitHub Pages 서비스를 이용해 무료로 생성된 것들입니다. 이번 글에서는 간단하게 GitHub에 블로그를 만들어서 운영하는 방법을 알아봅니다. GitHub Pages 생성하기 Repository 생성 먼저 username.github.io 형태의 Repository를 생성합니다. 예를 들어 GitHub ID가 jETA-Kor라면 jeta-kor.github.io로 이름을 지어주면 됩니다. Hello, World! 출력 1. 아래 이미지의 빨간색으로 표시해놓은 버튼을 눌러서 새 파일 생성을 진행합니다. 2. 파일 이름과 파일 내용을 입력합니다. 3. Commit Log를 작성하고 Commi..
macOS는 기본적으로 Ruby가 설치되어 있습니다. 하지만 여러 이유로 다양한 버전의 Ruby를 설치해놓고 그 때 그 때 버전을 변경하며 사용하거나, 가상환경을 설정해야 할 수 있습니다. macOS에서 rbenv를 이용해 Ruby 버전을 관리하는 법을 알아봅니다. homebrew를 이용해 rbenv 설치 $ brew update # Homebrew 업데이트 $ brew install rbenv ruby-build # rbenv, ruby-build 설치 homebrew가 설치되지 않은 경우 이 링크에서 설명하는 방법으로 설치할 수 있습니다. .bash_profile 수정 .bash_profile (혹은 사용하는 터미널의 초기 환경 설정 파일)에 아래 명령어를 추가합니다. eval "$(rbenv ini..
최근 Google Chrome을 업데이트 한 이후로http://localhost로 접속을 시도하더라도강제로 https://localhost로 전달(Redirect)되는 경우가 발생합니다. 물론 로컬에서 작업을 하더라도 SSL로 연결을 보호하는 것이 최선이겠지만,모든 개발을 SSL로만 할 수는 없습니다. Google Chrome이 강제로 리다이렉트 하지 않도록 설정하는 방법을 아래에 기록합니다. 1. 설정 페이지로 이동- Google Chrome의 주소창에 다음 주소를 입력합니다: chrome://net-internals/#hsts 2. 보안 정책 삭제- 해당 페이지의 가장 아래에 있는 Delete domain security policies에 localhost를 입력하고 Delete버튼을 클릭합니다. 3..
VSCode는 가벼운 에디터지만 필수적인 기능만 제공하고 있습니다.대신 Marketplace를 통해 추가 기능을 제공하고 있죠.Extension 기능을 적절히 활용하면 생산량 증가를 꾀할 수 있습니다. VSCode 설치 후 고정적으로 이용하는 Extension을 추천해드릴 겸 목록을 공유합니다. Active File In StatusBar (이동) 현재 편집 중인 파일의 경로를 하단 상태 막대에 표시합니다. 이 경로를 클릭하면 바로 클립보드에 복사할 수도 있죠. 터미널이나 탐색기를 여러번 이용해야 하는 경우 그 빛을 발합니다. Bracket Pair Colorizer (이동) 프로그램의 덩치가 커지면 여러 단계의 괄호를 이용해야 합니다. JavaScript 코드는 특히 더 심하죠.괄호의 단계별로 다른 색..
Bookmarklet을 활용하여 생산성 향상하기 웹브라우저의 Bookmark는 자주 가는 사이트를 등록해두는 기능입니다.이 Bookmark에 JavaScript 코드를 등록해둔다면 생산성 향상을 기대할 수 있습니다. Bookmarklet 생성 간단합니다.웹브라우저에서 Bookmark를 등록할 때, URL에 'javascript:'로 시작하는 간단한 스크립트를 입력합니다.혹은 웹 페이지에 있는 링크를 브라우저의 Bookmark Bar로 끌어다 놓아도 추가할 수 있습니다. 1. 직접 스크립트 입력해서 추가 2. 끌어다 놓아서 추가 자주 사용하는 Bookmarklet 주로 참고 문서를 열거나 WebApp을 실행할 때 이용합니다.아래 자주 사용하는 Bookmarklet을 공유합니다. 각 항목의 항목명을 끌어서 ..
Clipboard를 통한 공격이 가능함이 알려진 뒤 소위 Modern Browser에서는 Clipboard에 대한 Sandbox 정책을 적용한 것으로 알고 있다. 이를 우회하기 위해 아래 방법을 활용할 수 있다. function copy2clipboard(text) { // 최신 브라우저에서도 복사되도록 함 var textArea = document.createElement("textarea"); // 임시로 textarea 생성 textArea.style.position = 'fixed'; textArea.style.top = 0; textArea.style.left = 0; textArea.style.width = '2em'; textArea.style.height = '2em'; textArea.s..
forEach문은 아래와 같이 활용한다. // 반복해서 표시할 내용 혹은 반복할 구문 이 때, 상태용 변수를 status라고 지정했다면 아래와 같이 활용할 수 있다. ${status.current} 현재 for문의 해당하는 번호 ${status.index} 0부터의 순서 ${status.count} 1부터의 순서 ${status.first} 첫 번째인지 여부 ${status.last} 마지막인지 여부 ${status.begin} for문의 시작 번호 ${status.end} for문의 끝 번호 ${status.step} for문의 증가값 활용 예 /