'예스24 리뷰어클럽 서평단 자격으로 도서를 제공받고 작성한 리뷰입니다'

스프링을 사용하며 곤란을 겪은 부분 가운데 대표적인 게 바로 '스프링 시큐리티'였습니다.
의존성을 추가하고 설정 몇 줄을 검색해 넣어서 로그인 기능을 구현해 보려 하지만 제대로 된 결과를 얻는 게 쉽지 않습니다.
겨우 작동하게 되었다 하더라도 여러 조건이나 상황을 반영하다 보면 시큐리티는 포기하고 필요한 만큼만 직접 구현해서 사용하는 경우가 많았습니다.
스프링 프레임워크 구조와 철학을 충분히 이해하고 있다면 시큐리티도 어렵지 않아 보입니다만 그건 이 책을 읽고 나서 스프링과 시큐리티에 눈을 뜨고 난 다음 얘기입니다.
구조를 설명하고 구현을 통해 알려줍니다
스프링 시큐리티가 어렵게 느껴지는 이유는 필터와 객체들이 이루고 있는 '구조' 때문이라는 걸 알았습니다. 구조를 설명하고 나서 처리 흐름을 그림으로 보여줍니다. 글로도 설명이 잘 되어 있지만 그림을 통해 무엇이 어디에 있는지 이해할 수 있었습니다.
이렇게 구조를 파악한 뒤 직접 구현하며 뭐가 어디에 필요한지 무엇을 확인하고 어디를 찾아봐야 하는지 알려줍니다. 마치 지도를 보며 찾아가는 듯한 느낌을 받았습니다.
반복을 통해 익숙해지도록 합니다
개발 서적을 보면 앞에서 설명하고 보여주었던 내용이 반복되는 경우 같은 부분은 생략하고 필요한 부분만 강조하기도 합니다. 이게 지식을 배우기에는 좋습니다만 익히는 데는 걸림돌이 되기도 합니다. 구현된 코드를 보며 이해하고 익숙해져야 하는데 생략된 부분을 확인하려고 앞뒤로 왔다 갔다 하다 보면 집중이 흩트려지기 쉽기 때문입니다.
이 책은 시큐리티 라는 한 부분에 집중하고 있어 가능했다고 생각합니다만, 코드 생략 없이 거의 없습니다. 한 번으로 끝내지 않고 반복하므로 길고 쉽지 않은 클래스 이름에 익숙해지도록 하고 있습니다. 이렇게 따라가며 반복하다 보면 인터페이스와 클래스들이 슬슬 눈에 보이기 시작합니다.
스프링 프레임워크가 돌아가는 구조와 패턴을 보여줍니다
시큐리티가 어떻게 이루어져 있는지 따라가다 보면, 스프링 프레임워크를 관통하는 디자인 패턴과 철학을 알 수 있습니다. 위임과 패턴을 통해 어떻게 유연한 확장이 가능한지 보여줍니다. '이렇게까지 한다고'하는 느낌을 받으며 흥미진진했던 시간도 있었습니다.
시큐리티를 배우면서 덤으로 스프링 프레임워크를 더 잘 알 수 있게 되었습니다.
스프링 시큐리티는 거의 포기하고 있었습니다만, 이 책을 통해 정체를 알게 되었습니다. 그렇더라도 금방 익숙해지지는 않을 거라 생각합니다. 다만, 더 이상 포기하지 않아도 될 뿐 아니라 가능하겠다는 느낌을 받았습니다.
시큐리티를 알고자 한다면 이 책이 안쪽까지 알 수 있는 좋은 길잡이라 될 거라 생각합니다.