본문 바로가기

전체 글116

추상클래스 vs 인터페이스 추상클래스와 인터페이스 정의는 어느 클래스의 구현체가 어떤 기준에 의하여 여러 개가 나올 수 있다면 그 클래스들을 하나의 타입으로 묶어줄 수 있는 역할을 한다. 추상클래스 - 구현체를 포함한다. - 추상클래스로 정의된 클래스는 반드시 추상클래스를 상속받아야 한다. - 단일 상속이기 때문에 다중 상속을 할 경우엔 상속을 여러번 받아야 한다. 인터페이스 - 구현체가 없다. - 구현 계약을 지킨다면 다중 구현이 가능하다. 추상클래스는 부모-자식 관계가 성립되어야만 구현이 가능하도록 의존관계가 생겨서 어느 한 클래스가 수정되면 의존관계인 클래스들에 손상을 줄 수가 있다. 따라서 엄격하게 적합성 여부를 따져봐야 한다. 또 여러 클래스를 타입으로서 정의만 하는 것 외에도 기능의 진화에 더 중점을 두고 있습니다. 인.. 2012. 2. 5.
CentOS 6 설치 및 부가 설치 가이드 아래 사이트는 JDK 7 설치 안내이다.화면 왼쪽에 그 외 가이드가 있다.http://www.server-world.info/en/note?os=CentOS_6&p=jdk 끝. 2012. 2. 4.
MySQL 5.1 사용자(계정) 추가 mysql -u root -p 엔터패스워드 입력 후, use mysql; insert into db values('%','dev','dev','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y'); insert into host values('%','dev','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y');insert into user values('%', 'dev',password('dev123'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',.. 2012. 2. 4.
JSP request, response 과정 1. Request클라이언트(웹브라우저) ----- (request) -----> 서버request.setCharacterEncoding() : 클라이언트가 서버로 데이터를 보낼 때 데이터 문자인코딩 설정 2. Response클라이언트(웹브라우저) .java 생성 -- (complie) --> .calss 생성 ----> 실행 -- (Content-Type) --> HTML 출력pageEncoding이 명시 안되어있을 경우 Content-Type의 문자를 사용 끝. 2012. 1. 13.
eclipse 3.7.1 Indigo velocity editor plugin 설치 Help -> Eclipse Marketplace... 에서 velocity 찾아보면 검색은 되나 설치 버튼이 없다. 1. Velocity Editor홈페이지 : http://veloedit.sourceforge.net/설치 : Help -> Install New Software... -> Work with: http://veloedit.sourceforge.net/updates/ 입력 후 엔터하면 아래와 같이 나오는데 체크하여 설치하면 된다. 에디터 화면벨로시티 문법 외에는 다 검은색으로 나온다. 2. Velocity + HTML Editor홈페이지 : http://velocitywebedit.sourceforge.net/다운로드 : http://sourceforge.net/projects/veloci.. 2011. 12. 17.
Eclipse 3.7 Indigo JSDT jQuery 플러그인 설치 이클립스 3.5, 3.6은 jqueryWTP 플러그인을 이용하여 jQuery 어시스트를 쓸 수 있엇는데 3.7에선 이클립스 마켓에서 제공하고 있다. 설치 - 이클립스 -> Help -> Eclipse Marketplace... 선택 - Find: JSDT jQuery - Install 클릭 - 이클립스 재시작 2011. 11. 26.
안드로이드 환경설정 1. 구글 안드로이드 개발자 사이트http://developer.android.com/index.html 2. 오른쪽 상단에 Download 클릭 3. Android SDK 다운로드 3. 다운받은 zip 파일을 아무 곳에서 압축을 푼다.(압축을 푼 폴더구조) 4. SDK Manager.exe를 실행하여 Android Package를 다운받는다.여기서는 Android 4.0, 2.3.3, 2.2, Extra만 다운받았다. 참고로 시간이 많이 걸린다. 5. 이클립스 Android ADT Plugin 설치 - 참고로 이클립스 버전은 J2EE를 지원하는 3.7 인디고(Indigo) - Help > Install New Software... 선택 - 오른쪽 상단에 Add 클릭 - Name: ADT Plugin, .. 2011. 11. 26.
Spring-2.5.6 MVC 1. 최소 필요라이브버리 commons-beanutils-1.7.0.jar commons-collections-3.1.jar commons-lang-2.5.jar commons-logging-1.1.1.jar log4j-1.2.16.jar spring-webmvc.jar spring.jar 2. web.xml spring2.5.6 spring org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/classes/spring-servlet.xml 1 spring *.do index.html 3. spring-servlet.xml /index.do=mainController /main.do=mainController 4.. 2011. 10. 22.
SQL로 카테고리, 트리, 계층 구조의 구현 Oracle이나 SQL Server가 아닌 다른 DB일 경우 SQL로 카테고리(트리, 계층) 구조로 표현하기 어렵다. 다음 사이트를 참고하면 Depth가 있을때마다 추가하는 작업외에는 간편하다. http://sqllessons.com/categories.html 2011. 10. 18.
Windows 7에서 Eclipse 3.7(Indigo) Font가 이전 버전과 다를 때 윈도우 7에서 Eclipse Indigo 버전 글꼴이 이전 버전 글꼴인 Courier New가 아니고 Consolas로 되어 있다. 원인은 Courier New 글꼴이 숨김 파일로 되어 있어서 Eclipse가 못 찾은 듯 하다. 그래서 이 글꼴을 표시해주자. C:\Windows\Fonts로 가서 Courier New 이 글꼴을 검색해서 찾자. 찾은 파일을 마우스 오른쪽 버튼을 클릭하여 팝업메뉴 하단에 표시를 클릭하자. 그리고 이클립스 Window - Preferences - General - Appearance - Coloes and Fonts를 클릭하여 Basic - Text Font를 더블클릭하여 글꼴을 Courier New 이걸로 바꿔주자. 2011. 10. 9.
Eclipse Decompiler(JadClipse) 설치 1. jad.exe 다운로드 http://www.varaneckas.com/jad JAD Java Decompiler Download Mirror JAD Java Decompiler Download Mirror As http://www.kpdus.com is no longer accessible, JAD Java Decompiler download is extremely hard to find. Here is a mirror where you can get JAD for various platforms. Installation Unzip jad.zip file into any appropriate varaneckas.com 2. net.sf.jadclipse_x.x.x.jar (현재 3.3.0 버전이 최.. 2011. 10. 9.
Java + MyBatis 필요 라이브러리 commons-logging-1.1.1.jar jtds-1.2.5.jar log4j-1.2.16.jar mybatis-3.0.5.jar slf4j-api-1.6.2.jar slf4j-log4j12-1.6.2.jar mybatis-config.xml Test.java import java.io.Reader; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactoryBuilder; pub.. 2011. 9. 21.
Struts2 + Tiles2 + Freemarker 설정 버전 struts-2.2.3.1 tiles-2.2.2 freemarker-2.3.18 최소 필요 라이브러리 commons-beanutils-1.7.0.jar commons-digester-2.0.jar commons-fileupload-1.2.2.jar commons-io-2.0.1.jar commons-lang-2.5.jar commons-logging-1.1.1.jar freemarker.jar javassist-3.11.0.GA.jar log4j-1.2.16.jar ognl-3.0.1.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar struts2-core-2.2.3.1.jar struts2-tiles-plugin-2.2.3.1.jar tiles-api-2.2.2.. 2011. 9. 14.
Velocity 설정 및 사용법 버전velocity-1.7.jarvelocity-tools-2.0.jar 의존 라이브러리commons-beanutils-1.7.0.jarcommons-collections-3.1.jarcommons-digester-2.0.jarcommons-lang-2.5.jarcommons-logging-1.1.1.jar web.xmlvelocityorg.apache.velocity.tools.view.servlet.VelocityViewServlet org.apache.velocity.toolbox/WEB-INF/tools.xml org.apache.velocity.properties/WEB-INF/velocity.properties velocity*.vm tools.xml (옵션)공통으로 사용되는 값명시 안했을 시.. 2011. 9. 14.
Servlet + Freemarker (프리마커) 사이트 http://freemarker.sourceforge.net/매뉴얼 http://freemarker.sourceforge.net/docs/index.html 방법1. web.xml 파일에 등록하여 처리freemarkerfreemarker.ext.servlet.FreemarkerServletTemplatePath/NoCachetrueContentTypetext/html; charset=UTF-8 template_update_delay0 default_encodingUTF-8 output_encodingUTF-8 number_format0.##########1 freemarker*.ftl 방법2. Servlet 파일에서 처리 (Freemarker 설정 값도 지정해줘야 함) public void pro.. 2011. 9. 11.
Apache Derby (더비) 사이트 http://db.apache.org/derby/기본적으로 Derby는 사용자 인증 없이 접속이 가능함사용자를 추가하려면 다음을 추가%DERBY_HOME%\bin 폴더에 derby.properties 파일 생성 derby.connection.requireAuthentication=truederby.authentication.provider=BUILTINderby.user.admin=adminderby.database.fullAccessUsers=admin접속 URLjdbc:derby://localhost:1527/testDB;create=true;user=admin;password=admin;참고 http://db.apache.org/derby/docs/10.8/devguide/Derby에서 사용.. 2011. 9. 11.
Cross Site Scripting (XSS, 크로스 사이트 스크립팅) 자바스크립트를 이용하여 다른 사용자의 쿠키 정보를 빼와서 해킹에 사용된다는 의미이다. 예방법 1. xssProtect-0.1.jar 이용 http://code.google.com/p/xssprotect/ Google Code Archive - Long-term storage for Google Code Project Hosting. code.google.com public String protectAgainstXSS(String html) { StringReader reader = new StringReader(html); StringWriter writer = new StringWriter(); try { // Parse incoming string from the "html" variable HTML.. 2011. 9. 11.
Struts2 + Spring2.5 WAS 재기동 없이 수정된 파일 적용하기 웹서버 재기동 없이 클래스, xml, properties 파일 추가 가능 struts.propertiesstruts.class.reloading.watchList = /WEB-INF/classesstruts.devMode = true web.xmlcontextClassorg.apache.struts2.spring.ClassReloadingXMLWebApplicationContext /WEB-INF/libcommons-jci-fam-1.0.jar 파일 추가 끝. 2011. 9. 11.
SQL Server 2005 전체 텍스트 검색 전체 텍스트 검색검색 엔진char, nchar, varchar, nvarchar, text, ntext, xml, image, varbinary(max) 등이 대상나중엔 text, ntext, image 데이터 형식은 제외. 따라서 가급적 사용하지 않는 방향으로... 수행 단계모든 단어들은 전체 텍스트 인덱스에 저장카탈로그는 위 인덱스들을 저장하고 있는 개념 Contains 함수와 Containstable 함수Contains 함수 WHERE 절에 문자열 필드에 대한 검색조건을 수행Containstable 함수는 FROM 절에 문자열 필드에 대한 검색조건을 수행Contains 함수 사용예로 select * from A where a = 1 and contains(b, '테스트') 쿼리를 수행할 시 실행계획.. 2011. 9. 11.
Java에서 DB Stored Procedure 정보 알아내기 public static void main(String[] args) throws Exception { String url = "jdbc:sqlserver://localhost;databasename=bbs"; String user = "bbs"; String password = "bbs"; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection con = DriverManager.getConnection(url, user, password); // 디비 정보 DatabaseMetaData dbmd = con.getMetaData(); ResultSet rs = null; // parameters : catalog(디비명), s.. 2011. 9. 11.