'분류 전체보기'에 해당되는 글 66건
- 2016.01.19
- 2016.01.11
- 2016.01.11
- 2016.01.07
- 2015.12.13
- 2015.12.12
- 2015.12.02
- 2015.11.30
- 2015.11.27
- 2015.11.26
Andrew’s Broken English.
Event though the expression were poor, studying essay writing begins on 19th of Jan, 2016
and it will be ended to the end of the year.
Please keep watch on me.
See what changes occurred like language level , maturity or self-examination…
In this week, reading a book, “Aladdin and the Enchanted Lamp”, retold by JUDITH DEAN published by Oxford Bookworms Library..
The story is not what I’ve known, retold by writer, so I’ve read it more excitingly
If I have a Jinnee, should I be happy? Maybe I can get many chances to be happy.
Searched this words, ‘Black magic’.
a little interesting refer to wikipedia
https://en.wikipedia.org/wiki/
let's check this one.
http://weesing.com/
there are plenty more fish in the sea (0) | 2017.09.21 |
---|---|
Reading interesting books (0) | 2016.01.31 |
출처) http://bsnippet.tistory.com/17
POJO 란?
각종 프레임웍 책에서, 그리고 기술 서적에서 POJO라는 단어를 통해 처음 접하게 된 용어이다. 그런데 막상 책에 나온 설명을 읽고, 다시 인터넷을 찾아봐도 이해가 되지 않았다. 평범한 객체!? 명백(Plain) 오래(Old) 자바(Java) 객체(Object)라는데 이게 무슨 말일까?
실제적으로 POJO를 이해하기 위해선 Enterprize Java Bean(EJB)를 이해해야 한다. EJB에서 나오는 빈을 사용하는데 단점들을 극복하기 위해서 시작되었다. EJB에서 복잡한 3-티어(tier) 애플리케이션 환경을 이해해야 하는 어려움이 있었다. 단순히 빈을 만들기 위해서 다양한 부모 클래스를 알아야 했고, 인터페이스를 구현해야 했던 것이다. 이러한 제약들을 없애고 '단순한 자바 객체'를 이용해 개발하자는 것이었다. 이후에는 데이터베이스와 직접 상호 작용하기 위해 POJO 기반의 하이버네이트가 개발되어고, 간단하게 작업을 ORM 기능을 구현할 수 있게 되었다.(하이버네이트를 공부해보니, mybatis보다 쉽게 데이터베이스 작업을 할 수 있다. 한번 공부해놓으면 좋은 기술이다.)
개념적으로는 자바 언어 명세에서 강제적으로 제한되어진 것을 제외하고 어떠한 제약이 없는 자바 객체를 말한다. 구체적으로 예를 들면 다음과 같다.
1. 부모 클래스를 확장하지 않는다.
public class Foo extends javax.servlet.http.HttpServlet { ...
2. 인터페이스 클래스를 구현하지 않는다.
public class Bar implements javax.ejb.EntityBean { ...
3. 어노테이션(Annotation)을 포함하지 않는다.
@javax.persistence.Entity public class Baz { ...
하지만, 여러 이유 때문에 많은 소프트웨어 제품이나 프레임워크에서 영속성(Persistence)과 같은 기능이 제대로 작동할 수 있도록 어노테이션을 사용하도록 제한을 두고 있다.
POJO는 기존의 복잡한 것들을 버리고, 간단한 자바 객체를 가지고 일을 처리하자는 철학을 가지고 있다.
클래스를 간단히 설계하고, 이 클래스를 여기저기에 배치하기 쉽게 의존성을 줄인 것이다.
Maven이란? (0) | 2016.01.11 |
---|---|
Java MDI(multiple Document Interface)form Application 만들기 using AWT/Swing (0) | 2015.11.26 |
"HttpClient" 를 이용하여 어플리 케이션 실행화일 업데이트 방법 (0) | 2015.11.23 |
출처)
Maven에 대한 설명을 위 출처에서 그대로 copy & paste함
Maven은 크게 두가지 기능이 있다. 첫번째 라이브러리 관리 기능이다. Java로 개발을 하다보면 Spring, jdbc, junit, mybatis등 필요한 라이브러리들이 많다. 이걸 .zip형태로 다운받아서 수동으로 라이브러리를 추가 해줘도 된다.
수동으로 하는 방법이 방법이 훨씬 직관적일 수 있으니까. 이를테면 덧셈을 할 때 '1 + 1 = 2'라고 배우기 전에 사과 두개를 그려 놓고 '사과 한개에 사과 한개가 더 있으면 사과 2개이다.' 라고 하면서 배우는 것과 같은 이치이다.
나중에는 내가 덧셈을 배울 때 사과로 배웠는지 산까치로 배웠는지 잊어버리듯이 메이븐의 라이브러리 관리는 우리가 처음에 수동으로 라이브러리를 다운로드 받고 경로를 추가해주던지 복사해 주던지 하면서 외부 라이브러리를 관리 하다가 이것을 편하게 관리해 주는 기능만을 사용하도록 만들어 준다.
써보면 안다. 쓰는 법은 차차 익히게 될 것이다. 한번에 설명을 해줄 수 없으니 지금은 이해가 잘 가지 않더라도 천천히 가보도록 하자.
메이븐의 라이브러리 관리 기능은 너무 편하다. 이클립스에 기본으로 탑재 되어 있으므로 별다른 설정 없이 그냥 사용하면 된다.
pom.xml이라는 파일에 우리가 만들 App에 어떠한 라이브러리를 사용할 것인지 적어 놓기만 하면 Maven이 알아서 다운 받고 알아서 설치해 주고 경로도 지정해준다.
메이븐은 pom.xml이라고 해도 과언은 아니다. 메이븐이 편한 이유는 pom.xml파일만 있으면 Maven이 설치되어 있는 IDE라던지 혹은 시스템에 설치가 되어 있으면 Maven빌드를 통해 해당 파일을 다른곳에서도 쉽게 설치해준다.
이것은 git을 이용한 팀 프로젝트 할 때 더 유용하다.
두번째, 빌드 기능이다. 빌드란 무엇인지 이전 글에 써 놓은것을 보면 대충 감이 잡힐 것이다. '빌드'기능은 Ant도 가지고 있는 기능인데, 굳이 원한다면 라이브러리 관리는 maven으로 해도 되고 빌드는 수동으로 하거나 Ant를 이용해서 해도 된다.
하지만 결국은 maven하나로 통일하게 될 것이다.
결론은 메이븐이란 라이브러리 관리+빌드 툴인거다.
추가 출처) http://www.slideshare.net/sunnykwak90/ss-43767933
POJO 란? (0) | 2016.01.11 |
---|---|
Java MDI(multiple Document Interface)form Application 만들기 using AWT/Swing (0) | 2015.11.26 |
"HttpClient" 를 이용하여 어플리 케이션 실행화일 업데이트 방법 (0) | 2015.11.23 |
도플러 효과(Doppler effect, 도플러 현상, 도플러 편이 현상)는 크리스티안 도플러(Christian Doppler)가 발견한 것으로, 어떤 파동의 파동원과 관찰자의 상대 속도에 따라 진동수와 파장이 바뀌는 현상을 가리킨다.소리와 같이 매질을 통해 움직이는 파동에서는 관찰자와 파동원의 매질에 대한 상대속도에 따라 효과가 변한다. 그러나 빛이나 특수상대성이론에서의 중력과 같이 매질이 필요 없는 파동의 경우 관찰자와 파동원의 상대속도만이 도플러 효과에 영향을 미친다.
출처) https://ko.wikipedia.org/wiki/%EB%8F%84%ED%94%8C%EB%9F%AC_%ED%9A%A8%EA%B3%BC
class HellowJava { public static void main(String[] args) { System.out.println("link url "); System.out.println("http://alexgorbatchev.com/SyntaxHighlighter/manual/configuration/"); System.out.println("참조, http://blueray21.tistory.com/m/post/30"); } }
class HellowJava { public static void main(String[] args) { System.out.println("unlink url "); System.out.println("http://audiodot.com"); System.out.println("http://doitforyou.co.kr"); } }
angularjs 로 현재 메뉴에 avtive 상태 표기하기 (0) | 2016.07.08 |
---|---|
highlight.js 테스트 (0) | 2015.12.12 |
HTML/CSS편집 메뉴에서
<link rel="stylesheet" href="./images/tomorrow-night-bright.css" />
<!--
업로드한 코어 파일(highlight.pack.js)을 불러옵니다.
이 스크립트는 Highlight.js 라이브러리를 사용하기 위해 필수적입니다.
-->
<script src="./images/highlight.pack.js"></script>
<!--
페이지가 로드될 때 강조를 적용하기 위해 필요한 코드입니다.
-->
<script>hljs.initHighlightingOnLoad();</script>
참고) https://highlightjs.org/usage/
angularjs 로 현재 메뉴에 avtive 상태 표기하기 (0) | 2016.07.08 |
---|---|
Test : SyntaxHighlighter 3.0.83 (0) | 2015.12.13 |
1. Nested Loop
- 테이블의 인덱스끼리 inner-outer 루프를 형성하여 결과를 쿼리하는 방식입니다.
- 제일 많은 유형의 실행계획입니다.
2. Sort Merge
- 쿼리의 결과가 많은 양의 데이터를 읽는 경우, 테이블들을 각각 full-scan하여 같은 키값을 갖는 데이터끼리 조인하여 실행합니다.
- Sort-Merge 방식은 많은 메모리와 디스크 I/O를 필요로 하기 때문에, sqlplus를 실행하는 주체의 메모리/CPU/디스크 스펙에 많은 영향을 받습니다.
3. Hash Join
- 한 테이블은 매우 많은 Row를 갖고, 다른 한 테이블은 매우 적은 Row를 가질 때, 해쉬 알고리즘에 의해 큰 테이블을 여러개의 버켓으로 나누어 쿼리를 수행하는 방식입니다. 작은 테이블은 인덱스를 태우는 것보다 full-scan을 하는 것이 유리할 때 사용됩니다.
출처)http://annehouse.tistory.com/413
참고, 다시함보자)http://wiki.gurubee.net/pages/viewpage.action?pageId=4948020
SharePlex (0) | 2017.02.16 |
---|---|
Rows를 grouping 하여 columns로 표현하기 (0) | 2015.11.24 |
Android 다국어... 이걸 자꾸 잊음.
중국어는 cn이 아니고 zh
출처 : http://developer.android.com/reference/java/util/Locale.html
Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
CANADA | Locale constant for en_CA. | ||||||||||
CANADA_FRENCH | Locale constant for fr_CA. | ||||||||||
CHINA | Locale constant for zh_CN. | ||||||||||
CHINESE | Locale constant for zh. | ||||||||||
ENGLISH | Locale constant for en. | ||||||||||
FRANCE | Locale constant for fr_FR. | ||||||||||
FRENCH | Locale constant for fr. | ||||||||||
GERMAN | Locale constant for de. | ||||||||||
GERMANY | Locale constant for de_DE. | ||||||||||
ITALIAN | Locale constant for it. | ||||||||||
ITALY | Locale constant for it_IT. | ||||||||||
JAPAN | Locale constant for ja_JP. | ||||||||||
JAPANESE | Locale constant for ja. | ||||||||||
KOREA | Locale constant for ko_KR. | ||||||||||
KOREAN | Locale constant for ko. | ||||||||||
PRC | Locale constant for zh_CN. | ||||||||||
ROOT | Locale constant for the root locale. | ||||||||||
SIMPLIFIED_CHINESE | Locale constant for zh_CN. | ||||||||||
TAIWAN | Locale constant for zh_TW. | ||||||||||
TRADITIONAL_CHINESE | Locale constant for zh_TW. | ||||||||||
UK | Locale constant for en_GB. | ||||||||||
US | Locale constant for en_US. |
Android Emulator guide (0) | 2017.02.18 |
---|---|
hybrid app development step2 (0) | 2016.11.16 |
hybrid App step1 (0) | 2016.10.15 |
안드로이드 마켓 (0) | 2015.11.27 |
안드로이드에서 FragmentTabHost를 이용한 탭 메뉴구성 (0) | 2015.11.23 |
안드로이드는 마켓이 참 다양한데..
제가 등록한 마켓을 적어보겠습니다.
여러곳을 등록해 놓으면 유입되는 경로 증가로 다운로드 수 증가한다는데...
^^ 잘 만들면 됨.
https://play.google.com/store
https://developer.amazon.com
http://www.androidfreeware.net/
http://slideme.org/
http://www.mobango.com/
http://www.cnet.com/
http://html5.oms.apps.opera.com/en_kr/ : 진행중
http://www.phoload.com/ : 진행중
http://givemeapps.com/
http://www.camangimarket.com/ : 진행중
http://www.phoload.com/ : 진행중
http://www.mobiles24.co/
http://givemeapps.com/
http://soc.io/apps
http://www.lgworld.com/cms/lgworld.cms.main.RetrieveMainCmd.dev (진행중)
http://seller.samsungapps.com/ (진행중)
Android Emulator guide (0) | 2017.02.18 |
---|---|
hybrid app development step2 (0) | 2016.11.16 |
hybrid App step1 (0) | 2016.10.15 |
Android 다국어 (0) | 2015.11.30 |
안드로이드에서 FragmentTabHost를 이용한 탭 메뉴구성 (0) | 2015.11.23 |
Java MDI(multiple Document Interface)form Application 만들기 using AWT/Swing
JAVA에서는 MDIForm이 기본적으로 제공 안됨.
유사한 모습으로 구현 가능한 것이
Jframe( Parent ) - JinternalFrame ( Child ) 을 JdesktopPane 로 제어하는 프레임 구조임.
샘플화면
1. Java Project 생성
2. JFrame 생성 (Main 페이지)
3. JInternalFrame ( Child )
MDIFrame 수행을 위해서 메인 페이지에 메뉴추가 후 Child1,2,3을 실행 + 프로그래밍
Parent Page : JavaFrameMainPAge에서 메뉴추가
프로그래밍
**javaFrameMainPAge 클래스에 JDesktopPane import.
import javax.swing.JDesktopPane; /*추가*/
import javax.swing.JInternalFrame;
@SuppressWarnings("serial")
public class javaFrameMainPAge extends JFrame {
private JPanel contentPane;
private JDesktopPane desktopPane ; /*추가 : 멀티문서 인터페이스 or 가상 데스크탑을 생성하는 컨테이너*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
}
});
}
**JDesktopPane 컨테이너에 JInternalFrame Add
private void mdiFormSetting(JInternalFrame oIframe)
{
boolean bObj= true;
JInternalFrame[] allFrames = desktopPane.getAllFrames();
for(int i=0; i<allFrames.length; i++){
if(allFrames[i].getClass() == oIframe.getClass()){
}
}
if(bObj){
desktopPane.add(oIframe);
oIframe.setVisible(true);
}
}
**메뉴에서 Child1,2,3 페이지 호출
JMenuItem mntmChild = new JMenuItem("child1");
mntmChild.addActionListener(
public void actionPerformed(ActionEvent e) {
}
});
mnMditest.add(mntmChild);
POJO 란? (0) | 2016.01.11 |
---|---|
Maven이란? (0) | 2016.01.11 |
"HttpClient" 를 이용하여 어플리 케이션 실행화일 업데이트 방법 (0) | 2015.11.23 |