본문 바로가기

전체 글129

[React Query] React query 뿌수기 React Query는 서버 상태 관리를 위한 라이브러리이다. 데이터 Fetching, Caching, 동기화, 서버 데이터 업데이트 등을 쉽게 만들어 준다. 리액트 쿼리를 사용하는 이유 간편한 데이터 관리: 데이터 가져오기, 캐싱, 동기화 및 업데이트 처리를 간편하게 할 수 있다. 실시간 업데이트 및 동기화 데이터 캐싱: 불필요한 api 요청을 줄인다. 서버 상태 관리: 로딩중, 에러, 성공 등의 상태를 간편하게 처리 할 수있다. 간편한 설정: @tanstack/react-query @tanstack/react-query-devtools 를 설치 한 후 최상위 컴포넌트에 QueryClientProvider 로 감싸주면 끝난다. React Query 의 라이프 사이클 쿼리 인스턴스가 mount됨 네트워크.. 2024. 4. 9.
[Bun] Bun 이란? Bun 설치 및 사용법 Bun 이란? node.js, deno 와 같이 javascript runtime 패키지 중 하나이다. Bun의 공식 홈페이지에 의하면 pnpm보다l 17배, yarn보다 33배, pnpm보다 17배 빠르다고한다. 1. node.js C++을 기반으로 개발한 오픈 소스로, javascript라는 언어를 JIT컴파일러를 기반으로 기계어로 해석해주는 V8엔진을 통해 빌드된 javascript 런타임 환경이다. 2. deno deno는 node환경에 여러 문제(보안, async, typescript 등)를 해결하기 위해 나왔다. V8엔진과 Rust, Typescript를 기반으로 작성하여 안정성이 높고, 패키지 의존성을 내부로 옮겨 npm이 필요 없고, 컴파일 없이 Typescript를 지원하고 있다! 3. .. 2024. 4. 8.
[React Native] react native 작동 원리 2018년에 가시화된 리액트네이티브의 새로운 아키텍쳐가 2022년 3월에 발표되었다. 따라서 기존 아키텍처의 한계점을 알아본 후, 새롭게 바뀐 아키텍처 도입으로 인한 이점과 RN플랫폼과 Thread에 대해 알아보자. 기존 아키텍처의 한계점 기존 아키텍처는 js계층에서 네이티브 계층으로 전달해야 하는 모든 데이터를 'Bridge'를 이용해 직렬화하여 작동했다. 이에는 몇가지 한계가 존재했다. 1. 비동기: 한 계층이 'Bridge'로 데이터를 제출하고 다른 계층이 이를 처리하기를 비동기적으로 '대기'하였다. 2. 단일 스레드: js 단일 스레드에서 모든 계산이 수행되어야 한다. 3. 부가적인 오버헤드 발생: 한 계층이 다른 계층을 사용해야 할 때마다 일부 데이터를 json으로 직렬화, 역직렬화해야만 했다... 2024. 4. 5.
[보안] 보안취약점 - 파일 업로드&다운로드 취약점 (악성코드 및 바이러스 검사) 파일 업로드 시 악성 코드 및 바이러스를 검사하는 Java 기반의 솔루션으로는 Apache Tika와 ClamAV를 조합하여 사용하는 방법이 일반적이다. 1. Apache Tika를 사용한 파일 형식 검사: Apache Tika는 다양한 문서 형식의 파일에서 텍스트 및 메타데이터를 추출하는 Java 라이브러리이다. 파일이 악성 코드를 포함하고 있는지 확인하기 위해서는 파일 형식을 분석하여 내용을 추출하고 검사하는 것이 유용하다. import java.io.IOException; public class ClamAVScanner { public static boolean isFileClean(byte[] fileBytes) { try { ProcessBuilder processBuilder = new Pro.. 2023. 12. 20.
[보안] 보안취약점 - 파일 업로드&다운로드 취약점 (파일확장자 관리) 게시글, 결재 문서 등 첨부파일을 업로드가 가능한 페이지 일 경우, 업로드가 가능한 파일 확장자를 화이트 리스트로 관리하거나, 업로드가 불가능한 파일 확장자를 블랙 리스트로 관리하여야 한다. 1. 첨부파일 업로드를 제한해야하는 확장자 - 업로드가 불가능한 확장자를 블랙리스트로 관리하여, 클라이언트 및 서버측에서 모두 체크하여 업로드를 막아야 한다. 확장자 명 비고 확장자명 비고 .exe 실행파일 .dll dll 파일 .jsp jsp 파일 .jspx jspx 파일 .php php 파일 .asp asp 파일 .aspx aspx 파일 .java java 파일 .bat bat 파일 .pdb pdb 파일 .vbs vbs 파일 2. 파일 변조 체크 로직 자바스크립트 function fileCheck(fileName.. 2023. 12. 20.
[React Native] Expo prebuild Update: Expo SDK 46 버전부터 공식적으로 expo eject 는 deprecated 되었다. https://docs.expo.dev/faq/#is-expo-eject-deprecated expo SDK41 부터 expo prebuild 라는 기능을 제공해준다. 3rd-part-native-module 의 경우, expo 에서 가이드 해주는대로 플러그인 스펙을 지정해놓으면 엑스포에서 클라우드 환경에서 사전에 해당 모듈을 포함시켜서 빌드를 해준다. 기본적으로 플러그인은 app.json 혹은 app.config.js 에 아래와 같은 형태로 적는다. { "name": "my app", "plugins": ["3rd-party-native-module"] } 별도로 주어야 하는 권한이 있는 경우에는.. 2023. 12. 11.