KhsFirefox
취소

Java에서 제네릭이란?

제네릭(Generic)은 Java 5부터 도입되어, Java의 타입 안전성을 더욱 강화시켜주는 기능 중 하나입니다. 제네릭의 필요성 Java에서 컬렉션, 예를 들면 ArrayList를 사용할 때, 우리는 다양한 타입의 객체를 저장할 수 있습니다. 그러나 아래와 같은 상황이 발생할 수 있습니다. ArrayList list = new ArrayLis...

JPA 이야기 05 편 - n+1 문제

JPA는 데이터베이스 작업을 추상화하고 간단하게 만들어주는 강력한 도구입니다. 그러나 때로는 이러한 추상화로 인해 예상치 못한 성능 문제가 발생할 수 있습니다. 이 글에서는 그 중에서도 n+1 문제에 대해 다루고, 이를 해결하는 방법에 대해 알아보겠습니다. n+1 문제란? n+1 문제는 JPA에서 연관된 엔터티를 로딩할 때 발생하는 흔한 성능 문제...

JPA 이야기 04 편 - Count 쿼리 없이 Pageable 사용하기

서론 JPA를 사용하여 데이터베이스에서 데이터를 가져올 때, Pageable 인터페이스를 사용하면 편리하게 페이지네이션을 구현할 수 있습니다. 하지만, 기본적인 방식을 사용하면 각 페이지 요청마다 count 쿼리가 실행되어 성능 저하가 발생할 수 있습니다. 특히 대용량 데이터를 처리할 때, count 쿼리는 전체 데이터의 수를 계산하기 위해 전체 ...

AWS Lambda에 Node.js Express 애플리케이션 배포하기

안녕하세요! 오늘은 클라우드 컴퓨팅에서 가장 핵심적인 서비스 중 하나인 AWS Lambda에 Node.js 기반의 Express 애플리케이션을 배포하는 방법에 대해 알아보려고 합니다. 많은 개발자들이 이미 알고 있듯이, AWS Lambda는 이벤트 기반 컴퓨팅을 가능하게 하는 서버리스 서비스입니다. 서버리스 아키텍처는 애플리케이션의 인프라 관리에 대...

JPA 이야기 03 편 - 읽기 전용 엔티티 만들기

이 글에서는 JPA(Jakarta Persistence API)에서 읽기 전용 엔티티를 만드는 방법에 대해 다뤄보겠습니다. 프로젝트를 진행하다 보면 가끔 특정 엔티티를 읽기 전용으로 설정해야 하는 상황이 발생합니다. 예를 들어, 일정 기간 동안 변경이 불가능한 보증서나 레코드 등의 엔티티를 구현해야 할 때, 혹은 엔티티가 수정되면 안 되는 비즈니스 ...

Spring Boot에서 Master-Slave 구조의 멀티 데이터베이스 설정하기

프로젝트의 기능이 많아지고 사용자가 늘어날수록 트래픽의 증가로 인한 시스템 부하 문제에 직면하게 됩니다. 특히, 데이터베이스는 동시에 많은 요청을 처리해야 하는 중추적인 역할을 하므로 그 부하가 특히 심합니다. 이러한 문제에 대처하기 위해 여러 가지 솔루션이 존재하지만, 그 중 가장 효과적인 방법 중 하나는 Master-Slave 구조를 도입하는 것입...

JPA 이야기 02 편 - 다양한 연관관계 매핑

JPA에서 연관관계를 매핑할 때는 3가지를 고려해야합니다. 첫번째로는 다중성입니다. 즉, 연관관계가 다대일(ManyToOne)인지, 일대다(OneToMany)인지, 일대일(OneToOne)인지, 다대다(ManyToMany)인지를 정하는 것입니다. 이와 관련해서 일대일(OneToOne)에서 연관관계의 주인이 아닌 엔티티를 가져올 때 Lazy Loadi...

JPA 이야기 01 편 - 시작해봅시다.

JPA 란 무엇인가? JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준입니다. 그럼 ORM 이란? ORM(Object-Relational Mapping)은 객체와 관계형 데이터베이스를 매핑한다는 뜻입니다. ORM 프레임워크는 객체와 테이블을 매핑해서 애플리케이션과 데이터베이스 언어간의 패러다임 불일치 문제를 개발자 대...

도커를 이용한 로컬 데이터베이스 구축

로컬 데이터베이스가 필요했던 이유 이전에는 AWS 에서 개발용 데이터베이스만 만들어서 사용했었습니다. 하지만 모델을 설계할 때 다수의 개발자가 붙어서 테이블 구조를 수정하거나 테스트용 데이터를 다른 사람이 건드리는 등 개발에 방해되는 상황이 종종 발생했었습니다. 과거 Mybatis 를 사용할 때는 로컬 데이터베이스 환경을 구축하기 위해선 클라우드의...

Java Spring Toy Project 01 편 - 프로젝트 시작하기

토이 프로젝트 시작 계기 처음에는 작았던 프로젝트의 규모가 점점 커지기 시작하면서 프로젝트 구조에서 불편함을 느끼기 시작했습니다. 그 이유는 바로 공통(Common) 모듈… cms 와 web, mobile api 를 만들기 위해서 Entity, Repository, 서비스 레이어 등 공통으로 사용할만한 것들을 Common 모듈에 전부 때려박은 것이...