indexOutOfBoundsException은 리스트형 객체에서 선언되지 않은 요소를 get 하는 경우에 발생하게 된다.
틀린 에러 해결법 - null 판별
그렇다면 get 하기 전에 객체가 NULL 인지 판별해준다면 에러가 발생 안 하지 않을까? 정답은 NO다.
아쉽게도 아래의 코드에서도 동일하게 indexOutOfBoundsException 에러가 발생하게 된다.
아니 왜?! 객체가 null이 아니라면 첫 번째 요소가 존재하여 에러가 발생하지 않아야 하는 게 아닌가요??
if (tests != null)
tests.get(0);
이미 null에 대한 validation을 했는데도 indexOutOfBoundsException이 발생하는 이유 바로 객체가 비어있는 한 상태, 즉 EMPTY 상태이기 때문이다.
test = []
(예를 들어, List<String> tests = new ArrayList<>() 을 정의할 경우 만들어지는 tests 객체의 상태)
이와 같은 상태로 tests 객체는 정의되어 있는 것이다.그렇기 때문에 empty 객체에서 element 를 가져오려고 하는 것이기 때문에 RunTimeException이 발생하게 된다.
진짜 에러 해결법 1 - size 판별
if (tests != null && tests.size() != 0)
test.get(0);
진짜 에러 해결법 2 - ObjectUtils 사용
ObjectUtils의 isEmpty 함수는 null와 empty 둘다 validation 해주기 때문에 깔끔하게 에러 발생을 막을 수 있다. apache.commons.lang3.ObjectUtils 또는 springframework.util.ObjectUtils 라이브러리를 import 하여 해당 함수를 사용하면 된다.
if (ObjectUtils.isNotEmpty(tests))
test.get(0);
또는
if (!ObjectUtils.isEmpty(tests))
test.get(0);
10년을 사용하며 공식 서비스센터에서 모니터 교체 1회, 배터리 교체 1회 빼고는 큰 고장 없이 잘 사용하고 있었지만
아아... 그는 또 갔습니다.
충전선이 실수로 뽑히는 순간 이제 바로 꺼져버리는 순간이 와버렸습니다. 하지만 공식 서비스 센터에 문의를 하니 이제 맥북 에어 2012는 구형 모델이라 더 이상 정식 서비스센터에서 수리 지원을 받을 수 없다는 답변을 받고, 데스크톱처럼 충전선을 계속 꽂은 상태로만 사용을 하였습니다.
그러다 문득 든 생각! 내가 교체할 수 있지 않을까?
해서 서치를 해보니 완전 가능!!!
#내돈내산
#맥북배터리셀프수리
#맥북에어2012mid
사실 배터리만 말썽이지 그것 이외에는 말짱하게 넷플릭스 용으로 사용하고 있던 맥북이 정말로 영영 떠나버릴까 걱정이 되긴 했지만, 너무 쉽게! 아주 간편하게! 첫 박스 사진 찍고 커피도 만들고 이것저것 잡일도 하고 청소도 같이 하면서 30분 컷으로 교체를 완료할 수 있었습니다.
아주 쉬워요!!! Very Simple and Easy!!
쨘!! 뽁뽁이에 잘 쌓여서 배터리가 도착하였습니다.
배터리, 그리고 맥북 뒷 커버 나사 제거를 위한 드라이버 2 종류가 들어있습니다.
맥북을 준비하고 총 10개의 스크류를 제거해주었습니다.
요로코롬 위치에 알맞도록 놓아두고요. 물론 딴짓하다가 책상 쳐서 흐트러진 건 안 비밀!
그리고 드러난 맥북과 먼지들.
신기했던 건 이전에 한번 교체했던 배터리와 이번에 구매한 배터리 제조사가 같더라고요. 그때 공식 서비스센터에서 20 정도 주고 교체했던 것 같은데, 5만 원에 손쉽게 동일한 배터리로 교체를 할 수 있었습니다.
배터리 제거를 위해 요 커넥터를 분리시켜줘야 하는데요. 살짝 제거하기 위한 공간이 다소 부족하다는 느낌이 듭니다. 손잡이 부분을 위쪽으로 잡고 올리면 커넥터 부분이 망가질 수도 있기 때문에, 커넥터 윗부분을 한 손으로 그리고 나머지 한 손으로 손잡이 부분을 잡고 그대로 쭉- 좀 아래 방향으로 밀어 빼시면 안전하게 빼내실 수 있습니다.
그러면 깨끗하게 배터리를 들어내실 수 있습니다!!
아쉽게도 배터리 가느라 신났는지 새로운 배터리로 교체하고서는 사진을 찍지 않았네요ㅋㅋㅋㅋ
동일한 방향으로 새로운 배터리를 장착해주시고요. 저는 다시 커넥터를 꽂을 때도 조금 빡빡했는데요. 선을 조금 아래로 접은 상태에서 밀어 넣어주니 깔끔하게 잘 들어갔습니다!!
다시 뒤판을 덮고 나사를 조여주세요!!
두근 두근
물론 다들 아시겠지만 배터리 정보는 🍏 > 이 Mac에 관하여 > 시스템 리포트 > 하드웨어 > 전원에서 확인하실 수 있습니다.