record class란 ? (JAVA)
·
CS/JAVA
들어가며위 사진은 내가 프로젝트를 진행하면서 사용했던 record 객체인데, DTO로 전송할 NoticeResponse에 선언해줬었다개인적으로 생각했을때 record에 가장 큰 특징이자, 장점은 불변 객체라는 특성이라고 생각한다 일단 record 파일에 대해 얘기하기 위해서는, 해당 내용을 먼저 알아야할거 같아서 불변객체에 대해서 먼저 다루어보겠다불변 객체 ?불변 객체란 ?객체 지향 프로그래밍에 있어서 불변객체는 생성 후 그 상태를 바꿀 수 없는 객체를 말한다. 사전적 정의는 위처럼 되어있는데, 그러면 JAVA에서는 불변 객체를 왜 사용해야 할까불변 객체의 장점먼저 오라클 공식 문서에 따르면 다음과 같이 적혀 있다“불변 객체는 당신이 고민하면서 만든 가변 객체보다 메모리를 더 효율적으로 적게 사용한다.”..
primitive type 와 wrapper class 차이 (JAVA)
·
CS/JAVA
서론Java를 학습하거나 실제 플젝에서 변수 타입들을 다루다 보면, int와 Integer, double과 Double처럼 비슷하지만 미묘하게 다른 타입들이 자주 등장한다. 이 둘의 차이를 명확히 이해하는 것은 성능 최적화, NullPointerException 회피, 컬렉션 활용, 객체 비교 등 다양한 상황에서 중요한 판단 기준이 될 수 있다고 믿고있다SOPT에서 진행하는 키워드 과제중에서 primitive type 와 wrapper class 차이를 다루게 되었는데, 이번 포스팅에서는 Java의 기본 자료형인 Primitive Type과 이들을 객체로 감싼 Wrapper Class의 차이와 사용 시 주의사항, 그리고 AutoBoxing과 UnBoxing까지 핵심 개념을 모두 정리해보려고 한다개념적 정..
final와 static, 그리고 static final의 차이점 (JAVA)
·
CS/JAVA
staticstatic 키워드를 가진 멤버는 값이 클래스의 모든 인스턴스에 대해 동일하다. 클래스가 모든 인스턴스가 액세스할 수 있는 전역 변수라고 볼 수 있지만, static 변수는 상수가 아니므로 언제나 변경될 수 있다는 특징을 가진다.finalfinal이 붙은 변수는 상수이므로 일반적으로 선언과 초기화를 동시에 한다. 하지만 인스턴스 변수의 경우 생성자에서 초기화할 수 있다는 특징을 가지는데, 그 이유는 인스턴스가 new 키워드로 힙에 생성될 때 처음엔 변수 타입의 기본값으로 할당된 후 각 인스턴스에서 설정한 값으로 초기화 되기 때문이다.static final변경할 수 없고 클래스의 모든 인스턴스에 대해 동일한 값을 설정할 때는 static final을 사용해주어야한다. static 키워드는 값이 ..
SOLID 원칙 (JAVA)
·
CS/JAVA
SOLID 원칙의 개념SOLID 원칙이란 ?객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이클 페더스가 소개한 것이다.프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용할 수 있다.이 원칙들은 애자일 소프트웨어 개발과 적응적 소프트웨어 개발의 전반적 전략의 일부다.SRP (Single Responsibility), 단일 책임 원칙모든 클래스는 단 하나의 책임을 가져야 한다는 원칙으로, 코드의 재사용성. 즉, 유지보수의 도움을 줄 수 있는 원칙이다. 단일 책임 원칙의 정의를 “객체나 모듈은 변경하려는 단 하나 이유만을 가져야 한다”라고 말하기도 하는데, 객체나 모듈이 나중에 수정사항이 생길 때 오직 단 하나의 이유만으로 수정이 이뤄져야 한다는 뜻을..