본문 바로가기
반응형

전체 글65

[Flutter] 프로젝트 난독화 빌드하기 - Android App Bundle:flutter build appbundle --release \ --obfuscate \ --split-debug-info=build/app/outputs/symbols- iOS:flutter build ios --release \ --obfuscate \ --split-debug-info=build/ios/symbols 📌 참고!모두 다 난독화 되는건 아니고 다음 사항들이 난독화 된다.Dart 코드: 모든 함수명, 변수명, 클래스명Flutter 위젯: 커스텀 위젯들비즈니스 로직: 모든 Dart 파일다음 항목들은 난독화 대상이 아니다.assets 파일: .env, 이미지, 폰트 등Android/iOS 네이티브 코드 (별도 설정 필요)외부 pub.dev 패키지.. 2025. 11. 13.
[supabase] supabase 테이블 별 RLS 여부 확인하는 법 📌 RLS(Row-Level Security, 행 수준 보안) 정책: 데이터베이스의 특정 데이터 행에 대한 접근 권한을 사용자별, 역할별로 세밀하게 제어하는 정책 1. RLS 활성화 여부 확인Supabase 대시보드 > 프로젝트 > SQL Editor 에 진입해서 아래 쿼리 중 tablename IN ('', '') 구문에 RLS 여부를 확인하고 싶은 테이블 명들을 넣고 실행시키면 된다.SELECT schemaname, tablename, rowsecurity as rls_enabledFROM pg_tablesWHERE schemaname = 'public' AND tablename IN ('TABLE_NAME_1', 'TABLE_NAME_2')ORDER BY tablename; rl.. 2025. 11. 13.
mongodb atlas whitelist에 0.0.0.0을 넣어도 연결이 안될 때 📌 상황Node.js 프로젝트에서 mongoose를 통해서 mongodb atlas에 연결을 하려고 했는데, whitelist 에러 발생.하지만 이미 whitelist에 0.0.0.0/0으로 모든 IP를 허용해놓은 상태.Could not connect to any servers in your MongoDB Atlas cluster.One common reason is that you're trying to access the database from an IP that isn't whitelisted.Make sure your current IP address is on your Atlas cluster's IP whitelist 이 문제를 해결하기 위해서 시도한 방법들을 차례로 적어보았다. 1. 첫 .. 2025. 6. 7.
React Native에서 Flutter로 넘어간 이유 처음 React Native를 선택했던 이유 이미 JavaScript와 React를 쓰고 있었고, Flutter를 쓰려면 Dart를 따로 더 공부해야한다는 러닝커브 때문에 자연스럽게 React Native를 선택했다. 왜 React Native를 떠났나?1. 빌드 방식 차이react native로 개발을 하다가보면 하루 종일 빌드 이슈만 해결하다가 개발은 손도 대지 못하는 날들이 있었다. RN으로 개발을 하다가 마주하는 고질적인 문제점을 나는 아래처럼 순환이 된다고 생각했다.유독 android에서 알 수 없는 버그 -> build 방식(bridge) -> UI 차이 -> 유독 android에서 알 수 없는 버그 -> ...(반복) 위 이미지를 보면 react native는 중간에 bridge가 껴있는 모.. 2025. 2. 2.
[Flutter] 화면 중앙 정렬 SizedBox vs Column vs Center Flutter에서 하위 요소를 화면 중앙에 배치하는 방법에는 3가지 방법이 있다.SizedBox-Column 조합, Column 단독 사용, Center 위젯 이 3가지 방법의 차이에 대해서 살펴봤다. 1. SizedBox - Column 조합SizedBox 위젯에서 너비를 double.infinity로 해서 가로를 최대로(화면 너비로) 늘린 후 자식 위젯을 Column으로 둬서 가운데 정렬 시키는 방법이다.Column은 기본적으로 자식들을 가로 상 가운데 정렬을 하기 때문에 SizedBox가 화면의 전체 너비를 차지하게 하면 자식 요소가 화면의 가로 상 가운데로 가게 하는 것이다. 그리고 MainAxisAlignment.center로 두어 세로 상으로도 가운데에 두게 되면 결과적으로 자식 요소가 화면 .. 2025. 2. 2.
[VSCode]유용한 비주얼스튜디오코드 단축키 *MAC OS 기준option + z : word wrap on/offcmd + \ : 화면 splitcmd + , : setting(설정)cmd + p: 파일명 검색cmd + d : 동일한 단어 하나씩 누적 선택 2024. 12. 8.
[React Native] 안드로이드 aab 파일 생성 시 파일명 변경하기 📌 플레이스토어 배포 용 aab 파일 생성 명령어$ cd android$ ./gradlew app:bundleRelease 이러면 {프로젝트폴더}/android/app/build/outputs/bundle/release 폴더에 app-release.aab라는 이름으로 aab 파일이 만들어진다.수정 배포 등으로 인해 다시 빌드를 하면 같은 이름으로 생성을 하기 때문에 파일 덮어쓰기가 안되거나, 파일명으로 신버전의 파일이 맞는지 확인할 수가 없다.최신 aab 파일임을 구분하기 위해서 app-release.aab 파일에 날짜 정보가 있었으면 좋겠다고 생각했다. 📌 app/build.gradle 파일 수정android { ...}// 이 부분 코드 추가tasks.whenTaskAdded { task -> .. 2024. 10. 22.
[React Native] env 파일 변경사항 반영 안될 때 env 파일 내용을 변경했는데, 반영이 안된다면 캐시가 남아있는 경우일 수 있다.캐시를 지워주고 프로젝트를 실행하도록 하자.$ npm start -- --reset-cache# or$ react-native start --reset-cache 2024. 9. 22.
[React Native] REALM Error: Accessing object which has been invalidated or deleted 📌 상황환경) @react-navigation/native - goBack() 사용, realm.delete() 사용 A 화면: 데이터 목록을 보여줌.B 화면: 각 데이터 상세 내용을 보여줌.A화면에서 데이터 선택 후 B화면 진입. B화면에서 해당 데이터 삭제 버튼을 누르면 A화면으로 돌아감.이 때, Accessing object which has been invalidated or deleted 에러 발생. 🐛 원인Realm 객체를 삭제한 후에도 앱에서 해당 객체를 참조. 💡 해결 방법 Realm 객체를 삭제한 후에는 앱에서 해당 객체를 참조하지 못하도록 해야함.Object.assign({}, realmObject)를 사용하여 객체를 복사하고 리스트에 복사된 객체를 사용하도록 함.const rea.. 2024. 9. 14.
반응형