: 소프트웨어로 해결하고자 하는 문제 영역
ex) 온라인 서점: 소프트웨어로 해결하고자하는 문제 영역
-> 이 도메인에서는 하위 도메인으로 상품조회, 구매, 결제, 배송 추적 등의 기능을 제공
-> 하위 도메인은 다른 하위 도메인과 연결되어 완전한 기능을 제공
-> 도메인이 제공할 모든 기능을 구현해야하는 건 아니다 (결제와 같은 기능은 외부업체에 맡길수도)
더욱 깊게 공부하면 DDD와 같이 엄청 복잡한데, 나는 일단 백엔드 친구들이랑 협업할 때 알아들을 수 있을 정도의 개념만 정리하려고 한다. 나중에 기회가 되면 더욱 깊게 공부해보겠다!!
: 소프트웨어를 조금 더 쉽게 유지하고 수정하기 위한 디자인 패턴
model
: 데이터와 데이터가 동작하는 방식을 제공
view
: 데이터의 표현
-> 화면에 무엇인가를 보여주기 위한 역할
controller
: 모델과 뷰의 연결고리
-> 모델이 어떻게 처리할지를 알려주는 역할을 한다. 즉, 데이터를 받고 시스템의 다른 부분에 전달
--> 즉, mvc설계하는 것은 소프트웨어 구조 유지보수를 위한 패턴 중 하나이다. mvc는 프론트와 백 개발자가 분리된다는 장점이 있는 것이다. 클라이언트의 요청에 따라 컨트롤러는 받아서 모델에 전달하고 모델에서 데이터 처리하고 결과를 다시 컨트롤러에게 전달해주면 컨트롤러는 뷰에 전달하여 프론트엔드에서는 그것을 사용자에게 응답으로 보여주게 된다.
즉, mvc 설계는 사용자의 요청부터 응답을 주기까지를 어떻게 처리할 것인지를 설계하는 것
: 하나의 프로그램에서 다른 응용 프로그램(기능)을 가져올 때,그 매개체
: rest한 원칙을 따르는 api이다. 그 중에서도 클라이언트와 서버 사이에서 요청하고 응답을 받아올 때, 어떤 식으로 받아올 건지에 대한 체계 (요청 시, 내가 뭘 원하는 지 명확히 알게끔 하는 것)
-> 네이버에서 지도 api를 가져온다고 한다면: 네이버 지도의 정보를 사용하기 위해 어떻게 그 정보를 가져올 수 있는 지를 정의 해놓은 체계를 통해서 지도 정보를 가져온다라는 의미
-> 이렇게 이미 개발되어있는 api 사용을 통해, 직접 개발해도 되지 않아서 개발 시간을 단축할 수 있다.
: 프로젝트 시 의미하는 api설계는 클라이언트와 서버가 요청을 하고 응답을 받아올 때, 어떤 형태로 어떤 method로 요청을 할 건지, 어떤 json 형태로 응답을 받아올 건지를 설계하는 것
-> 백엔드에서는 클라이언트와 통신하기 위해, 서버에서 처리한 데이터를 어떻게 클라이언트에게 돌려줄 건지 api를 설계해야 함
: 누구나 쓸 수 있는 api
: api중에서도 어떤 특정 리소스에 접근할 거냐에 따라 해당 uri로 이동
: db에서 객체, 속성, 관계들을 정의하는 것
: 도메인 설계는 우리가 만들 소프트웨어의 하위 기능들 그리고 각 기능의 데이터 구성, 각 기능들의 연관관계를 설계하는 것을 말한다.
mvc 설계는 이 소프트웨어를 유지하기 위한 패턴을 설계하는 것으로, 사용자에게 요청이 왔을 때, 이것을 백과 프론트에서 각각 어떻게 처리할 것이지 설계하는 것을 말한다. (백에서 ~데이터 받아서 db에 갔다가~하고 다시 프론트에 전달) 즉, 사용자의 요청에서부터 응답까지 어떻게 이루어지는 지를 설계하는 것.
api 설계는 클라이언트의 요청을 어떤식으로 받고, 어떤식으로 응답을 줄 건지를 설계하는 것.
schema는 db의 구조 설계
모던 개발자에게 필요한 핵심 개념들에 대해 공부하셨군요! 멋집니다👍 머릿속에 알고 있는것과 실제로 만들면서 배우는 건 다르니 알게 된 시점과 만드는 시점의 간격을 같이 최대한 좁혀봐요!