본문 바로가기

코딩 창고

[Java] 의존모듈이란 ?

*서론(생략 가능)

말머리를 뭐라고 해야할지 모르겠어서 일단 Java로 설정해둔

의존모듈 ! 에 대한 생각 정리 포스팅 !

스프링 공부 중 메이븐(Maven)기초를 살펴보던중에

'의존모듈'이라는 단어가 자주 보여 뜻을 찾고 있는데

너무 기초적인 지식이라 그런지, 책에는 설명이 없었다.

여태까지 진행했던 프로젝트 중에 API를 사용했던 적은

단 2번 .. !

그것도 네이버 파파고와 구글 지도 관련된 부분을

아주 조금만 사용했던 프로젝트여서

제대로된 사용법을 익히지 않고 그저 '사용하는 방법'만 알고있었다.

오늘 배우는 책 내용의 '의존모듈'이

뭔가 .. 의존적인 ? 그러니까 본체가 아니라 참조하는 ?

그런 느낌이 들기는 하는데 정확하게 어떤 뜻인지 감이 안 잡혀서

포털사이트에 검색해봤는데

정확하게 '의존모듈이란?'의 제목을 가진 포스팅은 없었다.

이쪽 업계에서는 아주 기초적인 지식이겠구나 .. 했다.


*본론 & 결론 (제대로 얘기 시작함)

구글 검색에서 발견한 어느 분의 '의존성 관리 도구에 대한 설명'

▼ 아래 링크

여기 클릭

 

이분께서 얘기하시는 것을 쉽게 풀어쓰자면,

내가 프로젝트A를 완성시키기 위해

다양한 API를 사용했다고 가정했을 때,

프로젝트 A에 내가 사용한 API를

'그대로' 넣은 상황이라고 가정하자.

위와 같은 상황일 때

개선된 성능을 가진 API가 나오거나,

사용한 API에 오류가 있다는 사실을 뒤늦게 발견했을 때

프로그램 전체가 구버전 혹은 오류가 있는 프로그램이 되며

프로그램을 다시 직접 수정해서 배포해야하는 불편함이 생길 수 있다.

위와 같은 상황에서

API 같은 것들 중 바뀐 것이 있는지 확인하고 업데이트 하고

(보통 개발자들은 새로운 버전이 나오면 지정한 원격 저장소에 업로드 한다.)

또 그와 연결된 다른 모듈까지 재귀적으로 업데이트까지 해주는 것이 바로

의존성 관리도구이다. (ex 메이븐)

위에서 말한 재귀적 업데이트 : 의존전이(Transitive Dependencies)

라는 것이다.

정리하자면

(내가 만든 것이 아니고)외부에서 끌어다 쓰는? 모듈이 의존 모듈이며

이 모듈을 관리해주는 것이 메이븐과 같은 의존성 관리 도구 라는 것.

모듈이라던가 .. API라던가 .. 이쪽 부분은 기초가 0이므로

문제가 있다면 둥글게 ㅠ-ㅠ .. 말해주십시오

하드코딩 만만세는 .. 그저 연구원에게만 맞는 말이고

직장인에게는 헛소리하지마임마 였다 . . . . 힝구

책 본문보다 부록을 더 읽고 있다니 😢