Skip to main content

Visual Studio 콘솔창 유지

· One min read

VS에서 코딩 후 빌드를 하면 콘솔창이 결과를 보여주자마자 닫히는 경우가 있다. 수동으로 닫을 때까지 콘솔창이 유지되게 해보자.

해결

프로젝트 > 속성 > 구성 속성 > 링커 > 시스템 메뉴에 들어가 하위시스템 옵션콘솔로 변경한다. image from hexo

Can't connect to localhost

· One min read

웹서버를 크롬에서 띄울시 localhost 가 요청되지 않는 경우가 있다. DNS 에 문제가 있어 연결할 수 없다는 에러가 나온다.

해결

Chrome > 설정 > 개인정보 메뉴에서 네트워크 활동을 예측하여 페이지 로드 성능 개선 기능을 해제한다. image from hexo

ASP woff 404 오류

· One min read

Classic asp 에서 .woff 확장자를 가진 글자 파일을 가져오지 못하는 경우가 있다. Console 확인시 404 오류가 난다.

해결

IIS 에서 MIME 형식에 woff 확장자를 추가한다. image from hexo

ASP - Request와 Session을 Javascript에서 사용

· 2 min read

선행

classic asp 는 기본 json 모듈이 없기 때문에 여기에서 모듈을 다운로드 해야한다.

소스

<!--#include virtual = "/JSON_2.0.4.asp"-->
<%
'request TO JSON
Dim req:Set req = jsObject()

FOR EACH i IN Request.QueryString
IF Request.QueryString(i).count > 1 THEN
i = Replace(i,"&", "")
Set req(i) = jsArray()
FOR EACH j IN Request.QueryString(i)
req(i)(null) = j
NEXT
ELSE
req(i) = Request.QueryString(i)
END IF
NEXT

FOR EACH x IN Request.Form
IF Request.Form(x).count > 1 THEN
Set req(x) = jsArray()
FOR EACH y IN Request.Form(x)
req(x)(null) = y
NEXT
ELSE
req(x) = Request.Form(y)
END IF
NEXT
'session TO JSON
Dim sess:Set sess = jsObject()
FOR EACH k IN Session.Contents
sess(k) = Session.Contents(k)
NEXT
%>
<!DOCTYPE html>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="text/javascript">
var request = JSON.parse('<%=req.flush%>');
var session = JSON.parse('<%=sess.flush%>');
Object.freeze(request);
Object.freeze(session);
</script>

설명

1 줄에서 JSON 모듈을 include 시켜주고 627 줄에서 Get 방식과 Post 방식의 Request 를 모두 파싱한다. 3033 줄에서 Session 을 파싱한다. 40 줄에서 request 와 session 을 javascript 변수로 받고, 클라이언트가 변조하지 못하게 Object.freeze 로 얼려버린다.

800a0e7a Provider cannot be found.

· One min read

800a0e7a Provider cannot be found

ADODB.Connection error '800a0e7a' Provider cannot be found. It may not be properly installed. 공급자를 찾을 수 없습니다. 올바르게 설치가 되지 않았을 수 있습니다.

원인

64Bit Windows 에서 32Bit ASP 실행시 발생하는 오류이다.

해결

IIS 관리자 > 응용프로그래밍 풀 > DefaultAppPool 우클릭 > 고급설정 메뉴에서 32bit 응용프로그래밍 사용 옵션을 TURE로 변경 후 ASP 재시작 image from hexo

여담

구글링시 재설치, 패치 등을 하라고 나오는데 현혹되지 말자.

Git .ssh key 적용 후에도 비밀번호를 물어볼 때

· One min read

Git 사용을 위해 ssh key 생성해 서버에 추가했는데도 비밀번호를 물어보는 경우가 있다.

원인

윈도우에서 ~/.ssh 경로를 인식하지 못해 발생한다.

해결

시스템 > 고급 시스템 설정 > 환경변수 메뉴로 들어가 HOME 변수로 %HOMEDRIVE%%HOMEPATH% 값을 추가 후 재부팅해주면 된다. image from hexo

sublime text에서 Git Bash 실행

· One min read

설치

패키지 설치

Package Control을 열어 Terminal 패키지를 설치한다.

Git Bash 와의 연동

Preferences > Package Settings > Terminal > Settings - User 메뉴에서 터미널 경로를 수정한다.

{
// git-bash가 설치된 경로
"terminal": "C:\\Program Files\\Git\\git-bash.exe",
"parameters": []
}

단축키 추가

기본 단축키는 ctrl+shift+alt+t 라 어려우니 변경해주자. Preferences > Key Bindings 메뉴에서 단축키를 추가한다.

{ "keys": ["ctrl+alt+t"], "command": "open_terminal_project_folder" }

이제 ctrl+alt+t 키로 현재 프로젝트에서 깃 배쉬창을 바로 띄울 수 있다.

따라하면 되는 Git 사용 명령어

· 2 min read

Git 은 설치되어 있고, 프로젝트를 clone 했다고 가정합니다.

작업흐름

프로젝트에서 git bash 실행

서버 repository 의 최종 버전을 다운로드

git pull origin master

오늘 작업 브랜치 설정 또는 선택

## 작업 브랜치 설정
$ git checkout -b 브랜치명
## 작업 브랜치 선택
$ git checkout 브랜치명

즐거운 코딩

console.log("코딩!!!");

브랜치 작업내역 저장 및 커밋

$ git add .
$ git commit -m '커밋 메세지 (필수)'
## 또는 한방에 커밋
$ git commit -am '커밋 메세지'

master 브랜치로 이동

git checkout master

작업한 브랜치 병합 후 테스트

git merge 브랜치명

서버 repository 변경점 다운로드

git pull origin master

서버 repository 변경점 업로드

git push origin master

작업 브랜치 제거

git branch -D 브랜치명

기타 자주쓰는 명령어

## 모든 브랜치 확인
$ git branch
## 원격 브랜치 확인
$ git branch -r
## master 브랜치에서 변경된 파일만 보기
$ git diff --name-status master
## 현재 브랜치 변경된 파일 정보 보기
$ git status
## 커밋 로그 한줄 보기
$ git log --pretty=oneline

jshint 설정 (Sublime, VSCode)

· 4 min read

javascript 에서 linter 의 역활은 중요하다. Sublime Text 나 VSCode 에서 jshint linter 를 설치하고, 기본 설정을 수정해보자.

설치

Sublime

모듈 설치

Sublime Linter 패키지가 선행되어야한다.

Package Control을 열어 Sublime-Linter jshint를 설치한다. 간단히 jshint 로 검색해도 된다.

jshint 설치

## 전역으로 jshint를 설치한다.
$ npm install -g jshint

설정 경로 변경

Preferences > Package Settings > SublimeLinter > Settings - user 메뉴로 들어가, "users.linters.jshint.args"에 경로를 수정한다.

{
"linters": {
"jshint": {
"@disable": false,
"args": [
// 여기에 경로를 적어준다.
"--config=C:\\Users\\사용자\\npm\\node_modules\\jshint\\jshint_config.json"
],
"excludes": []
}
}
}

VSCode

내장되어있다. 파일 > 기본설정 > 설정에서 아래 속성을 만져주면 된다.

{
"jshint.options": {}
}

설정 파일

소스

{
"esnext": true,
"asi": false,
"boss": false,
"curly": true,
"eqeqeq": true,
"eqnull": false,
"evil": false,
"expr": true,
"forin": true,
"funcscope": false,
"jquery": true,
"latedef": true,
"lastsemic": false,
"loopfunc": false,
"maxerr": 10,
"nocomma": true,
"nonbsp": true,
"node": true,
"nonew": false,
"plusplus": false,
"regexdash": false,
"shadow": false,
"strict": false,
"supernew": false,
"trailing": false,
"undef": false,
"unused": false,
"white": false,
"withstmt": false,
"worker": true
}

설명

  • esnext : es6 의 구문을 사용할 수 있음
  • asi : 세미콜론이 없을 수 있음
  • boss : 비교문(lt, gt..)이 올 자리에 할당문(a = 1)이 올 수 있음
  • curly : 중괄호 생략할 수 없음
  • eqeqeq : 를 사용할 수 없음 (=를 사용)
  • eqnull : null 비교를 사용할 수 있음
  • evil : eval 을 사용할 수 있음
  • expr : 할당이나 함수호출이 아닌 표현식 사용할 수 있음 (예제 참조)
  • forin : forin 반복문 사용시 if 으로 필터링을 해줘야함
  • funcscope : 조건문 내의 선언된 변수를 조건문 바깥에서 참조 가능
function test() {
// eslint-disable-next-line no-constant-condition
if (true) {
var x = 0;
}

x += 1; // Default: 'x' used out of scope.
// No warning when funcscope:true
}
  • jquery : jQuery 의 전역변수를 미리 정의
  • latedef : 호출보다 늦게 정의된 변수를 금지 (호이스팅 방지)
  • lastsemic : 한 줄짜리 블록 코드에서 마지막 세미콜론이 없을 경우만 오류
  • loopfunc : 반복문 안에서 함수 정의 가능
  • maxerr : 총 보여줄 오류의 갯수
  • nocomma : comma 연산자 사용 금지
  • nonbsp : non-breaking whitespace 금지
  • node : 노드 환경 사용 가능
  • nonew : new 생성자 사용 불가
  • plusplus : 단항 증감연산자 사용 불가
  • regexdash : 정규식에서 대괄호 안에 escape 처리 되지 않은 대쉬(-) 가능
  • shadow : 변수 재선언 가능 (inner 또는 false, outer, true 로 설정)
  • strict : "use-strict" 선언이 없을시 오류
  • supernew : 잘못 작성한 생성자의 오류 표시 안함
  • trailing : 라인 끝의 불필요한 공백이 있으면 오류
  • undef : 선언되지 않은 변수 사용시 오류
  • unused : 선언이 되었으나 사용되지 않는 변수에 대해 오류
  • white : jshint 가 더글락스 크락포드의 코딩 스타일 가이드에 따라 코드를 검사
  • withstmt : with 구문 사용 가능
  • worker : Web Worker 사용 가능

Windows10에서 Telnet 사용

· One min read

특정 포트가 열려있는지 확인하기 위해서 텔넷을 사용해야할 때가 있다.

설치

제어판 > 프로그램 추가/제거에 들어간다. image from hexo

Windows 기능 켜기/끄기 버튼 클릭 후 아래로 끝까지 내리면 텔넷 클라이언트가 보이는데, 체크한 후 확인 버튼을 눌러 설치한다.

사용법

cmd 창을 연 뒤

## telnet 아이피(호스트) 포트
$ telnet 111.222.333.444 3306