2013. 12. 26. 23:47


데이터베이스 접속 시 다음과 같은 메시지가 출력되면 계정이 잠겨 있다는 것입니다.


ORA-01017: invalid username/password; logon denied 


sqlplus 에서 관리자로 로그인 후 


alter user 계정명 account unlock;

alter user 계정명 identified by 계정비밀번호;


두 줄을 적어주면 계정이 풀립니다.


Posted by Thread
2013. 12. 16. 11:46



software architecture design patterns in java.pdf


  • 디자인 패턴에 대한 설명 



'Programing > Java' 카테고리의 다른 글

이클립스에서 Java api document 만들기  (0) 2014.04.08
클래스 관계 (in, has)  (0) 2013.12.16
Posted by Thread
2013. 12. 16. 11:25


 

 표현

UML 

 의미

keyword 

 in

 

Generalization


 Generalization

 상속

 extends

 

Realization


 Realization

 구현

 implements

 has

 

Association


 Association

 관계

 (has, link)

 

Aggregation


 Aggregation

 구성(집합)

 (멤버 필드)

 

Composition


 Composition

 복합

 (멤버 필드)

 

 

Dependancy


 Dependancy

 사용, 생성

 <<use>> <<create>> <<param>>


Posted by Thread
2013. 12. 9. 00:51

이 포스팅은 Gimp의 사용설명서가 아닌 단순히 이런 편집 툴이 있다라고 소개해 주는 글입니다.


이미지 편집툴인 Adobe사의 Photoshop은 그야말로 단연 최고라고 할 수 있습니다.


하지만 유료라는 장벽에 막혀 사용을 못하시는 분들도 꽤나 있으실 겁니다.

(물론 어둠의 경로로 받을 순 있습니다.)


어쨌거나 Gimp(GNU Image Manipulation Program)는 OSS(Open Source Software)라서 

무료이고 그렇다고 포토샵보다 기능이 심하게 떨어지는 것도 아니라고 알고 있습니다. (정확한 것은 모름;)


예전에는 윈도우에서는 동작을 안한다고 알고 있었는데 지금은 윈도우 계열에서도 동작하도록 개발되었다고 하니 기쁘지 않을 수가 없습니다.


서두가 길었습니다. 

이제 말은 그만하고 다운을 받아서 실행해 보겠습니다.


공식 홈페이지 : http://www.gimp.org/downloads/


http://partha.com/


http://sourceforge.net/projects/gimp-win/files/


셋 중 아무곳에서나 받으시면 됩니다.

저는 partha.com에서 받았습니다.


이미지편집 툴에 대한 지식이 부족해서 간단히 소개만 하겠습니다.




처음 실행을 하면 메인화면과 도구모음, 작업내용이 불편하게 따로 창이 생겼습니다.

간단하게 설정하나만 해주시면 하나의 창에서 작업하실 수가 있습니다.

메뉴 -> 창 -> 단일창 모드



포토샵을 자주 접하신 분들은 자유자재로 이미지를 편집할 수 있을 것 같습니다.


인터넷 서핑하다가 설치없이 웹페이지에서 바로 작업이 가능한 곳을 찾았습니다.

http://pixlr.com/editor/

괜찮은 듯합니다.

Posted by Thread
2013. 12. 3. 23:20

안드로이드에서 웹서버와 통신을 해서 로그인을 구현하려고 합니다.





이런 형식입니다.

단순히 안드로이드에서 입력된 ID, Password를 웹서버로 보내고 HTML형식을 받아서 TextView에 뿌려주는 기능입니다.


오늘은 웹서버와 DB가 구축되어 있다고 가정하고 안드로이드에서 웹서버에 Get방식으로 보내고 읽는 코드만 보여드리겠습니다.

(사실 현재 컴퓨터에는 웹서버와 Database가 구축되어 있지 않습니다. ;;;)


안드로이드 소스는 아래와 같습니다.


public class MainActivity extends Activity implements OnClickListener{
 
 Handler handler = new Handler();
 //메인스레드와 작업스레드간에 교량 역할을 한다.
 //안드로이드 3.0(허니콤) 버전부터 작업스레드가
 //화면 UI에 직접 접근하는것이 차단되었다.
 //화면 UI는 무조건 Handler 객체를 통해서 해야만 한다.
 EditText editUserid;
 EditText editPasswd;
 Button btnLogin;
 TextView txtResult;
 String result;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  initWidget();
  
 }
 
 void initWidget(){
  btnLogin = (Button) findViewById(R.id.btnLogin);
  txtResult = (TextView) findViewById(R.id.txtResult);
  editUserid = (EditText) findViewById(R.id.editUserid);
  editPasswd = (EditText) findViewById(R.id.editPasswd);
  
  btnLogin.setOnClickListener(this);
  
  //TextView 스크롤기능 추가
  txtResult.setMovementMethod(new ScrollingMovementMethod());
 }
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
 }
 
 @Override
 public void onClick(View arg0) {
  showDialog(1);
  
  String userid = editUserid.getText().toString();
  String passwd = editPasswd.getText().toString();

  
  ArrayList<NameValuePair> list = new ArrayList<NameValuePair>();
  list.add(new BasicNameValuePair("userid", userid));
  list.add(new BasicNameValuePair("passwd", passwd));

     //예시
     //"http://192.168.0.1:8080/MyService/login.jsp?" + URLEncodeUtils.format(list, "utf-8");
     //위와 같이 접속할 서버의 IP:PORT/서버프로젝트명/웹페이지명 을 적으시고 
     //뒤에 인코딩 설정부분 추가하시면 됩니다.
    final String urlPath = "http://" + IP번호:PORT번호 + "/서버프로젝트명/웹페이지명.jsp?" + 
       URLEncodedUtils.format(list, "utf-8");
  
  Thread t = new Thread(new Runnable() {
   
   @Override
   public void run() {
    InputStream is = requestGet(urlPath);
    result = streamToString(is);
    
    handler.post(new Runnable() {
     
     @Override
     public void run() {
      txtResult.setText(result);
      removeDialog(1);
     }
    });
   }
  });
  t.start();
 }
 
 public InputStream requestGet(String requestUrl) {
  
  try {
   HttpClient client = new DefaultHttpClient();
   HttpGet request = new HttpGet(requestUrl);
   HttpResponse response = client.execute(request);
   
   HttpEntity entity = response.getEntity();
   InputStream is = entity.getContent();
   
   return is;
  } catch (ClientProtocolException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
  
  return null;
 }
 
 public String streamToString(InputStream is) {
  StringBuffer buffer = new StringBuffer();
  
  try {
   BufferedReader reader = new BufferedReader(new InputStreamReader(is));
   String str = reader.readLine();
   while( str!=null ){
    buffer.append(str);
    str = reader.readLine();
   }
   reader.close();
  } catch (IOException e) {
   e.printStackTrace();
  }  
  return buffer.toString();
 }

 @Override
 @Deprecated
 protected Dialog onCreateDialog(int id) {
  ProgressDialog dialog = ProgressDialog.show(this, "Login", "processing...");
  return dialog;
 } 
}


안드로이드 자바코드는 우선 이렇구요.

코드 설명부분은 시간이 늦어서 다음에 이어서 하도록 하겠습니다.


Posted by Thread
2013. 12. 3. 22:14

블로그를 시작하면 이거 올려야지 저거 올려야지 하면서 들떠있었는데 


막상 시작을 하니 하루에 하나 포스팅하는 것도 힘들 것 같다.


최대의 고민은 내가 올린 글이 혹여나 정확한 정보가 아니여서 다른사람이 잘못된 정보를 알게 될까봐 걱정이 든다.


첫 포스팅을 프로그램 사용법에 관한 글을 썼는데 내가 직접 설치, 사용하면서 스크린샷까지 찍으니 여간 작업이 많은 것이 아니었다.


그 작업과 더불어 설명하나하나 적으려니 시간이 두배이상 드는 것 같다.


이 블로그의 본래의 취지는 내가 모르는 정보나 자료를 정리해서 언젠가 다시 찾을 때 유용하게 쓰고 싶어서이지만,


다른 분들도 내가 궁금해 했던 것과 내가 해결했던 방법들을 원할 수도 있기 때문에 정확하게 알고 써야될 것 같아 


포스팅하는 것에 더 신중해진다.



두번째 고민은 내가 올린 자료와 사진 등이 저작권에 위배될까봐 걱정이 된다.


프리웨어, 오픈소스 등은 올려도 무방하지만 무심코 올린 자료가 혹시나 행여나 소중하게 만드신 분의 저작권을 침해하는 것이 


아닌가하는 두려움이다. 이 두려움은 2~3년전 한창 영화저작권 바람이 불 때 호기심에 웹하드에 올려서 걸려본 아픔이 있어서 생긴 


것 같다. 잘못된 행동이었지만 중학생이 호기심에 담배한 번 펴 보는 것처럼 그냥 무심코 한 행동이었다. (이층의 악당 영화 제작자님 죄송..)


공유해도 되는 자료와 해서는 안되는 자료를 명확히 구분해서 잘 올려야겠다.




오늘은 피로가 좀 쌓였는지 몸이 조금 힘들어서 메뉴구성들만 해봤다. -_-; (이 메뉴는 일기장으로 바뀔 것 같네)


매일은 아니더라도 자주 포스팅을 하도록 내 자신과 약속을...


p.s) 도대체 작문력은 언제 늘까...?

사실 이게 가장 고민!




Posted by Thread
2013. 12. 3. 00:15

Syntaxhighlighter 란 ?

한마디로 소스코드 구문강조 라고 할 수 있습니다.

너무 유명해서 이미 알고 있는 분들은 아시겠지만 모르는 분들도 가끔? 계시기도 합니다.

인터넷 서핑을 하다보면 프로그래밍 언어가 보기 좋게 색깔도 들어가 있고 굵은 글씨로 표시해 주어서 코드의 가독성을 높혀주는 것을 본 적이 있으실 겁니다. 이렇게 편리한 기능을 쉽게 제공해 주는 것 중 하나인 Syntaxhighlighter 입니다.


example) 소스코드 구문강조 종류 중 하나인 Color Scipter 



아직 Syntaxhighlighter를 설치하지 않았기 때문에 다른 구문강조(Color Scipter) 를 보여드렸습니다.


자, 이제 Syntaxhighlighter를 설치해 보겠습니다.


1. 먼저 다운로드 눌러서 Syntaxhighlighter소스를 받으세요.

(현재 최신버전인 3.0.83을 다운받겠습니다. 링크가 안되시면 http://alexgorbatchev.com/SyntaxHighlighter/ 여기로~)


2. 다운받은 파일을 압축푸시고

티스토리 관리자 페이지의 HTML/CSS 편집 -> 파일업로드 -> 추가 누르시고 압축 푼 폴더의 scripts폴더와 styles폴더의 하위 파일들을 모두 업로드 해주세요.





 






  styles폴더도 똑같이 추가해주세요














3. HTML/CSS 탭에서 skin.html 적는 부분에 head end tag인 </head> 위에 코드를 붙여 넣습니다.































 





저는 이클립스를 많이 접하기 때문에 31번째 줄인 style중에서 이클립스만 넣었습니다.

다른 스타일을 원하시면 압춘푼 styles 폴더의 파일 중 shCore.css 빼고 아무거나 쓰시면 되겠습니다.

ex) 





4. 드디어 마지막 사용법입니다.


일반적인 글들은 그냥 적습니다.






































코드를 적을땐 오른쪽 위에 HTML 체크하신 후에 

<pre class="brush:언어"> 

코드 

</pre>


이렇게 적으시면 됩니다.

전 java를 주로 쓰기 때문에 <pre class="brush:java"> 를 썼습니다. 

자신이 쓰는 언어가 지원되는지 보시려면 http://alexgorbatchev.com/SyntaxHighlighter/manual/brushes/ 여기에 확인하시면 됩니다. (대부분 지원되는 것으로 알고 있습니다.)






5. 결과화면





이상으로 구문강조를 해주는 Syntaxhighlighter 설치, 사용방법을 알아보았습니다.

처음 사용방법 포스팅이라 너무 오래걸렸네요. 

적응되면 더 빨리 더 이쁘고 자세하게 남길 수 있겠지요


p.s) 구문강조는 Syntaxhighlighter 말고도 많이 있습니다. 대체로 많이 쓰시길래 설치해 보았습니다.

네이버에서는 Syntaxhighlighter를 지원하지 않습니다. (제가 티스토리로 옮긴 이유 중 하나가 이것 때문...)

네이버 쓰시는 분들은 

http://blog.naver.com/PostView.nhn?blogId=brian2&logNo=50171398469 

여기 가시면 좋은 자료 얻으실 수 있으실 겁니다.

틀린 부분이 있으시면 말씀해 주세요

그리고 그림에 빨간네모 같은거 어떻게 하나요? 파워포인트로 하니 이미지 해상도가 많이 떨어지네요


Posted by Thread
2013. 12. 2. 15:55


pagecentric03_ajax05.war



custuserlist.jsp 파일



Posted by Thread