자바 언어를 기반으로 한 웹 프레임워크로 다양한 애플리케이션을 만들 수 있는 틀 입니다.
스프링에 대표적인 특징으로는 DI, IoC, AOP가 있습니다.
DI는 의존성 주입으로 어떠한 객체가 생성이 됐을 때 해당 객체에 직접적으로 접근하는 것이 아닌 외부로 통해 해당 객체에 의존성을 주입 하는 것을 말합니다.
IoC는 제어의역전이라고 하며 보통 프로그래밍의 제어권을 프로그래머가 가지고 있지만 해당 프레임워크가 프로그래밍 제어권을 가지게 되는 것을 말합니다.
AOP는 관점 지향 프로그래밍이라고 불리며 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 모듈화 하겠다는 것을 말합니다.
스프링의 장점은 의존성 주입(DI)과 제어의역전(IoC)라고 생각합니다.
의존성 주입(DI)은 객체가 생성됐을 때 직접적으로 접근하는 것이 아닌 외부로 통해 해당 객체에 의존성을 주입 시키는 것을 말하고
제어의 역전(IoC)은 보통은 프로그램의 흐름은 개발자가 프로그램을 개발하면서 제어권을 가지고 작성하게 되지만 IoC는 해당 프레임워크가 제어권을 가지게 되는 것을 말합니다.
그리고 DI와 IoC는 다형성을 활용해서 역할과 구현을 편리하게 다룰 수 있도록 지원하여 객체 간의 결합도가 낮아지고 코드가 유연해져 재사용에도 용이해집니다.
관점 지향 프로그래밍으로 로직에서 공통적으로 자주 쓰이는 부분을 관점으로 모듈화 시켜 프로그래밍에 사용하는 것을 말합니다.
먼저 포트번호를 서로 다른 포트번호로 설정하면 서로 다른 JDK 이용해 구동이 될 것 입니다. 여기서 톰캣은 사용자 로그인 세션관리를 위해 JSessionID라는 세션쿠키를 사용합니다.
그런데 서로 다른 JDK를 이용하는데 JSessionID를 공유하는 상황이 발생할 때가 있습니다. 그러면 A사이트에서 접속을 했지만 B사이트에서 새로고침이나 뒤로가기를 했을 경우 로그인이 끊기는 경우가 종종 발생하게 됩니다.
이러한 경우 톰캣폴더의 conf 폴더에서 context.xml을 수정하면 됩니다.
2개의 톰캣 중 아무거나 택해서 아래와 같이 변경하면 됩니다.
<Context reloadable="true">
sessionCookieName 추가
<Context reloadable="true" sessionCookieName="임의의 값 아무거나 넣어도 된다">