카테고리 없음

IT 기초개념 리소스관리와 객체지향

ondalgirl 2026. 9. 8. 18:58

개발자들이 항상 하는 말 — 리소스 관리, 프레임워크, 객체지향 기초 편하게 정리

이번 편은 AI보다는 좀 더 넓은 IT/개발 기초 개념들을 정리해볼게요. 개발자랑 얘기하다 보면 자주 듣게 되는 용어들이라, 알아두면 대화가 훨씬 편해질 거예요.

리소스는 어떻게 관리될까?

소프트웨어 개발에서 코드나 파일 같은 자원(리소스)은 보통 이런 계층으로 관리돼요.

 
registry (전체 저장소)
  └ organization (조직/그룹)
      └ repository (저장소, 프로젝트 단위)
          └ branch/version/tag (리소스 성격에 따라 이름이 달라짐)

가장 큰 단위인 registry부터 시작해서, 그 안에 organization(조직)이 있고, 그 안에 다시 repository(저장소)가 있고, 마지막으로 그 저장소 안에서 리소스 성격에 따라 branch, version, tag 등으로 세부 관리를 해요. 예를 들어 깃허브(GitHub)를 떠올리면, "GitHub(registry) → 우리 회사 계정(organization) → 우리 프로젝트(repository) → 개발 브랜치(branch)" 이런 식으로 딱 맞아떨어져요.

개발 언어 프레임워크가 뭐길래

프레임워크는 반복 작업을 대신 해주는 도구예요. 매번 새로 짜야 하는 보일러 플레이트(반복적으로 작성해야 하는 필수 코드)를 없애줘서, 개발 생산성을 확 높여줘요.

비유하자면, 집을 지을 때마다 기초 골조부터 새로 세우는 게 아니라, 이미 기본 골조가 세워진 상태에서 인테리어만 하면 되는 것과 비슷해요.

반응형 웹디자인이랑 OSMU

반응형 웹디자인은 화면 해상도, 가로/세로 모드, 사용하는 단말기(휴대폰, 태블릿, PC 등)에 따라 디자인이 자동으로 맞춰지는 걸 말해요. 요즘은 거의 필수라고 봐야 해요. 같은 웹사이트라도 폰으로 보면 폰에 맞게, PC로 보면 PC에 맞게 알아서 레이아웃이 바뀌는 거죠.

**OSMU (One Source Multi Use)**는 하나의 소스(콘텐츠나 코드)를 여러 곳에서 재활용하는 걸 말해요. 반응형 웹디자인도 넓게 보면 OSMU의 한 예시라고 볼 수 있어요 — 하나의 코드베이스로 여러 화면 환경에 대응하는 거니까요.

객체지향의 기본 — 변수, 함수, 객체, 클래스

개발 얘기할 때 빠지지 않는 개념이 바로 객체지향이에요. 카메라를 예시로 한번 풀어볼게요.

  • 변수 (속성, property): 카메라로 치면 렌즈, 바디, 배터리 같은 것들이에요. 즉 어떤 것이 '가지고 있는 특징'을 나타내요.
  • 함수 (기능, method): 카메라로 치면 촬영하기, 전원 켜기/끄기, 조리개 조정하기 같은 동작이에요. 즉 '무엇을 할 수 있는지'를 나타내요.
  • 객체 (실체, object): 개별로 유일하게 존재하는 것을 말해요. 예를 들어 "내 책상 위에 있는 저 카메라 한 대"가 바로 객체예요.
  • class: 객체가 가진 특징이랑 동작을 추상화해서, 객체를 찍어내는 '틀'을 말해요. "카메라"라는 개념 자체(렌즈가 있고, 촬영을 할 수 있고...)를 정의해둔 설계도가 class고, 그 설계도로 실제 만들어진 개별 카메라가 객체인 거죠.

모든 IT의 궁극적인 목표 — 느슨한 결합, 높은 응집도

개발할 때 좋은 구조를 짜는 기준으로 항상 등장하는 두 원칙이 있어요.

Loosely Coupling (느슨한 결합)

서로 다른 부분(레이어, 클래스)끼리 영향을 최소한으로 주고받게 만드는 거예요. 어떤 클래스가 바뀌었을 때, 그 클래스를 호출해서 쓰던 다른 클래스한테 영향이 최대한 안 가도록 설계하는 게 핵심이에요.

쉽게 말하면, 레고 블록처럼 한 조각을 빼고 다른 조각으로 바꿔 끼워도 나머지 블록들은 멀쩡해야 한다는 느낌이에요.

Highly Cohesion (높은 응집도)

반대로 하나의 클래스나 레이어 안에서는 목적이 딱 하나뿐이도록 만드는 거예요. 이것저것 다 하는 만능 클래스가 아니라, "나는 이 일 하나만 담당해!"라고 역할이 명확한 게 응집도가 높은 거죠.

정리하면, 밖으로는 느슨하게(서로 덜 얽히게), 안으로는 단단하게(역할을 하나로 집중해서) — 이게 좋은 소프트웨어 구조의 대원칙이에요.

정리해볼게요

오늘 다룬 개념들은 전부 "복잡한 걸 어떻게 하면 관리하기 쉽게 쪼개고 정리할까"라는 하나의 고민에서 출발해요.

  • 리소스 관리 체계(registry → organization → repository → branch)로 코드를 체계적으로 정리하고
  • 프레임워크로 반복 작업을 줄이고
  • 반응형 웹디자인/OSMU로 하나의 소스를 여러 환경에 재활용하고
  • **객체지향(변수·함수·객체·class)**으로 코드를 실제 사물처럼 구조화하고
  • 마지막으로 느슨한 결합·높은 응집도 원칙으로 전체 구조를 깔끔하게 유지하기

이 흐름을 기억해두면, 앞으로 새로운 개발 용어를 만나도 "아, 이것도 결국 복잡함을 다스리는 방법 중 하나구나" 하고 훨씬 편하게 이해할 수 있을 거예요!