티스토리 뷰
Item67에서는 최적화를 신중히 하라 말한다
덧붙여 최적화 격언 세 개를 소개하는데 모두 섣부른 최적화는 안 하는 것보다 못하다는 의미를 전달한다
섣부른 최적화라 부를 수 있는 것의 사전 조건은 잘 짜둔 구조를 헤쳐가면서 최적화를 하는 것을 의미한다
최적화라는 것은 성능 뿐만 아니라 리소스도 포함하므로 더 방대한 영역을 다룬다
최적화에 발이라도 담가보려면 자바 언어 자체의 동작 원리, JDK 버전이 올라가면서 달라져야 하는 코드 작성 방식,
JVM의 메모리 구조 + 라이브러리 + GC 등등 선제 지식이 너무 많이 필요하다
자바를 사용해서 개발 하는 것조차 쉬운 일이 아니건만 최적화를 하려면 더 깊고 넓은 지식에다가
로우 레벨까지 빠삭해야 하니 웬만한 대기업이 아니고서야 최적화에 신경 쓸 여력도 별로 없을 것이다
코드 레벨에서 찔끔 최적화는 개발자들이 신경 쓰면 가능하겠지만
그 외는 연차가 쌓였더라도 로우 레벨까지 파본 사람이 아니라면 이해조차 못 할 것 같다
자바 성능 최적화에 대해 개략적으로 알기 위해 읽어보면 좋을 글을 가져왔다
위 글을 참고했을 때 최적화의 전체적인 흐름은 아래와 같다
흐름만 보면 별 거 없네 싶은데 그 안의 세부 기술과 도구들을 살펴보니 어지러워진다
- 준비: 타겟 애플리케이션의 현 상황을 알기 위해 테스트를 돌리고 병목 지점과 최적화 가능한 부분을 찾아낸다
- 분석: 툴을 사용해 잠정적으로 병목 지점을 찾아낸다
- 튜닝: 찾아낸 병목 지점에 최적화를 가한다 (소스든 뭐시기든)
- 테스트: 병목 지점을 없앴는지, 원하는 성능 측정 결과에 도달했는지 테스트해본다, 도달하지 않았을 시 2-4 과정 뺑뺑이 돌린다
한창 개발 공부를 시작할 때 책 표지가 이뻐서 2019년에 나온 자바 최적화라는 책을 사놓고 모셔 놓은지 1년째다
다른 책이라면 언젠가 봐야지라는 생각이라도 들 텐데 얘는 엄두도 안 난다
최근 외부 교육도 들으면서 여러 책도 읽고 있는데 앞으로의 방향을 정리할 겸 나만의 로드맵을 세워봤다
내가 알고 싶은 것들, 현재 업무에 필수적이거나 도움 될 것들을 훑어보려 하니 대략 2년 정도 시간이 필요하다
그 후로는 깊이를 늘려야 하니 얼마나 더 걸릴지 모르겠는데
그 모든 것들을 이제 좀 알겠다 싶을 때 자바 최적화를 읽어보면 될 것 같다
자바 최적화는 그냥 5년 후에 새거 나오면 살 걸 그랬다
'Java > Effective Java' 카테고리의 다른 글
[Item69] 예외 기반 반복 (2) | 2022.09.25 |
---|---|
[Item68] 컨벤션 따르기 (1) | 2022.09.11 |
[Item66] 자바 네이티브 인터페이스 (0) | 2022.08.03 |
[Item65] 리플렉션 못 본 척 하기 (0) | 2022.08.02 |
[Item64] 인터페이스는 껍데기 (0) | 2022.07.26 |