[Java 기본 원리] 프레임워크부터 프로세스까지 - 개발상식

개발의 핵심 개념인 프레임워크vs라이브러리, 모듈vs컴포넌트, 프로세스vs스레드의 특징을 정리한다. 🔍


프레임워크와 라이브러리 💡

프레임워크는 개발을 위한 뼈대(틀)를 잡아주는 역할

라이브러리는 개발을 위한 기능을 자유롭게 제공하는 역할


예시

  • 프레임워크: 아파트 구조(기둥,벽,화장실 등) -> 입주자는 정해진 구조 내에서만 인테리어 가능
  • 라이브러리: 요리재료 -> 요리사는 원하는 재료만 선택해서 자유롭게 요리!


차이점: 자유도

  • 프레임워크는 규칙을 지키며 사용
    • Spring을 생각해보면, Spring의 구조를 알아야 개발할 수 있다.
  • 라이브러리는 자유롭게 사용
    • jQuery를 생각해보면, 필요한 함수 바로 가져다 사용 한다.



모듈과 컴포넌트 💡

모듈연관 메소드/클래스의 집합이며 정적인 구조 -> 설계 시점에 의미가 있음

컴포넌트기능의 최소 단위이며 런타임에 독립적 실행되는 단위 -> 실행 시점에 의미가 있음

예시

  • 클라이언트10, 백엔드1 → 모듈 : 2개 / 컴포넌트 : 11개

  • UI버튼, 함수 -> 모듈은 함수 / 컴포넌트는 UI버튼(예로 글쓰기 버튼)


공통점: 재사용 가능하여 유지보수 용이



프로세스와 스레드 💡

프로세스와 스레드 특징

  • 프로세스

    • 실행 중인 프로그램

    • 독립적 메모리 사용 -> 각각 독립적 실행

  • 스레드

    • 프로세스 내 작업 단위

    • 프로세스 내 메모리 공유 -> 동일 프로세스 내 스레드 간 자원 공유 가능


예시

  • 프로세스: 독립된 식당
    • 각자의 주방, 홀, 창고 보유
    • 다른 식당의 영향 없이 운영
  • 스레드: 한 식당의 직원들
    • 주방장, 서빙이 자원 공유
    • 하나의 주방에서 협업

댓글남기기