안녕하세요. IT Window 킷도우입니다.오늘 밤 00시 드디어 아르헨티나 VS 프랑스의 결승전 경기가 열립니다. 메시가 우승하게 된다면 발롱도르, 챔스, 올림픽, 코파, 월드컵까지.. 정말 모든 대회를 석권하는 희대의 레전드가 나오는 경기인데요. 정말 기대됩니다.
오늘도 여러분들에게 참고할 만한 글을 가져왔는데요. 바로 스프링 프레임웍의 구조 그리고 개발 방법에 관한 내용입니다.
스프링 프레임웍에서 client와 server 간 데이터 처리 사이클은 익숙해지면 정말 단순하고 편하게 개발 할 수 있습니다. 어떤 CRUD 즉 어떤 select, update, insert, delete 작업이든 아래 9단계 스텝에 걸쳐 처리됩니다. 각 스텝 별로 어떤 단계인지, 어떤 작업들을 하는지 살펴 보겠습니다. 이해를 돕기 위해 화면 단에서 주문을 삭제(delete)하는 요청을 했다는 가정하에 설명해 보겠습니다.
스프링 프레임웍 구조 ①
프론트 화면(.jsp, .html, .js, .xfdl 등)에서 script작성을 통해 서버에 전송할 데이터를 dataset에 담습니다. 주문 삭제를 해야하므로 여기선 주문번호를 서버로 전송해야 합니다. 그래야 최종적으로 DB 서버에서는 해당 주문번호를 where 절에 걸어서 주문 삭제를 진행할 수 있습니다. 그러므로 프론트에서 Dataset에 주문번호를 담아 서버에 데이터를 전송합니다. 전송할 땐, 서버에서 프론트의 요청을 구분해서 받을 수 있도록 요청할 주소를 명시합니다. (ex. http://localhost/deleteOrd.do)
스프링 프레임웍 구조 ②
Controller의 역할은 프론트로부터 요청(/deleteOrd.do)을 받아 요청을 처리할 Service로 보내주는 전달자 역할을 합니다. 처리 로직 즉 비즈니스 로직 자체를 Controller에 작성하면 안 됩니다. Controller는 정말 요청을 받아 알맞은 Service로 요청을 토스하는 역할만 합니다.
스프링 프레임웍 구조 ③
Service에서는 Controller로부터 요청을 받아 프론트로부터 전달받은 데이터를 어떻게 처리할지에 대한 비즈니스 로직을 작성합니다. 알고리즘 적용 또는 코딩을 하며 데이터를 가공하는 등의 작업을 해주고 CRUD, 여기선 주문 삭제이니 TB_ORD 테이블에서 실제로 해당 ROW를 delete 해주기 위해 Mapper에 데이터 삭제를 요청합니다.
스프링 프레임웍 구조 ④
Mapper는 Service로부터 요청을 받아 .xml에 정의된 delete문을 읽어드립니다.
스프링 프레임웍 구조 ⑤
그리고 DB로 해당 쿼리 실행 요청을 합니다.
스프링 프레임웍 구조 ⑥
DB에서 delete문에 대한 처리 결과를 return합니다. Delete 1건 이상 정상 처리했을 경우 1을, 0건 업데이트 했을 경우 0을 리턴합니다. 이제 이 결과 값을 프론트 화면에 전송하여 사용자에게 알려줍니다. 정상적으로 업데이트했을 경우 혹은 업데이트 못했을 경우를 사용자에게 알려주기 위해 이 1 or 0 이라는 결과 값을 다시 프론트 화면으로 역순으로 쭉 전달해 줍니다.
스프링 프레임웍 구조 ⑦
결과값(1또는 0)을 Mapper 에서 Service로 전달합니다.
스프링 프레임웍 구조 ⑧
결과값(1또는 0)을 Service에서 Controller로 전달합니다.
스프링 프레임웍 구조 ⑨
Controller는 최초 요청 받았던 프론트 화면으로 결과값을 전달합니다. 그리고 프론트 화면에선 이 결과값을 사용자가 볼 수 있도록 프론트 엔드 코딩을 해줍니다.
스프링 프레임웍이란 단어 속 프레임처럼 이 9가지 틀에서 반복 숙달하여 개발하다 보면 정말 편하고 익숙해집니다. 그리고 어느 프로젝트를 가더라도 모두 비슷한 구조를 갖고 있기에 소스 분석 및 이해하는게 훨씬 쉬워질 것입니다. 그래서 전자 정부 프레임웍으로 지정된게 아닌가 싶네요.
이상으로 글 마치겠습니다. 다음에도 더 유익한 정보로 찾아 뵙겠습니다.
감사합니다.
댓글