180327-TIL

Reading time ~2 minutes

최근 한일

- Spring Security & OAuth2

  • 개인 프로젝트를 진행 해 보기 앞서 스프링 시큐리티를 다시 해보고

  • OAuth2도 해 봄

  • 스프링 부트 2.x대의 경우 Spring Security OAuth 프로젝트의 일부 기능들이 Spring Security로 마이그레션 된 상황이라 일부 변동이 있다.(Spring Boot 2.0.0 M5 Release Notes, 2017. 10. 19)

  • 이와 같은 이유로 일반적으로 1~2년 사이 작성된 UserInfoTokenServicesResourceServerProperties를 사용한 OAuth2 과정들이 불가 한 상황인데 버전을 1.5x 대로 낮춰서 실습 할때는 문제 없이 동작 한다. 2.x에서도 할 수 있는 몇가지 해결 책들이 보이는데 최근 업데이트 된 부분이다 보니 많이 있지는 않다.

- EclEmma 플러그인 설치

  • 최근 프로젝트의 커버리지 :

    • 웹서버 구현 : 65.2%

    • 프레임워크 구현 : 55.5%

    • 트렐로 구현 : 79.4%

  • 로컬이 아니라 웹으로 가면서 커버리지가 줄어 들고, Controller나 몇몇 부분에 대한 테스트 코드를 작성 할 줄 몰랐던 프레임워크 제작 당시에는 또 한번 확 줄었다가, Acceptance Test에 대해 알게 되고서 다시 한번 상승 한점이 딱 눈에 보인다.(사실 인수와 통합 테스트 개념은 아직 확실히 잡히지 않아서 이 부분은 실무를 경험하면서 여러 상황들을 보기로 했다.)

- 마틴 파울러의 “리팩토링” 읽는 중

  • 생각보다 재밌다. 특히 생각해 볼 거리들이 많아서 더 재밌는 것 같다.

최근 느낀점

  • 금방 될 줄 알았던 OAuth2에서 생각보다 시간이 걸렸다. 스프링 부트 2.x가 문제가 될 줄 몰라서 상당히 긴 기간 다른 부분에서 헤맸다. 겸사 겸사로 이번 경험으로 얻은 두 가지는 안정성 때문이라는 점에서 좀 다르지만 역시 최신 버전을 쓰는 건 예상치 못한 상황을 일으킬 수 있다는 점이다…..ㅜㅜ

    한가지 더는 스프링이라는 프레임워크에 대해 공부해야 하고 싶어지는 의욕이 더 붙었다는 것이다. 사실 내가 스프링이 돌아가는 원리를 좀 더 잘 알았으면 이번처럼 엄청 헤매지는 않았을 것이다. 최근에 괜찮아 보여서 사둔 스프링 철저 입문을 봐야겠다.

  • 커버리지에 대해서는 알고 있었지만 직접적으로 신경 쓰고 작업하진 않았는데 나쁘진 않은 결과가 나온 것 같다. 솔직히는 좀 더 높았을 줄 알았다가 생각보다는 낮아서 실망을 했지만 확인을 좀 해보니 의외로 도메인쪽이 커버리지가 낮고, 원인이 toSring, hashCode(), equals() 혹은 getter/setter 부분이 문제였고 한번 그 부분들도 해결을 해보니 마지막 프로젝트 같은 경우는 한 번에 90%대로 올라갔다.

    근데 굳이 이런 부분들까지 테스트 코드를 작성하는 것에 대해서는 좀 의문점이 들기 때문에 지양하려고 한다.(만약 엄청 중요하게 작용하는 상황이 있다면 테스트 코드를 작성하겠지만 말이다) 커버리지는 80% 전후를 목표로 작업해봐야겠다. 아 그리고 사실 커버리지를 보면서 느낀 점 중 하나는 테스트 코드만 있으면 코드 영역에 대한 초록색이 뜬다. 근데 문제점은 성공 케이스 하나만 있어도 뜬다는 것이다. 실패 케이스를 소홀히 하지 않게 조심하자.

  • 리팩토링 책이 생각보다 재밌다. 아마 포비를 통해 리팩토링이나 객체지향적인 프로그래밍에 대해서 배우지 않았다면 책에서 하는 말을 이해하지 못하고 제대로 읽히지 않았을 것이다. 말로 표현하자면 포비를 통해 배우지 않았다면 책을 보면서 “이렇게까지 해야 하나?” 같은 식의 의문들만 나열됐을 상황이 “이렇게도 생각해 볼 수 있구나”, “이건 이렇지” 같은 상황으로 읽힌다. 포비의 가르침 덕분에 해당 책에서 무엇을 말하고자 하는 부분도 알게 되었지만 더불어 마틴 파울러라는 이름, 유명하고 좋은 책이라는 이유 때문에 무조건적으로 받아들이지 않고 내 생각을 한번 더 해볼 수 있게 된 것 같다. 정말 많은 걸 배웠던 것 같다. 좀 더 내 것으로 소화 시키게 노력을 하자.