[JPA #2] JPA vs TypeORM - N+1
1. N+1 문제 ORM을 사용하면 EntityManager를 통해 객체와 DB간 매핑이 자동으로 처리되므로 개발자는 데이터를 객체로 다루기만 하면 된다. 하지만 이 편리함 뒤에는 몇가지 성능 문제가 숨어있으며, 그중 대표적인 것이 N+1 문제다.
1. N+1 문제 ORM을 사용하면 EntityManager를 통해 객체와 DB간 매핑이 자동으로 처리되므로 개발자는 데이터를 객체로 다루기만 하면 된다. 하지만 이 편리함 뒤에는 몇가지 성능 문제가 숨어있으며, 그중 대표적인 것이 N+1 문제다.
1. 시작하며 그동안 여러 언어와 프레임워크에서 ORM (Object Relational Model)을 다뤄왔다. Golang : grom, go-pg TypeScript : TypeORM Java : JPA
Spring Boot와 Clean Architecture Spring Boot의 3-Tier 아키텍처와 Clean Architecture는 소프트웨어 설계에서 계층화를 통해 코드의 유지보수성과 확장성을 높이는 것을 목표로 한다. 두 아키텍처 모두 명확한 계층 분리를 통해 책임을 분...
Clean Architecture: 유지보수성과 확장성을 극대화하는 아키텍처 패턴 소프트웨어 개발의 궁극적인 목표는 높은 유지보수성과 확장성을 갖춘 시스템을 구축하는 것이다. 이를 위해서는 명확한 아키텍처 패턴을 적용하는 것이 중요하다. Clean Architecture는 이러...
SOLID 원칙: 깨끗한 아키텍처를 위한 기초 개념 소프트웨어 개발에서 유지보수성과 확장성을 높이기 위해 여러가지 설계 원칙이 있다. 그중에서도 특히 중요한 것이 바로 SOLID 원칙이다. SOLID 원칙은 객체지향 설계에서 지켜야 할 다섯가지 기본 원칙을 의미하며, 코드의 품질을...
2년간 서비스에 GO 와 GRPC 를 사용하며 개인적으로 느낀점에 대해 정리할 필요성을 느꼈다. 오랜만에 작성하는 포스팅
마지막 포스팅 이후 오랜 시간이 지났다. 작년 10월, 경력 1년을 찍는 순간 그동안 계획했던 이직활동을 본격적으로 시작했다. 이력서를 정리하고 여러 회사에 지원하면서 자연스럽게 블로그 포스팅을 못하게 되었다. 물론 올해 2월에 그토록 원하던 이직에 성공했고 새로운 회사에 적응중이...
Docker는 컨테이너 배포 및 런타임을 책임지는 컨테이너 엔진이다. 최근 개발 패러다임이 MSA, DevOps, Cloud으로 전환되면서 Docker는 엔지니어에게 필수 기술이 되었다. 사실 도커는 취준생 시절 조금이나마 최신 기술 트렌드를 알고있다고 어필 하기위해 사용법을 익힌...
Overview Eureka는 JAVA 프로젝트로 JVM 어플리케이션에 대해 Service Discovery를 지원한다. MSA는 Polyglot을 지원한다고 했다. Polyglot은 언어에 관계 없이 마이크로서비스로 구성이 가능하다는 것을 의미한다.
앞서 MSA와 Service Discovery를 위한 Eureka Server/Client에 대해 정리했다. 그렇다면 유레카 서버에 등록된 서비스들은 어떻게 접근할까?