반응형

전체 글 40

MultiProcess 와 MultiThread

❓ 멀티 프로세스 하나의 응용프로그램을 여러 개의 프로세스로 구성하여 각 프로세스가 하나의 작업(task)을 처리하도록 하는 것이다. 🔎 특징 여러 개의 자식 프로세스 중 하나에 문제가 발생하면 그 자식 프로세스만 죽는 것 이상으로 다른 영향이 확산되지 않는다. Context Switching과정에서 캐시 메모리 초기화 등 무거운 작업이 진행되고 많은 시간이 소모되는 등의 오버헤드가 발생한다. 각 자식 프로세스는 독립된 메모리 영역을 할당받았기 때문에 프로세스 사이에서 공유하는 메모리가 없어, Context Switching 과정 발생 시 캐시에 있는 모든 데이터를 모두 리셋하고 다시 캐시정보를 불러와야 한다. 프로세스 간의 어렵고 복잡한 통신 기법(IPC) : 프로세스는 각각의 독립된 메모리 영역을 할..

OS 2022.03.22

Process와 Thread

❓프로세스(Process) 란 사전적 의미 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체) 운영체제로부터 시스템 자원을 할당받는 작업의 단위 즉, 동적인 개념으로는 실행된 프로그램을 의미한다. 🔎 특징 기본적으로 프로세스당 최소 1개의 스레드(메인스레드)를 가지고 있다. 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없다. 한 프로세스가 다른 프로세스의 자원에 접근하려면 프로세스 간의 통신(IPC, inter-process communication)을 사용해야 한다. Ex) 파이프, 파일, 소켓 등을 이용한 통신 방법 이용 🪶 할당 받는 자원 : CPU 시간, 운영되기 위해 필..

OS 2022.03.22

flutter 기본 프로젝트 구조

플러터 프로젝트 구조 myapp android // 컴파일된 안드로이드 앱 ios // iOS 앱 lib // 99%의 시간을 할애할 장소 main.dart // 프로젝트의 진입점. main() 반드시 포함 test // 테스트 widget_test.dart .gitignore pubspec.yaml // 모든 다트 프로젝트에 필요하며 의존성과 메타데이터를 관리 pubspec.lock // 편집하면 안되는 잠금 파일을 생성한다. 모든것은 위젯 * 자주 사용되는 위젯 구조 : Button, Toast, MenuDrawer애니메이션 : FadeInPhoto, Transform 위치와 정렬 : Center, Padding 스타일 : TextStyle, Color, Padding 레이아웃 : Row, Colum..

Flutter 2022.03.22

Flutter androidx 마이그레이션 안될 때

androidx 마이그레이션 안될때 gradle-wrapper.properties 파일에서 distributionUrl=https\\://services.gradle.org/distributions/gradle-5.4.1-all.zip 다음 과 같이 버전 체크 및 수정 전체 프로젝트 build.gradle에서 다음과 같이 수정 dependencies { classpath 'com.android.tools.build:gradle:3.3.1' classpath 'com.google.gms:google-services:4.3.10' gradle.properties 파일에서 다음과 같이 추가 android.useAndroidX=true android.enableJetifier=true AndroidManifes..

Flutter 2022.03.22

JAVA 자주 까먹는 것들

자주 발생하는 예외 ArithmeticException : 정수를 0으로 나눌 때 NullPointerException : null 레퍼런스를 참조할 때 ClassCastException : 변환 할 수 없는 타입으로 객체를 변환 할 때 OutOfMemoryException : 메모리 부족 ArrayIndexOutOfBoundsException : 배열의 범위를 벗어난 접근 시 IllegalArgumentException : 잘못된 인자 전달 시 IOException : 입출력 동작 실패 또는 인터럽트 시 발생 NumberFormatException : 문자열이 나타내는 숫자와 일치하지 않는 타입의 숫자로 변환 시 OverLoading 메소드 명과 인자가 같으면서 return 값만 다른 경우 컴파일 오류..

Java 2022.02.25

Pandas map, apply 예제

값 대치 값 대치 (딕셔너리) s = pd.Series([1, 2, 3]) # 3행 1열의 샘플 데이터 mapping = { 1:"drop", 2:"the", 3:"table" } # 딕셔너리 구조의 맵핑할 데이터 s1 = s.map(mapping) # 딕셔너리를 인자로 map 호출 print(s1) # 결과 0 drop 1 the 2 table dtype: object 값 대치 (함수) s.map(lambda x: x**2) # 각각 제곱 # 결과 0 1 1 4 2 9 dtype: int64 값 변환(함수 호출) # 제곱 함수 선언 def squared(value): return value * value # apply s.apply(squared) # 결과 0 1 1 4 2 9 dtype: int64 ..

Python 2022.02.16

Pandas 결측치 예제

결측치 확인 Python Pandas 라이브러리의 isnull() 활용 s = pd.Series([1, 2, 3, np.nan] * 3) # 4행 3열의 null 값이 존재하는 2차원 데이터 s.isnull().sum() # null 값의 건수 = 3 결측치 채움 Python Pandas 라이브러리의 fillna() 활용 fillna()는 return값이 복제본이다. 따라서 inplace = True 를 명시하지 않으면 원본 데이터의 변경을 피할 수 있다. s.fillna(4) # null 값을 모두 4로 채움 원본 데이터와 비교 # 원본 데이터 print(s) # 결과 0 1.0 1 2.0 2 3.0 3 NaN 4 1.0 5 2.0 6 3.0 7 NaN 8 1.0 9 2.0 10 3.0 11 NaN d..

Python 2022.02.16

Pandas 데이터 타입

Pandas에서 제공하는 기본 데이터 타입은 다음과 같습니다. 예제 # 데이터프레임 정보 df.info() RangeIndex: 3 entries, 0 to 2 Data columns (total 6 columns): 이름 3 non-null object 통솔 3 non-null int64 무력 3 non-null int64 지력 3 non-null int64 정치 3 non-null int64 매력 3 non-null int64 dtypes: int64(5), object(1) memory usage: 272.0+ bytes 데이터 타입 변경 데이터 타입을 변경할 때는 astype()을 이용할 수 있다. 문자열을 숫자형으로 변경하는 경우처럼 형변경을 할 수 없는 경우 오류가 발생하기 때문에 예외처리를 ..

Python 2022.02.16

데이터 분석 및 모델링 순서

데이터 전처리 과정 1. 문제 정의 및 가설 문제를 명확하게 정의하는 것이 가장 중요하다. 문제 정의부터 잘못 접근했다면 나오는 결과 또한 무의미한 결과이기 때문이다. 문제 정의에 앞서 배경을 살펴보고 전체적인 맥락을 이해하는데 중점을 둔다. 배경을 이해하는데 도움이되는 것은 도메인 지식이다. 문제를 정의했다면 “이 문제를 해결함으로 어떤 것이 해결 되는가?” 를 생각해야 한다. 즉 데이터 분석의 목적을 정의하고 그 문제를 해결하기 위한 가설을 세워야한다. i. 프로젝트시 고려사항 목적과 데이터 특성에 맞는 모델을 무엇인가? 일반화 가능성은 어떠한가? 성능 측정의 지표는? 성능을 높이기 위해 어떻게 Feature Engineering을 진행할 것인가? 제품 혹은 시스템에 모델을 적용할 시 계산량이나 언어..

BigData 2022.02.16
반응형