CategoryTips (53)

[MS-SQL] DB 백업과 복원 (DB BackUp, DB Restore - DB Copy)

데이터베이스 복원(카피) 유지보수중인 서비스의 요청사항이 들어왔습니다. 서비스의 장기 미 접속 유저에 대한 잠금설정 기능추가가 필요하다는 겁니다. 일사천리로 진행되나 싶더니.. 작업 중.. 손가락이 미끄러져서 잠금값을 바꾼다는게 그만 삭제값을 True로 바꿔버렸습니다!! 히힛! 뭐 일반 유저 데이터면 큰 문제일테지만 장기 미 접속 유저 아니겠습니까? 매일 데이터를 백업하고 있었기 때문에 백업한 DB를 다른 이름으로 복구해서 해당 값들을 원상복구하면 되겠구나~ 하는 가벼운 생각으로 복구 작업을 시작했습니다. MSSQL을 사용하기 때문에 GUI에서 작업하는 경우가 많아서 SQL Server Management Studio에서 복원을 시작했는데 복구가 잘 되지 않습니다! 정상적인 .BAK파일 일텐데? 오류 번..

[MS-SQL] 변수 및 테이블 변수 생성 및 사용

변수변수란 값을 담아두는 것이라고 모두 알고 있으실 겁니다.우선 간단하게 변수를 생성하고 설정하는 방법을 알아보겠습니다.--변수 생성 --declare 변수명 타입 DECLARE @name varchar(20) --변수에 값 할당 SET @name = 'Kendrick' --혹은 --userid가 sonim1일 때 이름이 Kendrick일 경우 SELECT @name = P.name FROM tblPerson P WHERE userid = 'sonim1' SET을 하던 SELECT를 하던 동일한 값이 @name 변수에 할당되는 쿼리입니다.아래는 @name 변수를 이용해서 이어서 해당 user의 가입일을 알아보겠습니다.SELECT CreateDate -- 생성일 필드 FROM tblPerson P WHER..

[ETC] .NET Fiddle - 브라우저에서 써보는 .NET 프레임워크

.NetFiddlefiddle이 무엇일까요? 사전을 보시면 fiddle 미국·영국 [|fɪdl] 영국식 중요 (특히 지루하거나 초조해서) 만지작거리다2. (세부 사항을) 조작하다 바이올린을 켜다 라고합니다.. 저희가 알아보려는건 1번에 더 가깝겠네요많은 웹개발자분들은 fiddle하면 jsFiddle 이 떠오르실 겁니다.간단한 HTML, CSS, Javascript를 테스트하고 디버깅하기에는 정말 최고의 기능을 제공하는 웹사이트라고 생각합니다.jsFiddle에 대한 자세한 사용 방법은 생활코딩에도 소개 되어 있어서 이에대해 더 관심이 있으신 분은 아래 링크로 가셔서 보시면 많은 도움이 될 것입니다.생활코딩 jsfiddle소개 바로가기각설하고 제가 지금 소개 하려는건 사이트는 .Net 기반으로 위와같이 간단..

[ETC] 당신은 jQuery가 필요하지 않을 수도 있습니다 - You Might Not Need jQuery

자바스크립트 Native API? jQuery가 훨씬 편해요. 하지만.. jQuery는 분명 간단하고 좋은 라이브러리입니다. 하지만 그 편안함에 익숙해져 무분별하게 사용되기도 합니다. 예를들면 간단한 기능을 수행하는 페이지가 있습니다.버튼을 클릭하면 해당 버튼의 값이 바뀌는 기능입니다. var elem = $('#btn'); //id가 btn인 요소 elem.val('click!'); //해당 요소에 사용되는 jQuery는 요소 셀렉터와 값변경 정도일 것입니다. 위 코드는 물론 보기에도 편하고 이해하기도 쉽지만, 이는 마치 나무가지를 하나 자르는데 전기톱을 가져와서 썰어버리는 모습을 연상 시킵니다. 말인 즉 만약 저 기능을 자바스크립트 native API로 구현한다면 불필요하게 jQuery 라이브러리를 ..

[MS-SQL] 커서(Cursor) 사용하기

커서(Cursor)란?행 단위 작업을 추가로 제어해야 할 경우 사용되는 기능입니다.행 단위 작업이란 예를들면 특정 테이블에서 SELECT한 Email 별로 작업을 해야 하는 경우를 말합니다.즉 Email 별로 특정 값을 변경 시킬 때, 반복으로 노가다 할 필요 없이 한번에 처리하는 쿼리를 만들 수 있습니다. 커서를 이용해서 말이죠커서 선언--커서 생성 DECLARE CursorEmail CURSOR FOR SELECT Email from tblUserTable where IsDelete = 'False' 커서 열기--커서 열기 Open CursorEmail; 불러온 데이터를 이용한 작업-- 맨처음 결과 데이터로 이동 Fetch Next From CursorEmail Into @email WHILE(@@F..

[ETC] highlight.js for HarooPad and Markdown-Here

highlight.js? 자바스크립트로 만들어진 코드 구문 강조 라이브러리 입니다. 거의 모든 마크업에서 작동하고 자동 언어 감지 기능을 가지고 있습니다. 공식사이트 꾸준히 업데이트가 이루어 지고 있습니다. (Language, Style 등) 라이브러리이기 때문에 어디든 추가 하여 사용 가능합니다. 하지만 이 포스트는 설치가 아닌 하루패드와 Markdown-Here에 대해서 다루고 있으므로 설치 관련해서는 아래 블로그를 참조 부탁드리겠습니다. WEBDRI - highlight.js 하루패드, Markdown-Here에서의 Highlight.js 하루패드와 Markdown-Here는 모두 코드 구문강조를 지원하며, 둘 다 Highlight.js 라이브러리를 사용하고 있습니다. 하루패드 코드 구문 강조 문서..

[ETC]에버노트에서 하루패드로

불편함으로 다가온 에버노트의 변경점한달전 에버노트가 크게 변경될 것이라는 예고와 함께 메일이 왔었습니다.그 후 한달동안 신경 안쓰고 있었는데.. 포스트 작성을 위해서 접속을 해보니 웬걸 미묘한 변화가 느껴집니다.에버노트가 기기 제한 2개가 생기고 기존에 베타로 제공하던 기능이 기본적으로 작동하게 패치가 되었습니다.기기 제한은 회사 컴퓨터 집 노트북만 쓰면되지 사실 그렇게 큰 문제는 아니였습니다.문제가 된건 새로운 기능이었습니다.마크다운 문법에 따라 자동치환 해주는 기능인데 에버노트에서 Markdown-Here(크롬플러그인)을 연동해서 쓰는 저에게는 엄청 큰 불편함이 느껴지더군요.그런 이유로 미련을 버리고 새로운 마크다운 에디터를 찾아 떠나게 되었습니다.하루패드한국인 개발자가 개발한 마크다운을 제공하는 텍..

[ETC] Brush.js - Canvas를 간단하게 사용하자

Canvas란간단하게 설명하자면 HTML5의 canvas는 그래픽들을 위한 컨테이너 입니다. 선, 사각형, 원, 문자, 이미지 등을 추가하는 메서드를 지원하며, canvas엘리먼트를 정의 후 자바스크립트를 이용하여 그림을 그려줍니다. html에 다음과 같이 정의 합니다. 도형 등은 자바스크립트를 이용하여 그려 줄 수 있습니다. w3s html5_canvas 하지만 급하게 canvas를 사용하고 싶거나 애니메이션을 적용하고 싶을 경우 처음부터 공부해야 하는 어려움이 있습니다. 그럴 때 아래에서 소개할 오픈소스 라이브러리를 사용하여 빠르게 내 사이트에 적용 시킬 수 있습니다. Brush.jsBrush.JS 소개 Brush.js는 canvas 사용을 도와주는 라이브러리 입니다. 간단한 그리기를 비롯해 애니메이..

[ETC] Heroku Push 시, Username/Password 입력 무반응

Heroku Push 안되는 현상Mac환경에서 작업하여 Heroku에 Push할때는 별 이상없는데, 회사에서 수정해볼까 하고 소스를 받아서 수정 후 git push heroku master를 해보니 username, password를 입력하라고 뜹니다.C:\heroku>git push heroku master Username for 'https://git.heroku.com': Password for 'https://gnin@git.heroku.com': 처음보는 문구에 당황하긴 했지만 우선 입력해 보았습니다.remote: ! WARNING: remote: ! Do not authenticate with username and password using git. remote: ! Run `heroku l..

[ETC] 초고속 코딩도구 Emmet, SublimeText에서 사용하기

Emmet초고속 코딩 도구! 이름이 거창합니다. 하지만 아래 주소로 가셔서 사용 데모를 보시면 왜 초고속인지 이해가 되실거라 믿습니다. Emmet 공식 사이트간단하게 설명하자면 CSS 셀렉터를 이용하여 HTML코드로 변경하는 도구입니다.이 외에도 수많은 기능이 있으며 아래에서 설명하겠습니다. 이 포스트의 목적은 제가 작업중에 생각이 안날 때 쉽게 찾기 위함이었으나, 간단한 기능적 설명도 달아서 기능을 모르셔도 한번 봐두시면 도움이 될 것 입니다.설치하기package control을 이용하여 설치하겠습니다. 설치방법은 이전 포스트를 참조부탁드립니다.지난 포스트 보기Package Install에서 Emmet을 검색하여 설치합니다.Emmet의 경우 설치 후 Sublime Text의 재시작이 필요합니다. 재시작..

[ETC] Webpack에서 NODE_ENV 사용하기 및 Heroku 환경변수 설정

Heroku에 작업물을 올리고 빌드를 했더니 오류가 발생한다.디버그 해보니 로컬에서 작업할 때 사용한 NODE_ENV 환경변수를 webpack에서 빌드 후에 제대로 불러오지 못하고 있었다. process.env.NODE_ENV를 사용하기 위해서 webpack definePlugin 기능을 사용하였고 말끔하게 해결됐다.DefinePlugin 사용WebPack Config에 아래와 같이 설정을 추가해 주자module.exports = [{ plugins: [ new webpack.DefinePlugin({ 'process.env': { 'NODE_ENV': JSON.stringify(process.env.NODE_ENV) } }) }] 위 플러그인을 추가해주고 다시 빌드 하니 정상적으로 동작하는걸 확인 할 ..

[ES6] Object.assign, TypeError: undefined is not a function

오류 발생Node.js + Express + Redux 환경에서 작업 중, Object.assign 사용 시 아래와 같은 오류가 발생하였다.TypeError: undefined is not a function 원인Object.assign 함수의 경우 ES6에서 지원하기 때문에 지원하지 않는 브라우저에 대해서 TypeError가 발생한다.기존 webpack에 transpiler로 Babel을 사용중이었다. 그러나….해결알고보니 Babel을 사용하여도 모던’브라우저에서만 정상적으로 동작하고 하위 브라우저에서는 동작하지 않는다고 한다.polyfill ( 모든 기능이 작동할 수 있도록 처리 해주는 기능 )이 추가로 설정되지 않아서 생기는 문제였다. 그런 문제로 Babel Polyfill을 설치 하니 정상적으로 ..