Tiny Star

📊ORM 2

[ORM] 즉시로딩(EAGER)과 지연로딩(LAZY)

게시물-댓글 로직 작성하다가 마주하게 된 N+1 문제를 파고 파다가 즉시로딩과 지연로딩까지 거슬러 올라오게 되었다. JPA 환경에서 즉시로딩, 지연로딩에 대한 설명은 있는데 근본적으로 얘네가 무엇이고 어떤건지 설명해놓은 분들은 거의 없는 것 같아서 적어본다. 대체 이게 뭔지는 알아야 적용을 할 것 아니냐며...(?) 우선 로직을 구현하다보면 데이터 조회를 통해 기능을 만들어야 할 때가 많이 생긴다. 특히 대부분의 기능들은 각자의 테이블이 존재하고 서로 연관관계를 맺어 참조하는 형태로 코드가 짜여지게 되는데 이 때 연관관계가 맺어진 데이터를 조회할 때 연관된 엔티티들을 언제 어떻게 로딩할지, 조회 시점을 결정할 수 있도록 제공하는 방법이다. 즉시로딩 (Eager Loading)과 지연로딩(Lazy Load..

📊ORM 2024.04.18

[ORM] ORM(Object-Relational Mapping)의 개념

요새 Django&Python으로 프로젝트를 하며 접하게 된 SQLAlchemy... 팀장님께서 갑자기 던지신 질문. "SQLAlchemy가 뭐야? " 처음 들어보는 놈이라 이 놈이 프레임워크인가 싶었는데 SQL이 붙은거보니 DB관련 머시기 같고... " 프레임워크...는 아니고......DB 관련한..... (?) (⊙_⊙)?공부해오겠습니다." "ORM이야" 우물쭈물 긴장해서 엉덩이가 축축ㅋㅋㅋㅋㅋㅋㅋ해진김에.... SQLAlchemy를 계속 사용해야 하는 김에.... 정리해보는 ORM의 개념과 활용...인데 정리하다보니 자바에서 JPA-Hibernate가 ORM이었다는걸 이제 깨달은 나. 진짜 그동안 멍청이처럼 코드만 짰다는 사실에 울고간다. 제일 되기 싫었던 가짜개발자가 나야 나! 어디가서 JPA ..

📊ORM 2024.04.12