일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- loadcomplete
- Can't load AMD 64-bit .dll on a IA 32-bit platform
- PG-Strom
- tomcat
- Spring Boot
- graph database
- Maven Project
- HTML Code
- PostgreSQL
- BRIN
- 서브라임 텍스트
- maven
- MariaDB
- NextJs
- Spring
- Java
- tortoise SVN
- NestJS
- HTML Special Entity
- Eclipse
- STS
- OGM
- Spring Cloud
- springboot
- Windows 10
- exit code = -805306369
- Next.js
- orioledb
- JSP
- typeorm
- Today
- Total
목록분류 전체보기 (75)
Undergoing
오늘 데일리시큐에서 이런 뉴스가 떴다. http://dailysecu.com/news_view.php?article_id=4811 내용인즉슨, 아파치(Apache)에서 개발한 소프트웨어 ‘struts2’에 존재하는 2개의 크리티컬한 보안취약점(CVE-2013-2251)을 집중적으로 파고도는 공격툴로 인해 중국의 많은 업체들이 피해를 입었다는 것이다. 이를 방비하기 위해 Apache struts팀은 struts 2.3.15.1 버전을 발표했다고 한다. struts.apache.org/download.cgi#struts23151 그렇다고 라이브러리를 통째로 변경할 수 없는 노릇이고, 기존에 있는 프로젝트를 유지하면서 패치하려면 어떤 파일을 변경해야 할지 헷갈릴 수 있다. 이를 잡기 위한 효과적인 방법을 찾던..
- SQL Query시 대소문자 구분하기- brainstorming 한 흔적은 남겨두기- 디버그 모드는 코드를 모두 짠 후에 최종 확인할 때 사용하기
간혹 tomcat을 기동하고 웹페이지를 이동하다 보면 java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.jsp........ 로 시작하는 에러다발을 볼 수 있다. 이럴 때는 서버를 멈추고, 해당 프로젝트를 Clean한 후 다시 Publish하면 해결할 수 있다. 그럼에도 불구하고 계속 동일한 에러가 발생할 경우 이 사이트를 참조. http://seonho.blogspot.kr/2012/06/exception-javalangclassnotfoundexceptio.html
이번에 처음으로 스토리보드를 만들면서 알게 된 것이 Balsamiq Mockup하고 Axure RP Pro인데, 나는 Axure RP Pro를 사용해보기로 했다. 웹페이지를 그려주면 바로 웹브라우저에서 실제와 유사한 프로토타입 화면을 볼 수 있고, Balsamiq보다 더 디테일하다고 판단하였기 때문이었다. 신나게 그림을 그리다가 막힌 부분이 있었으니, 바로 Checkbox 기능이었다. Radio Button은 같은 기능을 수행할 단위별로 묶어서 마우스 우클릭 후 그룹화 시키면 되는데, Checkbox는 그렇게 되지 않는다. 구글에서 해결책을 검색해 보았으나 국내 사이트에서는 명쾌한 답을 찾을 수 없었고, 해외 사이트에서 샘플을 구해서 구현해 보았다. 일단 사용할 Checkbox를 추가하되, 모든 체크박스..
구글에서 검색할 경우 대부분의 검색 결과는 tomcat의 server.xml을 변경하거나 tomcat\conf\Catalina\localhost에 ROOT.xml 파일을 추가하여 경로를 지정할 것을 권장하고 있다. 검색하면 tomcat 버전별로 경로를 지정하는 방법을 쉽게 찾을 수 있다. 아래 블로그는 그 중 하나. http://tenny.egloos.com/1104572 하지만 MyEclipse에서는 이렇게 설정해줘도 안 잡힐 경우가 있는데, 안 될 때에는 Eclipse의 환경을 손봐줘야 한다. 프로젝트에서 마우스 오른쪽 클릭을 하여 팝업메뉴를 띄운 후, 하단에 있는 Properities를 클릭한다. 그 후 Run/Debug Setting에서 현재 사용중인 서버를 클릭한 후 Edit로 들어간다. 정상적..
Exer.xml(경로 : c:\XMLExer\) /sucess.jsp /fail.jsp /sucess.jsp /fail.jsp xmlLoader.java import java.io.File; import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.NamedNodeMap;import org.w3c.dom.Node;import org.w3c.dom.NodeList; public class xmlLoader { public static void main(String[] arg..
exerDispatcher.java package ex01.ex01; import java.io.IOException;import java.util.ArrayList;import java.util.HashMap; import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Servlet implementation class exerDispathcer */ public class exe..
규율이라고 글로벌하게 정해진 것은 아니고, 준수했을 경우 서로 편해지고 향후 테스트를 할 경우 좀 더 객관성있게 할 수 있는 몇 가지 약속들이 책에 서술되어 있길래 각인해야 할 때마다 보기 위해 적어둔다. - public API의 시그너처는 절대 변경하지 않는다. API는 계약의 일부이다. - 종속성을 줄여라. 종속된 상태로 계속해서 클래스를 생성하면 테스트가 복잡해진다. - 생성자는 간단하게 만들어라. - 최소 지식의 원칙(The Law of Demeter)을 준수하라. - 숨겨진 종속성 및 전역 상태를 파악하라. - 제너릭 메서드를 이용하라. - 상속보다 컴포지션을 활용하라. - 조건 분기보다는 다형성을 사용하라.
예외 처리 테스트는 매우 중요한 기법이다. 의도치 않은 상황까지 고려하여 미연에 방지하고 프로그래밍해야 하기 때문이다. 하지만 임의로 오류 상황을 만드는 데에는 많은 시간이 소요된다. 또한 수동으로 만들어내지 못하는 오류도 얼마든지 있다. 따라서 요구사항에 예외 처리를 포함하는 것은 매우 중요하다. 다음은 예외 상황을 만들어주는 요청 핸들러이다. private class SampleExceptionHandler implements RequestHandler{public Response process(Request request) throws Exception{throw new Exception("프로세싱 요청 중 에러 발생");}} 이를 포함하여 테스트 메서드를 만들어 핸들러를 등록하고 요청을 처리해보자..
앞 포스팅에서 DefaultController 클래스를 인스턴트화 하는 부분을 테스트해 볼 것이다. 일단 DefaultController 객체를 생성하고 테스트 작성을 위한 프레임워크를 set-up 한다. TestDefaultController.java public class TestDefaultController {private DefaultController controller;@Beforepublic void instantiate() throws Exception{controller = new DefaultController();} @Testpublic void testMethod(){throw new RuntimeException("implement me");}} DefaultController ..