- 전역예외처리, 필터, 인터셉터, 어드바이저, 로깅에 대한 공부가 필요하다
- 코딩 컨벤션을 적용해주는 툴이 있어서, 적용해보았다.
Google Java Style Guide는 구글에서 자바를 사용할 때 코드를 작성하는 사람, 읽는 사람의 편의성을 위해 양식을 통일해둔 것.
나는 naver-intellij-formatter.xml 를 적용하였다
- https://github.com/naver/hackday-conventions-java#%EB%B9%A0%EB%A5%B8-%EC%A0%81%EC%9A%A9-%EA%B0%80%EC%9D%B4%EB%93%9C
- https://newwisdom.tistory.com/96
-필터와 인터셉터의 차이
1. 우선 [위치에 따른 차이가 있음]
인터셉터 : 디스패치서블릿 후에 실행됨
필터 : 스프링에서 디스패치서블릿 전에 실행됨
2. 실행 순서 관련된 차이
인터셉터: 순서를 맘대로 정할 수 있음.
필터: 정해진 순서가있음 -> 어디에 다는지(순서)에 따라 완전히 다른 동작을 할 수가 있음
참고) responsible pattern(chain.dofilter)
스프링이 가진 필터는 20여가지 됨.
어드바이스/인터셉터
- 어드바이스는 익셉션을 잡는 용도로 사용 가능
- 인터셉터의 올바르지 않을 수 있는 사용:
- 입력값을 다 인터셉터로 잡는 용도로 쓰는건 이상함.
- 에러, 로깅용으로 주 사용하는 것도 좀...
- 인터셉터로 전체로깅할 수있긴한데 좀 특별한 경우임
로깅은 AOP를 사용/활용하자
코드에 로깅코드가 들어가면안되니까 aop로 로깅코드를 따로 적용해줌
인터셉터는 모든 요청에 똑같은 로직을 적용할 일이 아니면, 굳이 안 사용 -> advise로 에러, aop로 로깅을 처리
어드바이스는 일부만(2개정도만) 적용해도 괜찮은가? Yes
로깅과 관련해서 ELK의 사용
ELK 넘비싸고, 시간도 많이 걸릴수있음...
AWS상에서 모의계산이 가능한데, 하루에 6천원씩 나올 가능성이 있음.
로깅을 인터셉트로 하게 된다면(=용도에 그렇게 맞지 않는걸 굳이 사용한다면...)
왜 굳이 로깅을 인터셉터로 하는거지라는 의문을 받을 수 있을 것.
aop라는 강력한 로깅도구있는데
꼭 인터셉터를 쓸 수 있는 이유가 뭔지 납득을 시켜야할것
aop는 다른 로깅을 위해서쓴다든가해서 설명이 가능하면, 납득이 가능하면 ...
인터셉트를 잘 사용한다는 것은...
결제도메인만 인터셉터먹여서, 들어오는 http요청에 특정한 key있는지 보안검사,
이 도메인에 들어오는 요청에 특별한 처리하는 것
필터에서 처리할 수 있지만, 좀더 [복잡]한거 처리하는 것!
필터는 디스패치이전에 무조건 실행
인터셉터는 url 단위로 실행가능
로깅(Log4j)
한시간마다 로깅 자동저장해줌
로그 ( Log )
로그는 기록을 남기는 것을 의미합니다.
구체적으로는 프로그램 개발이나 운영 시 발생하는 문제점을 추적 하거나 운영 상태를 모니터링 하는 정보를 기록하는 것이죠.
또한 분석을 통해 통계를 낼 수도 있기 때문에 기록을 남기는 것은 중요하다고 할 수 있습니다.
하지만 로그를 남기면 성능이 나빠진다는 단점이 있는데, 그 보다 로그를 통해 얻는 정보가 훨씬 많기 때문에 필요한 부분에 파일로써 로그를 남기는 것이 중요합니다.
https://victorydntmd.tistory.com/173?category=698080
[Spring] 로그 남기기 ( Logback )
로그 ( Log ) 로그는 기록을 남기는 것을 의미합니다. 구체적으로는 프로그램 개발이나 운영 시 발생하는 문제점을 추적 하거나 운영 상태를 모니터링 하는 정보를 기록하는 것이죠. 또한 분석을
victorydntmd.tistory.com
github pull request를 통해서만 merge/push 가능하게 하기
팀 공유 레포지토리에 push가 일어나는 사태가 있었는데, 오늘 예진님이 외양간을 고쳐주셨다
검색해보니 깃허브에서 이런일을 방지하기 위해 브랜치들에 이러한 rule를 설정할 수 있는 기능을 지원한다는 것을 알 수 있었다
순서:
1. 설정을 원하는 레포지토리의 setting
2. 왼쪽 메뉴에서 branches
3. Branch protection rules 옆의 add rule 버튼 클릭
4. Protect matching branches 에서 Require a pull request before merging 체크박스 활성화
https://gardeny.tistory.com/19
GITHUB protected branch를 설정 해 보자
Protected Banch란? GITHUB 에서 어떤 브랜치를 어떤 행위에 대해서 보호하기 위한 조치이다. 예를 들어 우리의 소중한 마스터 브랜치는 언제나 잘 작동하는 올바른 코드가 올라가야 할 것이다. 이 원
gardeny.tistory.com
'TIL WIL' 카테고리의 다른 글
20220720 TIL (0) | 2022.07.20 |
---|---|
20220719 TIL (0) | 2022.07.18 |
WIL (0) | 2022.07.17 |
20220715 TIL (0) | 2022.07.17 |
20220714 TIL (2) | 2022.07.14 |