Development
[Java & Kotlin] enum class가 완벽한 싱글톤이라 불리는 이유
싱글톤 패턴(Singleton Pattern)이란? 싱글톤은 애플리케이션 상 특정 클래스가 최초 한 번만 메모리를 할당하고 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴을 의미한다. 객체 생성 요청이 여러번 발생하더라도 새롭게 메모리를 할당하여 인스턴스를 만드는 것이 아닌 기존에 생성되어 있던 인스턴스를 참조하는 것이다. 싱글톤 패턴을 사용한다면 불필요한 메모리 사용을 줄일 수 있다는 장점이 있다. JVM에서의 싱글톤 JAVA에서 인스턴스를 생성할 때에는 new 키워드와 함께 생성자를 사용한다. 그러므로 클래스를 싱글톤으로 만들려면 외부에서 생성자를 호출할 수 없게 private으로 만들어줘야 한다. // Java public final class SingleTonTest { @NotNull pub..
Apache Log4j RCE 제로데이 취약점
2021년 12월 9일, Apache Log4j2의 원격 코드 실행 제로데이 취약점이 공개되었습니다. 공격자는 이 취약점을 이용해 원격 코드 실행을 트리거할 수 있습니다. 광범위한 영향을 끼치는 취약점이니 Log4j의 범위를 확인해보시고 버전을 업데이트하는 것이 좋겠습니다. 특히 SpringBoot의 경우 log4j를 기본적으로 갖고 있으니 꼭! 확인해보세요. 취약점 설명 Apache Log4j2는 Java 기반 로깅 라이브러리입니다. 정말 많은 시스템에서 사용되고 있죠. 대부분의 경우 사용자 입력으로 인한 오류 메시지를 로그에 기록할 때 사용하는데요. 공격자는 취약점을 통해 이 로깅 기능으로 원격 코드 실행을 트리거할 수 있습니다. 취약점 수준: 심각(치명적) 영향을 받는 버전: 2.0
[GitHub] Repository 언어 분석 설정 변경하기
GitHub Repository에 프로젝트를 올려 개발하다 보면 다양한 언어를 사용하는 경우가 있다. (특히 웹) 그러다 보면 GitHub Repository의 Language statistics 가 지저분해지게 된다. @-@.. 난 분명 코틀린을 사용하고 있는데.... 프론트를 같은 Repository로 관리하다 보니 코틀린은 보이지도 않는다. 어떻게 해결할 수 없을까? GitHub Linguist 깃헙은 linguist 라는 오픈소스 프로젝트로 Repository의 언어 비율을 분석한다. 분석할 때에는 확장자를 기반으로 하며 파일의 개수가 아닌 용량으로 따지게 된다. 그래서 Languages 에서 JavasScript를 제외하려면 이 linguist의 설정을 변경해주면 된다. 1. 프로젝트의 Root..
여러 깃헙 계정을 SSH 방식으로 사용하는 방법
Context 깃헙은 Repository에 Push, Clone 등의 액션을 취할 때 계정을 인증하게끔 되어 있다. public repository라면 설정에 따라 크게 상관없을 수 있으나 private repository 이거나 권한이 엄격히 관리되는 repository라면 인증이 필수적이다. 일반적으로 계정 인증은 계정명/패스워드로 이루어지지만 현재 깃헙에서는 이러한 방식의 인증을 사용할 수 없도록 제한하고 있다. 이를 대체할 수 있는 가장 대표적인 방법이 SSH 인증 방식인데, 많은 사람들이 하나 Mac에서 여러 깃헙 계정을 운영하는 것에 어려움을 겪는 것을 보고 글을 남겨본다. Windows & Linux는 기본적으로 되는 것 같으나 Mac에서는 추가적인 작업이 필요하다. 깃헙 SSH Key 등록..