더북(TheBook)

3.2.2 외부에서 애플리케이션 빈 구성하기

누군가의 독서 목록에서 책 제목만 보여 주는 것이 아니라 책의 Amazon.com 링크도 함께 제공하려고 한다. 그리고 책 정보 링크뿐만 아니라 아마존 제휴 프로그램의 혜택을 받을 수 있도록 해당 책을 태그하여 누군가가 애플리케이션에서 제공한 링크로 책을 구매하면 작은 추천 보상도 하려고 한다.

이 작업은 각 책의 제목에 링크가 설정되도록 readingList.html Thymeleaf 템플릿을 바꿔서 간단하게 구현할 수 있다.


...
    <dt class="bookHeadline">
        <a th:href="'http://www.amazon.com/gp/product/'
            + ${book.isbn}
            + '/tag=habuma-20'"
            th:text="${book.title}">Title</a> by
        <span th:text="${book.author}">Author</span>
...

이 코드는 완벽하게 작동할 것이다. 이제 누군가 링크를 클릭하여 책을 구매한다면 추천에 따른 보상을 ‘필자’가 받게 된다. habuma-20이 필자의 아마존 제휴 ID이기 때문이다. 여러분이 보상을 받고 싶다면 Thymeleaf 템플릿에 있는 tag 속성 값을 여러분의 아마존 제휴 ID로 바꾸면 된다.

템플릿에 있는 아마존 제휴 ID를 바꾸기 쉽다고 해도 이 방식은 여전히 하드 코딩이다. 지금은 템플릿 하나만 아마존에 연결했지만, 추후에는 기능을 추가하고 애플리케이션의 여러 페이지에서 아마존에 연결해야 할 수도 있다. 이때 아마존 제휴 ID를 바꾸려면 애플리케이션 코드의 여러 부분을 변경해야 한다. 이런 이유로 제휴 ID 등은 종종 코드 외부에 정의하여 그곳에서 관리하는 것이 좋다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.