반응형

Doxygen을 이용하여 C++ 문서화를 하게 되면,

_declspec(dllexport)와 같은 매크로들을 그냥 함수로 인식해 버려서

실제 함수명은 문서에 나타나지 않게 된다.

이에 대한 해결 방법을 다음 사이트에서 찾을 수 있다.

http://cs.swan.ac.uk/~csoliver/ok-sat-library/internet_html/doc/doc/Doxygen/1.7.6.1/html/preprocessing.html

GUI 버전으로 바꿔서 요약해 보면,

  1. [Expert]탭으로 가서,
  2. [Preprocessor]를 선택하고,
  3. 다음 항목들에 체크를 하고,
    • ENABLE_PREPROCESSING
    • MACRO_EXPANSION
    • EXPAND_ONLY_PREDEF 
  4. PREDEFINED 리스트에 다음 구문을 추가해 준다.
    • __declspec(x)=


반응형
반응형

문서 자동화

소스코드 문서화를 위한 툴로 Doxygen이 있다는 것은 알고 있었고,

사용해 보면서 무척 편리하다고 느꼈었다.

하지만 실제로 필요한 문서들은 소스코드 문서에 그치지 않고

UML Diagram, DB ERD, 사용자 문서 등이 모두 필요하다.


문서화 관련해서 검색하던 중에,

다음과 같은 문서 자동화를 모두 망라해서 설명한 사이트를 발견하게 되었다.

  • UML Diagram
  • DB ERD
  • 소스코드 문서화
  • 사용자 문서

블로그로부터 문서별 툴을 정리해 보면, 다음과 같다.

문서 종류 

 툴

 UML Diagram

 UMLGraph

 DB ERD

 스키마스파이(SchemaSpy)

 빌드 다이어그램

 그랜드(Grand)

 소스코드 문서

 Doxygen

 사용자 문서

 DocBook


이런 툴을 이용할 때의 장점은, 이미 완성된 소스나 DB 스키마를 가지고

문서를 작성해 준다는 것이다.

문서를 먼저 만들고 개발을 하는 것이 전통적인 개발의 정석이지만,

현실적으로 뒤늦게 문서를 만들어야 하는 경우도 비일비재하다.

또한, 최근의 개발론은 꼭 전통적인 방식을 따르지 않는다.

여하튼, 여러가지 이유로 구현된 결과물을 가지고 문서 작업을 하게 될 때

위 방법들을 알아두면 많은 도움이 될 것이다.

반응형
반응형

[JavaScript]원하는 바이트수만큼 문자열 잘라내기

JavaScript에서 원하는 길이만큼 문자열을 잘라내기 위해서는, 

substring함수를 사용하면 된다.

하지만, 문자열이 영어가 아닌 한글이나 다른 언어인 경우, 

문자열의 길이가 바이트수와 일치하지 않는다.

왜냐하면, 기본적으로 영어는 한글자당 1바이트를 사용하지만

한글은 2바이트를 사용하기 때문이다.

따라서, 원하는 바이트수만큼 문자열을 잘라내기 위해서는,

문자열의 바이트수를 구하는 함수를 응용하여 

다음과 같은 함수를 만들어 사용해야 한다.

 function cutByLen(str, maxByte) {

for(b=i=0;c=str.charCodeAt(i);) {

b+=c>>7?2:1;

if (b > maxByte)

break;

i++;

}

return str.substring(0,i);

}

위 함수는, 문자열 및 최대 허용 바이트수를 입력하면

허용 바이트수를 초과하는 문자열을 잘라내어 주는 함수이다.

예를 들어, 

alert(cutByLen('문자열 자르기 샘플', 10);

이라고 JavaScript코드를 작성하면, 

'문자열 자'

까지만 출력된다.

반응형
반응형

생성자에서 다른 생성자 호출하는 방법

Java, C# 등에서 클래스를 생성할 때,

인수별로 여러 개의 생성자를 만들 수 있다.

예를 들어, 다음과 같은 식이다.

Class A {

public A() {

.....

}


public A(int param1) {

.....

}


public A(int param1, param2) {

.....

}

}


이 때, 생성자에서 다른 생성자를 호출하는 경우, this라는 키워드를 사용하는데,

Java와 C#의 문법이 조금 다르다.


1) 먼저, Java문법을 살펴보면, 다음과 같다.

Class A {

public A() {

this(10);

.....

}


public A(int param1) {

this(param1, 20);

.....

}


public A(int param1, param2) {

.....

}

}


2) 반면, C#에서는 다음과 같이 해야 한다.

Class A {

public A() : this(10) {

.....

}


public A(int param1) : this(param1, 20) {

.....

}


public A(int param1, param2) {

.....

}

}


반응형
반응형

Javascript로 Image Size(Width & height) 알아내기

다음과 같이 하면, JavaScript로 이미지 크기를 알아낼 수 있다.


<script language="javascript">

var img = new Image();

img.onload = function() {

  var w = this.width;

  var h = this.height;

  alert("width : " + w + ", height : " + h);

}

img.src = '[이미지 경로]';

</script>


예를 들어, 다음과 같이 하면 티스토리 로고의 가로, 세로를 알아낼 수 있다.

<script language="javascript">

var img = new Image();

img.onload = function() {

  var w = this.width;

  var h = this.height;

  alert("width : " + w + ", height : " + h);

}


function setImgSrc() {

  img.src = 'http://i1.daumcdn.net/cfs.tistory/static/top/tistory_logo.gif';

}

</script>

다음 이미지를 클릭해 보세요.

<img src="http://i1.daumcdn.net/cfs.tistory/static/top/tistory_logo.gif"

 onclick="javascript:setImgSrc();" />


다음 이미지를 클릭해 보세요.


반응형
반응형

Where is it?

IE에서, PDF뷰어나 기타 자체 다운로더를 통해 다운로드 받은 파일이

다운로드 시 지정한 폴더에 보이지 않는 경우가 있다.

'보호 모드 사용'을 선택했을 때 이러한 문제가 생길 수 있다.

해결 방법은, [도구]->[인터넷옵션]->[보안] 탭으로 들어가서,

'보호 모드 사용' 체크박스의 체크를 해제해 주어야 한다.


<설정 화면>


위의 화면의 표시된 영역의 체크를 해제해 주면 되는데,

상단부의 '보안 설정을 보거나 변경할 영역을 선택하십시오.' 라고 쓰여진 부분을 통해

적용할 대상 사이트를 선택할 수도 있다.

'인터넷'을 선택하면 전체 사이트에, 

'신뢰할 수 있는 사이트'를 선택하면 신뢰할 수 잇는 사이트로 등록된 사이트에만

적용이 된다.


* 관련 자료 사이트

  • http://nuance.custhelp.com/app/answers/detail/a_id/6605/~/pdf-files-opened-and-saved-from-internet-explorer-do-not-appear-in-the-save
  • http://www.nightowl.pe.kr/blog/article/350


반응형
반응형

Linux 명령어 Tip - grep & find

내 대부분의 업무는 윈도우즈 상에서 이루어 진다.

개발환경도 윈도우즈 OS 위에 구축되어 있다.

하지만, 서버는 LINUX환경이라

때때로 Linux 명령어를 사용해야 하는 경우가 있다.

그럴 때마다 인터넷을 뒤져가며 명령어를 찾아서 사용하는데,

이번에 업무를 하면서 grep과 find 명령어에 대해 잘 정리된 블로그를 발견하였다.

필요하면 나중에 다시 참고할 수 있도록,

링크를 남겨 둔다.


http://slgi97.egloos.com/10947881

반응형
반응형

C# Tips!! 한글과 영어가 섞인 경우의 Format 정렬

 

C#에서 문자열 출력시, 한글 한글자는 영어 2글자 분의 자리를 차지한다.

따라서 일반적인 정렬 방식을 쓰게 되면, 한글과 영어의 차이 때문에 정렬이 안된다.

이럴 때는 바이트수를 계산해서 출력해 주어야 자리수를 맞출 수 있다.

가령, 한글이냐 영어냐에 상관 없이 영어 열자리 간격에 맞추어 오른쪽 정렬로 출력하려면,

다음과 같이 하면 된다.


String strToPrint = "출력할 문자열";

int padLen = 10 - Encoding.Default.GetBytes(strToPrint).Length;

Console.WriteLine("{0}", "".PadLeft(padLen) + strToPrint);


또는, 다음과 같은 방법도 있다.

String strToPrint = "출력할 문자열";

byte[] byte1 = Encoding.Default.GetBytes(strToPrint  + "          ");

byte[] byte2 = new byte[10];

Array.Copy(byte1, byte2, 10);

Console.WriteLine("{0}", Encoding.Default.GetString(byte2));

반응형
반응형

Software release life cycle

소프트웨어를 다운로드하려다 보면,

BETA, ALPHA, RC 등등의 수식어가 뒤에 따라 붙는 것을 볼 수 있다.

BETA나 ALPHA정도는 게임 등을 통해 귀에 익숙해져서

테스트 단계의 버전이라는 것은 알고 있다.

그런데 RC는 무엇인지 잘 몰라서 인터넷을 찾아 보니,

Release Candidate의 약자로, 큰 버그가 보이지 않는 한

정식으로 출시(Release)하게 될 버전이란 의미였다.


Software release life cycle이란 것이 있는데,

우리말로는 소프트웨어 생명주기라고 번역하며,

다음과 같은 주기를 갖는다는 것도 알게 되었다.

  • Pre-alpha
  • Alpha
  • Beta
    • Open beta, Closed beta
  • RTM
  • GA
  • Production or live release, Gold

이 중에서, RTM부터가 출시 단계에 속한다.

 

자세한 내용은, 다음 사이트들에 설명이 잘 되어 있다.

  • 테크넷 블로그
    • http://blogs.technet.com/b/koalra/archive/2009/07/27/beta-rc-rtm.aspx
  • 영어 위키백과
    • https://en.wikipedia.org/wiki/Software_release_life_cycle
  • 한글 위키백과
    • https://ko.wikipedia.org/wiki/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4_%EC%83%9D%EB%AA%85_%EC%A3%BC%EA%B8%B0


반응형
반응형

SQL Development

프로젝트를 하면서 새로 알게 된 지식들을 이곳에 정리할 생각이다.


첫번째로, Oracle DB에서의 UPDATE문과 SELECT문의 결합에 관한 내용이다.

TableA를 기초로 하여 TableB를 업데이트하는 경우에

다음과 같은 쿼리문을 사용할 수 있다.


UPDATE

(

SELECT A.col_1 AS A_col_1,

A.col_2 AS A_col_2,

B.col_1 AS B_col_1,

B.col_2 AS B_col_2

FROM TableA A, TableB B

WHERE A.col_3 = B.col_3

AND A.col_4=[value]

)

SET B_col_1 = A_col_1,

B_col_2 = A_col_2



반응형

+ Recent posts