ChangJoo-Park / what-to-do

앞으로 해야할 일 또는 생각하는 걸 보관하기 위함
6 stars 0 forks source link

ActiveRecord vs DataMapper #6

Closed ChangJoo-Park closed 6 years ago

rkdgusrnrlrl commented 6 years ago

ActiveRecord 패턴 DataMapper 패턴 의 차이 및 각각의 특징을 하고 싶으신건가요 아니면 typeorm 에서 각각의 사용법 및 차이점(?) 을 배우시려는 건가요??

ActiveRecord 패턴 DataMapper 패턴 의 차이 정도라면 간단히 보기에 아래 글도 괜찮을 것 같습니다 구글 번역하면 매끄럽게 잘 번역되서 재밌게 읽었습니다. What’s the difference between Active Record and Data Mapper?

ChangJoo-Park commented 6 years ago

TypeORM에서 액티브레코드, 데이터매퍼 둘중 뭘 골라야 할까 고민하고 있었거든요 TypeORM에서 액티브레코드를 사용하려면 별도의 클래스를 상속해야하고, 데이터맵퍼는 그냥 클래스만 가지고 사용하더라구요 한번 써보려고 하는데액티브레코드만 익숙하게 쓰고있어서 데이터맵퍼를 쓰려면 어떻게해야할지 고민하고 있었어요

ChangJoo-Park commented 6 years ago

링크해주신거 잘 읽을게요 ㅋㅋㅋ 타입스크립트 한번 써보실 생각없나요

rkdgusrnrlrl commented 6 years ago

장고 ORM 도 액티브레코드 인데, typeorm 과 같이 Model 을 상속 받아서 원래 다 그런 줄 알았는데 꼭 그렇지만은 아닌가보네요 ㅎㅎ

저는 데이터맵퍼 스타일을 선호 하는데 코드의 구현 보다 저장 하는 부분을 저장소(레파지토리) 로 잘 추상화 했고, 각 객체는 자신의 일만 하면 되고 저장이나 삭제 기능을 갖고 있지 않아서 좋아 합니다. ㅎㅎ 사실 저는 액티브레코드 패턴쪽의 경험이 없어서 더 데이터맵퍼쪽을 좋아 하는 걸지도 모르겠습니다. ㅎㅎ

타입스크립트는 제가 좋아하는 형태 입니다만 트렌스 파일에 안좋은 경험이 있어서 순수한 자바스크립트를 선호합니다. 혹시 트렌스 파일 류 들은 원본 소스로도 디버깅이 가능 한가요?? 이 부분이 제일 불편했거든요 ㅠㅠ

ChangJoo-Park commented 6 years ago

네 기본이 repository를 가지고 뭔가 하는거더라구요

사실

user = User.new
user.save

까지는 그럭저럭 수긍할만한데

user.remove

이 경우처럼 스스로를 삭제한다 라는게 좀처럼 수긍이 안되요 ㅋㅋ 자살인가.. 어딘가 저장소에 들어가있고 거기서 뺀다는 개념이 더 익숙해서 그럴지도 모르겠어요

타입스크립트의 경우에는 트랜스파일 안하고 ts-node 를 써도 되더라구요 todomvc 백엔드를 만들어보고 있는데 (⭐️ 감사합니다 ㅋㅋ) 기본 템플릿이 tsc로 컴파일인지 트랜스파일을 하도록 만들어져 있었어요

ts-node로 바꾸고, nodemon 붙여서 개발환경을 다시 만들어볼게요

rkdgusrnrlrl commented 6 years ago

잘 지켜보며 배우겠습니다( ) ㅎㅎ 액티브레코드 패턴 ORM 을 많이 써보셨는데, 이런 점이 좋고 이 점은 좀 불편하다 하는 것 있을까요?

ChangJoo-Park commented 6 years ago

너무 객체 의존적이 되는거 같아요 순수 sql을 까먹게 되는게 더 큰 단점이기도 하구요 단점은 잘 모르겠어요 쿼리 고민할 시간에 객체로 다 처리하면 되는 장점이 너무 커서요 데이터맵퍼랑 비교했을때면 데이터맵퍼를 아직 안써봐서.. 모르겠어요

ChangJoo-Park commented 6 years ago

이런거 만드시면 놀러갈게요 ㅋㅋ