CBD가 무엇일까?

박승우·2024년 5월 3일
0

자, 열 여덟번째인 'CBD'를 알아 볼 것이다.

CBD는 칸나비디올(Cannabidiol)의 줄임말로, 대마초(마리화나)에 존재하는 화학물질 중 하나라고
나오지만 전혀 아니기 때문에 컴퓨터 분야로 알아볼 것이다.

CBD가 뭐에요?

CBD는 Component Based Developing 의 약자로, 구성요소 개발 기반이라는 뜻을 가진다.
소프트웨어 공학 개발 방법론중 하나로 개발하는데 관리하거나 재사용을 강조하는 방식이다.

CBD에서는 소프트웨어를 작은 "구성 요소" 또는 "컴포넌트"로 분해하고, 이러한 컴포넌트를 조합하여 더 큰 시스템을 구축한다고 한다.

각 컴포넌트는 독립적으로 개발되고 테스트되며, 필요에 따라 재사용될 수 있다.

이러한 방식으로 개발하면 코드의 재사용성이 증가하고, 유지 보수가 용이해지며, 개발 시간과 비용을 절감할 수 있다고 한다.

CBD의 예시

using UnityEngine;

public class MovementComponent : MonoBehaviour
{
    public float moveSpeed = 5f; // 이동 속도

    void Update()
    {
        // 사용자 입력을 받아 이동
        float horizontalInput = Input.GetAxis("Horizontal");
        float verticalInput = Input.GetAxis("Vertical");

        // 이동 방향 설정
        Vector3 moveDirection = new Vector3(horizontalInput, 0f, verticalInput).normalized;

        // 이동 벡터 계산
        Vector3 moveVector = moveDirection * moveSpeed * Time.deltaTime;

        // 게임 오브젝트를 이동 벡터만큼 이동
        transform.Translate(moveVector);
    }
}

위를 유니티에서 코드를 작성해보았다.

유니티 자체에서 컴포넌트로 생성이 되고 사용자의 키를 입력받아
이동하는 기능을 컴포넌트로 추가하여 사용이 가능하다.

유니티에서 각 컴포넌트는 재사용 가능하며, 이는 게임 개발 과정을 효율적으로 만든다.
예를 들어, 한 게임에서 사용한 이동 컴포넌트를 다른 게임에서도 재사용할 수 있고 또한,
유니티의 에셋 스토어에서 다른 개발자들이 만든 컴포넌트를 구매하거나 다운로드하여
자신의 게임에 사용할 수도 있다.

CBD의 장단점

장점

  1. 재사용성 : 독립적으로 개발되기 때문에 비슷한 프로젝트에서 재사용이 가능하다.

  2. 유연성 : 새로운 기능을 추가하거나 변경할 때 시스템의 다른 부분에 영향을 미치지 않고 해당 기능을 쉽게 구현 할 수 있다.

  3. 유지보수 용이성 : 독립적으로 테스트되고 개발되기 때문에 시스템을 유지 보수하는 것이 쉽다.

단점

  1. 복잡성 : 컴포넌트 간의 통신 및 조립 방법을 정의해야 합니다. 이로 인해 프로젝트의 구조가 복잡해질수도 있다.

  2. 성능 저하 : 너무 많은 컴포넌트가 존재하면 컴포넌트 간의 통신 및 조립에 필요한 오버헤드가 발생할 수 있다고 한다.

  3. 적절한 분리 어려움 : 모든 기능을 적절하게 분리하고 정의하는 것이 어려울 수 있다. 너무 세분화된 컴포넌트들은 오히려 코드의 가독성을 해치고 관리를 복잡하게 할 수 있다.

결론 - 느낀 점

이번 키워드는 유니티를 좀 다뤄봤기 때문에 친숙한 개념이었다.

컴포넌트는 정말 잘 사용한다면 좋은 개념이라고 생각하지만, 잘 사용하기 위해서는
그만큼 설계가 중요해보인다.

단점에 나온것 처럼 컴포넌트화 시킬 기능들을 분리하는 능력이 탁월하면 유지보수를
잘 할 수 있을 것같다.

profile
게임을 좋아하는 사람 입니다!

0개의 댓글