본문 바로가기

JAVA

(12)
[JQGRID] Spring 설정과 Annotation을 이용한 jqGrid Component 개발을 하다보면,반복적이고 행위와 중복적인 코드를 생산해낼 일이 수도 없이 많다. 풀 스텍 개발자로서 흔히 웹에서 벌어지는 조회라는 단순한 업무에도 아주 많은 코드의 중복이나 행위로서 많은 시간적인 낭비나 효율이 떨어지는 상황이 발생하기 마련이다. 그래서 고민해보았다. 세계에서 범용적으로 사용하는 화면단 OpenSource인 jqGrid가 있다. 지금은 상용화가 일부 되었지만 최신 버전이 아니라면 무료로 제공받을 수 있다. 이 jqGrid는 실제로 업무에서 다양한 방법으로 사용될 수 있다. jqGrid 하나만 사용하더라도 목록형 형태로 이루어진 자료들을 조회, 입력, 수정, 삭제와 같은 행위 뿐만 아니라 병합, 합계 등 다양한 방법으로 활용할 수 있다.그것 전부의 모듈화는 힘들지만 내가 겪었던 그리고 많..
[Thread] 동시성 프로그래밍 - 동기화 락과 동기화에 대한 내용이다. 멀티스레드는 하나의 자원을 여러 스레드가 공유해서 사용한다. 보통은 싱글 스레드 보다 멀티스레드를 필요로 하거나 하나의 자원을 공유해야만 하는 프로그램을 작성할때도 있다. 값이 변하지 않는 공유자원일 특별히 동기화 처리를 할 필요는 없지만 외부에 인해 혹은 설계적으로 자원의 값이 변해야만 하는 상황이 발생한다면 반드시 동기화 처리를 해주어야 한다. 프로그램이 공유자원을 참조하고 반영하는 절차가 굉장히 빠르고 거의 즉시라고 볼 수 있다면 이런 문제는 흔하게 발생하지 않으나, 보통 어느 실생활을 보아도 그렇지 않다. 우리가 은행 업무를 보는 절차도 ATM기에서 카드를 넣는것 부터 시작해서 돈을 인출하는 것 까지는 적게는 30초 많게는 1분 덜 소요된다. 돈을 인출한다라는 행위에..
[Thread] 동시성 프로그래밍 동시성 프로그래밍에 대한 교육을 진행중이다. 모처럼 감기 때문에 몸이 많이 안좋지만 교육이 재밌다보니 맨정신이 아님에도 불구하고 교육장을 찾게 된다. 동시성 프로그래밍 JAVA에서는 thread를 얘기한다. thread는 단어의 정의를 찾아보면 실이라고 나오는데 그 실이라고 함은 프로그램을 돌려보면 왜 thread로 명명했는지 예상이 가능하다. 스레드는,동작하고 있는 프로그램을 프로세스(Process)라고 한다. 보통 한 개의 프로세스는 한 가지의 일을 하지만, 이 쓰레드를 이용하면 한 프로세스 내에서 두 가지 또는 그 이상의 일을 동시에 할 수 있게 된다. thread는 프로세스와는 다르다. 흔히 프로세스는 하나의 주소를 할당받아 특정 프로그램이 그 프로세스를 사용하게 되지만 thread는 하나의 프로..
[JAVA] 아파치에서 제공하는 HttpComponents로 Http Client 만들기 아파치에서 제공하는 HttpComponents로 Http Client 만들기 패드용 웹 화면을 제작하고 그 화면에 생성된 16개의 버튼을 클릭했을때 원격 서비스가 제어되는 프로젝트를 만들어야 합니다. 1. Maven 첫번째로 Maven 설정이 필요합니다. HttpComponents만 필요한게 아니라 기재된 아래의 라이브러리도 필요합니다. 안그럼 보낼때 에러가 나더라구요. ClassNotFoundException 이라고 지겨운 ㅡ,.ㅡ 가끔 왜 나는지 원인불명의 에러 특히 라이브러리를 쓰는데 이런 에러가 나면 찾기 곤란해여.. org.apache.httpcomponents httpclient 4.5.1 org.apache.httpcomponents httpmime 4.5.1 org.apache.httpco..
[REDIS+MONGO] 테스트 배드 프로그램 안녕하세요. 회사에서 REDIS랑 MONGO 디비랑 섞어서 써보겠다 해서요. 그런데 왜 섞을까 의문이 들었습니다. redis도 데이터베이스처럼 역할을 수행할 수 있는데요 말이죠. 하지만 레디스의 캐쉬와 몽고디비의 검증된 안정성이라는 장점만 가지고 사용하기로 했나봅니다. 그럼 뭘 보기 위해서 만들었을까요. 1. REDIS에 10만건 데이터를 한번에 부을때 걸리는 시간 2. REDIS에서 MONGO DB로 데이터를 옮길때 걸리는 시간 10만건 3. MONGODB를 통해서 10만건의 데이터를 검색했을때 걸리는 시간 3가지를 측정하기로 했습니다. 결과는 준수했습니다. [14:51:23]INSERT DATA TO MONGO : 50000건, 소요시간:1.528 [14:55:11]SEARCH DATA FROM MO..
웹소켓 서버 만들기 환경은,Spring 4Tomcat 7.0JDK 1.7 아래는 WEBSocket Server 이고 JAVAX 7 api에서 제공하는 어노테이션을 사용해서 서버를 구축해본다.물론 @ServerEndpoint 라는 어노테이션을 통해 이 클래스는 서버라는 것을 명시한다싱글톤 패턴으로 관리된다. @ServerEndpoint란이 어노테이션을 명시함으로서 WEB 소켓으로 접속 가능한 URL 정보를 명시하여 소켓 서버를 생성해주며 프로퍼티를 통해 decoder나 encoder를 명시할 수 있다. JAVAimport javax.websocket.OnClose;import javax.websocket.OnMessage;import javax.websocket.OnOpen;import javax.websocket.Sessi..
자바 특수문자 처리 한때 개발에 이용할 유틸을 만들기 위해서 데이터베이스 컬럼을 가져다가 VO로 만들고 Grid 생성에 필요한 xml을 생성하는데 필요한 유틸을 만들다가 의문이 생겼다. String 변수를 초기화하기 위해서는 String name = ""; 을 해야하는데 StringBuffer sb = new StringBuffer(); sb.append("String name = """); 라고 하니 당연히 에러가 나겠지.. 그래서 처음에는 ''로 했다가 한꺼번에 바꾸면 되지 뭘 했었지만 찾아보니 있긴 있더라.. 자바의 특수문자와 그 기능 \n u000A new line \t u0009 tab \r u000D return \f u000C form feed \\ u005C backsalsh \' u0027 single qu..
자주 까먹는 java 형변환 Java – comparing strings Use == for primitive data types like int If (mystring == null) Use the equals() method to compare objects Use .equals for strings : if (a.equals(“cat”)) Java - Converting int to string String myString = Integer.toString(my int value) or String str = "" + i Java - Converting String to int int i = Integer.parseInt(str); orint i = Integer.valueOf(str).intValue(); double to ..