▸Spring MVC/기본 상식5 스프링 의존 주입(DI)과 인터페이스 사용에 관하여 인터넷에서 자료를 검색하다보면 클래스를 작성할 때 무조건적으로 인터페이스 구현을 하고 있는 것을 심심찮게 볼 수 있습니다. 예를 들어 인터페이스 이름이 "user"라면 실제 구현되는 서비스 클래스 이름은 "userImpl"가 되는 것이죠. 깃허브도 아닌 인터넷 블로그에 있는 코드들은 대부분 간단한 로직이 대부분이라 처음 스프링을 접할 때 대체 왜 쓸데없이 클래스가 많아지고 코드만 복잡해지게 의미 없는 인터페이스를 사용하는걸까 하는 의문을 많이 가졌었습니다. 스프링을 공부하면서 얻은 결론부터 말하자면 스프링(특히 DI)에서 인터페이스 사용은 당연하고 필수적인 것이 맞지만, 개방 폐쇄 원칙(OCP)에 기반한 전략 패턴을 미리 설계한 것이 아닌 그저 습관적인 사용이라면 전혀 무의미하다는 것입니다. 이는 토비의.. ▸Spring MVC/기본 상식 2020. 4. 23. 스프링(Spring) MVC 동작 구조 및 스프링 컨테이너 - Develop OS : Windows10 Ent, 64bit - WEB/WAS Server : Tomcat v9.0 - Language : JAVA 1.8 (JDK 1.8) - Framwork : Spring 3.1.1 Release - Build Tool : Maven 3.6.3 서블릿을 다루다 스프링으로 넘어온 후 제일 헷갈리는 부분이 컨테이너와 빈(Bean) 부분이었습니다. 스프링 MVC 프로젝트의 구동 순서대로 따라가보겠습니다. 기본적인 서블릿 구조에 대한 개념이 있어야 이해가 수월할 것 같습니다. 그리고 스프링 MVC 폴더 구조에 대해서 미리 알면 좋습니다. [Spring/- 기본 상식] - 스프링(Spring) 프로젝트의 폴더 구조 1. 톰캣(WAS) 구동 (web.xml) 스프링 MVC .. ▸Spring MVC/기본 상식 2020. 3. 15. 스프링(Spring) 프로젝트의 폴더 구조 - Develop OS : Windows10 Ent, 64bit - WEB/WAS Server : Tomcat v9.0 - Language : JAVA 1.8 (JDK 1.8) - Framwork : Spring 3.1.1 Release - Build Tool : Maven 3.6.3 먼저 Spring MVC 템플릿으로 스프링 프로젝트를 하나 생성해보겠습니다. 빌드툴은 메이븐을 사용합니다. 폴더 구조가 꽤 복잡한데, 하나하나 살펴보도록 하겠습니다. 1. src/main/java 자바(.java) 파일이 모여있는 곳입니다. 패키지로 잘 분리해서 자바 클래스를 생성해 사용하면 됩니다. 스프링에서 이미 MVC 패턴의 서블릿 구조를 잡아주기 때문에 따로 서블릿을 만들 필요 없이 스프링 구조에 맞춰 클래스 파일들.. ▸Spring MVC/기본 상식 2020. 3. 6. 스프링(Spring)과 메이븐(Maven) [ 메이븐(Maven) ] 자바 프로젝트를 위한 통합 빌드 툴 (Build Tool) 프로젝트, 라이브러리, 의존관리를 자동 관리해주는 프로젝트 관리 도구 빌드 과정의 프레임워크이자 자동화 시스템 빌드란 컴파일을 포함해 개발자가 짠 코드가 실제로 컴퓨터에서 실행되기 위한 모든 과정과 결과물을 말합니다. 이제까지 별도 빌드툴 설치 없이 이클립스에서 코드를 작성하고 실행할 수 있었듯 개발에 있어 필수적인 요소는 아닙니다. 다만 자동화된 빌드툴 없이 수동으로 빌드를 관리할 경우, 프로젝트가 커질 수록 개발자가 정상적인 빌드 과정을 위해 신경써야할 부분들이 엄청 늘어나게 됩니다. 또한 다른 사람들과 협업할 경우 이런 과정들을 한땀한땀 수동으로 맞춰주면서 작업해야하기 때문에 효율성도 줄어들고 예기치 못한 장애로 .. ▸Spring MVC/기본 상식 2020. 3. 5. 프레임워크와 라이브러리의 차이 [ 프레임워크 ] 프로그램이 동작하는 기본 뼈대(Frame)를 제공 IOC (제어의 역전), 라이브러리, 디자인 패턴을 구현 [ 라이브러리 ] 특정 기능(알고리즘)을 미리 구현한 소스코드의 집합 프레임워크는 프로그램이 실행되는 기본 구조, 즉 뼈대를 미리 설계해둔 것을 말합니다. 단순화해서 생각해보면 인터페이스의 개념이 확장된 것이라고 생각합니다. 예를 들어 여러 명이 하나의 프로젝트를 시작한다면, 시작에 앞서 프로그램의 동작 구조를 먼저 설계해야 합니다. 주로 사용되는 방법 중 하나가 각 모듈별 기능을 수행할 인터페이스를 만들어두는 것입니다. 각 개발자는 지정된 인터페이스의 구조대로 필요한 로직을 짜게 됩니다. 또한 DB연결과 같이 프로그램 내 어디서든 공통적으로 적용돼야 할 코드도 미리 작성해둡니다... ▸Spring MVC/기본 상식 2020. 2. 26. 이전 1 다음 💲 추천 글 반응형