이황로's 블로그
Java Functional Programming - 불변성 (Immutability)

Java Functional Programming - 불변성 (Immutability)

자바(Java) Functional Programming의 핵심 설계 원칙인 불변성(Immutability)에 대한 심층 가이드입니다. 불변 객체가 고품질 애플리케이션 구축의 필수 요소인 이유를 설명하고, 가변 객체(Mutable Object) 사용 시 발생하는 동시성 문제와 예측 불가능성을 명확히 비교합니다. 완벽한 불변 클래스를 설계하기 위한 5가지 필수 원칙(final 클래스, private final 필드, 깊은 복사, 방어적 복사)을 구체적인 Java 8+ 코드 예시와 함께 제시합니다. 이를 통해 멀티스레딩 환경에서 스레드 안전성(Thread Safety)을 확보하고, Functional Programming의 데이터 변환 패턴(`with*` 메서드)을 활용하는 방법을 습득할 수 있습니다.

[해결됨] Expo Firebase iOS 빌드 에러: 'non-modular header inside framework module RNFBApp' 해결책 (forceStaticLinking)

[해결됨] Expo Firebase iOS 빌드 에러: 'non-modular header inside framework module RNFBApp' 해결책 (forceStaticLinking)

이 글은 Expo 환경에서 @react-native-firebase/app을 연동할 때 발생하는 iOS 빌드 에러(include of non-modular header inside framework module RNFBApp.RCTConvert_FIRApp)에 대한 정확한 해결책을 제시합니다. 일반적인 버전 조정이나 클린 빌드로 해결되지 않는 이 문제는 app.json 파일의 expo-build-properties 플러그인 설정에 forceStaticLinking 옵션을 추가하여 해결할 수 있습니다. 특히 Expo SDK 54+ 버전과 React Native Firebase 사용 시 useFrameworks: static 설정을 활용할 때 발생하는 iOS 고유의 헤더 모듈 문제를 해결하는 핵심 가이드입니다. 개발자들이 이 문제로 시간을 낭비하지 않도록 도와주는 실용적인 개발 팁입니다.