가볍고 기능 많은 AkelPad입니다.

"설정 - 레지스트리"에서 설정하면 설정한 확장자는 AkelPad로 열리게 할 수 있습니다.

저 같은 경우에는 *.txt, *.ini, *.bat, *.smi, *.cpp, *.h 등의 확장자를 연결해서 사용 중입니다.

기능이 많아 여기서 다 설명하기는 힘들어 몇 가지만 대충 스샷 올렸습니다.


줄 번호가 나오고 드래그 된 항목은 헥사 값도 나옵니다.

또 한 수정된 라인은 줄 번호 옆에 노락색으로 표시가 되며, 

설정을 통해 배경색이나 줄 번호 색 등을 바꿀 수 있습니다.


확장자에 맞게 Syntax가 적용됩니다.

아래는 *.html문서이며, html을 포함한 cpp, h 등의 소스 코드는 

해당 언어에 맞게 Syntax가 적용되며 우측에 코드 폴더가 나타납니다.


설정을 통해 비주얼 스튜디오와 환경을 맞춘 화면입니다.

클라이언트 영역만 보면 분간 못 할 정도입니다.


공식 사이트에 있는 플로그인 목록 입니다.


제가 사용하는 플러그인 목록 입니다.





Visual Studio 2013 Update3이 나왔습니다.

사진은 업데이트1이지만 링크는 업데이트3입니다.


링크


*.cpp, *.h, *.hpp 등의 각 종 소스 파일부터 텍스트 파일, 그림 파일, 데이터 등을 비교할 수 있는 Beyond Compare입니다.

병합도 가능하여 서로 다른 버전의 같은 소스코드 파일을 병합할 때 유용합니다.

svn의 Diff와 비슷한 프로그램이며, 개발자라면 꼭 쓰게 되는 프로그램 중 하나입니다.


프로그램 실행 시 모습입니다.

폴더 단위 비교, 텍스트 파일 비교, 데이터 비교, 16진수 비교 등등이 있습니다.


텍스트 파일을 비교한 화면 입니다.

제가 만든 프로그램의 파일 중 하나이고, 버전만 다른 경우입니다.

좌측은 3.7버전이고 우측은 4.9.9버전인데 무엇이 추가되고 변했는지 파악할 수 있습니다.


폴더 비교 입니다.

폴더 내의 파일들을 비교하여 변한 파일은 빨간색으로, 추가되거나 제거된 파일은 파란색으로 표시됩니다.

변한게 없는 파일은 검은색으로 표시됩니다.





소스 코드의 라인을 세주는 프로그램입니다.

라인을 카운터할 때 유효 라인과 주석, 공백 라인을 카운터 해줍니다.


소스 코드를 납품하거나 프로그래밍 과제를 할 때 참고용으로 사용합니다.



사용 방법은 간단합니다.

왼쪽 트리 메뉴에서 원하는 폴더를 선택 후 "Start" 버튼을 누르면 됩니다.

     : 라인을 셀 소스가 들어있는 폴더를 선택

     : 폴더에 들어있는 파일들, 각 파일의 유효 라인과 주석, 공백 라인, 총 라인을 출력

     : 옵션 설정, 라인을 셀 파일의 확장자 등을 설정

     : 선택한 폴더에 들어있는 파일들의 유효라인, 주석 라인, 공백 라인, 총 라인 등을 출력



간월도 갈매기






'사진 > 일상' 카테고리의 다른 글

클래시 오브 클랜  (4) 2014.07.21
[700D] 이사  (4) 2014.02.04
[700D] 설악산 신흥사 청동좌불상  (2) 2014.02.01
[700D] 오리  (2) 2014.01.31
[700D] 등  (4) 2014.01.19
[700D] 고북 한농원 꽃뜰 가든 일진 고양이  (2) 2014.01.02
[700D] 보름달  (0) 2013.12.29


제작사 홈페이지 : http://www.wholetomato.com/


비주얼 스튜디오로 개발할 때 많은 도움이 되는 비주얼 어시스트입니다.

강력한 인텔리센스 기능과 구문 강조, 자동 완성, 리팩토링 기능 등이 있으며 

비주얼 스튜디오 6.0부터 최신 버전인 2013(12.0)까지 지원합니다.


어찌나 편리한지.. 사용 안 한지 5개월이 넘었음에도 불구하고 아직도 생각이 나네요.

사용 시, 소스 분석이나 타이핑 면에서 많이 편합니다.


좌측은 기본 화면, 우측이 비주얼 어시스트가 적용된 화면입니다.

클릭시 원본 크기로 볼 수 있습니다.

   


아래는 스펠링 확인 기능을 비활성화 시켜 한글 주석에 빨간 밑 줄이 생기지 않게 하는 옵션


VA Snippet Editor입니다.

사용자 매크로 비슷한건데, 아래와 같이 자주 사용하는 주석 형식이나 문법을 

Shortcut과 함께 등록시켜두면 편하게 사용할 수 있습니다.


////을 입력하면 상기에 정의 한대로 날짜와 제 이름이 소스에 입력 됩니다.


환경 변수는 이것저것 많지만 제가 자주 사용하는 건 날짜 위주의 환경 변수를 많이 사용합니다.

$YEAR$.$MONTH$.$DAY$.

$DATE$ 등






아이폰, 아이패드에 네이버 메일 설정하는 방법입니다.



1. 네이버 메일 설정

아이폰 설정 전에 연동할 네이버 메일을 설정해 줘야 합니다.

연동할 메일 주소로 로그인하고 아래 캡쳐대로 설정을 해줍니다.


환경설정 -> POP/IMAP 설정 -> 사용함 -> 확인




2. 아이폰 설정

아이폰 설정 부분입니다.


아래 캡쳐는 "설정 -> Mail, 연락처, 캘린더" 까지 이동한 화면입니다.

"계정 추가" 항목을 눌러 줍니다.




맨 아래 "기타"를 눌러 줍니다.




맨 위에 "Mail 계정 추가" 항목을 눌러 줍니다.




이름(Name), 이메일(Email), 암호(Password), 설명(Description) 항목을 입력하고 다음 버튼을 눌러 줍니다.


내 이름 : 자유 입력

이메일 : 연동하려는 네이버 메일 주소 입력

암호 : 연동하려는 네이버 메일 암호 입력

설명 : 자유 입력




항목을 제대로 입력하였다면 아래와 같이 네이버 메일이 추가됩니다.




제거 하려면 해당 메일로 들어온 뒤 "계정 삭제" 버튼을 눌러 삭제합니다.





※요약

인라인 함수는 프로그램의 실행 속도를 높이기 위해 추가된 기능이며 C언어의 매크로 함수와 비교된다.


(개발자 입장에서)일반 함수와 인라인 함수의 가장 큰 차이점은 함수의 호출 방식이다. 일반 함수의 호출 방법은 프로그램 실행 중 함수를 실행해야하면 해당 함수의 주소로 점프시켰다가, 함수의 처리가 종결되면 다시 원래의 자리로 돌아오는 것이다. 이렇게 앞뒤로 점프를 수행하고, 점프할 위치를 기억하려면 함수를 사용하는데 시간이 많이 걸린다.


인라인 함수는 컴파일된 함수 코드가 프로그램의 코드 안에 직접 삽입되어진다. 이 말은 컴파일러가 함수를 호출하는 대신, 그에 대응하는 함수 코드로 대체한다는 것을 의미하며 함수 호출없이 삽입된 함수 코드를 그 자리에서 처리하므로 해당 함수를 수행하기 위해 프로그램이 다른 주소로 점프했다가 되돌아 올 필요가 없어 속도면에서 유리하다.


※특징

- 인라인 함수를 사용하려면 함수 선언 앞에 inline이라는 키워드를 붙이거나 함수 정의 앞에 inline이라는 키워드를 붙인다.

- 클래스 멤버 함수가 inline을 사용하려면, 함수 정의의 위치가 *.h에 있어야 한다. 안 그러면 확인할 수 없는 외부 참조라고 뜬다.

- 프로그래머가 inline 선언을 해도 컴파일러가 인라인화를 거부할 수 있다.

- 프로그래머가 inline 선언을 안 해도 컴파일러가 인라인화를 할 수 있다.

- 함수의 덩치가 크거나 재귀호출이면 inline 요구를 거절하는 컴파일러도 있다.

- 함수 코드의 수행 시간이 짧고 빈번하게 호출되는 함수가 아니라면, 인라인 함수로 인한 절대적인 시간 절약은 그다지 크지 않다.



※장점

- 함수가 인라인화 되어 성능의 향상으로 이어질 수 있다.


※단점

- 메모리 사용 측면에서는 인라인 함수가 일반 함수보다 불리하다. 이유는 어떤 프로그램에서 인라인 함수를 열 번 호출한다면, 프로그램은 그 함수의 사본을 프로그램의 코드 안에 열 번이나 삽입해야 하기 때문이다.

- 매크로 함수와 달리 자료형에 독립적이지 못 하다. 단, 템플릿을 이용하면 자료형에 독립적으로 사용할 수 있다.



※예제

#include <iostream>

using namespace std;

inline void Test( int nNum1 );

int main( )
{
	Test( 2 );

	return 0;
}

void Test( int nNum1 )
{
	int nResult = nNum1;
}





※요약

매개변수의 디폴트 값이란 함수를 호출할 때 매개변수(전달인자)를 생략할 경우, 지정된 디폴트 값을 넣어서 함수를 호출하는 걸 말한다.



※특징

 - 디폴트 값은 함수 원형 선언시 설정한다.

 - 디폴트 값은 오른쪽에서 왼쪽 순서로 설정해야 한다.



※예문

 int Test( int nNum1, int nNum2, int nNum3=30 )

O

 int Test( int nNum1, int nNum2=20, int nNum3=30 )

O

 int Test( int nNum1=10, int nNum2=20, int nNum3=30 )

O

 int Test( int nNum1=10, int nNum2, int nNum3 )

X

 int Test( int nNum1, int nNum2=20, int nNum3 )

X

 int Test( int nNum1=10, int nNum2=20, int nNum3 )

X



※예제

#include <iostream>

using namespace std;

//함수 선언에 디폴트 값을 설정한다.
void Test( int nNum1, int nNum2=20, int nNum3=30 );

int main( )
{
	Test( 2 );			//Test( 2, 20, 30 )와 같다.
	Test( 2, 8 );		//Test( 2, 8, 30 )와 같다.
	Test( 2, 7, 9 );	//Test( 2, 7, 9 )와 같다.

	return 0;
}

//함수 정의에는 디폴트 값을 설정 안 해도 된다.
void Test( int nNum1, int nNum2, int nNum3 )
{
	int nResult = 9;
}




※요약

함수 오버로딩이란, 서로 다른 여러 개의 함수가 하나의 이름을 공유(연결)하는 것이다.

함수 오버로딩은 서로 다른 데이터형을 대상으로 하지만 기본적으로는 같은 작업을 하는 함수들에만 사용하는 것이 좋다.



※특징

 - C++은 함수 호출 시 함수의 이름전달되는 인자의 정보를 참조하여 호출할 함수를 결정한다.

 - 함수 오버로딩의 열쇠는 전달 인자이며, 이것을 함수 시그내처( function signature )라고 한다.

 - 함수 오버로딩의 조건은 매개 변수의 자료형, 매개 변수의 개수, 매개 변수의 순서 등이다.



※예문

↓ (O)매개 변수의 자료형이 다르므로 함수 오버로딩 성립

 void print( float fNum ) { . . . }

 void print( int nNum ) { . . . }


↓ (O)매개 변수의 개수가 다르므로 함수 오버로딩 성립

 void print( int nNum1 ) { . . . }

 void print( int nNum1, int nNum2 ) { . . . }


↓ (X)반환형의 차이는 함수 오버로딩의 조건에 포함되지 않는다.

 void print( int nNum1 ) { . . . }

 int print( int nNum1 ) { . . . }



※예제

#include <iostream>

using namespace std;

void print( int nNum );
void print( int nNum1, int nNum2 );
void print( float fNum );
void print( double dNum );

int main( )
{
	print( 5 );
	print( 6, 8 );
	print( 3.14f );
	print( 50.5 );

	return 0;
}

void print( int nNum )
{
	cout << nNum << endl;
}

void print( int nNum1, int nNum2 )
{
	cout << nNum1 << " and " << nNum2 << endl;
}

void print( float fNum )
{
	cout << "float : " << fNum << endl;
}

void print( double dNum )
{
	cout << "double : " << dNum << endl;
}


+ Recent posts