본문 바로가기

분류 전체보기

(373)
[스프링] 기업들은 왜 프레임워크를 사용하는가? 프레임워크는 말 그대로 '뼈대나 근간'을 이루는 코드들이 묶음이라고 볼 수 있다. 중요한 점은 이 뼈대가 왜 필요한가이다. 프레임워크의 최대 장점은 개발에 필요한 구조를 이미 코드로 만들어 놓았기 때문에, 실력이 부족한 개발자라 하더라도 반쯤 완성한 상태에서 필요한 부분을 조립하는 형태의 개발이 가능하다는 점이다. 기업의 입장에서는 프레임워크를 사용하면 일정한 품질이 보장되는 결과물을 얻을 수 있고, 개발자의 입장에서 는 완성된 구조에 자신이 맡은 코드를 개발해서 넣어주는 형태이므로 개발시간을 단축할 수 있다는 것이다. [출처] 코드로 배우는 스프링 웹 프로젝트 p.40
For input string : "NaN" 간만에 보게 되는 For input string : "NaN", 내용은 어느 부분에서 string 값이 제대로 처리가 안 되었다는 건데.. 로그만 보면 AjaxListAction에서 오류가 발생한 것이었는데, 오류를 따라가보니 AjaxListAction으로 page값을 던져주는 부분이 문제였다는 사실 page를 제대로 인식하지 못하여서 parseInt 함수가 동작하지 않는 것이었다.page = parseInt(page); --> page = parseInt($('#page').val()); 포스팅 하면서 다시 보니, param이라는 변수에 page 값을 담았는데, data 넘기는 부분에서는 그냥 page라는 변수를 넘겨서 오류가 났었다는 웃픈(?) 사연이었다 ㅡㅡㅋ
[예외처리] throw / throws , try-catch-finally 예외처리 출처 : http://pakt.tistory.com/ ( Error ): 화면에 잘못된 메시지를 출력하고, 실행을 멈추게 되는 프로그램 자체의 문제: Error class 에서 파생: 에러 관련 처리 코드가 정확치 않아도 컴파일 됨ex) OutOfMemoryError ..예외처리 ( Exception ): 프로그램의 흐름이 끊어지지 않게 하기 위해서 필요한 부분.: 오류가 생겼다고 해서 중간에 프로그램을 강제종료하지 않고, 정상적으로 마지막 부분까지 흘러가서 종료되게 하는 것.: 문제가 발생될 것을 미리 예측하여 프로그램 과정중에서 잡아내는 것: java.lang.package 의 Exception class 에서 파생 -> 모든 예외 클래스의 상위 클래스ex) IOException .. throws: ..
추상 클래스 뽀개기 추상 클래스는 이전 포스팅에서도 다룬 적이 있지만, 다시 정리된 내용이 있어 새로 올린다.먼저 추상 클래스의 특징을 살펴보면 다음과 같다. 이렇게 글로 된 설명만 보고 추상 클래스를 이해 하였다면, 당신은 현업 개발자이거나 프로그래밍 감이 정말 좋은 축에 속하는 사람일 것이다. 필자를 포함한 초보들은 이런 설명만 보고는 도무지 이해를 못한다. 동의하였다면 아래 그림을 살펴보자. 1. 추상 클래스 추상 클래스는 미완성 클래스이다. 객체가 가지는 특성을 추상화 했으나 구현하지 못한 것이다. 2. 자식 클래스 자식 클래스에 공통으로 포함된 move 메서드와 carry 메서드에서 볼 수 있듯이, 추상 메서드는 반드시 자식 클래스에서 오버라이딩하여 구현하여야 한다. 그렇지 않으면 자식도 추상 클래스가 된다. 3...
semantic web - 시맨틱 웹 계층 구조 시스템 - 컴퓨터가 사람을 대신하여 정보를 읽고, 이해하고 가공하여 새로운 정보를 만들어 낼 수 있도록 이해하기 쉬운 의미를 가진 차세대 지능형 웹. 1998년 월드 와이드 웹의 창시자인 팀 버너스 리(Tim Berners Lee)에 의해 개발, 기계가 읽고 처리할 수 있는 웹이라고 정의하였다. 컴퓨터가 정보를 제공하기 위해 자체적으로 웹상의 정보를 탐색 및 수집하여 논리적으로 추론하는 정보처리 기능을 하고 있다. 인터넷 정보를 의미망으로 통합한 온톨로지(ontology) 형태로 이루어지며, 정보를 이해하고 다양한 정보 간 의미요소를 연결함으로서 지능적 판단에 따라 추출, 가공하는 처리방식을 말한다. 이를 위해 컴퓨터가 인식할 수 있는 언어를 이용해 웹페이..
컴포넌트어플리케이션에서 사용될 목적으로 만들어진 소프트웨어의 한 구성 요소이다. 컴포넌트의 기능을 확장하는 목적이 아닌 이상 어플리케이션은 컴포넌트의 소스 코드를 수정하지 않으며, 확장하더라도 컴포넌트 작성자가 허용한 방식으로만 확장한다.
스프링 어노테이션 정리 @Autowired패키지: org.springframework.beans.factory.annotation버전: spring 2.5설정 위치: 생성자, 필드, 메서드(setter메서드가 아니여도 된다) 앞의존관계를 자동설정할 때 사용하며 타입을 이용하여 의존하는 객체를 삽입해 준다. 그러므로 해당 타입의 빈객체가 존재하지 않거나 또는 2개 이상 존재할 경우 스프링은 예외를 발생시키게 된다.options:required: Autowired 어노테이션을 적용한 프로퍼티 중 반드시 설정할 필요가 없는 경우에 false값을 주어 프로퍼티가 존재하지 않더라도 스프링이 예외를 발생하지 않도록 한다. 기본값은 TRUE. ex) @Autowired(required=false)사용하려면 클래스를 빈으로 등록시켜줘야 한다..
커스텀 ArgumentResolver 등록하기 개요스프링 사용시 컨트롤러에 들어오는 파라미터나 리턴타입을 나한테 맞게 가공해서 사용하고 싶을 때가 있다.. 기존에는 WebArgumentResolver를 구현해서 AnnotationMethodHandlerAdapter에 등록을 해야 했는데, 스프링 3.2버전 부터는 deprecated 된 상태다. 지금은 RequestMappingHandlerAdapter 클래스가 담당하는데, 이 클래스에서는 WebArgumentResolver가 HandlerMethodArgumentResolver로 바뀌었다.예제request 파라미터 수집을 Map 형태로 하는 클래스를 만들어서 등록해보자. 먼저 Spring Project로 생성한 뒤, 파라미터 수집하는 클래스를 생성하자. ParamCollector.javapackag..