본문 바로가기

전체 글

[JavaScript] Array 추가 concat arr = ['banana']; const newArray = arr.concat('apple'); console.log(arr); // ['banana'] console.log(newArray); // ['banana', 'apple'] push arr = ['banana']; const newArray = arr.push('apple'); console.log(arr); // ['banana', 'apple'] console.log(newArray); // ['banana', 'apple'] 차이점 concat은 기존에 있는 배열을 복사해와서 연결한다. 이렇게하면 연결하기 전 배열의 상태는 유지한 채로 로 새로운 배열을 만들 수 있다. 반면에 push는 기존의 배열에 추가를 한채로 .. 더보기
Angular vs React vs Vue 선택기준 Angular -기능이 풍부하고 규모가 큰 애플리케이션을 개발할 때 -믿을 수 있고 확장 가능한 프레임워크가 필요할 때 -채팅 앱이나 메시징 앱과 같은 실시간 애플리케이션을 개발할 때 -장기프로젝트이며, 투자규모도 상당한 네이티브 앱이나 하이브리드 앱, 또는 웹앱을 개발할 때 -타입스크립트(TypeScript)로 코딩해야 할 때 -객체지향(Object-oriented)프로그래밍을 해야 할 때 React -빠른 일정 안에 엔터프라이즈 수준의 가벼우면서도 현대적인 애플리케이션을 개발해야 할 때 -웹사이트 개발 솔루션을 안전하게 보호할 수 있는 유연한 프레임워크가 필요할 때 -크로스 플랫폼(cross-platform) 애플리케이션이나 싱글 페이지 애플리케이션(SPA)을 개발할 때 -기존의 앱에서 기능.. 더보기
[암호화 기법] 대칭키 vs 비대칭키 대칭키(비밀키: Private Key) 개념 동일한 키를 사용하여 암호화와 복호화를 한다. 또한, 키를 비밀로 하여 키를 아는 자만 내용을 볼 수 있도록 하는 기법이다. 장점 - 암호화 키와 복호화 키가 동일하여 관리가 쉬움 - 비트 수가 적어 수행 시간이 짧음 단점 - 암호화/복호화 키가 동일하기 때문에 키가 노출되면 안됨 - 사용자들마다 유일한 키가 생성되므로 사용자가 많아지면 키를 관리하기 어려워짐 - 인증 기능이 없음 종류 - DES - AES 비대칭키(공개키: Public Key) 개념 암호화/복호화에 사용하는 키를 달리하는 기법이다. 사용자가 사용하는 키는 공개키로 하여 모두가 같은 키를 사용할 수 있도록 하고, 서버가 사용하는 키는 비밀로 한다. 공개키로 암호화한 것은 개인키로 복호화를 해야.. 더보기
HTTP vs HTTPS HTTP란? HTTP(Hyper Text Transfer Protocol)는 클라이언트와 서버 간의 이루어지는 요청/응답 프로토콜이고, html과 같은 리소스들을 가져올 수 있게 해준다. http의 문제점 암호화 기능 없음 단순 text형식으로 주고받기 때문에, 중간에서 누군가가 신호를 가로챈다면 내용이 그대로 노출된다. 신뢰할 수 있는 사이트인지 확인 불가 통신하려는 사이트를 따로 확인하는 작업이 없어 다른 사이트가 통신하려는 사이트로 위장 가능 통신 내용 변경 가능 요청을 보낸 곳과 받은 곳의 리소스가 정확히 일치하는지 확인할 수 없다. 누군가가 중간에 데이터를 악의적으로 변조한다면 정확한 데이터를 주고받을 수 없게된다. HTTPS란? HTTPS(Hyper Text Transfer Protocol S.. 더보기
Android apk 파일 배포 apk 파일 이란? 안드로이드 응용 프로그램 패키지(Android application package)의 약자로, 안드로이드의 소프트웨어와 미들웨어 배포에 사용되는 패키지 파일이다. 방법 폴더 확인 android/app/src/main/assets 폴더가 있어야한다. 없으면 만들어야한다. key 생성 keytool -genkeypair -v -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000 JSK와 관련된 문구가 뜨지만 무시하고 넘어가도 된다. 생성되는 폴더들을 android/app 폴더로 이동시킨다. keystore 파일은 version control system으로 올라가면 안되므로.. 더보기
Splash Screen Splash Screen이란? 앱을 실행했을 때, 연결이 완료 되기전에 나타나는 화면이다. 로딩화면이라고 보면 된다. 사용 방법 1. 라이브러리 설치 yarn add react-native-splash-android yarn add -D @bam.tech/react-native-make //Splash image 설정 모듈 설치 2. 이미지 만들기 splash screen 용은 최소 3000x3000(px) 이어야한다. https://pixlr.com/x/ 사진 에디터 : Pixlr.com - 온라인 무료 사진 편집 툴 Pixlr X를 통해 브라우저에서 고급 사진 편집 툴을 바로 실행할 수 있어요. 별도의 설치 또는 회원가입이 불필요! 컴퓨터, 태블릿, 스마트폰에서 언제 어디서나 무료로 이용하세요. pi.. 더보기
오류 정리 네트워크 현상 FormData를 body에 넣어서 AJAX 요청을 보내면 Network error가 발생 해결 방법 /android/app/src/main/java/com/${project name}/MainApplication.java - line:47 @Override public void onCreate() { super.onCreate(); SoLoader.init(this, /* native exopackage */ false); initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); // 주석 처리 } 안드로이드 스튜디오 현상 Could not read script 'C:\Users\multicampus\Desktop\.. 더보기
Redux http://dobbit.github.io/redux 개념 Vuex와 같은 중앙 집중형 저장소이다. 프로젝트의 규모가 크고 복잡해지면 컴포넌트의 상태(state)를 관리하기가 힘들다. 왜냐하면, 트리 구조이기때문에 멀리 있는 컴포넌트에 값을 전달하려면 상위 루트까지 올라갔다가 가야한다. Redux를 사용하면 중앙 저장소에서 값을 관리하기때문에 아무 컴포넌트에서나 접근할 수 있다. 따라서, 컴포넌트의 상태를 단순하게 처리할 수 있다. 또한, 반복되는 작업을 store에 저장해놓고 처리할 수 있어 코드의 재사용 측면에서도 장점이 있다. 동작 1. Component에서 Dispatch 실행 2. Action에 정의된 형식을 이용하여 reducer 호출 3. reducer에서 state를 변경해서 store의 .. 더보기