반응형

백기선님의 Spring Boot 레퍼런스 동영상을 보다 보니 레퍼런스도 한번 쭉~~ 살펴볼 필요가 있겠다 싶은 생각이 들었다. 그럼 뭘 볼까? 라고 생각 하다가 Spring Security 를 보기로 결정 했다. 기간을 가지고 보는것은 아니고 그냥 처음부터 차근차근 정리 하면서 읽어보자라고 생각을 했다. 그런데 보다보니 약간 이상한게 있었다.



위 내용은 레퍼런스에 나오는 5.2장 HttpSecurity 부분이다. 이상하다고 생각한 부분은 "However ~~~~~" 단락이다. 대체 뭘 어떻게 한다는 의미인지 알수가 없었다. 대체 커스텀 로그인 페이지를 만들때 뭘 조심하라는건지. Url이 RESTFul 한데 뭘 어쩌라는건지. 그리고 정보 유출을 막기위해 Spring security 를 사용하는것이 뭐가 분명하지 않다는것인지 이해가 가지 않았다. 커스텀 로그인 페이지를 만들면 spring security가 해줄수 있는 영역이 분명치 않다는 의미인지.. 그리고 마지막에 "For example" 이 있는데 왜 정작 그 다음에는 예제에 대한 내용은 없는 건지 알수가 없었다. 


그래서 내용이 궁금하기도 해서 spring security github issue 페이지에 issue를 등록했다. 



이슈 링크: https://github.com/spring-projects/spring-security/issues/5242#event-1584275921


그랬더니 issue가 처리 되었다고 메일이 왔다. 그래서 뭐가 어떻게 되었는지 확인을 해보았다. 일단 현재 spring security 5.0.4 Release의 reference는 변경사항이 없다. 그래서 git 을 확인해봤다. 뭐 이런 저런 내용이 있었다. 



처음에는 내용을 보니 첫 문단에 뭘 drop했다는 건지는 잘 모르겠다. 그런데 다시 넣었고 적절한 방법은 "For example" 을 지우는 거라고 코멘트가 써있었다.

그리고 그 다음에 또 다른 내용이 있었다.

내용을 살펴보면 이렇다. 

그 단락은 Spring Security가 왜 예전의 default URL 과 parameter에서 새로운 것으로 변경했는지 설명하기 위해서 작성한 것이다. 그러데 XML과 Java Config가 동일해서 지금은 더이상 적절하지 않다.

그래서 결론적으로 

Restore Example Default URLs and Parameters List to Remove Default URLs and Parameters Commentary

그 단락을 삭제했다.


그런데 삭제 했다는데 Reference 에는 아직 존재를 한다. 그래서 다시 Spring Security Github 를 뒤졌다. 


Commit 로그가 저렇게 있었다. 그래서 세부 내역을 확인해 보았다.



히스토리를 보니 저렇게 그 부분이 삭제되어 있다. 아마도 다음 레퍼런스에 반영이 되려나 보다. 레퍼런스를 읽다 보니 이런 일도 생기는구나 라는 생각을 했다. 앞으로 차근차근 더 읽어보면서 또 의문나는것이 있으면 자주 이용을 해야겠다.



728x90
반응형
반응형

아침 저녁으로 출퇴근 하면서 생활코딩의 "지옥에서 온 Git" 을 듣고 있는데 재미있는 내용이 있었다.


https://www.youtube.com/playlist?list=PLuHgQVnccGMA8iwZwrGyNXCGy2LAAsTXk


Git 을 사용하면 프로젝트 폴더 안에 .git 이라는 폴더가 생긴다. 생긴다라고만 알고 있었고 여기에 뭔가 history 가 저장되겠거니 라는 추측만 했었다. 실제로 열어본적도 없어서 뭐가 들어있는지도 몰랐다. 그런데 강의 내용중에 Git 명령어를 실행될 때에 어떻게 그 History를 저장하고 추적하는지에 대해서 설명을 해주었다. 


Git 을 사용할 경우 Add 명령을 이용해서 새로 생성된 파일을 stage area 영역으로 추가할수 있다. 이때에 .git 디렉토리 안에 objects 라는 폴더에 새로운 폴더가 생성된다. 


  


왼쪽 화면과 오른쪽 화면을 보자. 왼쪽화면은 잘은 안보이겠지만 현재 내가 작업하고 있는 WORKSPACE 에서 파일을 수정하고 "git status" 명령어를 실행했을 때의 모습이다. 빨갛게 파일 이름이 보이고 modified 라고 써있다. 그리고 오른쪽은 gistory 라는 git log 분석하는 툴이다. 오픈소스 툴이며 https://github.com/egoing/gistory 에 가면 설치 방법을 확인 할 수 있다. 내가 지금가지 commit 한 내용이 오른쪽 처럼 표현되고 있다. 


 


이제 좀전의 build.gradle 파일을 ADD 명령어를 이용해서 ADD를 했다. 어떤 변화가 일어났는지 확인을 해봤다. 오른족에 보면 맨 위에 2개 파일에 just now라고 써있다. 그 2개가 변경이 됐다는 의미이다.



우선 objects를 선택해서 보니 내가 변경한 파일의 내용이 보여진다. [blob]a97..... 라는 key로 되어있다. 그리고 보면 앞에 a9는 objects 폴더의 하위 디렉토리 명으로 되어있다. 





이번에는 좀전에 그 파일을 commit 을 해보았다. 그랬더니 위에 화면처럼 많은 파일들이 변경이 되었다. 그중 몇개 파일을 살펴 보았다.



이 파일에는 [commit] 이라는 타입의 object 이다. 안에 내용을 보면 tree 라는 것이 있고 parent 라는 것이 있다. 그리고 commit 을 한 사람 정보가 나오고 마지막에는 commit 할때 작성했던 message 가 있다. tree 는 현재 commit 한 시점의 모든 file 들이 tree 형태로 존재를 하고 있다. 그리고 parent 는 이전 commit 에 대한 정보들을 담고 있는 object 이다. parent 도 tree 처럼 구성이 되어있을 것이다. 이처럼 commit 을 하게 되면 현재의 파일들을 현재 모습 그대로 snapshot을 찍게 된다. 



그리고 tree 를 클릭해보면 이렇게 파일들을 볼수 있다. 파일의 형태는 단일 파일일 경우 blob 으로 표시 되어있고 또 폴더 일 경우 tree 로 표시가 되어있다. 


결론적으로 Git 이라는 툴은 파일이 변경되고 추가되고 한 작업의 모든 부분을 object 화 해서 관리를 하고 있다. 그 object 가 단일파일일 경우도 있고 tree 형태를 할 경우도 있다. 그리고 commit 자체도 하나의 object 로 관리가 되고 있다. 이런 형태로 파일들이 관리가 되고 있었다니 정말 놀라웠다. 


Git을 쓰고 있긴 하지만 부족한것 같아서 듣기 시작한 강의 였는데 정말 듣기를 잘했다는 생각이 들었다. 아직 다 듣지 않아서 앞으로 들을 내용들이 더 기대가 된다.


728x90
반응형

+ Recent posts