나도 스프링을 올해 초에 접하면서 백엔드 개발을 해봤다.
면접을 보로가기전에 스프링이란 무엇인가에 대해 공부하면 DI, IoC , POJO 이러한 용어들을 외우고 스프링은 프레임워크다.. 라는 단순한 정의에 대해서 배웠다.
스프링은 공부할수록 생각보다 대단한 프로그램이다.
내가 느낀 스프링은 객체지향을 잘할수 있게 해주는 하나의 약속으로 이루어진 프레임 워크이다.
java SE에 속해 잇는 Object를 java EE 로 느슨한 연결을 지향한다.
이 말도 어려운데 이걸 이해못하는것은 그동안 Spring이라는 프레임워크에 익숙해저서 일 수 있다. java EE로 개발하다보면
설정만 하는데 머리 터진다. 이건 ㄹㅇ...
스프링을 사용하다보면 @Service @Compnent 등 여러 어노테이션을 사용하는데 이러한 것은 스프링의 컨테이너인 Bean에 등록하는 행위이다.
기본적으로 Bean등록된 객체는 SingleTone 패턴을 사용한다. 이러한점에서 스프링은 디자인패턴을 추구하고 객체지향을 추구하는 프레임워크다.
스프링의 가장 큰장점이 나에게 뭐냐고 묻는다면 물론세부적인 기능도 있겠지만 스프링의 모든 Objejct를 POJO (플래인 올드 자바 오브젝트?? 이거맞나) 이것으로 객체를 유지하는것이 가장 큰장점이다..
POJO가 왜 장점이냐고 말하는 사람이 있겠지만 POJO는 말그대로 자바오브젝트인데 가장 간단한 자바 오브젝트이다.
이말은 특정 조건 특정 환경에서 동작하는 오브젝트가아닌 Getter Setter만 있는 오브젝트처럼 어느환경에서 돌아가는 오브젝트라는 말이다!
이러한 POJO를 유지하는 것 자체가 객차지향의 추구점이다 POJO를 유지할려면 자연적으로 여러 디자인패턴을 도입하게 될거고 객체지향을 추구하는 프로그래밍이 된다.
그래서 스프링은 뭐다?? 나도 모르겠다 똥글 싸질러봄 내일 면접임 시발..
오 나도 스프링 정의하는거 찾고 있었는데 갓맙다