◇ PART · SPRING

Maven & pom.xml

의존성 관리의 작동 원리

학습 목표

  • Maven 이 무엇을 자동화하는지 안다
  • pom.xml 의 핵심 구조를 안다
  • Maven Update 누락 함정을 피할 줄 안다

⚠️ 라이브러리의 늪

옛날 방식

Spring 을 쓰려면 jar 파일 수십 개를 직접 다운로드, lib 폴더에 넣고, 클래스패스 등록... 라이브러리 하나가 다른 걸 또 필요로 하는 「의존성 지옥」.

🛠️ Maven

의존성 자동 관리

"필요한 라이브러리 이름과 버전만 적어주세요. 다운로드와 설치는 제가 해드릴게요."

사용자는 「장보기 목록」(pom.xml) 을 작성하면, Maven 이 인터넷에서 알아서 다운로드해 프로젝트에 연결합니다.

pom.xml 의 구조


<project>
    <groupId>com.example</groupId>
    <artifactId>myapp</artifactId>
    <version>1.0</version>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.30</version>
        </dependency>
    </dependencies>
</project>

한 라이브러리 = 하나의 <dependency>. 추가하면 자동 다운로드.

의존성의 의존성도 자동

내가 추가: spring-context Maven 이 자동으로 함께 가져오는 것: spring-core spring-beans spring-aop commons-logging ...

「전이적 의존성(transitive dependency)」. 우리가 직접 적지 않아도 Maven 이 따라오는 것들을 챙김.

⚠️ 가장 흔한 함정 — Maven Update 누락

시니어의 1순위 팁

pom.xml 을 수정한 뒤에는 반드시:

프로젝트 우클릭 → Maven → Update Project

이걸 빠뜨리면 코드가 맞아도 빨간 줄(에러)이 사라지지 않습니다. 학생들이 가장 많이 헤매는 지점.

🔄 Before / After

전 차시 끝

Spring vs Boot 의 차이는 안다. pom.xml 은 들어본 정도.

이번 차시 끝

pom.xml 한 줄 추가가 무엇을 의미하는지 알고, Maven Update 함정을 피할 수 있다.

이번 차시의 데이터 흐름

pom.xml
(장보기 목록)
Maven
프로젝트
(자동 추가)
의존성 관리 시스템이 흐름에 자리잡았습니다

정리

오늘 들고 가는 것

  • Maven = 라이브러리 자동 관리 도구
  • pom.xml = 「장보기 목록」
  • Maven Update 잊지 말기

다음: ▣ 개발 환경 구축.