1. Fat jar 이클립스 플러그인을 다운받아 설치한다 2. 다운받은 jar 를 이클립스 plugin폴더에 복사한다 3. 이클립스 재실행 4. File->export의 other에 새로 추가된 "Fat Jar Exporter" 선택후 next 5. Jar로 패키징할 프로젝 또는 패키지를 선택후 next 6. Jar-name : jar 생성위치선택 Main-Class:에서 메인스레드 선택 7. next 8. 포함할 외부라이브러리 확인 9. finish
FileOutputStream fs = new FileOutputStream("MyGame.ser");//파일연결법을 알고 있습니다 ObejctOutputStream os = new ObjectOutputStream(fileStream); //stream chain //객체저장법을 압니다 os.writeObject(characterOne); os.wrteObject(characterTwo); os.writeObejct(characterThree); os.close();
JTextField f = new JTextField(20); JTextField f = new JTextField("Your name"); System.out.println(f.getText()); f.setText("watever"); f.setText(""); f.addActionListener(myActionListener); f.selectAll(); f.requestFocus();
1. JFrame frame = new JFrame(); 2. frame.getContentPane().add(button); 다른 대부분의 구성요소와 달리 JFrame에는 다른 위젯을 직접 추가할 수 없다 3. frame.setSize(300,300); frame.setVisible(true); 4. button.addActionListener(this); 5. public void actionPerformed(ActionEvent event){ button.setText("button clicked!!"); }
20131117 경희대 Who am I by 베르나르 베르베르 강연 ------------------------------- 이 내용은 강연중 필기된 내용을 토대로 재작성된 내용입니다. ------------------------------- 1. 나는 누구인가? 나는 친구로부터 한 영매를 소개받았고 그 영매는 나의 11가지 전생에 관한 이야기를 해 주었습니다 저는 111개 전생중 11개의 의미있는 전생을 가지고 있었습니다 그중 하나는 이집트 하렘여인으로서의 삶이었고 다른 하나는 일본 사무라이 무사로서의 삶이 었습니다 이상하게도 그런 삶들이 제 현실의 삶과 유사한 점이 있었습니다 저는 어린 시절 류머티즘으로 크게 아팠지만 막대기로 하는 운동을 잘하여 검도대회 우승까지 하였습니다 어쨌거나 사무라이와 같은 그런 시대에 상부의 명령에 복종하는 삶 자체는 원하지 않습니다 복종에 의한 삶은 쉬우나 의미없는 일이라고 생각하기 때문입니다 영매와의 만남을 통해 나는 내가 권태를 싫어하고 별을 좋아하고, 결투를 좋아하며, 복종을 싫어하는 사람이라는 사실을 알게되었습니다 또하나의 삶은 영매를 통한 최면 속에서 이루어졌습니다 그것은 아틀란티스에서의 삶이었습니다 그곳에서는 저는 아주 편안한 상태에 있는 삶이었고 800세의 늙은 현자였습니다 특이할 만 한 것은 저는 그곳에서 26세의 한 여자와 사랑을 했습니다 제 전생에서 가장 위대한 러브스토리였죠 물론 현재는 작가로서 여러분을 만나고 있습니다 저는 전생을 믿는 사람이 아니지만, 이러한 생각들은 저의 상상력의 나래를 펼치는데 도움을 줍니다. 상상이지만 이런 상상은 여러분을 만나게 하는 원동력이 되기도 하였습니다 한달 전 즈음, 저는 최면을 통해 다시 아틀란티스로 돌아가기 위한 시도를 하였으며 그 시도는 성공하엿습니다 저는 그곳에서 만나고자 했던 인물을 만나는데 성공을 했고 그 사람에게 가르침을 요구하였습니다("당신의 평화로움의 비결은 무엇입니까?") 그러자 ...
자바에서 사용할 수 있는 디자인패턴 정리 Bridge pattern - 구체구현과 추상부를 모두 바꿔야 할 때 Builder pattern - 복합개체의 생성 및 사용(Iterator Pattern의 사고방식과 동일) Chain of responsibility pattern - 요청의 응답개체를 순차분기시킬때 FlyWeight pattern - 1객체로 다수"가상인스턴스"를 제공(상태만 달리해서)-메모리절약 Interpreter pattern - 특정 언어에 대한 파싱 Mediator pattern - 객체간 복잡한 통신과 제어를 한 곳에 모을때 Memento pattern - 객체복구(ex 작업취소 등) Prototype pattern - 어떤 객체의 인스턴스를 만드는 작업이 자원을 먹거나 복잡할때 Visitor pattern - 객체에 기능추가할때 캡슐화가 필요없을때
데코레이터 - 객체를 감싸 새로운 행동을 제공 스테이트 - 상태기반의 행동을 캡슐화하여 위임을 통해 필요행동을 선택 스트래티지 - 교환가능한 행동을 캡슐화하고 위임을 통해 필요행동을 선택 이터레이터 - 컬렉션이 어떻게 구현되었는지 드러내진 않으면서도 컬렉션 내에 잇는 모든 객체에 대해 반복 작업을 처리할 수 있게 해 줍니다. 퍼사드 - 일련의 클래스에대해 간단한 인터페이스를 제공 프록시-객체를 감싸서 접근을 제어 팩토리메소드-생성할 구상클래스를 서브클래스에서 결정(ex DB연결팩토리) 어댑터-객체를 감싸서 다른 인터페이스를 제공 옵저버-상태가 변경되면 다른 객체에 연락을 돌릴 수 있도록 템플릿메소드-알고리즘의 개별단계구현을 서브클래스에서 결정(ex 알고리즘의 일부기능이관) 컴포지트-클라이언트에서 객체컬렉션과 개별객체를 똑같이 다루도록(ex nod와 leaf) 싱글턴-딱 한 객체만 생성되도록(ex sync) 추상팩토리-클라이언트에서 구상클래스를 지정하지 않으면서도 일군의 객체생성에 도움 커맨드패턴-요청을 객체로 감쌈 -------------- 참고> GoF의 디자인패턴:Design Pattern 23개의 기본패턴모음집
- MVC는 옵저버패턴+스트래티지패턴+컴포지트패턴으로 된 컴파운드패턴이다 - 모델은 옵저버패턴을 이용하여 옵저버에 대한 의존성을 없애면서도 자신의 변경사실을 알린다 - 컨트롤러는 뷰의 전략객체다 - 뷰는 컴포지트패턴을 이용해 UI를 구성한다 - MVC는 서로 느슨하게 결합한다 - 새로운 모델을 도입할 때는 어댑터패턴을 활용한다 - 모델2는 MVC의 웹버전이다 - 모델2의 컨트롤러는 Servlet이며 뷰는 JSP다.
- 바뀌는 부분은 캡슐화 한다 - 상속보다는 구성을 활용한다 - 구현이 아닌 인터페이스에 맞춰서 프로그래밍한다 - 상호작용하려면 느슨한 결합을 사용한다 - 클래스는 확장에 대해서는 열려잇지만, 변경에 대해서는 닫혀있어야한다(OCP) - 추상화된 것에 의존하라. 구상클래스에 의존하지 마라. - 친한 애들끼리만 얘기한다 - 먼저 연락하지 마세요. 저희가 연락드리겠습니다. - 클래스 변동사유는 한가지 뿐이어야 한다.
1. http request 2. servlet Controller a. get javaBean b. set javaBean c. model request 3. model response 4. servlet Controller send javaBean to JSP(=view) 5. http response
부모가 아이를 더 크게 성장시키려면 모든 걸 갖추어주는 배려는 독이 될 수 있다. 어느 정도 결핍을 허용하고, 그 속에서 스스로 판단하고 걸어갈 수 있게끔 해야 한다. 인류사의 모든 문명은 결핍에서 성장하고 풍요에서 쇠퇴해갔다. 개인도 마찬가지다. - 한형조 (한국학 중앙연구원 교수) 그야말로 헝그리 정신이 필요한 시대입니다. 그러나 실제로 헝그리 하지 않은 상황에서 헝그리 정신을 갖는다는 것은 매우 어려운 일입니다. 역으로 생각하면, 그렇기 때문에 오히려 사랑하는 자녀, 사랑하는 후배, 부하직원들에게 어떻게 하면 결핍을 선물할까? 헝그리 정신을 어떻게 심어줄까? 더욱 더 고민해야 하는 때라 할 수 있습니다. by kyh
지식Q&A > 컴퓨터통신 > 프로그래밍 > 웹프로그래밍 > 자바 질문: java Swing의 효용가치? bei**** / 2003-08-02 18:19 java Swing이라고 아실겁니다.. 기존의 awt의 사용상의 한계를 뛰어넘은.. 어떤 플래폼에서도 영향을 받지않고 똑같은 모양의 자체컴포넌트를 쓸수있고.. 암튼 발전된 구조의 이벤트, 그래픽 처리등등.. 심도깊게 공부를 하지 않아서 자세히는 모르겠지만.. 암튼 자바의 진보된 Application 및 Applet 개발툴 정도로 알고 있는데요.. 아직까지 Swing으로 작성된 프로그램을 데모프로그램이외에는 본적도 없고.. 물론 재미 삼아 짜는 사람들은 극소수 봤습니다만.. Swing으로 작성한 실제로 사용하는 경우를 못봤고.. 타언어로 작성된 프로그램과 비교에서도 속도면에서 엄청 밀리는 느낌인데요.. 이런 상황에서 Swing을 공부할 필요가 있을까하는 생각이 밀려오네요.. 물론 공부해서 해보단 득이 되겠지만.. 그래도 어느정도의 목표의식을 가지고 공부하기엔 약간은 혼란스러운 상황인데요.. 혹시나 Swing 효용성(?)에 관해 생각있으신 분들 답변좀.. 답변: www.thinkfree.co.kr solik / 2003-08-03 02:42 스윙은 무겁고 느리다... 네 맞습니다..분명히 C++ 에 비하면 느립니다..어쩔 수 없는건 아시죠? JVM 이 있는한 그건 해결되지 못할 듯 싶습니다. Swing 의 효용가치를 얘기하자면 비교해야할...즉..너무나 상대적인 요소들이 많기 때문에 머라 말하기가 어렵네요..하지만 한가지는 확실하죠..^^ Write Once, Run Anywhere.... 어디서든 실행된다는거.. 그 하나만으로도 충분한 효용가치가 있지 않을까요. 스윙 데모만 보셨다구여..여기 좋은 실제 응용예가 있습니다. 씽크프리오피스 라고 들어보셨나요.. 100% 자바로 구현된(Swing) 어플리케이션 이구여, 우리나라에서 개발되어 이미 세계...
1. 접근제어 2. 원격프록시 - 원격데이터전달 3. 가상 프록시 - 비용이 큰 객체 접근제어(대용량 이미지객체 등) 4. 보호 프록시 - 권한제어 5. 그 밖 - 캐싱, 동기화, 방화벽, 지연복사 6. 데코레이터와 비슷하지만 용도가 다르다 7. 데코레이터는 객체행동을 추가하지만, 프록시는 접근을 제어한다 8. 자바내장프록시는 동적프록시클래스를 즉석에서 생성한다 9. 다른 래퍼와 마찬가지로 포함 클래스가 증가한다
<일반 코드를 원격서비스로 개조하는 방법> 1. 원격인터페이스를 만듭니다 ㄱ. 원격 클라이언트에서 호출할 수 잇는 메소드를 정의해야 합니다 import java.rmi.* public interface Aaaaaa extends Remote{ public int getCount() throws RemoteException; public String getLocation() throws RemoteException; public state getState() throws RemoteException; //직렬화대상 } 2. 인터페이스의 모든 리턴이 직렬화 가능해야합니다 import java.io.Serializable;//아무메소드도 없습니다 public interface State extends Serializable{ public void insertQuarter(); public void ejectQuarter(); public void turnCrank(); public void dispense(); } 3. 구상클래스에서 인터페이스를 구현합니다
<make remote interface> 1. extends java.rmi.remote 2. exception RemoteException at all 3. return value is primitive or serializable. <make service class> 1. make remote interface 2. extends UnicastRemoteObject 3. make Remoteexception 4. registring <make stub and skeleton> 1. execute RMIC 2. result is 2class maked a. _Stub b. _Skel <execute rmiregistry> 1. rmiregistry 2. start service
Java Serialization 알자 이 자료는 자바랜드(www.javaland.co.kr)의 박정기께서 기고하신 내용입니다. Java Serialization 맛보기 Java Serializatoin은 자바 객체를 저장하거나 전송하기 위하여 자바 객체의 코드를 다시 복원가능한 형태의 Stream으로 직렬화 시켜주는 것을 말한다. 가장 간단한 형태부터 시작해서 자바 시리얼라이제이션의 예를 살펴 보도록 하겠다. << swrite.java>> import java.lang.*; import java.io.*; import java.util.*; class swrite { public static void main(String args[]) { try{ FileOutputStream f = new FileOutputStream("tmp"); ObjectOutput s = new ObjectOutputStream(f); s.writeObject("Today"); s.writeObject(new Date()); s.flush(); } ...
스테이트패턴 - 어떤 상태가 바뀜에 따라 객체의 행동을 바꿀 수 있다 옵저버패턴-어떤 상태가 변경되었을때 일련의 객체들에게 연락을 할 수 있다 어댑터 패턴 - 하나 이상의 클래스의 인터페이스를 변환한다 퍼사드 패턴-일련의 클래스들에 대한 인터페이스를 단순화한다 이터레이터 패턴-컬렉션의 구현을 드러내지 않으면서 컬렉션에 잇는 모든 객체들에 대해 반복작업을 할 수 있다 컴포지트 패턴-클라이언트에서 객체 컬렉션과 개별객체를 똑같은 식으로 처리할 수 있다
절대 영도에 가까운 극저온 상태에서는 초전도 현상 과 초유동 현상 이 나타난다. 초전도 (Superconductivity)란 어떤 온도(전이온도) 이하에서는 전기 저항이 0이 되는 현상을 말한다. 초유동(superfluidity)은 액체의 점성 저항이 0이 되는 현상으로 액체 헬륨은 2.2K (약 -271 °C) 이하로 냉각시키면 초유동 상태가 된다. 초전도와 초유동은 극저온에서 나타나는 특이한 현상으로 원자 수준의 미시 세계에서 나타나는 양자 현상이 거시 세계에서는 관찰되는 경우다.
자바(JAVA)에는 총 4가지의 접근 변경자가 있다. + 접근 허용 가능 범위 public > protected > default >private - public : 클래스, 변수, 메소드 생성자 등의 모든 접근을 허용 보통 상수(static final 변수), 메소드(get/set) 등에 많이 사용. - protected : default와 같으나 추가적으로, 다른 패키지의 하위클래스에서도 상속 가능. - default : 같은 패키지에 있는 (클래스, 변수, 메소드, 내부클래스)에서 접근 가능 접근 변경자가 없는 선언되지 않은 것이 default - private : 같은 클래스에서만 접근이 가능 보통 인스턴스 변수, 외부에서 호출해서는 안되는 메소드