전체 글(82)
-
[토비의 스프링1] 7 스프링 핵심 기술의 응용
스프링이 가장 가치를 두고 적극적으로 활용하려고 하는 것은 결국 자바 언어가 기반을 두고 있는 객체지향 기술이다. 스프링의 모든 기술은 결국 객체지향적인 언어의 장점을 적극적으로 활용해서 코드를 작성하도록 도와주는 것이다. 7장에서는 지금까지 살펴봤던 세 가지 기술(의존성 주입, 서비스 추상화, AOP)을 애플리케이션 개발에 활용해서 새로운 기능을 만들어보고 이를 통해 스프링의 개발철학과 추구하는 가치, 스프링 사용자에게 요구되는 게 무엇인지를 살펴보겠다. 1. SQL과 DAO의 분리 https://youngjun96.tistory.com/76 [토비의 스프링1] 7.1 SQL과 DAO의 분리 DAO와 SQL을 분리해야하는 이유 DAO는 데이터를 가져오고 조작하는 작업의 인터페이스일 뿐이다. 데이터 액세..
2022.06.26 -
[토비의 스프링1] 7.4 인터페이스 상속을 통한 안전한 기능 확장
예시 - 원칙적으로 권장되지 않지만 때로는 서버가 운영중인 상태에서 서버를 재시작 하지 않고 긴급하게 애플리케이션이 사용중인 SQL을 변경해야 할 상황 운영중에 예상하지 못한 SQL의 오류를 발견했다거나, 특별한 이유로 SQL조건이나 참조 테이블을 급하게 변경해야 할 경우 기존 설계 - SqlService 구현 클래스들은 초기에 리소스부터 SQL 정보를 읽어오면 이를 메모리에 두고 그대로 사용한다. SQL 매핑정보 파일을 변경했다고 해서 메모리상의 SQL 정보가 갱신되지 않는다. 굳이 방법이 있다면 재시작이나 웹 애플리케이션을 리로딩해서 SqlService빈을 초기화 시키는것 뿐... 1. DI와 기능의 확장 DI의 가치를 제대로 얻으려면 먼저 DI에 적합한 오브젝트 설계가 필요 DI를 의식하는 설계 초..
2022.06.20 -
Maven scope
scope dependency 하위에 포함되는 항목 해당 dependency가 포함되는 범위에 대한 타입 scope 종류 compile : 기본 scope. 미입력시에도 기본 적용 모든 상황에서 포함됨 provided : compile과 유사하게 모든 상황에서 수행된다 하지만, 다른 외부 컨테이너에서 기본 제공되는 API인경우 provided로 지정 시 마지막 패키징할 때 포함되지 않음 예를 들면 tomcat에서 기본적으로 servlet api를 제공하기 때문에 servlet api를 provided로 지정하면 패키징시 제외된다. runtime : 컴파일 시에는 불필요 실행시에 필요한 경우. 런타임 및 테스트 시 classpath에 추가 되지만, 컴파일시에는 추가 되지 않음 test : 테스트시에만 사용..
2022.06.20 -
Spring Junit Test를 The import org.springframework.test cannot be resolved할때 에러
별건 아니다 메이븐에 종속성을 추가했는데 org.springframework spring-test 5.3.18 test junit5에서 test를 사용하던 도중 자꾸 cannot be resolve가 떴다 혹시나 해서 scope를 떼고 org.springframework spring-test 5.3.18 를 했더니 잘 된다. 단순히 테스트시에만 사용하도록 쓰인게 아니라 그런가..?
2022.06.20 -
Spring 스프링 java.lang.classnotfoundexception: com.sun.xml.internal.bind.v2.contextfactory 에러 해결 방법
https://hyejin.tistory.com/277 참조
2022.06.09 -
[토비의 스프링] AOP 용어
타깃 : 부가기능을 부여할 대상 ( 핵심 기능을 담은 클래스일 수도 있지만, 경우에 따라서는 다른 부가기능을 제공하는 프록시 오브젝트 일수도 있다. ) 어드바이스 : 어드바이스는 타깃에게 제공할 부가기능을 담은 모듈. 어드바이스는 오브젝트로 정의하기도 하지만 메소드 레벨에서 정의할 수도 있다. ( 종류가 많다 ) 조인 포인트 : 어드바이스가 적용될 위치. 스프링의 프록시 AOP에서 조인 포인트는 메소드의 실행단계 뿐이다. 타깃 오브젝트가 구현한 인터페이스의 모든 메소드는 조인 포인트가 된다. 포인트 컷 : 어드바이스를 적용할 조인 포인트를 선별하는 작업 또는 그 기능을 정의한 모듈. 스프링 AOP의 조인 포인트는 메소드의 실행이므로 스프링의 포인트컷은 메소드를 선정하는 기능을 갖고 있다. 그래서 포인트컷..
2022.06.02