메소드의 변수들로 사용해도 될 것들을 생각없이 전부 클래스단 필드로 사용하는 습관이 있었다. 따라서 하나의 객체가 생성되고 필드값들은 공유가 되기에 메소드에서 계속 동기화 문제가 생겼었다. 그래서 해결한 방법이 메소드에 synchronized 키워드를 사용하였는데 이 또한 문제를 문제로 덮어버리는 꼴이 되었다. 왜냐하면 synchronized 키워드를 쓰게 된다면 멀티 요청이 들어오는 환경에서 순차적으로 일을 처리하기에 크기가 큰 요청이 들어오면 다른 요청들은 그 요청이 끝날 때까지 기다리는 등 속도의 문제가 생기기 때문이다.
따라서 synchronized 키워드는 최대한 안쓰는 것이 좋다.
'개발 지식' 카테고리의 다른 글
JavaScript의 배열 선언 방식과 그에따른 '==', '===' 연산자 사용시 다른 점 정리 (0) | 2020.11.22 |
---|---|
필드, 변수, static, final (0) | 2020.11.14 |
DAO, DTO (0) | 2020.10.05 |
REST란? (0) | 2020.09.26 |
디자인 패턴 (0) | 2020.09.26 |