Fetch Type:LazyLoading vs EagerLoading
·
Spring
FetchType은 JPA (Java Persistence API)에서 엔티티와 연관된 데이터들을 어떻게 로딩할지를 결정하는 전략을 정의하는 옵션입니다. JPA에서는 연관된 엔티티를 로딩할 때 두 가지 전략, EAGER 로딩과 LAZY 로딩을 제공합니다. 이 두 가지 전략은 연관 관계의 데이터를 언제 가져올지를 결정하는데, 성능 최적화와 메모리 사용량에 중요한 영향을 미칩니다. 각각의 동작 방식과 장단점을 이해하는 것이 효과적인 JPA 활용의 핵심입니다. Eager 로딩 (즉시 로딩)Eager 로딩은 연관된 엔티티를 즉시 로딩하는 방식입니다. 즉, 연관된 엔티티가 EAGER로 설정되어 있으면, 해당 엔티티가 조회될 때 관련된 모든 엔티티가 함께 조회됩니다.  • 예를 들어, User와 Profile이라는..
선형 자료 구조: 연결 리스트, 배열, 백터
·
Computer Science
선형 자료 구조란?선형 자료 구조란 요소가 일렬로 나열되어 있는 자료 구조를 말합니다. 연결 리스트(Linked List)각 요소(노드)가 메모리상에 연속적으로 배치되지 않고, 개별적으로 분산되어 저장되며, 각 노드가 다음 노드에 대한 참조를 포함하는 구조입니다. 연결 리스트는 배열과 다르게, 삽입, 삭제가 용이하고, 크기가 가변적이라는 장점이 있습니다. 연결 리스트의 구조연결 리스트의 기본 단위는 노드(Node)입니다. 각 노드는 다음과 같은 두 가지 구성 요소를 가집니다. 데이터(Date): 노드가 저장하는 값포인터(Pointer): 다음 노드를 가리키는 참조 그래서 연결 리스트는 이 노드들이 연결된 형태로 구성되며, 각 노드는 다음 노드에 대한 참조를 가지고 있어 리스트를 순차적으로 탐색할 수 있습..
미니 프로젝트- 배달 어플리케이션(매우 간단한 구현)
·
Spring/미니 프로젝트(배달)
5일동안 진행한 아웃소싱 프로젝트가 끝났습니다. 프로젝트에서 어디까지 진행되었고, 트러블 슈팅, 우리팀이 보여줄 만한 코드가 무엇이었는지 소개해드리겠습니다. https://github.com/leetaegeon1/Spring26 GitHub - leetaegeon1/Spring26Contribute to leetaegeon1/Spring26 development by creating an account on GitHub.github.com-해당 프로젝트 Git Hub 주소-프로젝트 개요  • 프로젝트 이름: 배달 어플 아웃소싱 • 주요 기능: 가게 관리, 주문 처리, 리뷰 작성, 메뉴 및 카테고리 관리 • 사용 기술 스택: • Backend: Java, Spring Boot, Spring Security..
git config pull.rebase true
·
GitHub 오류 및 명령어 정리
깃 허브에 올릴려고 했지만 해당 문제로 푸쉬가 불가합니다  오류 메세지 설명을 보자면order -> order (non-fast-forward): 원격 브랜치와의 비교에서 "non-fast-forward" 상황이 발생했다는 의미입니다. 이는 현재 브랜치의 커밋이 원격 브랜치의 커밋보다 더 오래된 상태라는 것을 나타냅니다.error: failed to push some refs: 일부 참조를 푸시하는 데 실패했다는 메시지입니다.hint: Updates were rejected because the tip of your current branch is behind its remote counterpart: 현재 브랜치의 최신 커밋이 원격 브랜치보다 뒤쳐져 있어서 푸시를 할 수 없다는 설명입니다.hint: I..
redis란?
·
Redis
Redis는 빠른 오픈 소스 인 메모리 키 값 데이터 구조 스토어입니다. Redis는 다양한 인 메모리 데이터 구조 집합을 제공하므로 다양한 사용자 정의 애플리케이션을 손쉽게 생성할 수 있습니다. 주요 Redis 사용 사례로는 캐싱, 세션 관리, pub/sub 및 순위표를 들 수 있습니다. Redis는 현재 가장 인기 있는 키 값 스토어로서, BSD 라이선스가 있고, 최적화된 C 코드로 작성되었으며, 다양한 개발 언어를 지원합니다. Redis는 REmote DIctionary Server의 약어입니다.Redis는 속도가 빠르고 사용이 간편하여 최고의 성능이 필요한 웹, 모바일, 게임, 광고 기술 및 IoT 애플리케이션에서 널리 사용되고 있습니다. AWS는 Redis용 Amazon ElastiCache라는..
Web3의 합의 메커니즘
·
Web지식/web3
블록체인에 대한 합의는 블록체인 네트워크의 피어가 네트워크에 있는 데이터의 현재 상태에 대해 합의에 도달하는 절차입니다. 이를 통해 합의 알고리즘은 블록체인 네트워크에 신뢰성과 신뢰를 구축합니다. - Crypto.comhttps://crypto.com/university/ko/consensus-mechanisms-explained 합의란 무엇입니까? 초보자 가이드블록체인에 대한 합의는 블록체인 네트워크의 피어가 네트워크에 있는 데이터의 현재 상태에 대해 합의에 도달하는 절차입니다. 이를 통해 합의 알고리즘은 블록체인 네트워크에 신뢰성과 신crypto.com 블록체인에서 합의란?블록체인에서 “합의”는 네트워크의 모든 참가자(노드)가 동일한 상태의 데이터베이스를 유지하도록 보장하는 과정을 의미합니다. 블록체..
자료 구조 - 복잡도
·
Computer Science
자료 구조(data structure)란?효율적으로 데이터를 관리하고 수정, 삭제, 탐색, 저장할 수 있는 데이터 집합을 말합니다. 복잡도는 시간 복잡도와 공간 복잡도로 나뉩니다. 시간 복잡도(Time Complexity)시간 복잡도는 알고리즘이 수행되는 데 걸리는 시간을 입력 크기와 관련하여 분석하는 방법입니다. 알고리즘의 성능을 측정할 떄 입력 크기 n에 따라 실행 시간이 얼마나 빠르게 증가하는지를 나타냅니다. 이를 빅오 표기법(Big-O Notation)으로 나타내어, 최악의 경우에 알고리즘이 얼마나 많은 작업을 수행해야 하는지 설명합니다. 빅오 표기법(Big-O Notation)빅오 표기법은 알고리즘의 성능을 추상적으로 표현하며, 입력이 증가함에 따랄 알고리즘의 실행 시간이 얼마나 변하는지를 나타..
Docker란?
·
Docker
Accelerate how you build, share, and run applications 도커는 개발자가 지루한 환경 구성이나 관리 없이 어디서나 애플리케이션을 구축, 공유, 실행 및 검증할 수 있도록 지원합니다. -Docker 공식사이트의 설명 what is docker? https://www.docker.com/#build Docker: Accelerated Container Application DevelopmentDocker is a platform designed to help developers build, share, and run container applications. We handle the tedious setup, so you can focus on the code.www...
미니 프로젝트(배달 어플 아웃소싱)
·
Spring/미니 프로젝트(배달)
일단 아웃소싱이란?기업이나 조직이 특정 업무나 프로젝트를 외부 전문 업체나 프리랜서에게 위탁해 수행하는 방식으로, 내부에서 처리하기 어려운 작업을 외부 리소스로 해결하는 것입니다. 처음에는 회원가입. 가게, 주문, 리뷰, 메뉴 정도로 기능 구현을 할려고 합니다. 회원가입사용자 아이디사용자 아이디는 이메일 형식이어야 합니다.비밀번호Bcrypt로 인코딩합니다.암호화를 위한 PasswordEncoder를 직접 만들어 사용합니다.build.gradle의 bcrypt 의존성implementation 'at.favre.lib:bcrypt:0.10.2'해당 conifg패키지 안에 패스워드 인코더 클래스를 추가하여야 한다.import at.favre.lib.crypto.bcrypt.BCrypt;import org.sp..
트랜잭션과 무결성
·
Computer Science
트랜잭션은 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위를 말하며 데이터베이스에 접근하는 방법은 쿼리이므로, 즉 여러 개의 쿼리들을 하나로 묶는 단위를 말한다. 이에 대한 특징은 원자성, 일관성, 독립성, 지속성이 있으며 이를 한꺼번에 ACID 특징이라고 한다. 주요 목적은 여러 작업이 포함된 프로세스에서 데이터 무결성을 보장하고, 시스템 장애나 에러 발생 시 일관된 상태로 복원할 수 있게 하는 것이다. 트랜잭션의 주요 특징 (ACID 속성)트랜잭션은 ACID 속성이라고 불리는 네 가지 특징을 가지고 있다. 1. Atomicity (원자성)트랜잭션 내의 모든 작업은 하나의 단위로 간주된다. 따라서 트랜잭션 내의 작업이 모두 성공하든지, 모두 실패하든지 해야 한다. 일부만 성공하거나 실패..