분류 전체보기

· Database
NoSQL 이란 비관계형 데이터베이스 유형을 가리킵니다. NoSQL 데이터베이스는 언어마다 관습화된 API, 선언적 구조와 쿼리 언어, 쿼리별 언어를 사용하여 질의할 수 있습니다. 이러한 이유로 not only SQL 데이터베이스라고 불립니다. NoSQL의 등장배경 스토리지 비용 감소 2000년대 말에 스토리지 비용이 크게 하락하면서 등장했습니다. 단순히 데이터 중복 감소를 목적으로 복잡하고 관리하기 어려운 데이터 모델을 생성해야 하던 트렌드가 바뀐 것입니다. 비정형 데이터 인터넷이 활성화되고, SNS 등이 등장하면서 저장해야 하는 데이터의 양이 증가했습니다. 이러한 데이터는 정형, 반정형 등 모양과 크기가 모두 다르기 때문에 미리 스키마를 정의하는 것이 거의 불가능해졌습니다. 개발자가 엄청난 양의 비정..
· Spring
⏰ 성능 이슈 발생 쿼리 메서드를 작성하고 의도한대로 작동했는지 확인하고 있었습니다. 엔티티에 존재하는 applicant, group, status 필드를 조건으로 하여 데이터를 조회하는 쿼리 메서드입니다. Repository import org.springframework.data.jpa.repository.JpaRepository; public interface SubscriptionRepository extends JpaRepository { Optional findByApplicantIdAndGroupIdAndStatus(UUID applicantId, Long groupId, SubscriptionStatus status); } Entity import jparest.practice.group...
· Spring
⏰ 성능 이슈 발생 서비스 로직을 테스트 하는 중이었습니다. 1. 클라이언트는 api 호출 시, naver map api 로 부터 조회 받은 식당 ID 값과 서버로 보내준다. 2. 서버는 식당 ID 값과 추가 정보를 DB 에 저장한다. 간단한 로직이기에 문제는 없을 거라 생각했습니다. 그런데 식당 정보를 DB 에 저장할 때 select 쿼리가 호출됐습니다.. Insert 쿼리를 호출하기 전에 select 쿼리가 반복적으로 호출된다면, 클라이언트의 api 호출 수만큼 select 쿼리가 호출되는 것입니다. 서버에 불필요한 부하가 추가되는 로직이므로 수정이 필요했습니다. 🔍 성능 이슈 원인 save 엔티티를 저장하는 save 메서드는 아래 코드로 구현되어 있습니다. 저장될 엔티티가 새로운 엔티티인지 확인합니..
· DevOps
적용 이유 AutoScaling, LoadBalancer EB를 사용해본 적은 없으나 사용율이 증가하면 scale out 했다가, 다시 줄어들면 scale in 을 할 수 있는 AutoScaling Group과 서버의 부하를 나누어 주는 LoadBalancer를 간편하게 설정할 수 있는 점이 장점으로 느껴졌습니다. 다른 여러 장점은 사용해보기 전에는 와닿지 않아서 '사용해보고 느껴보자' 해서 사용했습니다. ⚙️ 설정 방법 1. IAM 역할 추가 Elastic beanstalk(이하 EB) 의 환경을 구성하기 위해 각 역할에 권한이 필요합니다. 1.1 서비스 역할 EB를 서비스로 사용하므로 담당할 IAM 역할을 부여합니다. Elastic Beanstalk 서비스 역할 관리 설정하지 않을 시, 다음과 같은 ..
devkimc
'분류 전체보기' 카테고리의 글 목록 (9 Page)