프로그래밍 공부

전체 글 700

카테고리 설명
프로그래밍 공부하는 블로그
  • 구조도 Muhaut MR Zookeeper HIVE(SQL) Yarn HBase MR(Map Reduce) Yarn HDFS Hadoob MapReduce 구글에서 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기위한 목적으로 2004년에 제작발표한 소프트웨어 프레임워크 빅데이터를 입력 -> 스크립트 분할 -> 맵핑( 키 밸류 ) -> 셔플링 ( 중복항목 확인 ) -> 리듀싱 ( 중복 값 제거, 확인 ) -> 결과 도출 (얼마나 중복되었는지, 단어는 뭐가 나왔는지) 장점 단순 사용편리 유연성 저장구조 독립성 내고장성 확보 ( 일부 고장나도 전체 영향 낮음 ) 확장성 높음 단점 고정된 단일 데이터 흐름 기존 DBMS보다 불편함 빌의 단순한 스케줄링 DBMS와 비교하여 상대적으로 성능 낮음 개발도구의 불편..

  • 통신 프로토콜의 개념 통신을 원하는 두 객체 간의 무엇을 어떻게 언제 통신할 것인지 서로 약속해 놓은 규정 정보 통신에서 통신을 통제하는 규칙들을 규정 표준화 개념 1960년대 처음에는 IBM에서 제정한 프로토콜인 BSC와 SDLC를 많이 사용 1976년 국제전신전자문위원회 CCITT는 프로토콜을 하나로 통합하여 사용을 권고 국제 표준화 기구에서 OSI 참조 모델을 제정하여 발표 지금은 인터넷 기술이 발전하면서 TCP/IP를 많이 사용 OSI 7계층 프로토콜 프로토콜과 참조 모델 OSI 7계층의 구성 1계층 : 물리 계층 2계층 : 데이터 링크 계층 3계층 : 네트워크 계층 4계층 : 전송 계층 5계층 : 세션 계층 6계층 : 표현 계층 7걔층 : 응용 계층 최상위 계층에서 발생한 데이터를 하위계층으로 ..

  • EditText EditText Edit_text1 = new EditText(this); Edit_text1.setText("입력해 주세요"); baseLayout.addView(Edit_text1); 이런 식으로 생성 할 수 있다. Button Button btn = new Button(this); btn.setText("버튼 입니다."); btn.setBackgroundColor(Color.rgb(239,234,53)); baseLayout.addView(btn); 이런식으로 버튼 또한 생성할 수 있다. 중간에 setBackgroundColor는 버튼의 색을 결정한다. btn.setOnClickListener(new View.OnClickListener() { @Override public void..

  • 쉘의 기능과 종류 쉘의 기능 명령어 해석기 기능, 프로그래밍 기능, 사용하 환경 설정 기능 명령어 해석기 기능 사용자와 커널 사이에서 명령을 해석하여 전달하는 해석기와 번역기 기능 사용자가 로그인하면 쉘이 자동으로 실행되어 사용자가 명령을 입력하기를 기다림 ->로그인 쉘 로그인 쉘은 /etc/passwd 파일에 사용자 별로 지정 프롬프트: 쉘이 사용자의 명령을 기다리고 있음을 나타내는 표시 프로그래밍 기능 쉘은 자체 내에 프로그래밍 기능이 있어 반복적으로 수행하는 작업을 하나의 프로그램으로 작성 가능 쉘 프로그램을 쉘 스크립트 사용자 환경 설정 기능 사용자 환경을설정할 수 있도록 초기화 기능 제공 초기화 파일에는 명령을 찾아오는 경로를 설정하거나, 파일과 디렉터리를 새로 생성할 떄 기본 권한을 설정하거나..

  • Select sub-images in an image 원하는 데이터의 이미지만 추출하기 위해 사용. AND와 OR게이트를 활용하여 데이터를 추출함. AND = 입력 데이터에 상관없이 검정 부분의 출력 데이터를 0으로 고정함 8bit = 0000 0000 흰부분의 AND필터값을 1로 하여 출력 데이터가 1일경우 1을 출력 아닐경우 0으로 바꿈. OR = 흰 부분 필터값이 8bit로 1111 1111로 필터링함. 입력값과 상관없이 모든 데이터를 1로 바꾼다. 1 or 1 = 1 1 or 0 = 1 검정부분의 OR필터값을 0으로 하여 0000 0000로 필터링함 Calculates differnce between two images f가 왼쪽 h가 오른쪽 이미지의 배열이라고 한다면, g로 왼쪽 하단의 이미지가..

  • WSL2 Windows Subsystem for Linux 2 의 줄임말로 윈도우 가상화 기능을 활용하여 윈도우 상에서 리눅스를 사용할 수 있게 해줍니다. 가상머신으로 윈도우를 사용하는 것이 아닌 윈도우 시스템과 통합되어 하나의 머신처럼 사용 할 수 있게 활용하는것이 가능합니다. 기존 Windows 10 Home 에서는 가상화 기능을 지원하지 않아 Docker나 다른 가상화 프로그램을 이용할 수 없었으나, WSL2 가 릴리스되면서 Windows 10 Home 에서도 가상화 프로그램을 사용할 수 있게 되었습니다. 1. PC정보 확인하기 WIndows 사양에서 현재 버전을 확인합니다. 버전이 20H1, 20H2, 21H1 혹은 그보다 높은 버전인지 확인해야합니다. 만약 낮은 버전이라면, WIndows Upd..

작성일
2022. 10. 11. 15:18
작성자
WDmil
728x90

구조도

  Muhaut    
  MR    
Zookeeper HIVE(SQL) Yarn  
HBase MR(Map Reduce) Yarn
HDFS

Hadoob

 

MapReduce

  • 구글에서 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기위한 목적으로 2004년에 제작발표한 소프트웨어 프레임워크
  • 빅데이터를 입력 -> 스크립트 분할 -> 맵핑( 키 밸류 ) -> 셔플링 ( 중복항목 확인 ) -> 리듀싱 ( 중복 값 제거, 확인 ) -> 결과 도출 (얼마나 중복되었는지, 단어는 뭐가 나왔는지)

장점

  • 단순 사용편리
  • 유연성
  • 저장구조 독립성
  • 내고장성 확보 ( 일부 고장나도 전체 영향 낮음 )
  • 확장성 높음

단점

  • 고정된 단일 데이터 흐름
  • 기존 DBMS보다 불편함 빌의
  • 단순한 스케줄링
  • DBMS와 비교하여 상대적으로 성능 낮음
  • 개발도구의 불편, 기술지원 어려움

Apache Pig

  • 하둡을 기반으로 동작하는 병렬 데이터 처리 엔진
  • 자체 스크립트 언어인 Pig Latin(피그라인) 사용함
  • 대규모 데이터 처리에 용이함
  • 고수준 언어로 방대한 양의 데이터 분석 플랫폼과 평가하는 인프라를 함께 재공함

HBase

  • 하둡 플랫폼을 위한 공개 비관계형 분산 데이터 베이스
  • 구글의 테이블을 본보기로 삼았으며 자바로 쓰여짐
  • key/value형식으로 단순한 구조를 가짐

 

  • HDFS에 데이터를 영구 보관 가능
  • 희소 행렬 방식으로 데이터를 저장함.
  • 컬럼 단위로 데이터 읽고 쓰기가 가능하다.

 

  • HDFS = 일괄 분석에 적합, 실시간 분석 불가능
  • HBas = 일괄 분석에 적합하지 않음, 실시간 분석이 가능

 


HIVE

  • 하둡 에코 시스템
  • SQL -> 하둡에서 사용하기 위해 만듬
  • 개념 = 하둡에 있는걸 SQL로 보겠다 라는것
  • 데이터 모델링 프로세싱에 사용하는 데이터 웨어하우징용 솔루션
  • SQL 데이터베이스, 테이블 동일한 형태
  • 메타스토어가 존재함

 

Schema = 테이블의 컬럼 이름, 데이터 타입, 테이블 간의 관계 등을 정의한 것

 

데이터 웨어하우징 = 데이터를 분류해서 내가 원하는 데이터를 잘 보여주는것

 

SQL과 차이점

SQL : 미리 스키마 정의하고 그틀에 맞게 데이터 입력

HIVE : 데이터 저장 -> 스키마 입힘 ( 메타스토어에 입력 )

  • SQL문을 드라이버가 컴파일러에 요청, 메타스토어의 정보를 이용해 처리에 적합한 형태로 컴파일함
  • 컴파일 된 SQL을 실행엔진으로 실행
  • 리소스 매니저가 적절하게 가져다 씀

YARN( Yet Another Resource Negotiator )

작업 스케줄링, 클러스터 리소스 관리를 위한 프레임 워크

 

Resouce Manager

  • 클러스터들로의 자원할당
  • Resource Allocation의 최상위 관리자이다.
  • 어디에 자원을 할당할지 결정하여 cluster들의 활용을 최적화 한다.
  • 또한 일의 처리요청을 받을 시 Request의 일부를 Node Manager에게 전함.

 

Node Manager

  • Slave Daemon에서 구동되며, 각 단일 노드의 Task 실행을 담당한다.
  • 개별 노드들을 관리하고 주어진 노드에서 사용자의 작업 및 Work Flow를 관리
  • Resourec Manager에 등록되며 각 노드의  heartbeats를 반환

 

  • Application Master : 개별적인 응용에서 필요로하는 자원과 Job에 대한 lifecycle을 관리한다.
  • Application은 프레임 워크에 제출된 단일 작업을 의미하며, 각각의 단일 작업은 고유한 Application Master을 지니게 된다.

 

  • 클러스터 에서 응용의 실행을 조정하고 오류를 관리. Node manager와 함께 작동. Task를 실행하고 모니터링하여 Resource Manager를통해 자원 협상

 

  • 자원 협상 후 Resource Manager로부터 적당한 Resource를 할당받고 상태를 추적하고 모니터링. 한번 Application Master가 실행되면 주기적으로 Resource Manager에 heartbeats를 전송하여 상태를 확인, 자원의 요구사항을 갱신

 

Container

  • 한 노드의 자원을 모아둔 페키지
  • 하나의 노드에 할당받은 자원들로, COntainer Live Cycle에 해당하는 Context를 통해 관리된다.
  • 레코드에는 환경 변수 맵, 원격 액세스 간으한 스토리지에 저장된 종속성, 보안 토큰, 노드 관리자 서비스의 페이로드 및 프로세스를 만드는데 필요한 명령이 포함된다.

ZOOKEEPER

하둡에코 시스템의 노드의 구성에서 트리구조로 각 동작사항을 분류함.

일종의 현상정보를 트리구조로 분류 관리함.

 

네임노드를 이용한 HA( 고가용성 )를 가능하게 하는 분산 코디네이터

고가용성 : 서버와 네트워크, 프로그램 등 정보시스템이 상당히 오랜기간동안 지속적으로 정상 운영이 가능한 성질

 

분산 환경에서 노드 간 조정자 역할을 수행

노드간 정보 공유, 잠금, 이벤트 등의 기능 수행함

 

특징

  • 다양한 활용성
  • 고가용성
  • 라이브러리
  • 뛰어난 처리량
  • 느슨한 상호작용 연결

 

  • 하나의 서버에만 서비스가 집중되지 않도록 분산해 동시에 처리함.
  • 하나의 서버의 처리 결과를 다른 서버들과 공유함
  • 분산 환경을 구성하는 서버들의 환경설정을 통합적으로 관리한다

 

  • Follower 서버들은 클라이언트로부터 받은 모든 업데이트 이벤트를 Leader에게 전달받는다.

 

쿼럼(Quorum)

합의체가 의사를 진행시키거나 의결을 하는 데 필요한 최소한도의 인원수

주키퍼 에서의 뜻

주키퍼 앙상블을 이루고 있는 모든 서버 중 과반수 서버로 이루어진 그룹을 말한다.

 


AVro

아파치의 에코 시스템이 다양한 기술과 언어로 구현되기 떄문에 각 언어간에 내부 객체를 공유해야 하는 경우가 있다.

Avro는 아파치의 하둡 프로젝트에서 개발된 원격 프로시저 호출 및 데이터 직렬화 프레임 워크이다.

 

프로시저 

SQL기반에서 데이터 간의 Sumation작업을 진행한 것을 프로시저라고 하고 이것을 SQL에 저장할 수 있다.

JAVA APP에서 요청한 데이터를 보내주는것 -= 원격 프로시저 콜

프로시저를 하지 않으면, 100만건의 데이터를 처리한다고 했을 때 SQL자체에서 처리하지 않으면 데이터를 전달 받고 작업을 진행하는데 프로시저를 통해 데이터의 저장장소에서 연산작업을 할 수 있다.

 

특징

Primitive Data Type 원시데이터 자료형

Complex Data Type 복합 데이터 자료형

 

Avro 작동방식

원시 데이터를 가져와 C# Avro 라이브러리를 사용하여 원시 데이터를 Avro 개체로 변환

Avro 데이터는 항상 스키마와 함께 직렬화 되므로 직렬화된 데이터 블록을 생성하기 위해 데이터 직렬화 단계를 수행한다.

데이터 블록은 .NET 4.5 내의 수축 옵션을 사용하여 

 

데이터 직렬화 역직렬화

 


Sqoop

RDBMS(My SQL, Oracle) 와 HDFS간 데이터를 전송하기 위해 사용하는 툴

하둡에 있는 데이터를 분석하기 위해 Export를 위해 사용하게 된다.

하둡 파일 시스템에서는 스키마가 없고 데이터와 키 벨류로 구분하게 되는데,

Sqoop은 데이터의 메타데이터를 가져오게 되고 메타데이터로 연결하게 된다.

 


Flume

데이터에 대한 흐름을 컨트롤하기 위해 만들어진 도구

소스에서 데이터 꺼내고 채널로 임시저장 싱크에 데이터 옮김

 

연속적으로 생성되는 데이터 스트림 [ 센서 데이터, 트위터 데이터, 로그 데이터, ]

수집 및 전송하고 HDFS에 저장할 수 있는 도구

 

구성방법

1소스 1채널 1싱크

쌓여있는 로그데이터를 소스가 계속 수집하고 싱크가 빼와서 HDFS에 담게되는 형식

멀티 에이전트 플로우 구성

여러개의 시스템을 거쳐서 최종 목표까지 가게되는 형식

 

Mahout(머하웃) 데이터를 핸들링한다.

분산처리가 가능하고 확장성을 가진 기계학습 라이브러리의 구현을 목표로 하였다.

 

하둡 에코시스템 이슈 : 하둡 에코시스템이 분산되어있는데, HDSF에 분할되어있는 데이터를 분석해야 하는데 기존의 데이터 분석방법은 단일 라이브러리를 기준으로 하였으나, 그 방법을 쓸수는 없다. 그래서 머하웃을 만들어냄

 

기능, = 추천, 클러스터링, 분류, 감독학습, 비감독학습

 

상호작용 하

728x90
작성일
2022. 10. 9. 03:54
작성자
WDmil
728x90

통신 프로토콜의 개념

  • 통신을 원하는 두 객체 간의 무엇을 어떻게 언제 통신할 것인지 서로 약속해 놓은 규정
  • 정보 통신에서 통신을 통제하는 규칙들을 규정

통신 프로토콜의 예시

표준화 개념

    • 1960년대 처음에는 IBM에서 제정한 프로토콜인 BSC와 SDLC를 많이 사용
    • 1976년 국제전신전자문위원회 CCITT는 프로토콜을 하나로 통합하여 사용을 권고
    • 국제 표준화 기구에서 OSI 참조 모델을 제정하여 발표
    • 지금은 인터넷 기술이 발전하면서 TCP/IP를 많이 사용

 

통신 프로토콜의 발전 과정


OSI 7계층 프로토콜

프로토콜과 참조 모델

OSI 7계층의 구성

  • 1계층 : 물리 계층
  • 2계층 : 데이터 링크 계층
  • 3계층 : 네트워크 계층
  • 4계층 : 전송 계층
  • 5계층 : 세션 계층
  • 6계층 : 표현 계층
  • 7걔층 : 응용 계층

OSI 7계층 프로토콜의 구성

  • 최상위 계층에서 발생한 데이터를 하위계층으로 차례로 전달함.
  • 처음의 데이터에 각 계층에서 전달받은 헤더정보를 추가하여 전달함.
  • 최하위 계층에 도달
  • 각 계층의 헤더에 해당하는 부분을 벗긴 후 최상위 계층으로 전달함.

7계층 프로토콜에서 데이터 전달 원리

OSI 7계층 상호간의 데이터 전달 원리

  • 캡슐화와 캡슐해제 과정을 거쳐 송신 측의 최상위 계층에서 보낸 원래의 데이터를 수신측의 최상위 계층으로 정확하게 전달
  • 캡슐화 = 데이터에 헤더를 씌우는 과정
  • 캡슐 해제  = 수신 측에서 각 계층의 헤더를 벗기는 과정\

 

OSI 7계층의 역활

1 물리계층 : 케이블 형태, 전송방식, 신호 형식 결정

2 데이터 링크 계층 : 접속 방식, 오류 검출 정립, 흐름제어, 프레임에 대한 도익화

3 네트워크 계층 : 접속 방식 유지, 오류 검출 정립, 흐름 제어

4 전송 계층 : 오류복구, 전송담당, 흐름제어, 네트워크 주소 지정

5 세션 계층 : 연결 접속과 동기 제어

6 표현 계층 : 데이터 재구성, 코드 변환 구문 검색

7 응용 계층 : 데이터베이스, 전자우편, 기타 응용 프로그램

 


물리 계층

  • OSI 참조 모델 중 최하위 계층에 해당하는 1계층
  • 상위 계층에서 내려온 비트열 데이터를 상대편에 전송할 수 있도록 통신기기 사이에 있는 물리적 매체를 이용해 연결을 확립하는 역할.
  • 데이터가 전송되는 동안 연결을 유지하거나 해제하는 기계적, 전기적, 기능적, 절차적 특성을 정의

 

  1. 기계적 : 핀 연결 규격 정의
  2. 전기적 : 신호의 전압정의 ( 0V = 0, 5V = 1 )
  3. 기능적 : 각 핀간의 의미를 부여하여 데이터 제어 타이밍 접지 등 수행
  4. 절차적 : 물리적 연결의 활성화, 비활성화 동작종료 절차 규정

물리계층의 역할

표준화한 규격으로는 RS-232C, RS-422, RS-485

표준은 ISO, CCITT에서 결정함.

CCITT 표준에서는 V와 X가 있음

V = 아날로그 데이터

X = 디지털 데이터

 

데이터 링크 계층

  • OSI 참조 모델에서 하위 계층인 2계층
  • 두 시스템 사이에서 오류없이 정보 데이터를 전송하려고 상위계층 에서 받은 비트열의 데이터로 프레임을 구성하여 하위 계층으로 전달함.
  • 대표 기능에는 노드대 노드 , 주소지정, 전송제어, 흐름제어, 오류제어, 동기화 등이 있음.
  • 채널상으로 데이터를 전송, 노드대 노드 전달을 책임

노드 대 노드

이웃 노드 간의 데이터 링크를 설정하는 기능. 헤더와 트레일러에는 발신지 주소, 목적지 주소 등 정보가 있음

 

전송제어

데이터의 송 수신시 데이터를 올바르게 전송하는 일련의 절차를 제어

전송제어 절차

  1. 회선 접속 : 정보 전송 전단계 회선 접속함
  2. 데이터 링크 확립 : 데이터의 송수신이 가능하도록 경로 구성
  3. 정보 전송 : 정보전송 시작
  4. 데이터 링크 해제 : 정보 전송 종료되면 그 내용을 수신측에 통보 후 링크 해제
  5. 회선 절단 : 연결된 회선 끊음

흐름 제어

회선 양쪽 시스템이 처리 속도가 다를 떄 데이터 양이나 통신속도가 수신측이 처리할 수 있는 능력을 넘어서지 않도록 조정하는 기능. 데드락을 피하기 위해 흐름 제어가 필요함.

정지 대기방식, 슬라이딩 윈도 방식 이 있음

  1. 정지대기 방식 : 한번에 프레임1개씩 전송 가능 수신측에서는 완료 후 다음을 받음
  2. 슬라이딩 윈도 방식 : 전송 시 한번에 프레임을 여러개 를 보내고 프레임 수신 완료 시 다음 여러개의 프레임을 보냄. 가장 대표적인 방식

오류 제어

오류는 통신 회선의 순간적인 절단현상, 통신회선의 잡음과 감쇄, 혼선, 군 지연, 찌그러짐, 펄스성 잡음, 에코현상, 장치의 기계적/구조적 원인, 전원 중단 등 전기적 원인 때문에 발생함.

물리 계층에서는 데이터를 주고 받기만 할 뿐 오류 여부는 검사 불가

오류 를 검출하여 수정 처리하는 기능은 데이터 링크 계층에서 담당

제어 방식 : 오류 무시, 반향 검사, 검출 후 재전송, 전진 오류 수정

검출 후 재전송(ARQ) : 패리티, 블록 합 검사, 순환 중복 검사

전진 오류 수정(FEC) : 해밍 부호 검사

 

오류 무시

텍스트, 숫자가 포함안된 간단한 문자 전송. 중요하지 않은 데이터에 사용

 

반향 검사

루프 방식이라고도 함. 전송데이터, 수신데이터 서로 비교하며 판단함.

궤환 전송 방식 : 수신 데이터 송신 측에 다시 전송받아 원래 데이터와 비교

연속 전송 방식 : 송신 측에서 두번이상 전송하여 수신측에서 이 데이터를 상호 비교

 

ARQ

오류가 발생 시 수신측은 송신측에 오류발생 사실을 알리고 재전송 요구

수신측 역채널 통해 데이터 잘 받았으면 ACK, 오류가 있으면 NAK 정보 전송

송신 측은 전송 중인 프레임 기억해야 함으로 버퍼가 필요. 버퍼의 크기는 프레임 크기, 개수로 결정

수신 측에서 오류를 검출하는 방식 : 패리티검사, 블록합 검사, 순환 중복 검사 등이 있음

 

정지 대기

형태가 가장 단순한 ARQ 받고 정지후 검사 후 다시 받기 반복함.

연속적

데이터 블록을 연속해서 보내는 방식.

GO - Back N ARQ 방식, 선택적 ARQ 방식이 있음

 

GO - Back N ARQ 방식

오류 발생 시 송신측에 NAK와 함꼐 오류 프레임 번호 통보함.

송신 측에서는 NAK에서 오류가 발생한 프레임 번호 확인 후 그 프레임부터 재전송함

 

선택적 ARQ 방식

GO - Back N ARQ의 단점 개선

오류 발생 시 NAK와 함께 오류 프레임 번호 통보 후 오류 방생한 프레임 번호를 확인한 후 해당 프레임만 다시 전송함.

실제로는 GO - Back N ARQ 방식을 더 많이 사용함.

 

적응적 방식

전송 효율을 최대한 높이려고 데이터 블록의 길이를 동적으로 변경시켜 전송하는 방식

수신 측이 수신한 데이터 블록을 감지하고 오류 발생률을 판단하여 송신 측에 통보함.

송신 측을 통신 회선의 오류 발생 등이 낮으면 긴 프레임을 높으면 짧은 프레임을 전송

통신 프로토콜에서는 잘 안씀

 

FEC

수신측에서 오류가 있음을 발견 시 해당 오류를 검출할 뿐만 아니라 오류 수정도 가능한 방식

연속적 데이터 전송이 가능하며 역채널을 사용하지 않는다는 장점이 있음

잉여 비트에 의한 전송 채널 대역이 낭비됨. 기기와 코드 방식이 복잡하다는 단점있음

FEC 코드 종류에는 크게 블록코드, 콘볼루션 코드로 구분됨.

 

728x90
작성일
2022. 10. 6. 00:07
작성자
WDmil
728x90

EditText

EditText Edit_text1 = new EditText(this);
Edit_text1.setText("입력해 주세요");
baseLayout.addView(Edit_text1);

이런 식으로 생성 할 수 있다.

 

Button

Button btn = new Button(this);
btn.setText("버튼 입니다.");
btn.setBackgroundColor(Color.rgb(239,234,53));
baseLayout.addView(btn);

이런식으로 버튼 또한 생성할 수 있다. 중간에 setBackgroundColor는 버튼의 색을 결정한다.

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View arg0) {
        Toast.makeText(getApplicationContext(),
                "코드로 생성한 버튼 입니다", Toast.LENGTH_SHORT).show();
    }
});

버튼을 눌렀을 때 동작하는 방식은 해당 방식으로 생성 할 수 있다.

 

TextView

TextView textview1 = new TextView(this);
textview1.setText(Edit_text1.getText().toString());
textview1.setTextColor(Color.rgb(175,90,159));
baseLayout.addView(textview1);

텍스트 뷰 또한 해당 방식으로 생성할 수 있다.

 

setVisibility

textview1.setVisibility(View.INVISIBLE);
textview1.setVisibility(View.VISIBLE);

어떠한 것을 보이게 또는 안보이게 만드는 함수이다. INVISIBLE하면 감춰지고 VISIBLE하면 보여진다.

728x90
작성일
2022. 10. 5. 21:52
작성자
WDmil
728x90

쉘의 기능과 종류

쉘의 기능

명령어 해석기 기능, 프로그래밍 기능, 사용하 환경 설정 기능

명령어 해석기 기능

  • 사용자와 커널 사이에서 명령을 해석하여 전달하는 해석기와 번역기 기능
  • 사용자가 로그인하면 쉘이 자동으로 실행되어 사용자가 명령을 입력하기를 기다림 ->로그인 쉘
  • 로그인 쉘은 /etc/passwd 파일에 사용자 별로 지정
  • 프롬프트: 쉘이 사용자의 명령을 기다리고 있음을 나타내는 표시

프로그래밍 기능

  • 쉘은 자체 내에 프로그래밍 기능이 있어 반복적으로 수행하는 작업을 하나의 프로그램으로 작성 가능
  • 쉘 프로그램을 쉘 스크립트

사용자 환경 설정 기능

  • 사용자 환경을설정할 수 있도록 초기화 기능 제공
  • 초기화 파일에는 명령을 찾아오는 경로를 설정하거나, 파일과 디렉터리를 새로 생성할 떄 기본 권한을 설정하거나, 다양한 환경 변수 등을 설정

쉘의 종류

본쉘, 콘쉘, C쉘, 배시 쉘, 대시 쉘

 

본쉘(Bourne shell)

  • 유닉스 V7에 처음 등장한 최초의 쉘
  • 명령 이름은 sh
  • 초기위 본쉘은 단순하고 처리속도가 빨라서 많이 사용되었고, 지금도 시스템관리 작업을 수행하는 많은 쉘 스크립트는 본쉘을 기반으로 하고 있음
  • 히스토리 엘리어스 작업제어 등 사용자 편의기능 제공불가

C쉘(C Shell)

  • 캘리포니아 대학교 에서 빌 조이 가 개발
  • 2BSD 유닉스에 포함되어 발표
  • 본 쉘에는 없던 엘리어스나 히스토리 같은 사용자 편의 기능을 포함
  • 쉘 스크립트 작성을 위한 구문 형식이 C언어와 같아 C쉘이라는 기능을 가짐
  • C쉘의 명령 이름은 csh

콘 쉘 (Korn shell)

  • 1980년대 중반 AT&T 벨 연구소의 데이비트 콘이 콘 쉘을 개발
  • 유닉스 SVR4에 포함되어 발표
  • C쉘과 달리 본 쉘과의 호환성을 유지하고 히스토리, 엘리어스 기능 등 C쉘의 특징도 모두 제공하면서 처리속도도 빠름
  • 콘 쉘의 명령 이름은 ksh

배시 쉘(bash shell)

  • 본쉘을 기반으로 개발된 쉘로서 1988년 브레인 폭스 가 개발
  • 본 쉘과 호환성을 유지하면서 C쉘, 콘 쉘의 편리한 기능도 포함
  • 배시 쉘의 모든 버전은 GPL라이선스에 의거하여 자유롭게 사용 가능
  • 리눅스의 기본 쉘로 제공되고 있어 리눅스 쉘로도 많이 알려짐

대시 쉘(Dash shell)

  • 본 쉘을 기반으로 개발된 쉘로 POSIX 표준을 준수하면서 보다 작은 크기로 개발
  • 우분투 6.10부터 본 쉘 대신 대시쉘 사용

 

쉘 확인법

  1. 프롬프트 모양 참조
    • 본 쉘, 배시 수레, 콘 쉘의 기본 프롬프트 : $
    • C쉘의 기본 프롬프트 : %
  2. 사용자 정보 확인 : /etc/passwd 파일
    • 사용자정보의 가장 마지막에 나온 /bin/bash가 기본 쉘

쉘 기본 사용법

기본 쉘 바꾸기

chsh
기능 사용자 로그인 셸 을 바꾼다
형식 chsh[ 옵션 ] [ 사용자 명 ]
옵션 -s shell : 지정하는 셸로 로그인 셀을 바꾼다
-l : /etc/shells 파일에 지정된 셸을 출력한다.
사용 예 chsh -l
chsh -s /bin/sh user1
chsh

바꾸려는 셸은 절대 경로로 지정

로그인 쉘과 서브 쉘

  • 프롬프트에서 다른 쉘을 실행 할 수 있는데 이를 서브 쉘 이라 함
  • 서브 쉘은 또다른 서브 쉘 생성 가능
  • 서브 쉘을 종료하는 명령은 ^d( +d), exit등 사용
  • 서브 쉘이 종료되면 서브 쉘을 실행했던 이전 쉘 환경으로 복귀
  • 로그인 쉘에서 로그아웃하면 접속 해제

쉘 내장 명령

  • 쉘은 자체적으로 내장 명령을 가지고 있음
    • 명령 예 : cd
  • 쉘 내장 명령은 별도의 실행 파일이 없고 쉘 안에 포함
  • 일반 명령의 경우
    • 실행 파일은 바이너리 파일임으로 cat명령으로 파일의 내용을 확인할 수 없다.

 

배시 쉘의 출력 명령

echo

echo
기능 화면에 한줄의 문자열을 출력한다
형식 ehco [ -n ] [ 문자열... ]
옵션 -n : 마지막에 줄바꿈을 하지 않는다.
사용 예 echo
echo text
echo -n text

 

printf

%지시자와 \문자를 이용하여 출력형식을 지정 가능

printf  
기능 자료를 형식화 하여 화면에 출력한다
형식 printf 형식 [ 인수... ]
옵션 %d, \n등 C언어의 printf함수 형식을 지정한다
사용 예 printf text
printf "text\n"
printf "%d\n" 100

 

특수문자 사용하기

  • 사용자가 더욱 편리하게 명령을 입력하고 실행할 수 있도록 다양한 특수문자를 제공
  • 주요 특수 문자는 *, ?, |, ., [], ~, '', "", '" 등
  • 명령을 입력하면 쉘은 먼저 특수 문자가 있는지 확인하고 이를 적절한 형태로 변경한 후 명령을 실행
  • 특수 문자 * [ 별표 ]
  • 임의의 문자열을 나타내는 특수문자로 0개 이상의 문자로 대체
사용 예 의미
ls * 현재 디렉터리의모든 파일과 서브 디렉터리를 나열한다 서브 디렉터리의 내용도 출력한다.
cp */tmp 현재 디렉터리의 모든 파일을 /tmp 디렉터리 아래로 복사한다
ls -F t* t, tmp, temp와 같이 파일명이 t로 시작하는 모든 파일의 이름과 파일 종류를 출력한다 t도 해당한다는데 주의한다.
cp*.txt../ch3 확장자가 txt인 모든 파일을 상위 디렉터리 밑의 ch3 디렉터리 로 복사한다.
ls -l h*d 파일명이 h로 시작하고 d로 끝나는 모든 파일의 상세정보를 출력한다. hd, had, hard, h12345d 등 이 조건에 맞는 모든 파일의 정보를 볼 수 있다.

 

특수문자 ?와 [ ]

  • 하나의 문자를 나타내는 데 사용
  • ?는 길이가 1인 임의의 한 문자를, [ ] 는 괄호 안에 포함된 문자 중 하나를 나타냄
사용 예 의미
ls t*.txt t 다음에 임의의 한 문자가 오고 파일의 확장자가 txt인 모든 파일의 이름을 출력한다. t1.txt, t2.txt, ta.txt.등이 해당된다. 단, t.txt는 제외한다.
ls -l tmp[135],txt tmp 다음에 1,3,5 중 한글자가 오고 파일의 확장자가 txt인 모든 파일의 이름을 출력한다. tmp1.txt, tmp3.txt, tmp5.txt. 파일이 있으면 해당파일의 상세 정보를 출력한다. tmp.txt 는 제외된다.
ls -l tmp[1-3].txt [1-3] 은 1부터 3까지의 범위를 의미한다. 따라서 ls -l tmp[123].txt와 결과가 같다. tmp1.txt, tmp2.txt, tmp3.txt 파일이 있으면 해당 파일의 상세정보를 출력한다.
ls [0-9]* 파일명이 숫자로 시작하는 모든 파일 목록을 출력한다.
ls [ A-Za-z]*[0-9] 파일명이 영문자로 시작하고 숫자로 끝나는 모든파일 목록을 출력한다.

 

특수 문자 ~와 -

  • ~와 -는 디렉터리를 나타내는 특수 문자
  • ~만 사용하면 현재 작업 중인 사용자의 홈 디렉터리를 표시하고 다른 사용자의 로그인 ID와 함께 사용하면 해당 사용자의 홈 디렉터리 표시
  • -는 cd 명령으로 디렉터리를 이전하기 직전의 작업 디렉터리 표시
사용 예 의미
cp *.txt~/ch3 확장자가 txt인 모든 파일을 현재 작업 중인 사용자의 홈 디렉터리 아래 tmp 디렉터리로 복사한다.
cp ~user2/linux.txt. user2 라는 사용자의 홈 디렉터리 아래에서 linux.txt 파일을 찾아 현재 디렉터리로 복사한다.
cd - 이전 작업 디렉터리로 이동한다.

 

특수문자 ;와 |

  • ;과 |는 명령과 명령을 연결
  • ;은 연결된 명령을 왼쪽부터 차례로 실행
  • |는 왼쪽 명령의 실행 결과를 오른쪽 명령의 입력으로 전달
사용 예 의미
date;ls;pwd 왼쪽부터 차례대로 명령을 실행한다. 즉, 날짜를 출력한 후 현재 디렉터리의 파일 목록을 출력하고, 마지막으로 현재 작업 디렉터리의 절대 경로를 보여준다.
ls -al/ | more 루트 디렉터리에 있는 모든 파일의 상세 정보를 한 화면씩 출력한다. ls -al / 명령의 결과가 more 명령의 입력으로 전달되어 페이지 단위로 출력되는 것이다.

 

특수 문자 ' '와 " "

  • ' '와 " " 는 문자를 감싸서 문자열로 만들어주고, 문자열 안에 사용된 특수 문자의 기능을 없앰
  • ' ' 는 모든 특수 문자를, " "는 $, ``,\를 제외한 모든 특수 문자를 일반 문자로 간주하여 처리한다.
사용 예 의미
echo '$SHELL' $SHELL 문자열이 화면에 출력된다.
ehco "$SHELL" 셀 환경 변수인 SHELL에 저장된 값인 현재 셀의 종류가 화면에 출력된다. 예를 들면 /bin/sh 이다

 

특수 문자 ` `

  • 쉘은 ` ~~~` 로 감싸인 문자열을 명령으로 해석하여 명령의 실행 결과로 전환
사용 예 의미
echo "Today is `date`" `date`는 명령으로 해석되어 date명령의 실행 결과로 바뀐다. 결과적으로 다음과 같이 화면에 출력된다.
Today is 2014. 02. 23. (일) 15:46:48 KST
ls /platform/`uname-m` uname-m 명령의 실행 결과를 문자열로 바꿔 디렉터리 이름으로 사용한다.

 

특수 문자 \

  • \ 은 특수문자 바로 앞에 사용되는데 해당 특수문자의 효과를 없애고 일반 문자처럼 처리
사용 예 의미
ls -l t\* t*라는 이름을 가진 파일의 상세정보를 출력한다. \없이 t*를 사용하면 t로 시작하는 모든 파일의 상세 정보를 출력한다.
echo \$SHELL $SHELL을 화면에 출력한다. echo '$SHELL'의 결과와 같다.

 

특수 문자 >, <, >>

  • 입출력의 방향을 바꾸는 특수 문자
사용 예 의미
ls -l >res ls -l명령의 실행 결과를 화면이 아닌 res 파일에 저장한다.

 


입출력 방향 바꾸기

표준 입출력 장치

  • 표준 입력 장치 : 쉘이 작업을 수행하는 데 필요한 정보를 받아들이는 장치 -> 키보드
  • 표준 출력 장치 : 실행 결과를 내보내는 장치 -> 모니터
  • 표준 오류 장치 : 오류 메시지를 내보내는 장치 -> 모니터

파일 디스크립터

  • 파일 관리를 위해 붙이는 일련 번호
  • 입출력 장치를 변경할 떄는 이 파일 디스크립터를 사용
  • 표준 입출력 장치를 파일로 바꾸는 것을 '리다이렉션(redirection)'이라고 함

출력 리다이렉션

  • > : 기존 파일의 내용을 삭제하고 새로 결과를 저장
  • >> : 기존 파일의 내용 뒤에 결과를 추가

파일 덮어쓰기 : >

>
기능 파일 리다이렉션( 덮어쓰기 )
평식 명령 1> 파일 이름
명령 > 파일 이름
  • 1: 파일 디스크립터 1번
  • 쉘은 >를 사용한 리다이렉션에서 지정한 이름의 파일이 없으면 파일을 생성해서 명령의 수행 결과를 저장
  • 파일이 있으면 이전의 내용이 없어지고 명령의 수행 결과로 대체

 

쉘 변수와 환경변수

  • 쉘의 환경을 설정하기 위한 값을 저장할 수 있도록 쉘 변수와 환경 변수를 제공
  • 쉘 변수 : 현재 쉘에서만 사용이 가능하고 서브 쉘로는 전달되지 않음( 지역변수 )
  • 환경 변수 : 현재 쉘 뿐만 아니라 서브 쉘로도 전달(전역 변수)

 

전체 변수 출력 : set. env

  • set : 쉘 변수와 환경변수 모두 출력
  • env : 환경 변수만 출력

주요 쉘 환경변수

환경변수 의미 환경변수 의미
HISTSIZE 히스토리 저장 크기 PATH 명령을 탐색할 경로
HOME 사용자 홈 디렉터리의 절대경로 PWD 작업 디렉터리 절대  경로
LANG 사용하는 언어 SHELL 로그인 셸
LOGNAME 사용자 계정 이름    

특정 변수 출력하기 : echo

  • 변수의 값을 출력할 떄는 변수 이름 앞에 특수 문자 $를 붙임

 

쉘 변수 설정하기

변수 이름과 문자열 사이에 공백이 있으면 안된다.

셸 변수 설정
형식 변수 이름=문자열
사용 예 SOME=test

 

환경 변수 설정하기 : export

먼저 쉘 변수를 정의하고, export 명령을 사용하여 이를 환경 변수로 변경

export  
기능 지정한 셸 변수를 환경 변수로 바꾼다.
형식 export [-n] [셸 변수]
옵션 -n : 환경 변수를 셸 변수로 바꾼다
사용 예 export, export SOME, export SOME=test

환경 변수를 다시 쉘 변수로 바꾸기 : export -n

  • SOME는 보이지만 SOME1은 보이지 않음.

변수 해제하기

unset
기능 지정한 변수를 해제한다
형식 unset 변수
사용 예 unset SOME

에일리어스 ( alias )

에일리어스는 우리말로 별명을 의미

기존의 명령을 대신하여 다른 이름 을 붙일 수 있도록 하는 기능

긴 명령 대신 짧은 명령을 만들어 사용 가능

여러 명령을 연결하여 하나의 명령으로 만들 수도 있음

자주 사용하는 옵션을 포함하여 새로운 이름을 붙여서 사용가능

alias
기능 에일리어스를 생성한다
형식 alias 이름 ='명령'
사용 예 alias : 현재 설정된 별칭 목록 출력
alias 이름='명령' : 명령을 수정하여 사용하는 경우
alias 이름='명령;명령2;...' : 여러 명령을 하나의 이름으로 사용하는 경우

에일리어스 헤제하기 : unalias

unalias
기능 에일리어스를 삭제한다.
형식 unalias 에일리어스

히스토리

사용자가 이전에 입력한 명령을 다시 불러 사용

history
기능 히스토리(명령 입력 기록) 를 출력한다
형식 history

명령 재실행 하기 : !

재 실행 방법 기능
!! 바로 직전에 수행한 명령을 재실행한다.
!번호 히스토리에서 해당 번호의 명령을 재실행한다.
!문자열 히스토리에서 해당 문자열로 시작하는 마지막 명령을 재실행 한다.

프롬프트 설정 변수 : PS1

프롬프트를 바꾸는 것은 환경 변수 PS1에 새로운 형태의 문자열을 지정하는 것

 

이스케이프 문자와 프롬프트 설정하기

  • \로 시작하는 특별한 문자가 이스케이프 문자
  • \u와 같이 \으로 시작하는 이스케이프 문자는 두 글자가 아니라 한글자로 처리
  • 이스케이프 문자는 화면에 문자 그대로 출력되지 않고 쉘이 문자의 의미를 해석하여 실행

프롬프트에서 사용할 수 있는 이스케이프 문자

이스케이프 문자 기능
\a ASC|| 종소리 문자(07
\d '요일 월 일' 형식으로 날짜를 표시한다
\e ASC||의 이스케이프 문자로 터미널에 고급 옵션을 전달한다.
\h 첫번째.(마침표) 까지의 호스트 이름
\H 전체 호스트 이름
\n 줄 바꾸기
\s 셸 이름
\t 24시간 형식으로 현재 시각을 표시한다
\T 12시간 형식으로 현재 시각을 표시한다
\@ 12시간 형식으로 현재 시각을 표시한다.
\u 사용자 이름
\v 배시 셸의 버전
\w 현재 작업 디렉터리(절대 경로)
\W 현재 작업 디렉터리의 절대 경로에서 마지막 디렉터리 명
\! 현재 명령의 히스토리 번호
\[ 출력하지 않을 문자열의 시작부분을 표시
\] 출력하지 않을 문자열의 끝 부분을 표시한다.

컬러 프롬프트 설정하기

컬러 프롬프트
형식 PS1='\[\e[x;y[nm\] 프롬프트\[\e[x;y;0m\]'

프롬프트 컬러 번호

컬러 글자 색 번호 배경 색 번호 컬러 글자 색 번호 배경 색 번호
검은색 30 40 파란색 34 44
빨간색 31 41 보라색 35 45
초록색 32 42 청록색 36 46
갈색 33 43 하얀색 37 47

프롬프트 특수 기능 번호

번호 기능 번호 기능
0 기본 색 7 역상
1 굵게 10 기본폰트
4 흑백에서 밑줄 38 밑줄 사용 가능
5 반짝임 39 밑줄 사용 불가능

 

728x90
작성일
2022. 10. 4. 23:27
작성자
WDmil
728x90

Select sub-images in an image

원하는 데이터의 이미지만 추출하기 위해 사용.

AND와 OR게이트를 활용하여 데이터를 추출함.

AND = 입력 데이터에 상관없이 검정 부분의 출력 데이터를 0으로 고정함 8bit = 0000 0000

흰부분의 AND필터값을 1로 하여 출력 데이터가 1일경우 1을 출력 아닐경우 0으로 바꿈.

 

OR = 흰 부분 필터값이 8bit로 1111 1111로 필터링함. 입력값과 상관없이 모든 데이터를 1로 바꾼다. 1 or 1 = 1 1 or 0 = 1

검정부분의 OR필터값을 0으로 하여 0000 0000로 필터링함


Calculates differnce between two images

위 이미지 상의 차이점을 확인할때 육안으로는 확인이 힘들다.

f가 왼쪽 h가 오른쪽 이미지의 배열이라고 한다면, g로 왼쪽 하단의 이미지가 나온다.

여기서 이미지의 픽셀 값의 차이를 알기 위해 히스토그램 평탄화 작업을 진행하면 우측 하단 이미지가 나타난다. 육안으로는 확인하기 힘든 픽셀간의 데이터 정확도 차이를 알 수 있다.


Adjustemnt [-255,255] 조정

1. 값 [-255~ 255 ] 사이의 값에 255를 더해준 후 2로 나눠준다. [ 0~ 255 ]

2. min, max를 구한 후 f-h=g가 나올 때 $ 255 \times \frac{g(x,y)-min}{max-min} $ 해준다. 0 ~ 255 까지의 노멀라이징이 된다.

3. 음수와 양수 상관없이 절대값을 씌워준다.


Spatial Filtering Methods [ 공간 필터링 ]

CNN = Convolutional Neural Network 기법을 활용한다.

gray level을 변경해주는 기법이다. neighborhood pixels 즉, 조정하려는 픽셀 위치의 이웃한 픽셀값을 사용하여 조정해주는 것이다.

 

기존 gray level 을 변경해주는 기법은 T(x,y)의 값만을 이용해서 바꿔주는 기법이나, Spatial Filtering 기법은 주변 픽셀을 활용한다.

 

지정된 픽셀의 주변 픽셀을 이용하여 지정픽셀을 조정해준다.

Mask, Kernel 필터링 이라고도 부른다.

지정된 픽셀을 제외한 3X3의 데이터인 8픽셀이  neighborhood pixels 이다.

이웃한 픽셀영역을 3X3 또는 5X5 로 지정하여 사용한다.

 

Spatial filtering = 필터링 하는 데이터가 공간데이터 일때를 이야기한다.

 

 

계산을 위한 마스크 영상 상수 [ 커널, 윈도우 라고도 한다. ]

w1z1 + w2z2 ..... + w9z9 값이 중앙값이 된다.

바로 옆 픽셀을 값으로 잡아도 똑같이 작업하면 된다.

그러나 이렇게 작업을 우측으로, 다시 밑으로 다 해버리면 외곽은 0이 되어버리는데 이것을 매꾸려면 padding이라는 작업을 해야한다.

 

padding 종류

padding = 외곽의 빈 부분을 채워넣어 주는것.

Zero Padding = 외곽부분을 0으로 채워넣어 놓는것

Replication Padding = 외곽부분을 가장 바깥부분으로 채워넣는것

 

외곽부분을 패딩으로 한픽셀을 다시 생성하여 진짜 외곽에 Mask 필터링을 한다.

 

만약 mask weight가 5X5라면, 채워넣어야 하는 padding 의 갯수는 5/2=2 [ 소숫점 버림 ] 즉, 위 아래 좌우로 2칸씩을 Padding하여 작업하면 된다.

 

래스터 스케닝 = 다 계산 후 우측으로 한칸 옮기고 끝에 도착했을 경우 좌측 첫번째로 이동후 한칸 내리고 다시 끝까지 가고 를 반복하는것.

 

728x90
작성일
2022. 9. 27. 23:11
작성자
WDmil
728x90

WSL2

Windows Subsystem for Linux 2 의 줄임말로 윈도우 가상화 기능을 활용하여 윈도우 상에서 리눅스를 사용할 수 있게 해줍니다. 가상머신으로 윈도우를 사용하는 것이 아닌 윈도우 시스템과 통합되어 하나의 머신처럼 사용 할 수 있게 활용하는것이 가능합니다.

 

기존 Windows 10 Home 에서는 가상화 기능을 지원하지 않아 Docker나 다른 가상화 프로그램을 이용할 수 없었으나, WSL2 가 릴리스되면서 Windows 10 Home 에서도 가상화 프로그램을 사용할 수 있게 되었습니다.

 

1. PC정보 확인하기

 

검색창에서 PC 정보를 확인한다.
버전정보를 확인한다.

WIndows 사양에서 현재 버전을 확인합니다.

버전이 20H1, 20H2, 21H1 혹은 그보다 높은 버전인지 확인해야합니다.

만약 낮은 버전이라면, WIndows Update 로 최신버전으로 업데이트 해주셔야 합니다.

 

2. 터미널 실행

WSL2의 설치를 위해서는 가상 터미널을 이용해야 하는데

Windows Terminal 또는 PowerShell로 작업을 진행합니다.

관리자 권한으로 실행 해주어야 합니다.

관리자 권한으로 실행한다.

3. 터미널 명령어 입력

DSIM(배포 이미지 서비스 및 관리) 명령어로 Micosoft-Windows-Subsystem-Linux 기능을 활성화 합니다.

$ dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

Deployment Image Servicing and Management tool
Version: 10.0.19041.844

Image Version: 10.0.19044.2006

기능을 사용하도록 설정하는 중
[==========================100.0%==========================]
The operation completed successfully.

그 이후 VirtualMachinePlatform 기능을 활성화합니다.

$ dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Deployment Image Servicing and Management tool
Version: 10.0.19041.844

Image Version: 10.0.19044.2006

기능을 사용하도록 설정하는 중
[==========================100.0%==========================]
The operation completed successfully.

사용하는 터미널이 관리자권한이 아닐경우 작업에 실패합니다.

 

4. WSL2 Linux 커널 업데이트

https://learn.microsoft.com/ko-kr/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package

x64 머신용 최신 WSL2 Linux 커널 업데이트 패키지를 다운로드 하여 설치합니다.

Linux Update Setup을 완료했을 때

그 후 터미널에 밑 명령어를 입력하여 사용할 WSL 버전을 2로 변경해줍니다.

$  wsl --set-default-version 2

 

WSL2 설치 끝

728x90

'프로그램 설치 가이드' 카테고리의 다른 글

Assimp  (0) 2023.11.02
Cmake  (0) 2023.11.02
DirectX_Windows ImGui  (0) 2023.10.18