본문 바로가기
programming/SpringJava

자바 스프링 동작 순서 Controller Service DataAccess

by 개코 - 개발과 코딩 2021. 3. 24.

자바를 익힌 후 처음 스프링을 접하면 그 구조에 대해 난해하고 헷갈릴 수 있다. 스프링은 웹프로그램을 개발하기 위한 하나의 프레임워크이기 때문에 동작 순서만 익히면 그렇게 어려운 것이 아니다. 이 순서는 다른 웹프로그래밍을 하는 것과도 비슷하다.

자바 스프링 동작 순서
Controller Service DataAccess

최초로 스프링 프로젝트를 만들면 Controller 라는 자바 파일이 생긴 것을 볼 수 있다.
앞에서 말했든 스프링은 프레임워크이다. 프레임워크는 말 그대로 뭔가를 하기 위한 플랫폼과 같이 기본적인 기능은 제공하고 나머지는 알아서 해라~ 인 것이다.
즉, 순서만 맞추면 웹프로그래밍을 하는데 개발 외 나머지는 신경쓰지 않아도 된다.
( 말이 그렇다는 것이다.)
웹프로그래밍은 html 화면을 시작으로 데이터베이스까지 요청과 응답의 반복이기도 하다.

 

Controller, Service, DataAccess

특정 URL 페이지를 요청한다. 이것은 스프링의 Controller 를 요청하는 것과 같다.
Controller 에서는 Service 계층의 백엔드 처리를 위한 동작을 하고 DataAccess 계층에 값을 요청한다.
DataAccess 계층에서는 실제 mysql mssql oracle 과 같은 데이터베이스에 연결하고 데이터를 읽는다.
위의 과정을 반대로 하여 웹페이지로 값을 보내고 결과를 화면에 보여준다.

 

즉,

웹브라우저에서 URL 입력
Controller 호출 후 결과값 리턴
Service 계층 호출 후 결과값 리턴
DataAccess 계층 호출 후 결과값 리턴

데이터베이스 연결 및 데이터 값 요청 후 결과값 리턴

 

다르게 보면 굳이 저렇게 나눌 필요도 없지만, 프레임워크의 구조상 계층별로 나누고 있다.
이것의 주된 이유는 따로 있지만, 어디까지나 완성된 제품의 유지보수와 관리에 무게에 목적을 두고 있다.

장점 단점

다른 언어들도 마찬가지겠지만, 한 번 잘 만들어두면 이런 것은 함정일 수 있다.
먼저 실행이 되는 것까지 만들어놓고 꾸준한 유지보수와 관리가 필요하다.
유지보수와 관리를 그만두는 순간, 망했다고 본다.
그런 꾸준한 유지보수와 관리를 편하게 할 수 있다는 점에서 스프링은 충분히 요긴한 것이 장점이다.
하지만, 최초 개발을 할 때는 분리되어 있는 파일들로 곤혹을 치를 때가 있다.
잘못 만들거나 이미 있는데도 중복해서 다시 만들거나 이런 것들의 관리가 최초 개발시점에서는 잘 안될 수 있기도 하다.

꼼꼼하게 관리한다.

요리사들을 보면 무조건 요리를 만드는 것이 아니다.
요리를 만드는 동안 짬짬히 부수적인 소스와 요리를 하고 설겆이도 하는 것을 본다.

 

프로그램 개발도 그런 것이 아닐까 한다.
참신한 아이디어를 가지고 만들고 배포하고 서비스를 하는 것은 즐거운 일이 될 수도 있다.
하지만, 프레임워크가 아무리 좋아도 만드는 것에만 너무 급급하면 불어터진 덩치를 다이어트하는 것은 여간 쉬운 일이 아니다.

반응형

댓글