목록바슈라마 (39)
시다바리
#include #include #include #define MAXRANDOM 60 // 링크 리스트 구조체 typedef struct ListNode { int data; struct ListNode *link; } ListNode; // 사용되는 함수 선언 ListNode *create_node(int data, ListNode *link); void insert_node(ListNode **phead, ListNode *p, ListNode *new_node); void display(ListNode *head); void main() { int i; int number; ListNode *linklist = NULL; ListNode *p; randomize(); for(i = 0; i < 10..
ctag는 관련 파일들에서 함수/변수/타입/구조체/매크로 등에 대한 tag를 기록해놓고 쉽게 찾아가게 해준다. ctags -R *.[ch] 하면 하위디렉토리의 모든 .c와 .h에서 tag를 생성한다. -R옵션을 제거하면 현재 디렉토리에 있는 화일만 tag를 생성한다. 이렇게 생성된 tag화일이 있는 위치를 vimrc화일에 추가한다. 기본적으로 현재 및 상위디렉토리는 있지만, 다른 디렉토리를 검색해야한다면, 추가해주어야 한다. vim에서는 tag파일이 생성되어 있으면 해당 함수/변수/타입/구조체/매크로에 커서를 놓고 Ctrl+]를 누르면 해당 몸체나 선언부로 이동한다. Ctrl+T를 누르면 다시 원래대로 온다. next tag search :tn [참고] 원격telnet으로 들어간경우 Ctrl+]를 누르면..
이벤트 디스패치 쓰레드라는게 있습니다. 스윙에 관련된 작업이 모두 이 스레드를 통해서 이루어져야 하는데, 이 스레드가 바로 스윙 관련 작업들을 처리하는 역할을 합니다. 간단하게 말해서 스윙 관련 이벤트들을 일렬로 줄세워서 여러개의 이벤트가 동시에 하나의 스윙 컴포넌트에 접근해서 데이터 조작을 하는 것을 막아줍니다. (여러개의 이벤트가 동시에 하나의 JButton의 데이터를 바꾼다면 문제가 생길 겁니다...) 꼭 한순간에 하나의 이벤트가 원하는 작업을 하게끔 해준다는 겁니다. 하루에 하나씩 소원을 들어주는 바람돌이처럼 이벤트 디스패치 스레드는 한번에 한개의 이벤트가 실행되게 합니다. invokeLater는 말 그대로 "나중에 호출해라"라는 뜻 인데, 나중에 호출할 대상이 바로 파라미터로 주어지는 Runna..
* Serializable 객체 직렬화란 객체의 내용을 바이트 단위로 변환하여 파일 또는 네트워크를 통해서 송수신(스트림)이 가능하게 만들어 주는 것을 말합니다. 여기서 객체란 멤버변수의 메모리만으로 구성된 것을 말하구요. 따라서 객체 직렬화에서 메서드와 생성자는 제외된다는 것을 잊지 마세요! 이렇게 객체를 직렬화 함으로써 얻을 수 있는 장점은 객체 자체의 내용을 입출력 형식에 구애 받지 않고 객체를 파일에 저장함으로써 영속성을 제공할 수 있고, 객체 자체를 네트워크를 통하여 손쉽게 교환할 수 있게 됩니다. 객체 직렬화는 자바 1.1 이후에 도입이 되었는데 그 이유는 RMI와 Bean 때문이었습니다. RMI는 원격객체통신을 지원해야 하기 때문에 객체가 그대로 이동할 수 있어야 합니다. 따라서 이를 지원하..
* ResourceBundle의 활용 API 위치 java.util.ResourceBundle 역할 프로그램 배포시 고정된 자원과 변화하는 자원이 있다. 게시판 배포를 예로 든다면 안에 소스는 대부분 고정된 자원이다. 하지만 사용자마다 database의 설정 등은 수정해서 사용해야 하는 부분이다. 이러한 값들은 프로그램의 알고리즘과 상관없는 부분으로 따로 관리해야 하는 자원들이다. 이러한 자원은 파일로 저장해서 관리하는 것이 보편적 추세로 ResourceBundle을 이용 할 수 있다. 아래는 현제 사용중이 properties 파일이다. ADMIN_ID=id ADMIN_PWD=pass MAX_UPLOAD_SIZE=6291456 위에서 보면 단순히 "="를 기준으로 해서 왼쪽에 key 오른쪽에 value가..
* MVC : Model, View, Controller - MVC패턴은 Smalltalk에서 그래픽 인터페이스와 실제로 동작하는 코드를 분리하기 위해 개발되었다. - 지금은 다른 객체지향언어에서도 널리 사용되는 패턴 중 하나이다. ▶ Model 프로세스 주요 로직 - DAO (Data Access Object) : DB table에 접근하여 삽입, 수정, 삭제, 검색하는 로직 - VO (Value Object) : View, Controller, Model 사이에서 DB Table에 대한 정보를 표현하는 객체 모델(model)이란 어떠한 동작을 수행하는 것을 코드를 말한다. 표시 형식에 의존하지 않는다. 다시 말해, 사용자에게 어떻게 보여질지에 대해 신경쓰지 않아도 된다. 모델은 순수하게 public ..
* indexOf 와 startsWith 의 차이 indexOf는 예를 들어 하나의 배열이 있다고 합시다 String[] sArry = new String[]{"a","b","c"}; 이런경우에 for( int i = 0 ; i < sArry.length ; i++ ) { System.out.println( sArry[i].indexOf("b") ); } 라고 하시면 아마도 -1, 1, -1 이라고 위치가 출력될 것입니다. indexOf란 인자값으로 받은 것이 대상객체에 있는 위치(인덱스번호)를 리턴해줍니다. 만약 없다면 -1을 리턴해줍니다. 중복값을 체크할때 유용하게 많이 사용합니다. 이런식으로요 for( int i = 0 ; i < sArry.length ; i++ ){ if( sArry[i].ind..
1. 소개 별도로 룩앤필을 지정하지 않으면 자바 룩앤필이 기본으로 지정됩니다. 룩앤필을 지정할 때에는 다음과 같이 UIManager 클래스를 사용합니다. try { UIManager.setLookAndFeel ( UIManager.getCrossPlatformLookAndFeelClassName ( ) ); } catch ( Exception e ) { System.err.println ( "Cannot set look and feel:" + e.getMessage ( ) ); } UIManager 클래스의 getCrossPlatformLookAndFeelClassName() 메쏘드는 자바 룩앤필 클래스 이름을 리턴합니다. getSystemLookAndFeelClassName() 메쏘드는 현재 자바 스윙..
WM_IME_COMPOSITION The WM_IME_COMPOSITION message is sent to an application when the IME changes composition status as a result of a key stroke. An application should process this message if it displays composition characters itself. Otherwise, it should send the message to the IME window.chDBCS = (WORD) wParam; fFlags = (BOOL) lParam; Parameters chDBCS DBCS character representing the latest cha..
Hint란? select문을 실행시키면 DB의 옵티마이져가 조건절 또는 join절 등을 고려하여 액세스 경로를 결정한다. 이때 옵티마이저에게 모든 것을 맡기지 않고 사용자가 원하는 보다 좋은 액세스 경로를 선택할 수 있도록 하는 것이 Hint이다. 힌트의 사용 방법 힌트를 사용하는 방법은 "/*+ */"와 "--+"의 두 가지 방법이 있다. /*+ */ 여러 라인에 걸쳐 기술할 때 사용. --+ 오직 한 라인에만 기술할 수 있고 칼럼은 반드시 다음 라인에 기술해야 한다. 예제 : kkaok이라는 테이블이 있고 kkaok_indx라는 인덱스를 힌트에 사용한다고 가정한다. SELECT /*+ INDEX(kkaok kkaok_indx) */ name,content FROM kkaok WHERE rownum