컴퓨터 공학

👉 [CS] Layered Pattern 레이어드 패턴 구현

bitcodic 2021. 7. 11. 14:43

레이어드 패턴은 백엔드에서 다룰 때 쓰는 패턴이다.

개인적인 생각으로는 MVC와 매유 유사하다고 생각한다.

 

보여주는 곳/로직 처리/디비 접근

 

3가지 파트로 나누어 처리하는 것인데, 이는 담당 위치를 분리함으로써 명확한 역할군의 분리가 눈에 띈다.

 

레이어드 패턴

일반적으로 경력 백엔드 개발자들은 이렇게 작업하는게 "당연"한 것이나,

아무래도 백엔드 자체 특성상 신입이거나 배우는 단계인 사람들에게 지식이 타 계열에 비해 적지 않나 싶다.

 

ㄴcontroller (Presenstation Layer)

   ㄴuser_controller.py

ㄴservice (Business Layer)

    ㄴuser_service.py

ㄴmodel (Persistence Layer)

    ㄴuser_model.py

 

 

Presentaion Layer

#service/user_controller.py
user_service = UserService()

@app.route("/user", methods=["POST"])
def get_user(self):
	return user_service.get_user(request.form)

 

 

Buisness Layer(=Logic Manage)

#Controller/user_model.py

from Model.user_model import UserModel

class UserService:
  def get_user(self, data):
    #Buisness Logic
    result = UserModel().get_user(data["name"])
    return result

 

Persistence layer (=Data Access)

# Model/user_model.py

class UserModel:
	def get_user(self):
    	#db connection
        sql = "insert into user ..."
        #execute(sql)
        return result

 

주의할 점은 같은 레이어간의 호출하게 되면 무한한 회귀 속으로 빠질 수 있기 때문에 주의해야 한다.

 

DO NOT 

A-Service calls B-Service

B-Service calls A-Service