×
뎁스노트
로그인
홈
언어
프레임워크
개발도구
네크워크와 서버
데이터베이스
프로젝트 관리
데이터 사이언스
이야기
모집 · 홍보
sonaki84의 블로그
sonaki84의 블로그
로그인
회원가입
글쓰기
글 올리기
개발 노트, 이야기를 작성해보세요.
질문하기
부담없이 무엇이든 질문하세요.
React Native
React Native 0.77 릴리즈 - 새 스타일링 기능과 안드로이드 15 지원 등
sonaki84
13일 전
팔로우
팔로잉
1월 21일 이제 막 공개된 **React Native 0.77**! 이번 버전은 예고했던 것보다 더 큰 변화를 담고 있습니다. 요즘은 모바일 앱 개발이 워낙 빠르게 돌아가다 보니 새 버전이 출시될 때마다, 새롭게 추가된 기능들을 놓치지 않고 챙기는 게 중요할 것 같습니다 [React Native 공식 블로그](https://reactnative.dev/blog/2025/01/21/version-0.77)의 내용을 토대로, 특히 이번에 추가되고 변경된 주요 기능들 중심으로 살펴볼께요. *** ## React Native 0.77 주요 변경점 ### 1\. 새로운 CSS 기능: **디자인·레이아웃 강화** React Native 0.77 버전은 더 풍부한 레이아웃 옵션을 제공하기 위해 다양한 **CSS 속성**들이 새로 도입되었거나 개선되었다고 합니다 아래 기능들은 최신 **New Architecture**(Fabric, TurboModules 기반)에서만 사용할 수 있다고 하니 참고하면 좋을 것 같습니다 #### (1) `display: contents` * **설명**: 요소를 레이아웃 트리에선 제거하되, 자식 요소들은 그대로 부모의 직계 자식처럼 렌더링되도록 하는 기능입니다 * **장점**: 래퍼(Wrapper) 컴포넌트를 사용해야 하지만, 해당 래퍼가 레이아웃에 영향을 주지 않고 이벤트만 처리하고 싶을 때 유용할 것 같습니다 예를 들어, 아래처럼 기본 컨테이너와 적색 박스(`Widget`)가 있다고 해봅시다 ![image](data:image/png;base64,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) 여기에 파란색 배경을 가진 `Alerting` 래퍼를 씌우면, 별도의 파란 레이아웃 박스가 생기면서 우리가 의도한 범위와 다르게 이벤트가 발생할 수 있습니다 ![image](https://reactnative.dev/assets/images/0.77-display-contents-2-5271785cac51193a92b06fa572c2006c.gif) 하지만 `display: contents`를 사용하면 파란색 박스는 레이아웃 트리에서 제거된 상태로 이벤트 핸들링만 수행하게 됩니다 결과적으로 아래 그림처럼, 자식(`Widget`)의 원래 크기와 위치가 그대로 유지되면서 래퍼가 이벤트만 감지할 수 있습니다 ![image](https://reactnative.dev/assets/images/0.77-display-contents-3-d82de6cc2560790b12fdd1b7c429e13b.gif) 예시 코드 ``` function Alerting({children}) { return (
alert('Hello World!')}> {children}
); } ``` > 이렇게 `display: contents`를 적용하면, `Alerting` 자체는 레이아웃 박스가 사라지고 이벤트만 감지합니다 #### (2) `boxSizing` * **설명**: 요소의 `width`, `height` 등을 계산할 때, 패딩이나 테두리를 어떻게 포함시킬지를 정하는 CSS 속성입니다 * **옵션** * `border-box`: 기존 React Native 기본값으로, 테두리와 패딩을 너비·높이에 포함해 계산합니다 * `content-box`: 웹과 동일하게 내용 영역만으로 사이즈를 잡습니다 * **주의**: 웹의 기본값은 `content-box`지만, React Native에선 호환성을 위해 계속 `border-box`가 기본값으로 유지됩니다 아래는 `border-box`와 `content-box`의 차이를 시각적으로 확인할 수 있는 예시입니다 ![image](https://reactnative.dev/assets/images/0.77-border-box-9af97bfaf6838c83811c574d66937aab.png) #### (3) `mixBlendMode` * **설명**: 요소의 배경색 또는 상·하위 요소 색과 어떻게 혼합(blend)해 렌더링할지 지정하는 속성입니다 * **대표 값**: `normal`, `multiply`, `screen`, `overlay` 등 다양한 블렌딩 모드가 있습니다 * **`isolation` 속성**: 특정 요소에 `isolation: isolate`를 설정해 별도의 스택 컨텍스트를 형성할 수 있습니다 * 이미지나 배경색을 겹쳐서 표현할 때 다양한 연출이 가능해 보입니다 아래 예시는 수박 이미지를 다양한 블렌딩 모드로 렌더링했을 때의 모습이라고 할 수 있습니다 ![image](https://reactnative.dev/assets/images/0.77-blend-mode-b807a728348eab0debd201156c2f25bc.png) #### (4) Outline 관련 props * **설명**: `outlineWidth`, `outlineStyle`, `outlineSpread`, `outlineColor` 등이 추가되어, 요소의 바깥쪽 테두리 선을 그릴 수 있습니다 * **장점**: `border`와 달리 요소의 실제 레이아웃에 영향을 주지 않고 시각적인 강조만 줄 수 있습니다 아래처럼 다양한 형태와 색으로 아웃라인을 줄 수 있는 예시를 생각해볼 수 있습니다 ![image](https://reactnative.dev/assets/images/0.77-outline-props-746fd97a55639518c715afe7cb83e85c.png) *** ### 2\. 안드로이드 15 & 16KB 메모리 페이지 지원 * **Android 15 Edge-to-Edge** Android 15는 `targetSdkVersion 35` 이상 빌드 시, 강제로 전체화면(Edge-to-Edge) 디스플레이가 적용되어 UI가 깨질 수 있습니다 [react-native-safe-area-context](https://www.npmjs.com/package/react-native-safe-area-context) 등을 사용해 대응할 수 있을 것 같습니다 * **16KB 페이지 사이즈 지원** 기존 4KB 메모리 페이지에서 **16KB 페이지**로 전환이 가능해지며, 성능 개선을 기대할 수 있습니다 React Native 0.77에서 이미 이 변경을 지원하도록 준비해주었네요^^ 당분간 안드로이드 최신 기기 호환성에도 문제 없을 것 같습니다 *** ### 3\. iOS 커뮤니티 템플릿: **Swift**로 전환 기존 Objective-C++ 기반 템플릿 대신, **Swift**를 활용한 커뮤니티 템플릿이 기본으로 제공되기 시작했습니다 * **장점**: 템플릿 파일이 단순해져서, 프로젝트 구조를 간결하게 유지할 수 있습니다 * **호환성**: C++ 기반 로컬 모듈을 사용하는 경우에는 Swift와의 호환 이슈가 있으므로, 기존 Objective-C++ 방식을 유지해야 할 수도 있습니다 * **RCTAppDependencyProvider 추가** 0.77 버전부터 iOS AppDelegate 내부에 `RCTAppDependencyProvider` 등록을 누락하면 런타임 문제가 발생할 수 있으니 주의해야 합니다 ```objective-c // Objective-C++ 예시 #import
// ... self.dependencyProvider = [RCTAppDependencyProvider new]; ``` ```swift // Swift 예시 import ReactAppDependencyProvider // ... self.dependencyProvider = RCTAppDependencyProvider() ``` *** ### 4\. Community CLI와 Breaking Changes 1. **`react-native init` 명령어 완전 폐지** * 0.75 버전부터 예고되었던 사항이며, 이제 더는 사용 불가합니다 * 대신 `npx @react-native-community/cli init` 또는 [Expo](https://expo.dev/)의 `npx create-expo-app` 등을 권장한다고 합니다 2. **Metro에서 `a`, `i` 단축키 제거** * Metro 터미널에서 `a`(run Android), `i`(run iOS)를 호출하던 단축키가 더는 지원되지 않습니다 * 앞으로는 직접 CLI 명령어를 입력하거나, 사용하는 프레임워크(예: Expo)에서 제공하는 명령어를 써야 합니다 3. **`console.log()` 스트리밍 제거** * Metro 콘솔에서 `console.log()` 출력이 실시간 스트리밍되던 기능이 제거되었습니다 * 디버깅 시에는 다른 로깅 툴이나 디버거를 사용하면 될 것 같습니다 *** ## 결론 요즘은 모바일 앱 개발 영역에서도 **웹 수준의 섬세한 스타일 및 레이아웃**을 요구받는 추세인 것 같습니다 **React Native 0.77**은 이러한 트렌드를 반영해 새로운 CSS 속성을 강화하고, 안드로이드와 iOS 지원 범위를 확장한 점이 눈에 띕니다 한 단계 앞선 레이아웃과 플랫폼 대응성을 원하는 개발자라면, 이번 0.77 버전을 적극적으로 시도해보는 것도 좋을 것 같습니다.
출처:
https://reactnative.dev/blog/2025/01/21/version-0.77
react-native
1
0
0
173
신고하기
사용자 차단하기
sonaki84
13일 전
팔로우
팔로잉
댓글
0
올리기
답변 작성
답변 모드로 쓰기
이미지 첨부
올리기
아직 댓글이 없습니다. 첫번째 댓글 작성자가 되어주세요 :)
1
0
0
신고하기
사용자 차단하기
아직 댓글이 없습니다. 첫번째 댓글 작성자가 되어주세요 :)