본문 바로가기

불변 객체3

스트링 풀(String Pool, 문자열 풀) ㅇ스트링 풀(String Pool, 문자열 풀): 메모리 관리 기법 중 하나로, 힙 영역에 있는 특별한 저장소주로 문자열(String) 리터럴을 효율적으로 관리하기 위해 사용된다. 스트링 풀이 있는 언어에서는 동일한 문자열 리터럴이 여러 번 사용될 때, 각 리터럴이 별도로 메모리에 저장되지 않고, 이미 존재하는 동일한 문자열 리터럴을 재사용한다. 이렇게 함으로써 메모리 사용을 최적화하고 성능을 향상시킬 수가 있다. ※ 오션월드의 유수풀, 코딩조교실 인력풀 할 때의 그 풀(Pool)이다. 수영장이라는 의미를 기본적으로 갖고 있지만, 프로그래밍에서는 공용 자원을 모아둔 곳을 의미한다. 문자열 풀에서 문자를 찾을 때는 해시 알고리즘을 사용하기 때문에 속도가 매우 빠르다.https://claremont.tist.. 2024. 8. 21.
[OOP] 불변 객체와 메서드명 관례 - withXxx() 불변 객체(Immutable Object)는 한 번 생성되면 그 상태를 변경할 수 없는 객체를 의미한다주요 특징상태 불변성: 객체가 생성된 이후에는 객체의 상태(필드 값)를 변경할 수 없다. 모든 필드는 초기화된 후에 변하지 않으며, 수정이 불가능하다.단순성: 불변 객체는 상태 관리가 단순하다. 상태가 변하지 않으므로, 복잡한 상태 변경 로직을 고려할 필요가 없다.불변 객체의 예Java의 String 클래스: String 객체는 불변 객체의 대표적인 예이다. String 객체가 생성된 후에는 해당 문자열의 내용을 변경할 수 없다. 문자열을 조작하는 메서드(예: concat, replace)는 항상 새로운 String 객체를 반환하며, 기존 객체는 변하지 않는다.래퍼 클래스 (Integer, Double,.. 2024. 8. 20.
사이드 이펙트(side effect) 사이드 이펙트(side effect)는 프로그래밍에서 어떤 계산이 주된 작업 외에 추가적인 부수 효과를 일으키는 것을 말한 다. 쉽게 말하면 '의도하지 않은 결과'를 의미하며 프로그래밍에서 사이드 이펙트는 보통 부정적인 의미로 사용한다. 1. 사이드 이펙트의 예시전역 변수 수정: 함수가 전역 변수를 수정하는 경우.입력 값 수정: 함수가 전달된 인자의 값을 직접 변경하는 경우.파일 시스템에 쓰기: 함수가 파일에 데이터를 쓰거나 파일을 수정하는 경우.데이터베이스 업데이트: 함수가 데이터베이스에 값을 삽입하거나 갱신하는 경우.콘솔 출력: 함수가 콘솔에 메시지를 출력하는 경우. (System.out.println() 등)네트워크 요청: 함수가 외부 네트워크 요청을 하는 경우. 2. 사이드 이펙트의 문제점"사이드.. 2024. 8. 20.