야이헤떠르래리
135
2021-06-17 19:52:42 작성 2021-06-18 02:15:53 수정됨
2
337

스프링에서 나타나는 흔한 버그 패턴 (프로그래밍 에러) 추천 좀 해주세요.


안녕하세요. 

제가 스프링 관련 논문을 쓰게 되었습니다. 

(정적분석으로) 스프링내에서 버그 패턴 (프로그래밍 오류) 를 찾는 SpotBugs 기능을 연장하는 (find-sec-bugs 같은) 플러그인을 만드는 것 입니다.

스프링에 대한 경험이 짧아... 도움을 요청합니다.

스프링에서 흔히 보이는 (주의해야 되는) 잦은 프로그래밍 실수, 버그 패턴 등등 관련된 아무거나 댓글 달아주시면 정말 감사하겠습니다!! 


이쪽 관련 논문이 하나가 있긴합니다 (논문 Google Scholar Link). 이분들은 38개 버그 패턴들을 찾았고, 그분들 github에 12개의 버그 예시를 보여주었습니다. 

몇가지 살펴보면, 다음과 같습니다. 

1 @Transactional 메서드 없인 TransactionManager 사용 불가

2 @Resource를 @Autowired와 잘못 사용한 경우

3 자바 원시 타입에 @Autowired 사용한 경우 

4 @Required 사용한 경우 -> 스프링 5.1에서 공식적으로 사용중단을 권장

5 Bean 파괴를 위한 라이프사이클 콜백은 프로토타입 Bean에서 사용됩니다.

6 @Async에는 메서드의 반환 유형으로 void 또는 Future가 필요

7 @PostConstruct 메서드는 @Async를 사용할 수 없음

8 @Configurable 클래스의 @Scheduled 메서드는 여러 인스턴스를 생성합니다.

9 @CachePut과 함께 @Cacheable의 잘못된 사용



스프링 AOP, 트랜잭션, MVC, ORM, 등등 모든 부분에 나타나는 에러 추천해주세요! 자세한 설명이 아니라 키워드라도 주시면 제가 추가 조사하겠습니다. IDE에서 이미 잡아주는 에러도 좋습니다!


(JPA에서 연관관계 매핑시 순환참조로 스택오버플로우 일어나는 것도 예시가 될 수 있습니다.)


0
  • 답변 2

  • 유아무개
    274
    2021-06-17 20:24:21 작성 2021-06-17 20:24:39 수정됨

    워크스페이스 혹은 툴 경로에 한글있을때 못읽는 경우?....

    컴퓨터 사용자 계정명이 뭐 이름 한글로 되있어서 안된다던지..

  • 야이헤떠르래리
    135
    2021-06-27 06:43:54

    답변 감사합니다. 

    여러개 찾아서 깃헙에 올려뒀습니다. 

    https://github.com/SpotBugsExtensionForSpringFrameWork/CS5098/wiki

  • 로그인을 하시면 답변을 등록할 수 있습니다.