equals를 재정의할 때는 반드시 hashCode도 재정의하라

equals를 재정의할 때는 반드시 hashCode도 재정의하라 예전에 동등성과 동일성에 대해 설명한 적이 있었다. 아마도 비슷한 내용이지 않나 싶다. 그래도 책에 나와있으니 다시 한번 포스팅해보자 Object 클래스 명세에서 복사해 온 일반 규약이다. 프로그램 실행 중에 같은 객체의 hashCode를 여러 번 호출하는 경우, eqauls가 사용하는 정보들이 변경되지 않는다면, 언제나 동일한 정수가 반환되어야 하지만 프로그램이 종료 되어 다시 실행 할 경우에는 그럴필요 없다. equals 메서드가 같다고 판정 되면 hashCode도 같아야 한다. equals 메서드가.. Read More

spring security 권한 관리

이번에 security의 동적 권한?에 대해 알아보자. 권한 관리를 정적으로 하지 않고 db에서 권한을 관리하는 거다. 예전에 시큐리티를 처음 했을때 낑낑거리던 그때가 생각난다. 시큐리티가 좋긴 하지만 어렵다. 아무튼 한번 보자. 물론 내가 틀릴 수도 있다. 대충 설계는 위와 같다.(hierarchy 구조는 일단 뺏다. 하드코딩) Authorities는 매핑 테이블이다. User와 role을 매핑 시킨다. 한 user가 여러개의 롤을 가질수 있으며 롤 역시 여러개의 유저에 할당 할 수 있다. RoleResouce도 마찬가지다. Resouces는 실제 url 정보를 가지고.. Read More