WPF 네아로 구현.

 

 

1. 소스코드

 - 본 소스코드를 기반으로 수정하여 사용 하시기 바랍니다.

 - VS2017로 생성된 프로젝트 입니다.

WPF_Naver_OAuth.zip
7.90MB

 

2. 개발자용

 - 본인의 어플리케이션이 네이버에 정상적으로 등록되었는지 테스트 용 입니다.

 - 네이버 개발자 센터 > 내 어플리케이션 메뉴에서 Client ID, Client Secret, Callback URL을 입력후 정상적으로 사용자의 프로필을 가져오는지 확인 할 수 있습니다.

 

다검색_개발자용.zip
0.55MB

3. 사용자용

 - "다검색"으로 등록된 어플리케이션으로 네아로를 이용 할 수 있습니다. 

 - WPF 응용프로그램에서 어떠한 방식으로 네아로를 사용 할 수 있는지 확인 할 수 있습니다.

다검색_사용자용.zip
0.55MB

 

Posted by 시긔양

댓글을 달아 주세요

Programming/C 언어2016. 10. 28. 14:10

#include <stdio.h>



int sumArgs(int a, ...)

{

va_list args; // 가변 인자 set

int sum=0;

int arg;


sum += a;

__crt_va_start(args, a); // 가변인자 start

//va_start(args, a);

for (;;)

{

arg = __crt_va_arg(args, int); // 가변인자 get

//arg = va_arg(args, int);

if (0 == arg) // 가변인자가 0이면 종료 

break;

sum += arg;

}

__crt_va_end(args); // 가변인자 end

//va_end(args);

return sum;

}


int main()

{

int nTemp;

printf("%d\n", sumArgs(1, 2, 3, 0));

printf("%d\n", sumArgs(2, 4, 6, 0));

printf("%d\n", sumArgs(100, 100, 100, 100, 100, 0));

printf("%d\n", sumArgs(100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 0));


return 0;

}

Posted by 시긔양

댓글을 달아 주세요

카테고리 없음2016. 8. 7. 19:07

! Exclamation Point (익스클레메이션 포인트)
" Quotation Mark (쿼테이션 마크)
# Crosshatch (크로스해치)
$ Dollar Sign (달러사인)
% Percent Sign (퍼센트사인)
@ At Sign (엣 사인, 혹은 엣)
& Ampersand (앰퍼센드)
' Aposterophe (어퍼스트로피)
* Asterisk (애스터리스크)
- Hyphen (하이픈)
_ underscore (언더스코어)

. Period (피리어드)
/ Slash (슬래시)
\ Back Slash (백슬래시)
: Colon (콜론)
; Semicolon (세미콜론)
^ Circumflex (서큠플렉스)
` Grave (그레이브)
{ Left Brace (레프트 브레이스)
} Right Brace (라이트 브레이스)
[ Left Braket (레프트 브라켓)
] Right Braket (라이트 브라켓)
| Vertical Bar (버티컬바)
~ Tilde (틸드)


Posted by 시긔양

댓글을 달아 주세요

Mac2016. 3. 24. 13:13


dock 공백추가.app.zip


Posted by 시긔양

댓글을 달아 주세요

Programming2015. 11. 5. 18:02

1.이클립스에서 톰캣 실행시 오류 나는경우

Server탭의 오류나는 서버 더블클릭 > 

General Information 탭 > Open launch configuration 클릭 > 

Arguments 탭 > VM arguments 필드 마지막에 아래 내용 추가.

 -XX:PermSize=256m -XX:MaxPermSize=256m



2. 톰캣만 실행했을시 오류 나는 경우 (Tomcat 8의 경우..)


{TOMCAT_HOME}/bin/catalina.sh  파일을 편집기로 열어서 제일 상단에 아래 내용 추가.

 JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"


But.. 나는 아무리 해봐도 사이즈가 늘어나질 않는다.. Tomcat 8버전이라서 그런지.. 다른 옵션이 있는건지.. catalina.sh는 참조 하지도 않는듯한 것은 기분탓?


그래서 찾아낸 방법

{TOMCAT_HOME}/bin/catalina.bat 파일을 편집기로 열어서 JAVA_OPTS를 설정하는 부분을 찾는다. 아래 표 부분. 키워드는 JAVA_OPTS 이다

if not "%LOGGING_CONFIG%" == "" goto noJuliConfig

set LOGGING_CONFIG=-Dnop

if not exist "%CATALINA_BASE%\conf\logging.properties" goto noJuliConfig

set LOGGING_CONFIG=-Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"

:noJuliConfig

set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% "

if not "%LOGGING_MANAGER%" == "" goto noJuliManager

set LOGGING_MANAGER=-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager

:noJuliManager

set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%"



뭔가 설정이 다를경우 JAVA_OPTS를 다르게 설정 해주는것 같은데.. 그냥 저기서 자바 실행 환경 부분을 아래와 같이 추가 해준다. (따옴표 주의!!)

if not "%LOGGING_CONFIG%" == "" goto noJuliConfig

set LOGGING_CONFIG=-Dnop

if not exist "%CATALINA_BASE%\conf\logging.properties" goto noJuliConfig

set LOGGING_CONFIG=-Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"

:noJuliConfig

set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% 

-Djava.awt.headless=true -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"

if not "%LOGGING_MANAGER%" == "" goto noJuliManager

set LOGGING_MANAGER=-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager

:noJuliManager

set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER% 

-Djava.awt.headless=true -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"



정상적으로 반영 됐는지 확인은 VisualVM 으로...


참고 : http://www.mkyong.com/tomcat/tomcat-javalangoutofmemoryerror-permgen-space/

Posted by 시긔양

댓글을 달아 주세요

Programming/XML/XSD2015. 11. 1. 01:56

예~~전 프로젝트에서도 xml파일을 사용해서 java class파일을 생성해야 하는 일이 있었는데. 

다시 하려니 다 까먹어서 정리를 할게요


여러가지 방법이 있겟지만, 저의 경우는 xml파일 생성 -> xsd파일 생성후 편집 -> Java Class 형태로 해요.

물론 반대의 경우도 가능 하겠죠.


JAXB를 사용하면 XSD를 JAVA Class파일형태로 쉽게 변경 할수 있어요


먼저 사용할 .xml파일과 .xsd 파일을 준비 하세요. 없으면 밑에 파일 다운받으세요.


bookstoreSample.xml


bookstoreSample.xsd


이클립스 JAXB 플러그인을 사용하여 생성 할거에요 

저는 이클립스를 STS를 사용하여 이미 JAXB 플러그인이 설치되어 있어요 

이클립스 for Java EE를 설치하면 기본적으로 JAXB 플러그인이 설치 되어 있다고 하네요

능력껏 준비 해요~



1. 이클립스 File -> New -> Project -> JAXB Project 선택




2. 적절한 project name을 입력한다음 Target runtime을 선택해주세요. 외국인 영상에서는 JRE가 아닌 JDK로 설정해야 한다고 되어있는데.. 저는 선택이 안되서 JRE로 선택 해봐요..  버전은 최근버전이 좋겠죠.




3. 생성된 별거 없는 프로젝트 폴더 구조에요




4. 다운받은 .xml과 .xsd를 끌어당겨 생성된 프로젝트에 넣어주세요




5. 프로젝트 폴더 오른쪽버튼 -> New -> Other 클릭




6. JAXB Class form Schema 선택후 Next



7. 방금 생성한 프로젝트 선택후 Next


8. XSD파일을 선택하라고 나와요. 4번에서 넣은 .xsd 파일이 보일거에요 선택하고 next



9. Package를 입력하라고 나와요. 프로젝트에 맞게 package를 입력하세요. 우선 샘플용이니 저는 com.jaxbtest 라고 입력하고 Finish



10. 생성된 클래스 파일이에요 




외국인 친구 영상을 보면 클래스별로 분리해서 생성 해주던데.. 

저는 이상하게 클래스 1개에 이너 클래스로 생성이 되네요..

JAXB 버전이 달라서 그런지, JDK로 선택 안해줘서 그런지..

옵션을 이리저리 바꿔봐도 클래스가 1개 밖에 생성이 안되네요 


어쨋든 맘에 드는 모양은 아니지만, 하나하나 타이핑 해서 만들어줄뻔 했던 클래스를 뽑아줘서 다행이에요.

자동으로 만들어 주는것까지만 해도 감사하죠.


이놈에 자바 특성상 저랑 다르게 설정이 되거나 다르게 나와도 어쩔수 없어요. 






Posted by 시긔양

댓글을 달아 주세요

Programming/XML/XSD2015. 11. 1. 01:10


Online XML to XSD Generator

http://www.freeformatter.com/xsd-generator.html


Online XSD to XML Generator

http://xsd2xml.com/


Validate XML against XSD

http://www.utilities-online.info/xsdvalidation/





Posted by 시긔양

댓글을 달아 주세요

1. JDK / JRE 설치

- PATH 설정


2. Apache Tomcat 설치


3. Apache Maven 설치

- Maven 이클립스 연동 (http://bigmark.tistory.com/30)

- Spring 설치 (http://tanklove.tistory.com/175)

Posted by 시긔양

댓글을 달아 주세요

Programming/JAVA2015. 2. 2. 09:48

회사 PC에서 사용하는 이클립스 환경을 그대로 집에서도 사용하고 싶었다..

주말간 오류가 계속 나서 던져 놓고 있었는데..

해결한듯. 


참고로 Dropbox 와 git를 연동해서 언제 어디서나 동일한 개발환경을... :) 


기존 이클립스에서...

1. 'File > Export > General > Preferences' 메뉴를 사용해서 '.epf' 파일을 저장

2. 백업하고자 하는 이클립스의 Workspace 폴더안에 '.metadata > .plugins' 폴더를 복사하거나 따로 저장

// 이 폴더들이 같이 움직여 줘야 테마 등 완벽히 복원이 되는듯.


새로 이클립스 설치 후...

3. 'File > Import > General > Preferences' 메뉴를 사용해서 1번에서 저장했던 '.epf'파일을 load

4. 새로 설치된 이클립스의 workspace로 지정된 폴더에 2번에서 저장했던 '.metadata > .plugins' 폴더를 copy.


git로 '.metadata > .plugins' 도 관리 해줘야 되려나 봄..


Posted by 시긔양

댓글을 달아 주세요

Programming/JAVA2015. 1. 26. 15:59

윈도우 환경에서 JAVA 프로그램이 윈도우 창을 제어 할 수 있을지에 대한 의문점으로 시작됨..


마우스나 키보드는 java.awt.Robot 클래스를 사용해서 제어 할 수 있지만..


JAVA에서 실행된 창이 아닌, 다른 윈도우의 정보를 읽거나 제어하려면 윈도우 라이브러리를 호출 해야함.


윈도우 레벨에서는 HWND(윈도우 핸들러)를 얻어와 마음대로 휘젓고 다닐수 있지만.. 


그래서 찾은 결론이 JNI(Java Native Interface) or JNA(Java Native Access).. 


1. HelloJNI.java 소스코드 작성



2. HelloJNI.java 소스코드 컴파일 

shell 에서..

> javac -encoding UTF-8 HelloJNI.java 

를 실행하면 'HelloJNI.class' 파일이 생성됨


2. HelloJNI.h 파일 생성

shell에서..

>javah HelloJNI

로 실행하면 나온다고 하지만.. 클래스파일을 찾을수 없다고 나옴..


그래서,

>javah C:\JAVA\JavaProject\JNI_Example\src\com\kss\jni\example\HelloJNI.java

로 실행하면 된다고 하지만.. 클래스명을 찾을 수 없다고 나옴.. OTL..


다른 블로거들은 여러가지 방법으로 해결했지만... 난 안됨 ㅠ 


결국 해결방법은

>cd C:\JAVA\JavaProject\JNI_Example

프로젝트의 루트 폴더로 가서

>javah -jni com.kss.jni.example.HelloJNI

이렇게 자바 스타일의 풀 클래스 경로를 적어주니 

C:\JAVA\JavaProject\JNI_Example\bin>dir

C:\JAVA\JavaProject\JNI_Example\bin 디렉터리

2015-01-28  오전 10:28    <DIR>          .

2015-01-28  오전 10:28    <DIR>          ..

2015-01-28  오전 10:06    <DIR>          com

2015-01-28  오전 10:28               492  com_kss_jni_example_HelloJNI.h


C:\JAVA\JavaProject\JNI_Example\bin>

이렇게 .h파일이 생성됨.






Posted by 시긔양

댓글을 달아 주세요