공유된 따라하기 · 스프링부트
스프링 DI/IoC 기초 — 빌드 도구 없이 JAR 직접 설치로 배우기
이번 실습은 DI를 위한 스프링의 역할을 이해하기 위한 실습입니다. 사실 DI는 스프링과 상관없이 객체지향에서 사용하는 가장 기본적인 객체 사용 방식 중에 하나입니다.
DI는 객체들이 Has A 관계를 가질 때 객체간의 관계가 Association Has 관계를 갖도록 하는 방법으로, Setters 나 Constructor를 이용해서 객체를 주입하는 방식을 말합니다.
이 방법은 객체간의 결합력을 낮추기 위해 흔히 사용하는 방법이지만, 그 방법을 사용할 때의 가장 큰 맹점은 객체 생성과 결합관계를 변경해야 한다면 코드를 수정 해야한다는 점입니다.
객체를 생성과 주입을 하는 코드를 수정하면 또 그 수정된 코드를 사용하는 다른 코드를 수정해야 하는 코드 수정의 도미노 현상이 발생하게 됩니다.
그래서 이번 실습에서는 그 도미노 문제를 확인해보고 , 그 도미노를 끊어낼 수 있도록 하는 스프링의 DI 서비스가 어떻게 도움을 주는지를 실습하게 될 것입니다.
그리고 이번 실습에서는 빌드 도구 없이, 스프링 부트가 제공하는 라이브러리도 없이, 스프링의 DI을 사용하기 위한 최소한의 라이브러리만 사용해볼 예정입니다. 최소한의 라이브러리임에도 얼마나 많은 라이브러리를 다운받아야 하는지 빌드 도구가 얼마나 고마운 도구인지도 함께 경험해보는 실습이 될 예정입니다.
단순히 따라만 하지 말고, 지금 언급한 부분을 잘 확인해보시기 바랍니다.
대상 Java 기초(클래스, 인터페이스, 생성자)는 알지만 스프링과 DI/IoC 개념을 처음 접하는 분
목표 Maven·Gradle 없이 JAR 파일을 직접 내려받아 classpath 에 연결하고, XML 과 Annotation 두 가지 방식으로 스프링 컨테이너를 실행하며 의존성 주입의 원리를 체득한다
완성물
lib/폴더에 JAR 이 담긴spring-di-prj/프로젝트.App.java를 실행하면OrderService가OrderRepository를 주입받아 목업 데이터를 출력한다
JDK 21 (또는 최신 LTS) 가 설치되어 있어야 합니다. java -version 명령으로 확인하세요.
STEP 1 / 10프로젝트 폴더 구조 만들기
0개 완료 · 10개 남음
스프링을 빌드 도구 없이 쓰려면 JAR 파일을 직접 관리해야 합니다. 먼저 프로젝트의 뼈대를 만들며, 나중에 JAR 을 넣을
lib/폴더와 소스 코드가 들어갈src/폴더를 준비해 볼게요.앞으로 모든 실습환경은 실제 리눅스 환경에서 다루는 것을 기본으로 하겠습니다. 현재 리눅스 환경이 아니라면 WSL 환경에서 작업하는 것을 기본으로 하겠습니다.
이 작업을 수행하기 전에 VSCode를 통해서 WSL에 접속한 후에 작업을 수행하기 바랍니다.
1-1. 프로젝트 폴더 생성
터미널에서 작업할 루트 폴더(예:
~/projects) 로 이동하고 다음 명령을 실행하세요.mkdir -p spring-di-prj/src mkdir -p spring-di-prj/lib cd spring-di-prjWindows PowerShell 에서도 동일한 명령이 동작합니다.
1-2. 폴더 구조 확인
ls✅ 확인
src와lib폴더가spring-di-prj안에 생겼습니다.- 현재 경로가
spring-di-prj입니다.
1-3. VSCode 실행
현재 폴더를 VSCode로 열기 위해 터미널에서 다음 명령을 실행하세요.
code .

🎓 newlec 쌤의 코멘트
보통 스프링 프로젝트를 만들면 빌드도구를 이용해서
pom.xml이나build.gradle파일이 먼저 생성합니다. 하지만 이 따라하기에서는 의도적으로 그걸 쓰지 않고 있습니다. 왜냐하면 스프링의 핵심은 '빌드 도구가 마법처럼 의존성을 찾아주는 것'이 아니라, '내가 만든 객체들이 어떻게 연결되는지'를 도와주는 것이기 때문입니다. JAR 파일을 직접 내려받고 classpath 를 설정하는 과정을 거치면, 스프링 컨테이너가 실제로 어떤 파일들을 읽어서 객체를 만들어내는지 눈으로 확인할 수 있게 됩니다.📝 이 단계의 핵심
lib/폴더는 외부 JAR 파일이 들어가는 곳입니다.src/폴더는 우리가 작성할 Java 소스 파일이 들어가는 곳입니다.
이 주소는 글의 저작자가 공개한 링크입니다. 뉴렉처 스터디의 다른 자료는 로그인 후 볼 수 있어요.