Database TIL 07

Nabang Kim·2021년 8월 31일

Database

목록 보기
7/8
post-thumbnail

2021년 9월 1일에 작성된 문서 1번 입니다.
데이터 베이스 배운 내용을 정리했습니다.



MVC design patterns

MVC (Model View Controller) 란

  • SW 아키텍처 디자인 패턴
  • 응용 프로그램을 기능별로 분리시켜 개발한다.
  • 정돈된 프로그래밍이 가능하다. (가독성과 퀄리티의 상승.)


위의 그림을 토대로 작성됨.

기능 이름특징
Model데이터의 정보를 갖고 있다.
데이터베이스와 연결되어 데이터를 갖고 올 수 있다.
데이터베이스와 연관이 있는 부분.
Controller모델 스스로의 값이나 데이터베이스에서 가져온 값과 연관이 있다.
컨트롤러가 모델에게 물어보거나 모델이 컨트롤러에게 데이터를 반환한다.
모델에서 받은 데이터를 가공을 걸쳐서 뷰에게 전달한다.
View사용자가 보는 화면을 보여주게 하는 역할
뷰에서 일어나는 액션을 컨트롤러에 전달한다.
컨트롤러와 직접적인 연관이 있다. 모델이나 데이터베이스 접근은 없다.



web example

수도 코드 (이런 형식으로 MVC가 나눠진다.)

http://yourapp.com/users/profile/1 
//여기로 get request 보냈다고 가정

/routes
//라우터에 걸리면 
	users/profile/:id = Users.getProfile(id)
	//Users라는 컨트롤러의 getProfile이란 함수를 실행.


/controllers
	class Users{//Users가 클래스 이름.
		function getProfile(id){//getProfile 함수
			profile = this.UserModel.getProfile(id)
			//UserModel에 있는 getProfile을 부른다.
			renderView('users/profile', profile)
			//그 부른 값을 뷰로 보내준다.
		}
	}


/models
	Class UserModel{//UserModel이라는 클래스가 존재.
		function getProfile(id){//getProfile 함수
			data = this.db.get
			('SELECT * FROM users WHERE id 	= id')
			//실제 데이터 베이스에 접근해 쿼리문대로 id값을 받아 데이터로
			//가져온다.
			return data
			//그 데이터를 반환한다. 컨트롤러의 프로파일이 리턴된
			//데이터를 받아 올 수 있다.
		}
	}


/views
//받은 데이터를 이용해서 시각적으로 그려주는 역할.
	/users
		/profile
		<h1>{{profile.name}}</h1>
		<ul>
			<h1>Email : {{profile.email}}</h1>
			<h1>Phone : {{profile.phone}}</h1>
		</ul>



MVC를 사용하는 웹 프레임워크들

  • Ruby on Rails (Ruby)
  • Laravel (PHP)
  • Codeigniter (PHP)
  • Django (python)
  • Express (JS)
  • Backbone (JS)
  • Angular (JS)
  • Flask (python)






Written with StackEdit.

0개의 댓글