본문 바로가기

전체 글158

멀티 스레드 멀티 스레딩의 장점 프로세스를 이용하여 동시에 처리하던 일을 스레드로 구현할 경우 메모리 공간과 시스템 자원 소모가 줄어들게 된다. 스레드 간의 통신이 필요한 경우에도 별도의 자원을 이용하는 것이 아니라 전역 변수의 공간 또는 동적으로 할당된 공간인 Heap 영역을 이용하여 데이터를 주고 받을 수 있다. 그렇기 때문에 프로세스 간 통신 방법에 비해 스레드 간의 통신 방법이 훨씬 간단하다. 심지어 스레드의 context switch는 프로세스의 context switch와는 달리 캐시 메모리를 비울 필요가 없기 때문에 더 빠르다. 따라서 시스템의 throughput이 향상되고 자원 소모가 줄어들며 자연스럽게 프로그램의 응답 시간이 단축된다. 이러한 장점때문에 여러 프로세스로 할 수 있는 작업들을 하나의 프.. 2021. 10. 22.
프로세스와 스레드의 차이 프로세스(Process) 프로세스는 실행 중인 프로그램으로 디스크로부터 메모리에 적재되어 CPU의 할당을 받을 수 있는 것을 말한다. 운영체제로부터 주소 공간, 파일, 메모리 등을 할당받으며 이것들을 총칭하여 프로세스라고 한다. 구체적으로 살펴보면 프로세스는 매개변수, 복귀 주소와 로컬 변수와 같은 임시 자료를 갖는 프로세스 스택과 전역 변수들을 수록하는 데이터 섹션을 포함한다. 또한 프로세스는 프로세스 실행 중에 동적으로 할당되는 메모리인 힙을 포함한다. 프로세스 제어 블록(Process Control Block, PCB) PCB는 특정 프로세스에 대한 중요한 정보를 저장하고 있는 운영체제의 자료구조이다. 운영체제는 프로세스를 관리하기 위해 프로세스의 생성과 동시에 고유한 PCB를 생성한다. 프로세스는.. 2021. 10. 22.
ReactNative - Firebase 연동 https://velog.io/@jinsunee/react-native-firebase-%EC%84%A4%EC%A0%95#android-%EC%84%A4%EC%A0%95 2021. 10. 22.
npm - vulnerabilities npm 으로 라이브러리들을 설치하다보면 취약점 경고가 발생할 때가 종종 있다. 이때 npm-check-updates를 사용하면 버전문제를 해결할 수 있는 것 같다. npm i -g npm-check-updates ncu -u https://www.npmjs.com/package/npm-check-updates npm-check-updates Find newer versions of dependencies than what your package.json allows www.npmjs.com 2021. 10. 20.
Java - static, final이란? 자바의 변수에 붙은 static은 무엇을 의미할까? 클래스에서 사용하는 공통 변수를 의미한다. A클래스의 인스턴스 b에서 값을 변경하면 c에서도 변경된 값을 확인할 수 있다. 자바의 변수에 붙는 final은 무엇을 의미할까? the final keyword is used in several contexts to define an entity that can only be assigned once. final은 entity를 한 번만 할당해줍니다. 즉 final은 immutable/Read only인 속성이라고 볼 수 있습니다. 쉽게 말해서 상수라고 볼 수 있다. 통상적으로 모두 대문자를 사용해서 표현한다. 일반적으로 오버라이드로 인한 실수를 줄이기 위해 많이 사용됩니다. 2021. 10. 19.
node_modules와 깃헙 ReactNative로 개발할 때, GitHub에 push,pull을 하다 보면 자주 문제가 발생했었다. 이 문제는 GitHub에서 자동으로 생성해주는 gitignore 파일에 node_modules가 기본으로 제외되도록 설정돼있기 때문이다. 특별한 이유가 아니면 용량때문에 node_modules를 굳이 git에 올리지 않습니다. 후에 새로운 환경에서 소스를 받을 때, npm install 명령어를 수행하여 package.json에 기술된 의존성 모듈을 받는 형태로 운용합니다. package.json이 build.gradle과 비슷한 역할을 해주는 것 같습니다. 2021. 10. 15.
JSX란? JSX는 JavaScript + XML 의 약자이다. 자바스크립트나 타입스크립트 문법에 XML 문법이 있는 경우에 JSX or TSX라고 부른다. XML에 자바스크립트를 결합할 용도로 만든 구문이다. 이는 React.createElement를 간결화해서 JSX코드로 사용할 수 있게 도와준다. JSX는 아래의 코드가 import되어야 사용할 수 있다. import React from 'react' XML에 자바스크립트 코드를 삽입할 수 있으므로 아래와 같이도 사용 가능하다. const hello='Hello world!'; {hello} 2021. 10. 13.
ReactNative의 특징과 React와의 차이 졸업 프로젝트를 할 때 React Native를 사용해서 어플을 개발했습니다. 그렇다면 왜 React Native를 사용했는가? 장점 1. iOS, 안드로이드 동시 개발 가능 2. Fast Refresh - 변경된 코드를 저장하기만 해도 자동으로 변경된 내용이 적용된 화면을 확인할 수 있음 3. 작성된 코드에 따라 각 플랫폼에서 그에 알맞은 네이티브 엘리먼트로 전환되기 떄문에 큰 성능 저하 없이 개발 가능 단점 1. 네이티브의 새로운 기능을 사용하는데 오래걸림 2. 유지보수의 어려움 3. 잦은 업데이트 React와 React Native 이 두 프레임워크는 무슨 차이가 있을까? React 리액트는 가상 DOM 구조를 react-dom(DOM 렌더러)이라는 렌더러 패키지를 사용해서 물리 DOM 구조로 렌더.. 2021. 10. 13.
Intellij - 단축키 정리 Make Test (Test파일 간단하게 만들기) - [Ctrl + Shift + t] Extract Method (선택한 블록 메소드화 하기) - [Ctrl + Shift + m] Generate Basic (생성자, Getter/Setter, toString과 같은 코드 생성) - [Alt + Insert] Code AutoComplete (클래스 입력시 {className}(); 자동완성) - [Ctrl + Shift + Enter] Duplicate current line (복사해서 밑에 바로 생성) - [Ctrl + d] For static import (static import로 코드 길이 줄일 수 있는듯??) - [Alt + Enter] Mac Project information (프로젝트 .. 2021. 10. 13.
Trouble Shooting - The following untracked working tree files would be overwritten by ... git pull할 시에 이런 에러가 발생할 때가 있다. 이런 경우에는 아래 명령어를 입력해주면 해결된다. git clean -d -f 2021. 10. 12.