orm(5)
-
조인 테이블이 있으면 다대다 관계다?
회사에서 ORM을 사용하고 있는데 내가 보기에는 @ManyToMany를 사용하는게 적절해 1대다 관계를 양측에 만들고 중간테이블을 엔티티로 만들어 놓을 것을 보면서 다대다 관계에 대한 이야기를 나누었는데 상대방이 생각하는 다대다 테이블과 내가 생각하는 다대다 관계 테이블이 달라서 이야기를 나누다가 작성하게 되었다.결론만 간략하게 이야기 한다면 나의 의견은 중간테이블(User_Project)이 존재하는 User 테이블과 Project 테이블이 존재 한다면 User 테이블과 Proejct 테이블은 서로 N:M 관계 즉 다대다 관계라고 보는것이 내 생각이였고 상대방은 User테이블에 Project테이블의 FK 값이 직접적으로 존재하지 않으니 다대다 관계가 아니라는 것이다. 중간테이블을 만들게 되면 User테이..
2024.12.28 -
Prisma 공부하기
Prisma 공부하기최근 이직한 이후 신생회사에서 근무하게 되었고 기술전환을 하는 과정에서 Nest.js와 Prisma를 사용하는 것으로 최종 결정 되었다, 장기적으로 좋은 부분인 것 같다. 이제 1개월이 갓 지났지만 새삼 Node 환경에서 개발을 하다보니 Spring boot환경에 비해 정말 간편하고 빠르고 뭔가 가볍다는 느낌을 많이 받는 것 같다. Prisma에 대해 공부하며 글이 정리 될 때까지 글이 계속 수정 될 것 같다.ORM에 대하여나는 개인적으로 JPA를 공부하며 상당히 재밌고 좋다고 느꼈다. 그런데 막상 사용하려고 하거나 실무에서 사용 할 때 주의해야 하는 부분들을 알게 되면서 러닝커브가 높고 쉽지않은 기술이라는 생각도 많이 들었다. 아마도 국내에서 JPA를 가장 잘 아는분은 김영한님이 아..
2024.10.20 -
Node.js - sequelize ORM 알아보기
sequelize란 sequelize는 node 환경에서 사용하는 node 에서 사용하는 ORM이다. mysql을 node 환경에서 javascript 문법으로 편리하게 사용할 수 있도록 해준다. 처음에는 sequelize가 SQL 문법을 잘 모르는 상황에서나 사용하는 것이고 순수SQL문법보다 한번 wrapping되는것이라 성능에서도 떨어진다고 알고있어서 약간은 부정적(?)으로 생각하는 부분도 있었는데 위메프에 경우 sql문이 1,000줄이 넘는경우도 있고 회사에서 참여한 sping-boot 코드랩에서 ORM을 사용하는것이 나쁜것이 아니라는 의견과 그에대한 내용을 보면서 그냥 선택의 문제인 것 같다. npm i sequelize mysql2 npm i -g sequelize-cli sequelize를 사..
2023.11.26 -
JPA 학습하기 (2편)
영속성 전이(CASCADE)와 고아 객체 영속성 전이는 부모객체가 영속성에 추가될때 자식객체도 자동으로 영속성에 추가되게끔 하는 것이다. 프록시나 즉시로딩,지연로딩과는 전혀 관계가 없는 별개의 주제인데 오해하는 경우가 많다. 중요한 코드만 작성하고 그외 필드나 getter,setter같은 코드는 생략하였다. @Entity public class Parent{ @Id @GeneratedValue private Long id; @OneToMany(mappedBy = "parent") private List childList = new Array(); public void addChild(Child child){ // 편의 메서드 childList.add(child); child.setParent(this);..
2023.11.20 -
JPA 학습하기 (1편)
해당 내용은 대부분이 김영한님의 '자바 ORM 표준 JPA 프로그래밍 - 기본편' 강의 내용을 정리 하며 추후 찾아보기 위한 정리에 불과하다. 김영한님의 '자바 ORM 표준 JPA 프로그래밍' 도서와 '자바 ORM 표준 JPA 프로그래밍 - 기본편' 인프런 의에 훨씬 자세하고 풍부한 설명이 들어있다, 정말 좋은 강의 이므로 보길 추천한다. 인프런에 등록된 김영한님의 모든 강의를 보길 추천한다 돈이 아깝지 않다. 김영한님의 인프런 강의 김영한님의 JPA 로드맵 자바 ORM 표준 JPA 프로그래밍 JPA란 무엇인가? JPA(Java Persistent API) JPA는 여러 ORM 전문가가 참여한 EJB 3.0 스펙 작업에서 기존 EJB ORM이던 Entity Bean을 JPA라고 바꾸고 JavaSE, Ja..
2023.11.19