- 스프링에서 왜
객체 지향
이 언급될까?
스프링은 DI(Dependency Injection)와 IOC(Inversion Of Control)로 결합도를 낮추어 다형성, OCP, DIP 원칙을 가능하도록 지원해 준다. 이 것을 활용해서 클라이언트의 코드를 수정없이 기능을 확장할 수 있게 된다.
스프링에서는 여러 가지들을 xml 파일로 설정한다. 이 불편한 점을 보완해서 간단하게 실행할 수 있도록 해주는 것이
스프링 부트
이다. 스프링 부트는 설정할 것이 거의 없으며 바로 실행만 시켜주면 내장 서버에 배포되어 뜨게 된다.
Spring initializr 이 사이트에서 스프링 부트 프로젝트를 간단한 입력으로 생성할 수 있다.
빌드 관리도구인 Maven과 Gradle은 초기 spring 프로젝트를 생성시, 어떤 것을 사용할지 결정해야 한다.
Maven
은 xml 파일 기반으로 의존성 관리 및 디렉토리 구조 관리 등 기능을 제공하는데, 라이브러리가 많아지고 서로 다른 버전의 라이브러리를 참조하는 종속성이 있다면 관리가 어려워진다. 따라서Gradle
은 이 단점을 보완하고 간편한 설정, 프로젝트 별 유연한 설정이 가능하다는 장점이 있다.
IntelliJ 현업에서는 IntelliJ
를 많이 사용한다고 하여 이클립스보다 인텔리제이를 추천한다. Community 버전이 있지만 기능이 제한적이므로 학생 계정 인증을 받아 사용하는 것을 추천한다.