2008/09 8

[dW] RESTful한 웹 서비스 만들기

RESTful한 웹 서비스 만들기(REST와 RESTlet 프레임워크에 대한 소개) REST란 동사(verb)라고 볼 수 있는 이러한 요청들과 명사(noun)라 볼 수 있는 자원을 연결함으로써 행동(behavior)을 논리적으로 표현한다. * CRUD/HTTP 간의 대응 애플리케이션 작업 HTTP 명령 Create POST Read GET Update PUT Delete DELETE 장점 메시지가 아닌 이름이 부여된 자원에 REST가 의존하기에 애플리케이션 디자인 측면에서 볼 때 느슨한 결합이라는 게 쉽게 가능해지는데, 이는 하부를 떠 받치는 기술이 무엇인지 노출되지 않기 때문이다. REST의 아름다움은, 자원은 어떤 것이든 될 수 있고 표현될 수 있는 방식도 다양하다는 점이다. 바로 전에 보았던 예에서..

[dW] XML을 사용하는 좋은 습관 열가지

어쩜 이런글은 지나다니다 많이 본 글인 것 같은데.. 오늘도 역시 지나다가 한번 훑어보고 나중에 보기위해 포스팅합니다. [dW] XML을 사용하는 좋은 습관 열가지 1. XML과 인코딩을 정의하라 이런식으로 써주면 XML 구문분석기가 문서를 잘못 분석할 가능성을 줄일 수 있다. 2. DTD 또는 XSD를 사용하라 DTD를 정의하면 XML 문서 구조를 검증해 문제를 찾아내기 쉬워진다. 일부 XML 편집기는 자동 완성 기능에 DTD를 요구하는 반면, 스키마를 사용하면 실제 문서 구조를 설계하기가 훨씬 편리해진다. DTD를 사용할지 XSD를 사용할지 여부는 개발자가 처한 상황에 달렸다. 3. 항상 검증하라 JSLint는 자주 쓰는데 xmllint도 있군요. Validation xmllint는 libxml2 툴..

[dW] Ajax와 자바 개발을 간단하게 시리즈~

dW에서 3주동안 시리즈로 올라오는 글 중 웹개발에 도움되는 글이 있군요. Ajax와 자바 개발을 간단하게, Part 1 JSP 태그 파일로 자바스크립트 코드 동적으로 생성하기 내용인데 HTML과 URL 인코딩 함수 - 유틸리티 함수가 유용하군요~ Ajax와 자바 개발을 간단하게, Part 2 JSTL과 JSP 태그 파일을 사용하여 커스터마이징이 가능한 웹 컴포넌트를 만들기 Ajax와 자바 개발을 간단하게, Part 3 자바스크립트와 JSP 태그 파일을 사용하여 사용자 친화적이고 웹 폼에 안전한 검증 기능을 구현하기 사용자가 웹 브라우저에 입력한 값을 자바스크립트로 검사하는 valid 같은 특정 기능에 얽매이지 않고 더 일반적인 함수를 만들 수 있는 코드가 있군요. 저같이 수련이 많이 필요한 사람에겐~ ..

[iBATIS] 8. Annotation 기반으로 JUnit4를 이용한 Spring TDD ~ 9. Reference

8. Annotation 기반으로 JUnit4를 이용한 Spring TDD @TransactionConfiguration(transactionManager = "transactionManager", defaultRollback=true) @RunWith : 테스트를 실행할 org.junit.runner.Runner 구현 클래스를 지정할 수 있다. 스프링은 스프링 컨텍스트 설정 및 DI, 트랜잭션 처리 등을 지원해주는 Runner 구현 클래스를 제공하고 있다. Junit 4 기반의 테스트에서 스프링 컨텍스트에 설정된 빈 객체를 사용하고 싶다면 SpringJunit4ClassRunner 클래스를 @RunWith 어노테이션 값으로 설정하면 된다. @ContextConfiguration : 스프링 컨텍스트를 생..

backend/iBatis 2008.09.03

[iBATIS] 7. iBATIS + Spring + transaction

7. iBATIS + Spring + transaction 1. 코드 기반의 트랜잭션 처리 (Progrmmatic Transaction) 2. 선언적 트랜잭션 (Declarative Transaction) - 태그를 이용 - TransactionProxyFactoryBean 태그를 이용 - @Transactional 어노테이션을 이용 태그 이용 @ Transactional 어노테이션을 이용 @Transactional(readOnly = true) public class DefaultFooService implements FooService { public Foo getFoo(String fooName) { // do something } // these settings have precedence for..

backend/iBatis 2008.09.02

[iBATIS] 6. iBATIS + Spring

6. iBATIS + Spring SqlMapClientFactoryBean (org.springframework.orm.ibatis.SqlMapClientFactoryBean) SqlMapClientTemplate (org.springframework.orm.ibatis.SqlMapClientTemplate) SqlMapClientDaoSupport (org.springframework.orm.ibatis.support.SqlMapClientDaoSupport) 스프링의 iBATIS 연동지원 iBATIS 에서 데이터베이스 연동을 처리할 때 사용되는 SqlMapClient 역시 JDBC 프로그램을 할 때와 마찬가지로 try-catch 블록을 사용해서 예외를 처리해 주어야 한다 . 또한 에러원인에 따라 알..

backend/iBatis 2008.09.01

[iBATIS] 5. Transaction

5. Transaction iBatis 가 지원하는 네 가지 트랜잭션 범위 * 자동 트랜잭션 : 단순한 한 개의 SQL 구문은 명시적으로 구분된 트랜잭션을 필요로 하지 않는다 . * 로컬 트랜잭션 : 간단하고 범위가 좁은 트랜잭션으로 여러 SQL 구문을 포함하지만 단일 데이터베이스에서 수행된다 . * 글로벌 트랜잭션 : 복잡하고 범위가 넓은 트랜잭션으로 여러 SQL 구문을 여러 데이터베이스 혹은 잠재적으로 데이터베이스가 아닌 JMS 의 큐나 JCA 커넥션 같은 다른 트랜잭션이 가능한 리소스상에서 실행된다 . * 사용자 정의 트랜잭션 : 사용자 맘대로 ~ "자동 트랜잭션" 보충 설명. JDBC는 'autocommit(자동커밋)' 모드이고 iBatis는 자동 커밋을 직접 지원하지 않고, 대신 자동 트랜잭션을..

backend/iBatis 2008.09.01