대머리개발자

static 익숙하게 그냥 무지성으로 사용하면 큰코.. 본문

개발이야기/개념

static 익숙하게 그냥 무지성으로 사용하면 큰코..

대머리개발자 2024. 7. 26. 08:54
728x90

static은 위험한 녀석이다. 공용으로 쓰기 때문에 객체의 상태를 보관하기 적합하지 않다.

 

보통의 아래와 같은 이유로 사용하지 않나 싶다.

 

1. 불변의 객체!!

2. 객체의 상태가 아닌 Utils성의 메서드

3. 내부 클래스는 static

 

기본기가 없으니.. ㅠ 여러개의 오류 폭탄이 떨어지면...삽질에 삽질을 거듭하네 

 

잘 돌아가는 코드는 어지간하면 건들지 말자 !!

 

네이버 내부 클래스 static 선언을 필요 없지 않을까 해서 시원하게 삭제를 러쉬했다.

네이버를 이용하는 "특정" 사용자가 로그인이 안 된다고. ㅎㄷㄷ

 

결론은 NULL이 바인딩되서 문제가 발생한 부분인데... 차이는 static이 있고 없고의 차이

non-static 클래스로 선언하면 null static 클래스로 선언하면 blank

 

그냥 다시 static 붙여서 쓰면 그만이지만... 호기심천국!!

public class UserResponse {

    private Naver response;
    private Google google;
    private Apple apple;
    ...
    @Getter
    @Setter
    static class Naver {
        private String id = "";
        private String nickname = "";
        //private String profile_image = "";
        private String gender = "";
        ..
        public Naver() {}
    }

	...
}

 

 

Gson 녀석이 내부 클래스를 다르게 처리해서 문제가 발생한 부분이 맞다.

static과 non-static을 차별한다. ㅋ

 

non-static : UnsafeAllocator 을 이용해서 객체를 생성하고 초기화 하지 않는 기능을 제공해주는 기능을 제공해준다. ㅋ

Do sneaky things to allocate objects without invoking their constructors.
Author: Joel Leitch, Jesse Wilson

 

이리이리.. F7을 눌러서 들어가봐야..아오!!

 

 

결론 : 그냥 까라면 까자! .. 이유 없데이

728x90

'개발이야기 > 개념' 카테고리의 다른 글

비트 연산은 생각보다 파워풀한 친구다.  (0) 2024.08.19
애플 oauth  (1) 2024.07.18
url path마다 권한 설정  (0) 2024.07.09
another 프로젝트 분석.  (1) 2024.07.02
[리액티브] map vs flatMap 와우..진짜.  (1) 2024.06.12