본문 바로가기

전체 글

[javascript] 파일과 디렉토리 구조 빌드 시스템을 갖추기 전에 첫 번째로 정해야 할 것은 파일과 디렉토리 구조를 구성하는 방법입니다. 구조는 프로젝트 성격에 아주 큰 영향을 받습니다. 예를 들면 자바스크립트 라이브러리만 단독으로 개발하는 프로젝트와 웹 사이트에 필요한 모든 파일을 관리해야 하는 프로젝트는 구조가 다를 수밖에 없습니다. 1. 좋은습관 다음은 프로젝트 성격과 관계없이 자바스크립트 파일과 디렉토리 구조를 프로젝트에 적용할 때 추천하는 방법입니다. 파일당 객체 하나 각 자바스크립트 파일에 객체 하나만 정의해야 합니다. 이러한 규칙은 다른 프로그래밍 언어에서도 쉽게 찾아볼 수 있으며 일반적으로 유지보수가 더 쉬워집니다. 파일에 하나의 객체만 정의하면 자연스레 파일 수가 많아지는데 이렇게 파일이 많아지면 같은 파일에 여러 명이 동시에.. 더보기
티스토리 블로그 뭘 써야할까,,, 설을 맞아 본가에 가족과 내려와서도 티스토리 블로그를 써야겠다고 생각했다 그런데 무엇을 써야 하나,,, 요즘 나름대로 하는 것은 많다고 생각하는데 생각만 하다가 마는 것이 대부분이라서 결국은 잡생각만 많이 한다라는 결론만 나온다. 블로그도 그렇게 잘할 수 있을 거 같았고 잘하고 싶었으나 오늘처럼 '도대체 무엇을 써야 하나,,,'라고 생각하는 날이 많아지고 따라서 블로그를 쓰지 않고 거르는 날도 조금씩 늘어간다. 솔직히 티스토리 애드센스를 위해서 시작했지만 '멀고도 험하구나'라는 생각이 자주 드는 요즘이다. 하고 싶은 것은 많지만 무엇하나 제대로 하는 것이 없는 나를 보면서 점점 더 무엇을 어떻게 해야 하는 생각이 잦은 요즘,,, 오늘은 이것으로 때우려고 한다. 그럼 이만. 끝. 더보기
코드에서 구성 데이터 분리하기 코드는 컴퓨터가 실행하는 명령어 집할일 뿐 그 이상도 그 이하도 아닙니다. 데이터는 명령어에 의해 전달되기도 하고 수정되기도 하지만 궁극적으로는 데이터를 이용해 결과물을 만듭니다. 문제는 데이터를 수정할 때 생깁니다. 소스 코드는 수정할 때마다 에러가 발생할 위험이 있는데, 데이터 값을 변경하려고 코드를 바꾸면 다른 명령어에 영향을 미쳐 필요치 않은 위험을 초래합니다. 잘 디자인된 애플리케이션에서는 주요 데이터를 소스 코드밖에 두어 에러가 발생할 걱정 없이 데이터를 수정할 수 있습니다. 1. 구성 데이터란? 구성 데이터는 애플리케이션 코드에 직접 입력된 값입니다. 다음 예제를 통해 살펴보겠습니다. // 코드에 삽입된 설정 데이터 function validate(valeu){ if(!value){ aler.. 더보기
javascript 브라우저 탐지 브라우저 탐지 방법은 웹 개발에서 항상 뜨거운 쟁점입니다. 이 논쟁은 특히 과거에 가장 인기 있었던 넷스케이프 내비게이터의 등장으로 더 일찌감치 시작되었습니다. 당시 넷스케이프 2.0은 다른 웹 브라우저보다 훨씬 발달하여 웹사이트가 사용자에게 정보를 보내기 전에 사용자 에이전트 문자열을 확인하는 것도 가능했습니다. 이 때문에 많은 브라우저 공급사, 특히 마이크로소프트에서는 어쩔 수 없이 당시 쓰였던 브라우저 탐지 방법에 맞춰 사용자 에이전트 문자열을 넣게 되었습니다. 1. 사용자 에이전트 탐지 요즘에는 클라이언트에서 브라우저를 주로 탐지하지만, 쵝에는 서버에서 사용자 에이전트 문자열을 이용하여 브라우저를 탐지했습니다. 당시에는 단지 사용자 에이전트 문자열을 기준으로 서버에서 특정 브라우저의 접속을 막아 .. 더보기
그림판 상단 메뉴 고정하기 (파일, 홈, 보기 메뉴 고정) 안녕하세요 오늘은 윈도우에서 사용하는 그림판 프로그램에서 그림판 상단 메뉴 고정하는 방법을 포스팅하려고 합니다. 저는 이미지 파일을 가끔 수정할 일이 있습니다. 엄청 고난의도 작업이 아니기 때문에 그림판으로도 충분히 가능한데요 직접 사용하다보면 간단한 작업은 그림판으로도 충분히 가능하니 잘 사용하고 있습니다. 그런데 언젠가부터 상단의 메뉴, 홈, 보기 메뉴의 내용들이 클릭을 해야만 보이더군요 그것들을 고정하는 방법을 설명드립니다. 사용하려는 메뉴를 더블 클릭해줍니다. 예를 들면 '홈' 또는 '보기'에 마우스 커서를 놓고 더블 클릭을 하면 고정됩니다. 상단 더블 클릭 적용 후 반대로 상단의 고정 메뉴가 사라지게 하려면 다시 한번 '홈', '보기' 메뉴를 더블클릭해주면 됩니다. 이것으로 간단하게 그림판 상단.. 더보기
[이클립스] Failed to run the WC DB work queue associated with file / svn cleanup error 개발자들이 사용하는 이클립스 툴을 사용하다 보면 svn 싱크를 맞추다가 아래와 같은 오류를 만날 수 있습니다. Failed to run the WC DB work queue associated with file 위와 같은 오류가 발생하면서 svn 소스를 update 할 수 없다거나 소스 싱크 실행 시 오류가 발생한다면 아래와 같이 해결할 수 있습니다. 먼저 sqlite3가 설치되어 있어야합니다. SQLITE3 설치 URL https://www.sqlite.org/download.html 1. 명령어를 통한 삭제 cd {work-dir-base} // 문제가 되는 프로젝트의 파일이 존재하는 위치를 변경 sqlite3 .svn/wc.db "delete from work_queue" 또는 C: sqlite3 .. 더보기
자바스크립트 이벤트 처리 javascript 자바스크립트 애플리케이션에서 이벤트 처리는 중요합니다. 모든 자바스크립트는 이벤트를 처리해서 UI를 구현하므로 웹 개발자들은 이벤트 핸들러 코드를 작성하거나 수정하는 일이 잦은 편입니다. 그런데 안타깝게도 자바스크립트 초기부터 지금까지 개발자들은 이벤트 처리를 그리 중요하게 여기지 않습니다. 자바스크립트에 아키텍처의 전통적인 컨셉을 적용할 때도 이벤트 처리 방법은 아주 조금만 바꿨습니다. 게다가 저마다 개발자가 사용해본 방법 위주로 이벤트 처리를 해서 유지보수성이 상당히 좋지 않습니다. 1. 고전적인 방법 개발자 대부분이 이벤트 핸들러에 전달되는 이벤트 객체에 대해 잘 알고 있습니다. 이벤트 객체에는 이벤트 타입에 따른 부가 데이터가 이벤트 타겟 등 이벤트와 관련한 모든 정보가 있습니다. 아무스 이벤트는.. 더보기
[javascript] try...catch문 자바스크립트의 try...catch문을 이용하면 브라우저가 에러를 처리하기 전에 에러를 먼저 가져올 수 있습니다. 에러가 발생할만한 코드를 try 블록에 두고 에러가 발생하면 처리하는 코드는 catch 블록에 두는 것입니다. try { // do something } catch(ex) { handleError(ex); } try 블록에서 에러가 발생하면 실행이 즉시 중단되고 catch 블록으로 바로 넘어가는데 이때 catch 블록에는 에러 객체가 넘어옵니다. 따라서 발생한 에러를 어떻게 처리해야 할지는 에러 객체를 살펴보면 가장 좋은 방법을 알아낼 수 있습니다. 그리고 finally 절을 추가할 수도 있습니다. finally 절은 에러 발생 여부와 상관없이 반드시 실행되어야 할 코드를 입력합니다. fin.. 더보기