[TIL] 코드스쿼드 2022 백엔드 41일차 회고(9주차)
오늘은 무슨 일이?
지난주에는 공부 컨디션이 별로여서, 주말에 푹 쉬고왔더니 오늘은 컨디션이 좋았습니다.
이를 스크럼때 공유했는데, 동료분들도 이 시기에 다들 비슷하셨던 것 같습니다.
뽀모도로 봇
오전에 한창 1단계 마무리를 하고있을 때, 쿠킴
이 뽀모도로 타이머가 울렸다고 다같이 휴식 하자고 했습니다.
그래서 10분동안 움직이고 스트레칭을 하니 머리에 피가 돌면서 피로가 가셨습니다.
할 일이 있을때는 쭉 달리는 경향이 있었는데, 뽀모도로 봇(?) 덕분에 잠시 가지는 휴식이 주는 효과를 알게되었네요.
그래서 오후에는 휴대폰에 1시간 타이머를 해놓고 중간 중간 쉬면서 하니, 오늘은 피로감이 많이 없는 것 같습니다.
알고리즘 스터디
오늘은 처음으로 알고리즘 스터디를 하는날 이었습니다.
이번주는 아더
가 DFS
, BFS
, 매개변수 탐색
에 대해 내용을 공유해주셨습니다.
저는 DFS
, BFS
가 경로 탐색과 넓이 탐색등 좌표평면에서만 사용해봤는데, 그래프에도 사용될 수 있다는 것을 알게되었습니다.
그리고 이번에 처음 알게된 매개변수 탐색
도 지난주에 문제를 풀면서 삽질하고나서 오늘 설명을 들으니 더 내용이 와닿아서 좋았습니다.
Mustache 의 매직?
저녁 공부중에 mustache
에서 'private 속성의 getter 가 없는데 왜 view 에서 출력이 가능한가'에 대해 동료들과 얘기했었습니다.Thymeleaf
는 getter 가 없으면 예외가 발생하는데, mustache
는 예외도 발생하지 않고 view 에서 참조가 가능했습니다.
private 속성에 강제로 접근하는건 리플렉션밖에 없다고 생각했었는데, 소스 레벨에서 확인하고싶어 mustache
소스를 찾아봤습니다.
- mustache java 저장소 : https://github.com/spullara/mustache.java
해당 저장소에 들어가서 github.dev
로 이동한 다음, 검색탭에서 setAccessible
메소드를 검색해보니
- setAccessible : 속성이나 메소드의 접근 가능 여부를 강제로 설정하는 메소드(true: 접근 가능, false: 접근 불가)
BaseObjectHandler.java
에서 속성 제어 리플렉션 클래스인 Field 로 접근 가능 여부를 변경하는 로직을 찾았았습니다.
즉, 우리가 Controller 에서 model 에 넣은 객체는 mustache view 로 넘겨지고, view 에서 특정 속성에 접근하려하면mustache
는 getter 여부에 상관없이 강제로 그 속성에 접근하여 값을 가져오는것 입니다.
인상깊었던 점은?
- 아더의 알고리즘 강좌👍
- mustache의 리플렉션
아쉬웠던 것은?
- 저녁식사 후에 뒹굴거리면서 조금 허비한 시간
(내일은 알차게 써야겠습니다.)