Code 라는 도메인이 있다. Item에서 사용할 색, 사이즈, 제품 성별 등을 이 ‘코드’라는 걸로 관리할 생각인데 그걸 대편하는 도메인이 Code다.

1. 도메인 클래스 만들기
@Entity
public class Code {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;
    @Column(length = 50)
    private String name;
    @Column(length = 50)
    private String code;
    @Column
    @Type(type = “text”)
    private String descr;
}
2. JPA 애노테이션을 사용해서 매핑 정보를 입력했다. CodeDao 인터페이스를 만든다.
public interface CodeDao {
    List<Code> list();
}
3. 구현체를 만든다.
@Repository
public class CodeDaoImpl implements CodeDao {
    @Autowired SessionFactory sessionFactory;
    public List<Code> list() {
        return getCriteriaOf(Code.class).list();
    }
}
4. CodeService 인터페이스를 만든다.
public interface CodeService {
    List<Code> list();
}
5. 구현체를 만든다.
@Service
@Transactional
public class CodeServiceImpl implements CodeService{
    @Autowired CodeDao codeDao;
    public List<Code> list() {
        return codeDao.list();
    }
}
6. CodeController를 만든다.
@Controller
@RequestMapping(“/base/code/*”)
public class CodeController {
    @Autowired CodeService codeService;
    @RequestMapping
    public void list() {
    }
}
7. web/WEB-INF/views/base/code/list.jsp 파일을 만든다.
생략
그리고 화면에서 확인한다.
아주 지겹게 써먹고 있는 아키텍처인데 사실 아직도 잘 못하고 있다. 
코드 제위치 잡아 주는게 쉬운 일이 아니다.
이번엔 잘 해보자.