Home > Backend Development > 📚[Backend Development] 🎢롤러코스터 타이쿤 속에 살아있는 프레임워크(Framework)와 라이브러리(Library)

📚[Backend Development] 🎢롤러코스터 타이쿤 속에 살아있는 프레임워크(Framework)와 라이브러리(Library)
Backend Ddevelopment Framework Library Server CS

✅ Intro.

제가 어릴 적 가장 기억에 남는 게임을 고르라면 저는 “롤러코스터 타이쿤” 을 고를 것입니다.

얼마나 이 게임에 애정이 있었냐 하면, 이런 일화도 있었답니다.

제가 너무 이 게임에 빠져서 밤새 게임을 하다 보니 게임 시간을 정해주셔서 밤에는 못하게 되었습니다.
그러나 저는 부모님 몰래 “롤러코스터 타이쿤”을 플레이하기 위해 부모님께서 주무시는 시간에 이불로 모니터를 덮고 그 이불 속에서 땀을 뻘뻘 흘리며 게임을 했었답니다.

이런 일화를 떠올리니 웃음이 나네요 😊

프레임워크(Framework)와 라이브러리(Library)에 대해서 포스팅을 하는데 왜 Intro에 “롤러코스터 타이쿤” 이야기를 하는지 궁금하신 분들이 계실 거예요!!

사실 “롤러코스터 타이쿤”“프레임워크(Framework)와 라이브러리(Library)” 로 플레이 하는 게임이라고 말해도 무방하거든요 !!

이제, 본격적으로 “롤러코스터 타이쿤”과 “프레임워크(Framework) 그리고 라이브러리(Library)”가 어떤 관계인지 한 번 알아봅시다 🙌

🎡 1. 나만의 놀이동산을 만들어봅시다!

우리의 목표는 멋진 테마파크를 만들어서 일정 기간 안에 정해진 수익을 내는 것이에요!!
그러기 위해서는 테마파크에 재미있는 볼거리, 먹거리 그리고 가장 중요한 🎢”재미있는 놀이기구”🎡 가 있어야겠죠?!

🛠️ 2. 놀이기구를 만드는 2가지 방법 ✌️

롤러코스터 타이쿤에서 “놀이기구를 만드는 방법은 두 가지”로 나뉩니다.

1️⃣ 내가 직접 손수 만들기 !

  • 직접 손수 만드는 것은 레일 조각을 하나씩 붙여서 롤러코스터를 원하는 모양으로 만드는 것이죠. 🎢

2️⃣ 이미 만들어져 있는 놀이기구 설치하기 !

  • 이미 만들어져 있는 놀이기구는 원하는 위치에 설치만 하면 됩니다. 🎡

🧱 2. 라이브러리 == 레일 조각.

<img src=”https://github.com/devKobe24/images2/blob/main/rc_tycoon_4.png?raw=true” whidth = 350, height = 350>

  • 다양한 모양의 레일 조각을 내가 직접 선택해서 조립해요.
  • 코너, 루프, 경사, 상승 등 내가 주도해서 연결하죠.
  • 내가 설계한 대로, 내가 의도한 대로 구성됩니다.

🛠️ 즉, 라이브러리란!

내가 필요한 기능만 골라서 조립하는 도구 모음 입니다 :)

🧑‍💻 개발자 비유:

  • Lombok, Jackson, Apache, Commons, Retrofit, QueryDSL 등은 모두 레일 조각 같은 존재 !
  • 내가 직접 호출하고 사용할지 결정합니다.

🏗️ 3. 프레임워크 == 놀이기구 자동 운영 시스템.

<img src=”https://github.com/devKobe24/images2/blob/main/rc_tycoon_3.png?raw=true” whidth = 350, height = 350>

  • 내가 놀이기구를 설치하면
    • 탑승 대기열 만들기 ➞ 입장 ➞ 출발 ➞ 운행 ➞ 하차
      이 모든 과정은 게임이 자동으로 제어합니다.

🧑‍💻 개발자 비유:

  • Spring, Django, Rails, Angular 등은 바로 이 시스템과 같아요.
  • 전체 흐름은 프레임워크가 갖고 있고, 나는 필요한 부품만 넣습니다.

📢 이것이 바로 프로그래밍에서 말하는

제어의 역전 (Inversion of Control) 입니다.
프레임워크가 나의 코드를 호출하고 전체 흐름을 통제해요!


⚔️ 4. 정면 비교: 프레임워크(Framework) 라이브러리(Library)

비교 항목 🧱 라이브러리(레일 조각) 🏗️ 프레임워크 (놀이기구 시스템)
주도권 개발자 (내가 호출) 프레임워크 (프레임워크가 내 코드를 호출)
유연성 매우 높음 낮음 (틀 안에서 동작)
사용 방식 필요한 것만 골라 사용 틀을 따르고 필요한 부분만 채움
진입 난이도 낮음 (직관적) 중간 이상 (구조 이해 필요)
예시 Lombok, Jackson, Retrofit Spring, Django, Angular

🌈 5. 결론: 당신은 지금 어떤 놀이공원을 짓고 있나요?

🎢 직접 레일을 조립하는 자유로운 설계자?
➞ 라이브러리 중심의 개발

🎠 자동 운영 시스템을 활용하는 시스템 설계자?
➞ 프레임워크 기반 개발


🎁 부록: 필자의 한마디.

“라이브러리는 내가 꺼내 쓰는 도구고,
프레임워크는 나를 껴안은 큰 구조다.”

🎢 롤러코스터 타이쿤 덕분에 개념이 잘 들어왔나요?
그랬다면 너무 기분이 좋을것 같아요 😆

그렇다면 오늘은 여기까지 !! 다음에 또 만나요 안녕 🙌


📎 이미지 출처