본문 바로가기

BackEnd304

[JPA] 회원 도메인 개발 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 회원 리포지토리 package jpabook.jpashop.repository;import jakarta.persistence.EntityManager;import jpabook.jpashop.domain.Member;import lombok.RequiredArgsConstructor;import org.springframework.stereotype.Repository;import java.util.List;@Repository@RequiredArgsConstructorpublic class MemberRepository { private final EntityManager em; public void save(Member .. 2024. 10. 2.
[JPA] 도메인 분석 설계(3) 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 엔티티 클래스 개발 2 1. Category 엔티티 클래스 설계Category 엔티티는 상품(Item)과 다대다(Many-to-Many) 관계를 맺고 있으며, 또한 부모-자식 구조를 형성할 수 있다. 이러한 계층 구조를 설계하기 위해 자기 참조 관계와 다대다 관계를 모두 고려한 설계를 한다.package jpabook.jpashop.domain;import jakarta.persistence.*;import jpabook.jpashop.domain.item.Item;import lombok.Getter;import lombok.Setter;import java.util.ArrayList;import java.util.List;@Entit.. 2024. 10. 1.
[JPA] 도메인 분석 설계(2) 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 엔티티 클래스 개발1이번 글에서는 JPA의 엔티티 클래스 설계 및 개발을 다룬다. 예제에서는 학습을 목적으로, 엔티티 클래스에 Getter와 Setter를 모두 열어 두었다. 하지만 실제 실무에서는 좀 더 신중한 접근이 필요하다. Getter와 Setter의 사용실무에서는Getter: 대부분의 경우 열어두는 것을 추천한다. 엔티티의 데이터는 조회할 일이 많아 편리하다.Setter: 가능한 한 열지 말고, 꼭 필요한 경우에만 사용하는 것이 좋다. 데이터 변경 시, 어디서 어떤 이유로 변경되었는지 추적하기 어렵기 때문에, 변경이 필요한 경우에는 비즈니스 로직 메서드를 따로 제공하는 것이 바람직하다.참고: 가장 이상적인 것은 Getter와 S.. 2024. 9. 26.
[ParmNav] CI/CD 구축 효율적인 애플리케이션 개발과 운영을 위해 자동화된 CI/CD 파이프라인 구축은 필수적이다. 이를 통해 코드 변경 사항이 신속하고 안전하게 배포될 수 있으며, 개발자는 더 빠르게 기능을 릴리즈하고 버그를 수정할 수 있다. 이번 글에서는 ParmNav 프로젝트에 CI/CD 파이프라인을 구축하는 과정과 이를 통해 얻을 수 있는 이점을 소개하고자 한다. AWS CodeDeploy 에이전트 설치AWS 가이드라인에 따라 필요한 패키지를 설치하고 CodeDeploy 에이전트를 설치한다. 다음 명령어를 실행하여 에이전트를 설치하고 로그 파일을 생성한다.https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/codedeploy-agent-operations-inst.. 2024. 9. 26.
[PharmNav]Base62 vs Base64 비교 분석 데이터 인코딩은 효율적인 데이터 표현과 전송을 가능하게 한다. Base62와 Base64는 각각의 특성을 바탕으로 다양한 상황에서 활용되며, 특히 Base62는 URL 안전성과 데이터 효율성에서 주목받는다. Base62는 영문 대소문자와 숫자만을 사용해 URL에서 추가적인 인코딩 없이 안전하게 사용할 수 있다. 반면 Base64는 특수 문자를 포함해 바이너리 데이터를 다루는 데 효율적이지만, URL에서는 추가 인코딩이 필요할 수 있다. 이 분석에서는 두 방식의 특성을 비교하고, Base62의 장점에 중점을 두어 각 방식의 장단점을 파악하고자 한다. 테스트 코드를 통한 비교Spock 프레임워크를 사용한 Groovy 테스트 코드를 작성하여 Base62와 Base64의 차이를 실험적으로 비교해 보았다. 테스트.. 2024. 9. 24.
[PharmNav] Redis vs DB 조회 성능 비교 분석 데이터베이스 성능 최적화는 현대 애플리케이션 개발에서 핵심적인 요소다. 특히 대규모 데이터를 다루는 서비스에서는 더욱 중요하다. 본 분석에서는 PharmNav 프로젝트의 약국 정보 조회 기능을 중심으로 Redis와 관계형 데이터베이스의 성능을 비교해 본다. 이를 통해 캐시 시스템 도입의 효과와 실제 사용자 경험에 미치는 영향을 살펴보고자 한다. 성능 비교를 위해 PharmacySearchService 클래스를 사용한다. 이 서비스는 Redis와 DB에서 약국 정보를 조회하는 기능을 제공한다. package com.example.phamnav.pharmacy.service;import com.example.phamnav.pharmacy.cache.PharmacyRedisTemplateService;impo.. 2024. 9. 24.