강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

강건희님의 프로필 이미지
강건희

작성한 질문수

[Rookiss University] UE5 Lyra 클론 코딩 (Haker)

Inventory,QuickBar,Equipment Frame #1

Fragment에 대한 질문

작성

·

163

·

수정됨

0

Weapon Equip#2 까지 보고 돌아와서 질문 드립니다.

흐름을 보면 QuickBarComponent에서 Fragment의 정보를 읽고 아이템을 장착하는 과정을 진행하는데 그러면 Fragment는 아이템의 컴포넌트보다는 인터페이스에 좀 더 가까운 것 같은데 제가 잘못 이해한건가요?

만약 새로운 Fragment를 추가한다면 QuickBarComponent에서 새로운 Fragment를 처리하기 위한 함수를 계속 해서 늘려나가야 되는 건가요?

일단 제가 이해한 내용은 InventoryItemFragment는 아이템의 종류를 정의한 것 뿐이고 QuickBarComponent에서 이 Fragment의 종류에 따라 "아이템을 사용한다." 라는 동작을 처리한다. 라는 과정으로 이해했습니다.

답변 2

0

Liu님의 프로필 이미지
Liu
지식공유자

인터페이스보다는 컴포넌트 개념에 더 가깝습니다.
Fragment는 단순히 아이템의 종류를 정의하는 것이 아니라, 특정한 기능을 제공하는 모듈로 이해하는 것이 좋습니다.

예를 들어, 여러 종류의 Fragment(예: StatFragment, UIFragment, SkillFragment)가 있다고 가정하면,
무기 아이템에 이 모든 Fragment를 붙일 수도 있고, 일부만 선택해서 사용할 수도 있습니다.
즉, Fragment는 아이템이 가지는 특정한 기능(스탯 증가, UI 표현, 스킬 부여 등)을 정의하는 역할을 합니다.

따라서 새로운 Fragment를 추가할 경우, QuickBarComponent에서 이를 처리하는 로직이 필요할 수 있습니다.
하지만 Fragment 자체가 독립적인 컴포넌트이므로, 기존 코드와의 결합도를 낮추는 방식으로 설계되어 있고 각 Fragment가 자신만의 동작을 처리하도록 확장할 수도 있습니다.

-1

안녕하세요, 인프런 AI 인턴입니다.
강건희님이 이해하신 내용은 대체로 맞습니다.

Spring Data JPA나 JDBC에서 Fragment는 인터페이스와 유사한 개념으로, 커스텀 메소드를 정의하고 그 구현을 제공하는 역할을 합니다. 이는 특정 기능을 모듈화하고 각기 다른 리포지토리에서 재사용할 수 있는 구조를 만듭니다. 따라서 Fragment는 특정 아이템의 컴포넌트라기보다는 다양한 기능을 추가할 수 있는 인터페이스에 더 가깝습니다.

QuickBarComponent에서 새로운 Fragment를 처리하려면, 강건희님이 생각하신 대로 새로운 Fragment에 대한 로직을 추가해야 합니다. 그러나 중요하게 고려할 점은 이 추가 작업이 필요 이상으로 복잡해지지 않도록 설계해야 한다는 것입니다. 예를 들어, 공통된 메소드나 공통된 로직을 추출하여 중복을 줄이고, 확장 가능하게 설계하는 것이 좋습니다.

InventoryItemFragment는 말씀하신 대로 아이템의 종류를 정의하고, QuickBarComponent는 이 Fragment의 종류에 따라 해당 아이템을 사용하기 위한 동작을 처리하는 식으로 구성된다는 이해가 적합합니다.

혹시 더 궁금한 점 있으시면 언제든지 물어봐 주세요!

참고할 수 있는 Spring Data 관련 문서 링크는 아래와 같습니다:
- Spring Data JPA Reference Documentation
- Spring Data JDBC Reference Documentation

감사합니다!

강건희님의 프로필 이미지
강건희

작성한 질문수

질문하기