본문 바로가기

프로그래밍458

전자정부 표준프레임워크 - JUnit 4 Test Case 생성하기 전자정부 표준프레임워크 Portal 템플릿 사이트에 컨트롤러를 테스트하기 위한 테스트 케이스를 추가해 보겠습니다. 1. src/test/java 폴더에 테스트 케이스가 들어갈 패키지를 생성합니다. 이 예제에서는 com.tistory.pentode.test로 만들었습니다. 2. 위에서 만들 패키지에 마우스 오른쪽 키를 눌러 New -> JUnit Test Case를 실행합니다. 3. Junit Test Case 생성창에서 클래스명을 ControllerTest 라고 입력하고 Finish 버튼을 누릅니다. 4. JUnit 4 라이브러리를 build path 에 추가할지 물어 봅니다. "Perform the following action"을 선택해서 빌드 패스에 추가합니다. "OK" 버튼을 누릅니다. 5. po.. 2018. 4. 12.
ArrayList 정렬(Sort) 하기 ArrayList에 포함된 요소들을 정렬하는 방법을 알아보겠습니다. 대부분의 웹 애플리케이션들은 데이터베이스에서 정렬된 데이터를 조회하여 ArrayList에 담아서 사용하므로 ArrayList 자체를 정렬할 일은 잘 없습니다. 하지만 가끔씩 리스트를 직접 정렬해야 할일이 생깁니다. ArrayList 를 정렬하는데는 Collections.sort() 메소드를 사용합니다. 이 sort() 메소드의 인자로 정렬할 리스트를 넘기게 되는데, 오버로딩된 두 가지 버전의 메소드가 있습니다. 첫 번째는 하나의 인자를 받는데, Comparable 인터페이스를 구현하고 있는 요소를 가지는 리스트를 인자로 주게 됩니다. 두 번째는 두개의 인자를 받는데, 첫 번째 인자는 리스트 객체이고, 두 번째 인자는 리스트내의 각 요소를.. 2018. 4. 12.
Oracle XE 컴퓨터 이름(Hostname) 변경후 접속 안될 때 Oracle XE가 설치된 컴퓨터의 이름을 변경한 후 데이터베이스에 접속이 안될 때 처리 방법입니다. 다음 폴더에서 두 개의 파일내에 컴퓨터 이름을 수정합니다. oraclexe\app\oracle\product\11.2.0\server\network\ADMIN 수정할 파일 입니다.* listener.ora LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) (ADDRESS = (PROTOCOL = TCP)(HOST = PENTODE)(PORT = 1521)) ) ) * tnsnames.ora XE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = PEN.. 2018. 4. 12.
jQuery 플러그인 4 - 년도 select 박스 만들기 웹페이지에서 간단한 년도 선택상자(select 박스, 콤보 박스, 드롭다운 리스트)를 jQuery 플러그인으로 만들어 보겠습니다. 달력까지 제공되는 자바스크립트로된 UI 들이 많이 있지만, jQuery 플러그인 연습도 해볼겸 간단하게 사용할 수 있는 년도 선택상자를 만들어 봅니다. 보통 자바스크립트로 UI 를 만들때 요소를 사용해서 만들어질 곳을 표시하고, 스크립트에서 동적으로 태그를 교체하여 생성을 합니다. 이번 예제에서는 간단히 하기 위해서 요소를 직접 사용하여 내용을 동적으로 채울 수 있도록 합니다. 즉, 모양을 바뀌지 않는다는 것입니다. 요소의 옵션을 년도로 간편하게 채울 수 있는 초 간단 플러그인이 되겠습니다. * 기본적인 기능은 2010년을 시작 년도로하고, 마지막 년도는 현재년도 + 1 년까.. 2018. 4. 12.
Windows 10에서 hosts 파일 수정하기 hosts 파일을 문자로된 이름을 숫자로 된 IP 주소로 매칭 시켜 주는 정보를 담고 있는 파일입니다. 우리가 인터넷상의 서버에 접속하기 위해서 주로 사용하는 이름은 offbyone.tistory.com 과 같은 도메인 주소입니다. 이 도메인 주소를 사용하여 서버에 접속하는 과정에너 DNS 서버라고 불리는 서버들을 이용해 도메인 주소에 짝지워진 IP 주소를 찾아서 실제 통신은 IP 주소를 가지고 하게 됩니다. (실제는 MAC(Media Access Control) Address 라는 이더넷 어댑터에 할당되어 있는 물리주소도 관여를 하게됩니다.) hosts 파일을 이 DNS 와 동일한 작업을 수행합니다. 파일내에 그룹웨어 호스트가 groupware 192.168.0.50 처럼 지정 되어 있다면, 이 서버에.. 2018. 4. 12.
이미지 슬라이더 - bxSlider 사용법 홈페이지에 이미지를 바꿔가며 보여주는 이미지 슬라이더는 아주 많이 사용되는 아이템입니다. bxSlider는 자주사용되는 기능도 거의 지원하고, 요즘 핫한 반응형도 지원하고, MIT 라이센스로 배포되므로 부담없이 무료로 사용할 수 있습니다. bxSlider 의 타이틀이 반응형 jQuery 컨텐츠 슬라이더(The Responsive jQuery Content Slider) 인 것에서 알 수 있듯이 bxSlider는 jQuery 플러그인으로 작성되어 있습니다. 필요하다면 소스를 직접 수정하거나 기능을 확장하는 것도 그렇게 어렵지 않습니다. 또한 이미지를 바꿔가며 보여주는것 뿐만아니라 웹 페이지상에 보여지는 어떤 요소든지 바꿔가며 보여줄 수 있습니다. 그러니까 컨텐츠 슬라이더라고 하는것 같습니다. 다음 사이트에.. 2018. 4. 12.
Windows에 버전이 다른 Tomcat 추가 설치하기 기존의 Tomcat 6 이 설치되어 있는 상태에서 tomcat 7 을 추가로 설치해 보겠습니다. Tomcat은 서비스 설치파일이 아니라 zip 파일로 된 배포본을 다운로드 받습니다. 여기서는 32-bit 윈도우용 바이너리 파일인 apache-tomcat-7.0.79-windows-x86.zip 파일을 사용해서 설치합니다. 자신의 시스템에 맞는 설치본은 사용하면 되겠습니다. 1. 다운로드 받은 파일을 압축을 풀어서 설치할 위치에 복사합니다. C:\util\apache-tomcat-7.0.79 폴더로 복사했습니다. 이 폴더 아래에 bin, conf등의 폴더 및 파일들이 들어 있습니다. 자신의 환경에 맞는 위치에 설치하면 되겠습니다. 2. 기존의 tomcat 과 다른 포트를 사용하도록 사용되는 포트를 변경합니.. 2018. 4. 12.
구글 크롬 브라우저 오프라인 설치파일 다운로드하기 구글 크롬(Google Chrome)은 설치페이지에서 "Chrome 다운로드" 를 클릭하여 설치하게되면 서비스 약관에 동의하고 다운로드가 되지 않고 바로 설치가 되어 버립니다. 웹으로 직접 설치가 안되는 다른 컴퓨터에 크롬 브라우저를 설치하기위해서 설치파일을 다운로드 하기 위해서는 오프라인 다운로드 링크를 따라 들어가서 설치 프로그램을 저장하여야 합니다. 오프라인 다운로드 링크로 들어가면 그냥 설치 페이지와 화면 모양이 똑 같습니다. 잘못들어온게 아닌가 하는 생각이 들 수 도 있는데, 그냥 진행을 하시면 됩니다. 마지막에 "동의 및 설치" 버튼을 눌러도 이번에는 그냥 설치되지 않고, 저장 할 수 있습니다. 구글 크롬 브라우저의 오프라인 설치 파일을 다운로드 받는 방법을 알아보겠습니다. 크롬 고객센터의 C.. 2018. 4. 12.
아이폰 이모티콘 키보드 삭제하기 iOS 8부터인가 이모티콘(emoticon)을 입력할 수 있는 키보드가 추가 되었습니다. 한영 전환시 종종 이모티콘 키보드로 변경이 되어 불편할 때가 있습니다. 이 이모티콘 기능이 주로 iMessage 에서 사용되지 않을까 생각되는데, 활성화 되는 조건도 잘 모르겠습니다. 이모티콘 또는 스티커는 앱 내에서만 사용하지, 시스템 키보드로는 전혀 사용하지 않는 기능이라 제거하기로 했습니다. 설정을 열어서 "일반" 항목을 찾아 탭합니다. "일반" 에서 "키보드"를 탭합니다. "키보드" 에서 다시 "키보드" 를 탭합니다. 현재 설치되어 있는 키보드 목록이 보입니다. 이중에 이모티콘 키보드도 있습니다. 이모티콘 키보드를 삭제하기 위해서 우측 상단의 "편집" 을 탭하거나, 목록에서 "이모티콘" 부분을 좌측으로 스와이.. 2018. 4. 12.
스프링 빈(bean) 및 서블릿(servlet) 객체 직접 얻기 스프링 프레임웍을 사용하여 개발 할때 서비스 객체나 DAO 객체의 빈(bean)을 얻기위해서는 @Autowired 또는 @Resource(name = "빈이름") 같은 annotation 을 사용해서 얻게 됩니다. HttpServletRequest, HttpServletResponse, HttpSession과 같은 서블릿(Servlet)객체를 얻기 위해서는 Controller 메소드의 인자로 지정해서 값을 얻고 필요하면 서비스 객체로 보내기 위해서 서비스 객체의 인터페이스에 인자로 정의해서 사용합니다. 이 이외에 유틸리티성 객체에서 데이터베이스에 접근하고자 할때나, 컨트롤러(Controller)나 서비스 객체가 아닌 리스너나, AOP 등에서 서비스객체 또는 DAO 객체를 사용해야 할 경우가 있습니다. 이.. 2018. 4. 12.
오라클 테이블 스페이스 생성하기 및 다른 사용자 권한 부여 오라클 테이블 스페이스를 만드는 방법에 대해서 알아 보겠습니다. 오라클의 테이블 스페이스는 데이터가 저장될 실제 서버상의 파일과 맵핑 됩니다. 생성할 테이블 스페이스 이름과 연관된 파일을 지정하여 생성합니다. 그리고나서 테이블 및 인덱스를 생성할 때 어떤 테이블 스페이스를 사용할지를 지정하게 되는 것입니다. 테이블 스페이스를 지정하지 않고 그냥 테이블 또는 인덱스를 생성하게되면 기본값이 "USERS" 테이블 스페이스에 저장 되게 됩니다. 테이블 스페이스를 사용하는 이점은 테이터를 서로 다른 디스크에 배치할 수 있게 해줍니다. 인덱스용 테이블 스페이스는 빠른 SSD 에, 자주 사용되지 않는 데이터들은 SATA 디스크에 배치하는 등의 최적화를 하는게 가능합니다. 백업시에도 테이블 스페이스별로 하는 분리하여 .. 2018. 4. 12.
iOS 10.3.3 업데이트 7월 20일 밤에 iOS 10.3.3 업데이트가 떠서 설치했습니다. 기기는 iPhone 5s 이고, 업데이트 파일 용량은 86MB 정도 였습니다. 이 파일 크기는 기기마다 다를 수 있다고 합니다. 오류 수정 및 보안 향상을 포함 한다고 되어 있는데, 보안 컨텐츠에 대한 자세한 정보가 있다는 업데이터 화면에 나온 링크에는 10.3.3 에 대한 정보가 없었습니다. https://support.apple.com/ko-kr/HT201222 페이지내의 정보는 iOS 10.3.2 에 대한 정보페이지 였습니다. 그래서 구글링 해보니까 영문페이지인 https://support.apple.com/en-us/HT207923 에서 iOS 10.3.3의 보안 콘텐츠에 대한 정보를 찾을 수 있었습니다. 한글 홈페이지가 아직 업.. 2018. 4. 12.
Eclipse에 Subversion 플러그인 subclipse 설치하기 Eclipse에서 서브버전을 사용하기 위한 플러그인 subclipse 를 설치하는 방법을 알아보겠습니다. Eclipse 최신 버전인 neon 에는 Git 이 기본적으로 들어 있습니다. Git 이 대세이긴 하지만, Subversion 은 아직도 많이 사용되고 있습니다. 이클립스를 실행하고, 메뉴에서 Help -> Eclipse Marketplace... 를선택합니다. 마켓플레이스 창에서 Find: 에 subclipse를 입력하고 조회를 합니다. Subclipse 4.2.3 버전이 검색이 되었습니다. "Install" 버튼을 눌러 설치를 시작합니다. Confirm Selected Features 창이 뜹니다. Subclipse 4.2.3 이하 모든 항목을 선택합니다. "Confirm>" 버튼을 누릅니다. 라.. 2018. 4. 12.
자바스크립트 함수(Function)와 함수의 call(), apply(), bind() 함수 자바스크립트의 함수(Function)는 실제로는 전역객체의 함수 입니다. 전역객체는 웹브라우저일 경우 window이고, Node.js일 경우 global이 됩니다. 다음과 같이 일반적인 전역 함수를 정의하고 실행할 수 있습니다. function add(a, b) { return a + b; } console.log( add(3, 5) ); 결과) 8 이 add() 함수는 다음과 같이 호출할 수 있습니다. window.add(3, 5); 결과) 8 결과는 동일합니다. 실제로 두 함수는 동일한 함수 입니다. ※ 자바스크립트 함수는 그 자체로 객체입니다. 자바스크립트는 동적언어라 객체에 나중에 속성을 추가하는 것이 가능합니다. function bar() { console.log( "bar..." ); } ba.. 2018. 4. 10.
jQuery 플러그인 3 - 확장 기능 제공 플러그인에서 외부에서 접근 가능한 기능을 서브 함수로 제공하도록 합니다. 이렇게 공개된 기능으로 제공하게 되면 사용자가 쉽게 기능을 재정의해서 사용할 수 있습니다. jQuery 플러그인 테스트 1. 테스트용 DIV 입니다. 2. 테스트용 DIV 입니다. 3. 테스트용 DIV 입니다. 함수를 공개로 제공하는 것이 항상 좋은 것은 아닙니다. 필요에 따라 비공개 함수로 유지할 필요가 있는것도 있습니다. 예제에서와 같은 debug 함수는 비공개로 두는 것이 나을 것입니다. 플러그인 내에서 DOM에 추가할 요소를 만드는 경우 플러그인 사용자에게 이러한 요소에 액세스 할 수 있는 방법을 제공하는 것이 좋습니다. 플러그인 내에서 다음과 같이 추가적인 요소를 생성하게 되면 추가 요소의 클래스를 사용자가 수정하기 어렵게.. 2018. 4. 10.