'2009/09'에 해당되는 글 84건

허니몬에 관한 보고서/허니몬의 물병편지
  • 월척이 기대되는 오늘!! 월척과 교감하여 대박을 낚아내자!! 생각대로 소원을 빌어봐 비비디바비디!!(me2mobile 간절히 원하면 이루어지..려나?? 노력도 같이 해야지!!)2009-09-02 07:40:56
  • 결전의 시간이 다가오고 있다…!(me2mobile 결전의시간;오후3시!!)2009-09-02 13:44:53
  • 결전의 시간이 지나갔다…. 준비한 부실한 방패는 너덜너덜..!! 하지만 언능 방패를 보강하자.(me2mobile 내 방패는 사용자의 레벨에 따라 성장한다. 나는 초보레벨이다. 면접노가다로 레벨업하자!? 나 고렙쫄하고 싶어요..)2009-09-02 16:04:01
  • 구로에서 집으로 오는 길은 멀구나!!(me2mobile 두시간만 안걸리면 돼!! 라는 마음가짐!!)2009-09-02 16:48:24
  • 이번에는 코스모스도 해바라기도 일찍 개화할 듯 하다^^ 곧 구리 코스모스축제열리면 아침에 사진찍으러 가야지.(me2mobile 이래놓고 항상 사람많고 더운 대낮에 가지..)2009-09-02 16:50:29
  • ㅡㅅ-);; LGT 자꾸 이렇게 나올꺼야? 왜 쓸데없이(내가 설정안했는데) 모바일매니저 메모리 상주시켜서 꽂을 때마다 지맘대로 연결하게 만들어?(ㅡㅅ-);; 자료 날아가면 책임질껴?)2009-09-02 17:47:08
  • 가끔 내 블로그 유입경로를 살펴보다 보면… ㅡㅅ-);; 그룹웨어(회사내 메일)에 걸려서 오는 경우가 종종 발견된다. ㅡㅅ-);; 오늘은 걸릴만 한 것이 있지.(오늘 저녁은 배불리 목살!!)2009-09-02 20:20:41
  • 작년에 갔던… ㅡㅅ-)> 안산해바라기 축제 포스팅은… 올해도 찾아오는 이들이 많다.(우흡...)2009-09-02 20:21:34
  • '야생동물 바탕화면 50선' 요거 괜찮네요. ㅡㅅ-)~ 듀얼용 바탕화면 괜찮은 거 있으신분!?(야생동물 바탕화면 50선)2009-09-02 21:03:15
  • 문득 '자바의 정석'이라는 자바 입문서의 핸드북을 읽다보니… 자바 프로그래머 기술면접 전에 이 책을 보면 좋을 것 같다는 생각을 했다.(me2book Java의 정석, 기술면접용 기본개념 정리 핸드북, 좋구나. ㅡㅅ-);)2009-09-02 23:05:34
    Java의 정석
    Java의 정석
  • 자려고 누웠다가 잠이 안와서 일어나서, 우분투로 접속해서 리눅스 네이트온 깔고, 한쪽 화면에는 넷빈즈와 이클립스 설치하고 있다.(프로그래머 속성과정 개념정립을 위한 레벨업노가다 준비중. me2google me2photo)2009-09-02 23:08:31

    me2photo

  • '네이버 검색엔진 세계 5위', 썩 나쁘지 않은 기록인듯. 구글신이 있다면, 우리에게는 네이놈…네이년… 이 있다(ㅡ_ㅡ;;; 이름이 왜 이래?).(검색엔진 성능 5위는 아님... 검색한 쿼리수. 우리나라 인구수에 비해서 5위의 로컬 브랜드라면... 흠... 국내의 대부분의 궁금증 해결은 네이버!?)2009-09-02 23:43:14
  • 자야지…. ㅡㅅ-);;2009-09-03 01:14:50

이 글은 허니몬님의 2009년 9월 2일에서 2009년 9월 3일까지의 미투데이 내용입니다.

허니몬의 IT 이야기/리눅스 이야기, 우분투
   데비안의 패키지 설치 명령어인 apt-get  명령어 이외에도 aptitude 라고 하는 터미널용 패키지 관리 프로그램이 존재한다(관련링크 : http://fracktal.tistory.com/8 ) . 두 명령어 이외에도 몇가지가 더 존재하며 이를 합쳐서 apt시스템이라고 칭하는 것 같다. apt시스템은 패키지의 의존성에 기반하여 많은 양의 패키지를 관리하는 패키지 관리 시스템이라고 한다.

  패키지 의존성이 높은 프로그램들을 설치할 때 사용하면 좋은 것이라는 거지.

apt 시스템은 는 패키지의 의존성에 기반하여 많은 양의 패키지를 관리하는 패키지 관리 시스템이다.
이는 저장소를 기반으로 패키지를 가져와 설치하고, 제거하며, 의존성을 보존한다.
apt 기반의 패키지 관리자들은 /etc/apt/sources.list 파일로부터 저장소 목록을 읽어온다.
이 파일의 구성 형식은 sources.list(5) manpage에서 확인 가능하다.



GOD의 '보통날'을 들으며 잠못들고 유입경로를 확인하다가 눈에 띄어서 한번 따라해보았다.
http://sp0ngee.tistory.com/5?srchid=BR1http%3A%2F%2Fsp0ngee.tistory.com%2F5
허니몬의 IT 이야기

  가지고 있던 Windows 7 RC 7100 버전을 설치해서 한글팩까지 설치를 마쳤다.
  물론, 윈도우 설치한 건 우분투에서 Virtualbox OSE에 가상머신으로 설치를 했다. 기본적인 기능들에 대해서는 그래도 익혀두어야 할 것 같아서(비스타 때도 그랬지만, 기본적인 동작 원리를 모르면 급당황하게 된다) 설치를 했다. 이제 여기다가 JDK와 이클립스를 설치하고 자바환경을 구축하는 연습을 해봐야겠다. 그게 이번 'Windows 7 체험 프로젝트'라고 할 수 있겠다.
 
  결코, 내가 잠못들어서 컴퓨터를 켜고 설치했다고는 말하지 않겠다....!!

  흠... Windows 7 RTM 도 찾아서 깔아봐야하려나....

- 현재시간 오전 12:55 , guestAddtion(2.1.4)버전도 이제 정상적으로 설치가 된다. 오홋!?
- guestAdditions_2.1.4.iso 로 게스트 설치를 해주고 나니까  화면이나 소리 정상적으로 잘 나오는구나. 우훗!?
허니몬의 IT 이야기

  우분투는 장점이 많은 리눅스 데스크탑 배포판 운영체제다.
  네이트온도 리눅스에서 설치하여 사용할 수 있고, SW 저작권에 있어서도 자유롭다. 우분투에 기본 내장되어 있는 OpenOffice, GIMP, Totem 플레이어의 사용이 가능하며, 필요에 따라서 JDK를 설치하고 이클립스, 넷빈즈와 같은 Java IDE를 실행할 수도 있다.

  윈도우 7을 Virtualbox로 설치해서 실행해봐야겠다. 확장디스크가 안먹혔는데... ㅡㅅ-)> 있을까나?
허니몬의 IT 이야기/프로그래머, '코드 엔지니어'

1. 두 함수(show(), show2()를 비교하라.

  1. public class ShowTest {
        public void show(String cmd){
            if ( cmd.equals("Test")){
                System.out.println("cmd is Test");
            }
        }
       
        public void show2(String cmd){
            if( "Test".equals(cmd)) {
                System.out.println("cmd is Test");
            }
        }
    }

  1. // 1번 문제는 equals(String cmd)에 null 값이 들어갔을 경우에 대한 질문... ㅡㅅ-)> 그런 경우는 생각을 안해봤어!!
    //그런 경험은 있지만... equals() 안에 들어가는 파라메터가 null 일 때 생기는 경우는 종종 있지.... ㅡㅅ-)>
    public class Main {
        public static void main(String[] args) {
            //String cmd = null;  //이 경우에는 show()에서 NullPointerException을 발생한다. 요게 질문의 핵심인듯.
            //String cmd = "Test"; //이 경우에는 show(), show2() 모두 정상적으로 실행
            String cmd = "test"; // 이건 당연히 둘다 반응 없음.
           
            ShowTest test = new ShowTest();
            test.show(cmd);
            test.show2(cmd);
        }
    }

 

2.고쳐야 할 부분은 어디!?

  1. public class ShowTest2 {
        public void show(String cmd){
            if ( cmd.equals("Test") && cmd != null ){ // 넘겨받은 cmd가 null일 경우에는 NullPointerException이 발생.
                System.out.println("cmd is Test");
            }
        }
    } //cmd.equals("Test") 이 부분을 "Test".equals(cmd) 수정해주면 정상적인 처리가 되겠지요.... ㅡㅅ-)> 잇힝!!!

  1. public class Main2 {
        public static void main(String[] args) {
            //String cmd = "Test";
            String cmd = null;
            ShowTest2 test = new ShowTest2();
            test.show(cmd);
        }
    }

 

3.이 경우에는 어떻게 나올까?

  1. public class ShowTest3 {
        public static void main(String[] args) {
            boolean a;
            boolean c;
            a = c = true;
           
            if ( ( a = true ) || ( c = false )){ // true or false ==> true 이니까....
                System.out.println("1:" + a + "   " + c); // 요 녀석이 출력된다. 조건문 안에서 대입하는건 안좋아요...ㅡㅅ-)!!
            }
           
            if ( ( a = true ) && ( c = false)){ //true && false ==> false 이니까.... 다시 물으니까... 당황해서 답을 제대로 못했다. ㅠㅅ-)
                System.out.println("2:" + a + "   " + c);
            }
        }
    }

4.String, StringBuffer, StringBuilder의 차이점(셋다 문자열 객체)

참고 : http://hongsgo.egloos.com/2033998 요 글을 보면, String < StringBuffer < StringBuilder 속도 차이가 있다. 흠... String은 적게 쓰는게 좋군요. ㅡㅅ-);;

참고 : http://cacky.tistory.com/36

  • String : 변경되지 않는 Character 문자열 객체
    문자열이 변경되지 않을 경우에는 String 사용
  • StringBuffer : 값이 변경 가능 // 동기화 가능 : 다중 스레드 일 경우에 사용
    문자열이 변경되고 다중 스레드에서 사용될 경우 사용
  • StringBuilder : 값이 변경 가능 // 동기화 되지 않음 : 단일 스레드일 경우에 사용
    문자열이 변경되고, 단일 스레드에서 사용될 경우 사용

 

5.가비지 컬렉션을 줄이기 위한 프로그래밍

Java에서는 기본적으로 가비지 컬렉션에 대해서는 JVM에서 처리를 해주기 때문에 크게 신경을 쓰지 않아도 된다고 배웠다. ㅡㅅ-)>

굳이 줄이는 방법을 떠올려보자면,

 

6.Statement와 PreparedStatement의 차이

java.sql.Statement
public interface Statement
extends Wrapper
 

정적 SQL 문을 실행해, 작성된 결과를 돌려주기 위해서(때문에) 사용되는 객체입니다.  

디폴트에서는,Statement객체 마다 1 개의ResultSet객체만이 동시에 오픈할 수 있습니다. 따라서, 1 개의ResultSet객체의 read가, 다른 read에 의해 끼어들어지면(자), 각각은 다른Statement객체에 의해 생성된 것이 됩니다.Statement인터페이스의 모든 execution 메소드는, 문장의 현재의ResultSet객체로 오픈되고 있는 것이 존재하면, 그것을 암묵에 클로즈 합니다.

관련 항목:
Connection.createStatement(),ResultSet

 

java.sql.PreparedStatement

public interface PreparedStatement
extends Statement
 

프리컴파일 된 SQL 문을 나타내는 객체입니다.  

SQL 문은, 프리컴파일 되어PreparedStatement객체에 포함됩니다. 거기서, 이 객체는, 이 문장을 여러 차례 효율적으로 실행하는 목적으로 사용할 수 있습니다.

주:IN 파라미터치를 설정하는 설정 기능 메소드 (setShort,setString등)는, 입력 파라미터의 정의된 SQL 형과 호환이 있는 형태를 지정하지 않으면 안됩니다. 예를 들어, IN 파라미터에INTEGER라고 하는 SQL 형이 있는 경우,setInt메소드를 사용하지 않으면 안됩니다.

임의의 파라미터형 변환이 필요한 경우는,setObject메소드는, 목적의 SQL 형으로 사용하지 않으면 안됩니다.  파라미터 설정의 예를 다음에 나타냅니다.con는 액티브한 접속을 나타냅니다.

PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
SET SALARY = ? WHERE ID = ? ");
pstmt.setBigDecimal(1, 153833.00)
pstmt.setInt(2, 110592)
관련 항목:
Connection.prepareStatement(java.lang.String),ResultSet

 

PreparedStatement 에 대한 설명 : http://pcguy7.springnote.com/pages/1052420
 

Summary

그래서 우리는 prepared statements를 파라메터와 함께 사용해야한다.
이것은 미리 만들어진 접근 계획을 재 사용하므로서 데이터 베이스에 대한 로드를
줄여 준다.
이 cache는 데이터 베이스가 확장된 것이어서 여러분의 모든 애플리케이션이
유사한 파라메터화된 sql을 사용하면 하나의 애플리케이션이 다른 애플리케이션에
의해 사용된 prepared statements를 이용하므로 캐시 스키마의 효율성을 증대
시킬 수 있다.
이것은 application server 사용의 이점이다. 왜냐하면 데이터 베이스에 접근하는
로직은 데이터 접근 계층에 집중화 되어야하기 때문이다.
두번째로 prepared statements의 올바른 사용은 또한 여러분이 애플리 케이션 내부의
prepared statements cache를 잘 이용할 수 있게 한다. 이것은 애플리케이션이
이전에 사용했던 prepared statements 호출을 재사용해서 JDBC driver에 대한 호출의
수를 감소시켜 성능의 향상을 시킨다. 이것은 현명한 fat clients 사용을 효율적으로
그리고 경쟁력있게 만들고
독점적인 connection을 유지할 수 없는 불이익을 제거한다.
만약 파라메타화된 prepared statements를 사용한다면 여러분은 데이터 베이스와

코드를 가지고 있는 application server의 효율을 높일 수 있다. 이들 개선된 점은

여러분의 애플리케이션의 성능을 향상 시킬수 있게 할것이다.

내 나름의 중요한 결론을 말해보자면, 'PreparedStatement를 잘 활용하면 CPU 사용량을 줄이고 DB에 접근하는 소프트웨어의 속도를 향상시키는 효과가 있다'는 것이다. ㅡ ㅅ-)> 내가 쓰기 불편하다고 Statement 형식으로 많이 썼었는데, 이제 PreparedStatement를 사용해야겠다. 나란 녀석도 참 고집이 쎄다. 그렇게 쓰는 장점이 있는데도, 내가 쓰기 편하다고 그 방식을 외면하고 있으니 말이다.

이 글은 스프링노트에서 작성되었습니다.

1 ··· 13 14 15 16 17
블로그 이미지

Email : ihoneymon@gmail.com 안녕하세요, 꿀괴물 입니다. ^^ 멋진 비행을 준비 하는 블로그 입니다. 만능형 인간이 되어 많은 이들에게 인정받고, 즐겁고 행복하게 살기를 간절히 원합니다!! 달콤살벌한 꿀괴물의 좌충우돌 파란만장한 여정을 지켜봐주세요!! ^^

허니몬