본문 바로가기

Programming

enum의 뿌리를 찾아서 출처 : http://www.nextree.co.kr/p11686/ 이번 글에서는 자바 1.5버전부터 새롭게 추가된 열거형 상수인 enum(enumeration)에 대해 알아보겠습니다. 열거형은 서로 연관된 상수들의 집합입니다. 이번 글은 enum 정의와 enum 사용방법, 그리고 enum 활용법을 살펴 봅니다. 1. enum이란?관련이 있는 상수들의 집합입니다. 자바에서는 final로 String과 같은 문자열이나 숫자들을 나타내는 기본 자료형의 값을 고정할 수 있습니다. 이렇게 고정된 값을 상수라고 합니다. 영어로는 constant입니다. 어떤 클래스가 상수만으로 작성되어 있으면 반드시 class로 선언할 필요는 없습니다. 이럴 때 class로 선언된 부분에 enum이라고 선언하면 이 객체는 상수의 .. 더보기
[Java] 자신을 호출한 이전 메소드 혹은 클래스 정보 보기 -M.javaColored By Color Scripter™12345678910111213141516171819202122232425package test; public class M { public static void main(String[] args) { new M().a(); } void a(){ b(); } void b(){ StackTraceElement[] a = new Throwable().getStackTrace(); for(int i = a.length - 1; i > 0 ; i--){ System.out.print("클래스 - " + a[i].getClassName()); System.out.print(", 메소드 - "+a[i].getMethodName()); System.out.p.. 더보기
Make a Java Daemon with Jsvc on Linux Daemon 이란 백그라운드로 실행되면서, 사용자의 인터페이스(tty)가 없는 프로그램을 말한다. 우리가 흔히 사용하는 리눅스 서비스들은 대부분 데몬으로 동작하며, -d로 끝나는 프로그램(예: sshd, syslogd)이 모두 해당된다. 리눅스 명령인 nohup으로 백그라운드 구동은 가능하지만, kill 명령으로 종료해야 한다.따라서 비정상 종료시의 처리를 하려면, OS로부터 signal을 받아야 하므로 데몬으로 구동시켜야 한다. 데몬과 백그라운드 프로그램의 차이 Apache Commons Daemon에서 제공하는 Jsvc를 이용하여, 간단한 데몬 프로그램을 작성해 보자.(우리가 잘 알고 있는 Tomcat도 Jsvc를 이용하여, 데몬으로 프로세스를 실행한다고 한다.) JsvcDaemon.zip아래 내용대.. 더보기
안드로이드 스크린 오버레이 android help screen overlay LMT Launcher For Android Updated With Pie-Style Multitasking Shortcuts 더보기
html 탭으로 고정시키기 http://ko.learnlayout.com/position.html 더보기
Java Data Structure 더보기
Get Column Names From ResultSet for MySQL 출처 : http://www.java2s.com/Code/Java/Database-SQL-JDBC/GetColumnNamesFromResultSetforMySQL.htm import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; public class GetColumnNamesFromResultSet_MySQL { public static Connection getConnection() throws Exception { String driver = .. 더보기
[Javascript] 책 넘기는 효과 http://www.turnjs.com/ 더보기
이클립스 - jQuery Syntax 오류 제거 출처 : http://javaworld.co.kr/46 이클립스에서 jQuery 등의 외부 라이브러리에 대한 Syntax 오류가 발생하는게 거슬리면, 다음과 같이 제외 대상으로 등록한다. 해당 프로젝트명을 우클릭한 다음 Properties 메뉴를 선택하여 설정창을 띄운 후, JavaScript -> Include Path 메뉴의 Source 탭으로 이동한다. Source 탭에 나오는 여러 소스 폴더 중에서 제외할 js 파일이 속한 폴더를 펼친 후에, Excluded 항목을 선택한다. Exclusion patterns 영역의 오른쪽에 있는 Add 버튼을 누른 후 제외할 js 파일을 선택한다. 더보기
구글맵, 구글어스 핀아이콘 등록하는 방법 출처 : http://enjoyfun.tistory.com/77 구글맵, 구글어스를 사용하면 특정지점을 표시하기 위해서 아이콘을 쓰는 경우가 있습니다. 저같은 경우는 구글에서 제공해주는 기본 아이콘을 사용했었는데.... 어느날 10보다 더 큰 수의 아이콘이 필요하길래 인터넷을 찾아보니깐 이런 사이트가 있네요. http://mapicons.nicolasmollet.com/ 다양한 스타일의 아이콘을 제공하고 있습니다. 다만, 구글맵이나 어스에서 아이콘을 사용하기 위해서는 인터넷상에 아이콘을 올려놔야 합니다. 어떻게 하냐구요? 1.티스토리에 이미지를 올려놓는다. 2.이미지를 우클릭해서 url을 알아낸다. 3.구글어스에서 사용한다. 1. 고도몰, 카페24와 같은 업체에서 호스팅을 한다. 저는 한달에 만원정도 하.. 더보기
자바스크립트 차트 http://www.amcharts.com/download/ 더보기
spring + mybatis + mysql + jsp(jstl) 환경 설치 성공 http://naiyumie.inour.net/archives/2787 더보기
JSP와 자바스크립트간의 정보 전송방법 출처 : http://dreamform.egloos.com/viewer/2805065 JSP 는 서버 언어 자바스크립트는 클라이언트 언어 1. 자바스크립트의 변수에 JSP 변수를 지정하는 것 (가능) 2. JSP 변수에 자바스크립트의 변수를 지정하는 것. (불가능) 정의상 불가능하지만 꽁수로 하는 방법이 있다. 1) 팝업창에 넘기는 것(다른 페이지의 자바스크립트 변수에 지정가능) get 방식이나 post 방식으로 넘길수 있다. var URL = "페이지 주소.jsp?name= "+name +"&year=" + year var rtnVal = window.showModalDialog(URL, "", "dialogWidth:0; dialogHeight:0; help:no; status:no;"); 위와 같이.. 더보기
[안드로이드] Phone & Tablet Stencils https://developer.android.com/design/downloads/index.html 더보기
Open JDK와 Oracle JDK 차이 참고 링크 => http://helloworld.naver.com/helloworld/1219 OpenJDK는 2007년 Java의 오픈소스화를 위하여 Sun에서 저작권자가 제공을 거부한 컴포넌트들을 제외한 JDK를 제공하여 시작된 프로젝트이다. 이 OpenJDK와 별개로 Oracle에서 제공하는 JDK를 구분하기 위하여 Oracle JDK 라고 부른다. [출처] Open JDK, Oracle JDK (개발자로 살아남기) |작성자 118k 더보기
[HTML5] GEOLOCATION http://m.mkexdev.net/56 더보기
안드로이드 개발자를 위한 10대 오픈소스 안드로이드(2D,3D)게임엔진 개인 정보수집차원에서 번역된 글 입니다..오역및 직역이 난무 합니다.. 아래 원문이 있으니 영어 잘 하시면 그곳에서 읽어 주시고, 그래도 글쓴이를 바른길로 인도하고자 하신다면, 잘못된 점을 지적해 주세요.~~~~ 개발자를 위한 오픈소스 안드로이드 앱들: 안드로이드 개발자를 위한 10대 오픈소스 안드로이드(2D 혹은 3D)게임 엔진 안드로이드 게임 엔진은 안드로이드 게임 개발자들에게는 매우 유용하다. 여기 안드로이드 개발자를 위한 10개의 오픈소스 안드로이드 게임엔진이 있다. 1. Rokon : 안드로이드용 오픈소스 2D 게임엔진 Rokon은 오픈소스이고 활용도가 높고(extensive), 강력하고(powerful)그리고 유연성(flexible)있는 안드로이드용 2D 게임엔진이다. Rokon은 처음부터 다.. 더보기
java oracle 설치 출처 : http://tiveloper.tistory.com/392 우분투나 기타 리눅스 배포판에 기본적으로 설치된 java는 OpenJDK다.. Open소스 JDK란 말인데, 왠지 모르게 거부감이 든다.. 그래서 난 늘 Oracle Java를 추가로 설치하곤 한다.. http://openjdk.java.net/projects/jdk6/ 에 보면 위 다이어 그램에 대한 설명이 나와 있는데,, 뭐,,다 귀찮고,,난 그냥 FM이 좋다.~~ 일단 난 JDK 6 버전을 설치해야 한다.. 이유는 묻지 마세요~~ 문제는 오라클에서 우분투 설치용을 제공하지 않는다는 점..따라서 제3의 repository를 등록해야 함. sudo apt-get install python-software-properties sudo a.. 더보기
System OS Check public class OSCheck { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(System.getProperty("os.name")); } } 더보기
Social Tagging 데이터 셋 (Datasets) 새로운 알고리즘 방법에 대하여 연구를 할때 그 방법론을 실험적으로 분석 평가를 해야한다. 특히 CS분야에서 유명한 학회나 저널의 논문을 작성할때는 규모가 큰 실 데이터로 실험하는 것을 선호한다. 도메인에 따라 조금 틀리지만 대체적으로 소셜 태깅 관련 논문에서 가장 많이 사용되는 실 데이터 셋은 딜리셔스, 플리커, Last.fm, CiteULike 데이터 인것 같다. 딜리셔스 (웹페이지 북마크), 플리커 (사진), Last.fm (음악)은 각 사이트에서 공식적으로 제공되는 데이터가 없다. 따라서 연구자들은 각자 API를 이용해 일부 데이터 crawling을 해서 사용한다. 그리고 그 데이터를 웹에 제공하기도 한다. 이에 반해 CiteULike (논문) 데이터는 CiteULike 사이트에서 연구의 목적하에 .. 더보기
인텐트(Intent)로 데이터 전달(putExtra, getExtras) 인텐트(Intent)를 사용할 때 데이터를 전달하는 방법에 대해서 이야기 하겠다. Intent로 다른 Activity(예, AnotherActivity.class)를 실행시킬 때는 다음과 같이 한다. Intent intent = new Intent(getApplicationContext(), AnotherActivity.class); startActivity(intent); 그런데, 여기에 추가로 AnotherActivity 데이터를 전달하고 싶을 때가 있다. 이때 사용할 수 있는 것이 putExtra() 다. Intent intent = new Intent(getApplicationContext(), AnotherActivity.class); intent.putExtra("name", "rio"); i.. 더보기
[UI] Navigation Drawer, SlidingMenu의 대체 라이브러리 출처 : http://blog.naver.com/hj332921/90191350227 SlidingMenu가 참 메뉴 만들기에는 좋은 라이브러리라고는 하지만 너무 복잡하다. 특히 Fragment나 Library 구성 등을 잘 다뤄보지 않은 초보자나 아마추어한테는 쥐약. 근데 UI가 너무 매끈하게 나와서 어거지로 개발하려고 악으로 깡으로 덤비는 사람들. 네비게이션 드로어라고, 외부 라이브러리 같은 거 다 집어 치우고 단지 Android Support Library로만 개발할 수 있는 게 있다고 한다. 이거 다 한 번쯤 본 적 있을 것이다. Google Play 스토어 앱 켜보면, 좌측 메뉴에 마치 SlidingMenu같이 생긴 메뉴가 하나 있다. 물론 위 쪽의 아이콘 눌러도 나오고, 드래그로도 열 수 있.. 더보기
카카오톡 UI의 비밀, ViewPagerIndicator 출처 : http://blog.naver.com/hj332921/90191352095 카카오톡을 쓰다 보면 슥슥 화면을 좌우로 긁으면 저렇게 부드럽게 이동하면서 화면 상단에 있는 갈색 바가 함께 움직이는 수려한 UI를 볼 수 있다. 이 UI의 이름은 View Pager Indicator. 말 그대로 ViewPager와 연동되어서 작동하는 인디케이터이다. 게다가 이 라이브러리의 개발자는 그 유명한 ActionBarSherlock을 개발한 그 개발자다. 그러니까, ViewPager와, ActionBarSherlock과, 이 라이브러리를 함께 쓸 때 그 효과가 배가 된다는 이야기다. 자세한 내용과 라이브러리 다운로드는 http://viewpagerindicator.com 을 참고하자. 사용 방법은 매우 단순하.. 더보기
[정리] 자바 Tip & Source 정리 (2010년 11월 23일) Java_소스및_팁2 (iText을 이용한) 실행시 html, pdf, rtf 문서 파일 생성하기 (iText을 이용한) 실행시 pdf 문서내 모든 페이지에 watermark (워터마크) 추가하기 (iText을 이용한) 실행시 pdf 문서안 북마크(bookmark) 생성하기 (iText을 이용한) 자바로 실행시 웹페이지안에 자바스크립트 코드 추가하기 (JExcel API 이용한) 서블릿에서 엑셀파일에 내용 출력하기 (JExcel API 이용한) 엑셀파일의 내용 읽기 (JExcel API 이용한) 엑셀파일의 내용 저장하기 (JExcel API 이용한) 엑셀파일의 내용을 CSV 포맷 파일로 저장하기 (JExcel API 이용한) 웹브라우져에서 서블릿에 업로드한 엑셀파일 읽기 (Spring) SimpleJdb.. 더보기
Java를 이용한 OS 정보 알아내기 Foo.javapublic class Foo { public static void main(String[] args) { System.out.println("운영체제 종류: " + System.getProperty("os.name") ); System.out.println("자바 가상머신 버전: " + System.getProperty("java.vm.version") ); System.out.println("클래스 버전: " + System.getProperty("java.class.version") ); System.out.println("사용자 로그인ID: " + System.getProperty("user.name") ); }} 실행 결과운영체제 종류: Windows 2000자바 가상머신 버전: .. 더보기
[팁] 이클립스 컬러 테마 설정 (Eclipse color themes) 출처 : http://javaking75.blog.me/140211967574 1. 이클립스 메뉴에서 Help -> Eclipse Marketplace 선택하고 2. 입력란에 "theme" 이라고 입력 후 엔터를 누르면 Eclipse Color Theme이라는 항목이 검색된다. Install 버튼을 클릭! 그럼 설치가 완료되고 이클립스가 재시작이 되면 Window -> Preferences 에 Color Theme 항목이 추가 되어있는것을 확인할수있다. 여기서 원하는 테마를 선택하여 적용하면된다. 다시 원상태로 돌아가고 싶다면 Default를 적용하면된다. [참고] 이클립스 스타일(테마) 제공해주는 사이트 http://www.eclipsecolorthemes.org/ [출처] [팁] 이클립스 컬러 테마 .. 더보기
스마트폰에 최적화된 반응형웹사이트 템플릿 무료 소스 모음 출처 : http://modangs.tistory.com/371 반응형 홈페이지 제작에 유용한 무료 템플릿 모음 요즘 웹디자이너에게 핫이슈라고 할수 있는 반응형 웹사이트는 모든 브라우져와 모바일 기기에서 자동으로 크기를 변환해주는 방식을 말합니다. 최근 스마트폰 사용자가 많아지면서 모바일 방문자 유입이 급속도록 증가함에 따라 반응형 홈페이지에 대한 관심도 날로 증가하고 있습니다. 하지만 아직까지는 미디어쿼리를 지원하지 않는 익스플로러 구버전 등 호환성에 문제가 많아 현 상황을 지켜보는 사람들도 많은데요. 윈도우 XP 업데이트 종료 이후에 구버전의 익스플로러 사용자들이 대거 8이상을 사용한다면 빠른시간안에 반응형 웹디자인이 대세가 되지 않을까 생각이 드네요. 오늘은 평면디자인, 반응형 레이아웃, JQuer.. 더보기
스프링 환경구축 - 메이븐방식 + 프로젝트 생성후 Errors running builder 'Maven Project Builder on project 에러 해결 스프링 기초설정 및 간단한 예제만들기 Project Explorer에서 마우스 우클릭후 New - Spring Project 선택 프로젝트 네임 설정후 Spring MVC Project 선택 패키지명 입력 루트를 지정. 초보라서 모든 폴더에서 접근가능하기 위해서 /를.. Server에 server.xml 파일에서 URIEncoding="UTF-8 패스에서 슬래시 제거 스프링은 src 폴더밑에 main 밑에 webapp 가 루트임 ♣ 프로젝트 생성후 프로젝트명에 빨간색 느낌표 비슷한게 안없어지면 repository 폴더가 제대로 있는지 확인 Errors running builder 'Maven Project Builder on project.... 에러 요런게 뜨면 프로젝트 삭제후 다시 프로젝트 생성후 S.. 더보기
error MSB8008: 지정된 플랫폼 도구 집합이 설치되지 않았거나 올바르지 않습니다. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets(511,5): error MSB8008: 지정된 플랫폼 도구 집합(v110)이 설치되지 않았거나 올바르지 않습니다. 지원되는 플랫폼 도구 집합 값이 선택되었는지 확인하십시오. visual studio를 사용할 때, 이후 버전이나 이전 버전의 솔루션을 사용하다 발생할 수 있는 상황입니다. 이 때, 프로젝트의 속성을 변경을 해주면 되는데 일반 -> 플랫폼 도구 집합 에서 해당 플랫폼에 맞게 변경해주면 된다. 만약 그 값을 모른다면 부모 프로젝트에서 상속이라고 하면 된다. 참고로 Visual Studio 2005 - V8.0 Visual Stu.. 더보기
표준 rand()함수보다 유용한 랜덤 생성 알고리즘 – MT, WELL 출처 : http://www.gamedevforever.com/114 현재 제작 중인 게임에서, 랜덤 시드 값을 일치 시켜서, 랜덤 결과를 서로 다른 클라이언트끼리 동기화 시키는 작업을 진행 하였습니다. 랜덤 시드값만 서로 일치시키면, 이후에 생성되는 랜덤 함수의 결과값들은 모두 일치가 되기 때문에, 예전에 스타크래프트와 같은 패키지 게임에서 자주 사용했던 테크닉입니다. ^^; 서로 다른 클라이언트끼리 처음 시드값만 일치 시키면, 이후의 랜덤값은 정해져 있기 때문에, 그 랜덤값을 사용한 이벤트등의 동기화에 사용하는 것이죠. 이런 테크닉은 패키지 게임 시절에는 리플레이 저장이나 네트워크 동기화등에서 상당히 많이 사용하였습니다. 하지만 온라인 게임으로 넘어오면서, 대부분 서버에서 랜덤값을 직접 생성하여 넘겨.. 더보기