FUCKDEV
대표칭호 없음
오랜만에 한마포 개발자 커뮤니티 구경해봤는데 거슬리는 표현들이 종종 보였습니다
"JAVA 마스터" "JAVA가 그렇게 어렵진 않다" <- ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
이렇게 표현 하는 사람들은 나이가 어리시거나 100% 자바로 Swing이나 플러그인 밖에 다뤄보지 못한 사람들이에요.
혹여나 본인이 이 글에 부정적인 생각이 든다면, 다른 사람들이 이용하고 반응이 좋으며 확장에 유연한 본인이 만든 프레임워크를
가지고 와보세요.
코딩을 잘한다는 건 "원하는 기능을 구현할 수 있는 능력"이 아닙니다 이건 모든 프로그래머가 갖춰야 할 기본 베이스이며
다른 사람이 보기에도 코드가 복잡하지 않고 기능 확장에 유연하며, 단위 테스트를 통해 본인의 코드를 확실히 검증과 스스로 리팩토링 할 수 있는 사람들이
잘하는거죠
나는 어느정도 일까? 궁금한 분들을 위해 문제 하나 낼게요!
Q: 싱글톤을 확실히 보장하며, 테스트에도 유연한 코드를 작성해보세요
이 문제를 푸신 분은 아마 자바에 진심일 확률이 매우 높습니다.
qsef1256
2022.12.09synchronized 를 잘 써본 적이 없어서 틀릴지도 모르겠네요
FUCKDEV
2022.12.09스스로 작성하신 코드가 어느 상황까지 싱글톤을 보장하는지
그리고 단위 테스트를 유연하게 할 수 있는지 설명과 증명할 수 있으면 정말 진심인 분으로 인정합니다.
qsef1256
2022.12.09일단 리플렉션 까지 올 꺼라고는 생각 못한 건 사실이네요, 그거 쓸 실력이면 이걸 우회 하는 데 무슨 위험이 따르는지도 모를 리 없기 때문에 크게 신경 쓰지 않았어요
님 말 듣고 찾아봤는데 그냥 기본 생성자에 throw InstantiationError 던지면 되네요, 하나 알아가는 바이구요
단위 테스트를 유연하게 실행할 수 있게 하는데 제일 중요한 건 의존성 주입이라고 생각하네요. 그래야 자유자재로 의존 되는 코드를 바꿀 수 있고, Mocking 이 가능하죠
idkNick
2022.12.09FUCKDEV
2022.12.09리플렉션에 의해 싱글톤이 깨지는 코드이며 테스트에 유연하지 못한 코드입니다.
idkNick
2022.12.09synchronized 딱 한번 써봐서 기억도 안나네요 ㅋㅋ
qsef1256
2022.12.09근데 애당초 리플렉션 은 어쩔 수 없는 게 사실 아닌가요, 얘는 final 붙여도 무시할 수 있잖아요.
FUCKDEV
2022.12.09ENUM을 이용한 싱글톤 객체는 리플렉션에도 안전합니다.
FUCKDEV
2022.12.09ENUM을 사용하지 않고 일반 클래스도 리플랙션에 의해 깨지지 않는 싱글톤을 보장할 수 있습니다.
signition
2022.12.11저는 모든 프로그래머가 갖춰야 할 기본 소양을 갖추지 못했군요.. 넘므 슬픕니다..
스크립터쟁이
2022.12.19ㄱㅊ 기능구현만해도 반은 감 ㅋㅋ