뭐라도 공부해보자!!( 이론 )/Web

3. Spring/Spring Boot를 이용한 로그인 페이지 만들기 : 로그인 페이지 관련 구조 설명

잡학다식을꿈꾼다 2023. 1. 25. 23:40
반응형

 시작에 앞서서 해당 실습은 인프런에서 제공되는 무료 강좌에서 다룬 실습입니다. 강좌를 진행하신 튜터 분의 설명을 듣고 싶다면 해당 강좌 링크를 남겨둘테니 들으시기를 바랍니다.(개인적으로는 한 번 듣는 것을 추천드립니다!!)

 

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard

 

[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런...

www.inflearn.com

 

 이전 글을 보지 않았다면 한 번 보고 오는 것을 추천한다. 

 

https://messy-developing-diary.tistory.com/51

 

2. Spring/Spring Boot를 이용한 로그인 페이지 만들기 : 스프링 프로젝트 생성

시작에 앞서서 해당 실습은 인프런에서 제공되는 무료 강좌에서 다룬 실습입니다. 강좌를 진행하신 튜터 분의 설명을 듣고 싶다면 해당 강좌 링크를 남겨둘테니 들으시기를 바랍니다.(개인적으

messy-developing-diary.tistory.com

 

 이 실습의 목적은 간단한 로그인 기능을 제작함으로써 스프링으로 어떻게 작동하는 지를 간략하게나마 알아보는 것이다. 그만큼 복잡한 서비스를 만드는 것을 목적으로 하지는 않을 것이다.

 실습에 앞서서 우리는 몇 가지 가정을 해야한다. 하나는 아직 어떤 데이터 베이스를 어떤 것으로 할 지를 정하지는 않았다. 일단은 개발을 진행해야 되기에 임시적으로 컴퓨터 자체의 메모리를 저장소로 사용하다가 차후에 데이터 베이스로 바꾸어 줄 것이다. 비지니스 요구사항을 정리하면 다음과 같다.

 

  • 데이터 : 회원 ID, 이름
  • 기능 : 회원 등록, 조회
  • 아직 데이터 저장소가 선정되지 않음

 

 일반적인 웹 어플리케이션 계층 구조는 MVC 구조를 따른다. 여기서 M은 Model 즉 비지니스 모델을 의미하고, C는 Control, 데이터의 흐름을 비롯한 제어부를 담당하며, V는 View로 최종적으로 사용자에게 보여지는 인터페이스를 의미한다. 이런 모델로 개발을 하는 이유를 간단하게 설명하자면 관리에 엄청 용이하기 때문이다. 모델, 제어, 뷰를 하나로 뭉뚱그려서 개발을 한다고 가정해보자. 간단한 웹 서비스면 몰라도, 아마 몇 천 줄은 가볍게 넘어가는 코드를 작성해야 할 것이다. 그런데 운이 나쁘게도 서비스를 시험하는 과정에서 뷰 단에 문제가 생겼다고 가정하자. 운이 나쁘면 개발자는 몇 천 줄이나 되는 코드를 일일이 읽어야 한다. 기능들이 서로 간 복잡하게 연계되어 있기에, 단순히 문제가 있을거라 예상되는 부분만을 읽는 것으로 문제 해결이 어려울 수 있기 때문이다. MVC 모델은 웹 어플리케이션을 크게 기능 단위로 3 가지 파트로 나누고 독립성을 유지하여 코드의 보수와 유지를 용이하게 만든다. 

 

MVC 모델

 

 이 실습에서도 MVC 모델로 로그인 서비스를 구현할 예정이다. 즉 사용자의 입력에 따라 페이지를 보여주거나, 데이터를 입출력하고 특정 기능을 수행하도록 호출하는 컨트롤러 부분, 실제 로그인 서비스에 필요한 등록, 회원 목록 보여주기 등 기능에 해당하는 모델 부분, 마지막으로 사용자에 페이지를 보여주는 View 부분으로 구성된다. 클래스 의존관계는 다음과 같다.

 

클래스 의존관계

 

 차후에  MemoryMemberRepository는 JdbcMemberRepository로 대체할 예정이다. 그 때를 대비해서 인터페이스인 MemberRepository를 두었다. 자바의 인터페이스(Interface)에 대해서 간단하게만 설명하자면 클래스의 형식을 통일화하는 기능을 한다는 것이다. 무엇보다 중요한 것은 어떤 인터페이스를 매개변수로 하는 함수는 그 인터페이스 형식을 따른다고 선언한 클래스들을 매개변수로 받을 수 있다는 것이다. (즉 DB가 선정되고 필요한 클래스가 개발되면, 매개 변수를 바꾸어주는 것만으로 저장소를 바꿀수 있게되는 것이다!!)

 이전 글에서도 말했지만 스프링은 웹 개발을 위한 다양한 기능을 제공한다. 우리는 굳이 맨 땅에서부터 프로그래밍을 하지 않아도 된다. 잘 만들어진 도구를 이용하여 쉽고 빠르게 프로그래밍을 해도 누가 뭐라고 하지는 않는다. 기초의 중요성에 대해서는 잠시 미뤄 두고 지금은 빠르게 스프링이 어떻게 돌아가는 지, 어떻게 써먹을 수 있는 지, 훓는 것만을 바라보도록 하자.

반응형