Practical AgileSOA

ThoughtWorks에서 AgileSOA라는 것을 어떻게 하고 있는지 ‘칼 어거스트 시몬’이 포스팅을 했었군요…

Practical AgileSOA – Intro
Practical AgileSOA – Making the first services
Practical AgileSOA – Versioning services
 Comment to “Versioning Services”
  Corollary comment on the comment
Practical AgileSOA – The emerging infrastructure
Practical AgileSOA – How to promote and incentivise reuse
Practical AgileSOA – Getting some governance started
Practical AgileSOA – Making the transformation stick

Ant를 사용한 배포 자동화

전제조건.
1. 개발은 Eclipse를 사용하고 있습니다.
2. 배포할 곳은 Tomcat 서버입니다.

1. 톰캣 매니저 설정하기.
톰캣 홈(저는 /usr/share/tomcat5)의 conf 디렉터리에 tomcat-users.xml 파일을 다음과 같이 수정합니다.
<?xml version=’1.0′ encoding=’utf-8′?>
<tomcat-users>
  <role rolename=”tomcat”/>
  <role rolename=”role1″/>
  <role rolename=”manager”/>
  <role rolename=”admin”/>
  <user username=”tomcat” password=”tomcat” roles=”tomcat”/>
  <user username=”both” password=”tomcat” roles=”tomcat,role1″/>
  <user username=”role1″ password=”tomcat” roles=”role1″/>
  <user username=”배포할 때 사용할 유저 네임” password=”배포할 때 사용할 유저 패스워드” roles=”admin,manager”/>
</tomcat-users>

2. 톰캣 매니저 확인.
톰캣 서버 URL/ 접속 한 다음 왼쪽 매뉴에서 manager 선택하여 위에 설정한 “배포할 때 사용할 유저 네임”과 “배포할 때 사용할 패스워드”로 로그인 해봅니다.

3. 톰캣 클라이언트 디플로이어 다운로드 및 압축풀기.
먼저 배포할 곳의 톰캣 서버과 같은 버전의 디플로이어를 설치 해야합니다.
디플로이어는 아파치 FTP에서 찾을 수 있습니다.
다운로드 한 파일의 압축을 풀면 lib 디렉터리가 보입니다.
이 디렉터리에 있는 모든 파일들을 Ant가 참조할 수 있는 라이브러리 폴더로 복사해 줍니다.

4. 빌드파일 작성.



<project name=“Seminar” basedir=“.”>


 


       <!– Load properties –>


       <property file=“src/server.properties” />


 


       <!– Set classpath –>


       <path id=“base-classpath”>


             <pathelement path=“src” />


             <pathelement path=“bin” />


             <fileset dir=“web/WEB-INF/lib”>


                    <include name=“*.jar” />


             </fileset>


             <fileset dir=“${ant.home}/lib” />


       </path>


 


       <!– Configure the custom Ant tasks for the Manager application –>


       <taskdef resource=“org/apache/catalina/ant/catalina.tasks” classpathref=“base-classpath” />


 


       <!– 배포 자동화 –>


       <target name=“War 생성하기>


             <war destfile=“${ant.project.name}.war” webxml=“web/WEB-INF/web.xml”>


                    <lib dir=“web/WEB-INF/lib” />


                    <classes dir=“build/classes” />


                    <fileset dir=“web” />


             </war>


       </target>


 


       <target name=“Tomcat 배포하기 depends=“War 생성하기>


             <deploy url=“${url}” username=“${username}” password=“${password}” path=“/${ant.project.name}” war=“${ant.project.name}.war” update=“true” />


             <delete file=“${ant.project.name}.war”/>


       </target>


 


</project>


위 빌드파일에서 사용할 프로퍼티 파일이 한 개 있는데, 그안에 2번에서 확인했었던, tomcat manager의 url과 1번에서 생성한 username, password를 적어줍니다. 그러면 그 값을 참조하여, deploy라는 task에서 사용하게 됩니다.

ant로 시작하는 EL은 ant에서 기본으로 제공하는 속성으로 프로퍼티 파일에 등록하지 않아도 사용할 수 있는 값들입니다. 이름을 보면 어떤 값이 들어갈지 직관적으로 알 수 있습니다.

deploy라는 task를 사용하기 위해서(ant에서 기본으로 제공하는 task가 아닙니다.), taskdef를 사용하여 tomcat deployer에서 제공하는 task를 사용할 수 있도록 등록해 두었습니다.

또한 tomcat deployer가 참조하는 라이브러리를 사용할 수 있도록 path 엘리먼트 안에 <fileset dir=”${ant.home}/lib” /> 을 추가하였습니다.

배포한 다음에는 로컬에 생성한 war파일을 삭제하기 위해 delete task를 사용했습니다.

5. Ant target 사용하기
Eclipse에서 Ant view를 열고 위에서 작성한 build.xml 파일을 불러 옵니다.
사용자 삽입 이미지그 다음 원하는 target를 더블클릭하여 실행하면 됩니다.
사용자 삽입 이미지

면접 준비? 면접 스터디??

학교 수업 과제로 면접 Q&A를 모아서 레포트를 작성하고 있습니다. 구체적으로는 일반 질문 10개와 황당 질문 5개, 심층 질문 5개 총 20개를 인터넷에서 긁어다 붙이거나 생각해서 쓰고, 답변만은 자신이 직접 적으라는 숙제입니다.

숙제를 해보기도 전에 이미 한 번 면접을 봤기 때문인지 숙제가 별로 재밌게 느껴지진 않지만, 그래도 중간고사를 레포트로 대체도 해주시고, 4학년 졸업반이라고 이런 숙제도 내주시는 배려까지 해주셨는데, 안 하자니 조금 민망합니다.

그래서 여러 면접 질문들을 조사해 봤습니다. 이럴 때는 네이버가 도움이 됩니다. 엄청난 질문들이 나옵니다. “맨홀 뚜껑은 왜 동그란가?”(MS 면접 질문) 부터 “자신의 장 단점을 말하시오.”같은 일반적인 질문들까지 여러 질문들이 등장합니다.

그런데 몇몇 질문과 답변은 참으로 식상하며, 가식적으로 느껴지기 까지 합니다. 그런 질문과 답변을 보면서 생각에 빠져듭니다.

요즘 대학생들은 ‘면접 스터디’라는 것도 한다고 합니다. 누군가는 면접관 역할이 되어서 질문을하고 또 누군가는 실제 면접을 보는 입장이 되어서 대답을 하며 스터디를 할 것입니다.

저는 이 모습이 별로 바람직하지 않다고 생각합니다. 물론 말을 잘 하는 것은 중요하지만, 외워둔 말로 자신에 대한 상대방의 인식을 치장하는 것은 나쁜 일이라고 생각하기 때문입니다. 취업 경쟁이 심하지 않던 시절도 그런 스터디가 존재하고, 이런 숙제가 필요했을까요? 그렇지 않았을 겁니다. 그래서 더 어리숙하고, 웃음을 자아내고, 진땀빼는 면접이 될 수는 있었겠지만, 오히려 그로인해서 더 솔직하게 자신을 드러낼 수 있었고, 면접관도 보다 진실에 가까운 모습을 보고 판단할 수 있었을 것입니다.

그렇다고 스터디 하는 것을 말릴 수도 없고, 면접관이 멋지고 유연한 답변에 혹하는 것을 말릴 수도 없습니다. 그래서 실무 능력을 평가하는데 더 높은 점수를 주어야 하고 말빨 면접은 비중을 최대한 낮추는 것이 좋습니다. 중요한 것은 그 사람의 말빨이 아니라 실력일테니까요.

그렇게 되면 학생들도 말빨 스터디를 하지 않고, 좀 더 진정한 자기 계발과 공부에 매진할 수 있게 될지도 모르겠습니다.

그렇게 되면…

저는 이 숙제를 안 해도 됐을텐데 말이죠.(오히려 이 시간에 린 관련 책을 보거나 스타를 봤을 텐데..)

숙제가 하기 싫어서 해본 소리였습니다.ㅋㅋㅋㅋ