반응형

유트브 인기가 커지면서 다양한 컨텐츠 영상이 증가하고 있습니다.

그중에서도 가장 쉽게 접할 수 있는 게임 영상은 정말 많습니다.

오늘은 게임 영상 관련해서 저작권 침해 내용에 대해서 알아보겠습니다.

저는 블로그를 하다 이미지 저작권 때문에 크게 힘든적이 있었습니다.

이후 부터 저작권에 대해서 매우 신중하게 생각하면서 블로그 및 유튜브를 운영하고 있습니다.


저작권이란

사람의 생각이나 감정을 표현한 결과물에 대하여 그 표현한 사람에게 주는 권리를 말합니다.


우리가 매일 접하는 게임 같은 경우는 저작권에 대해서 자유롭다고 많이 생각합니다.

 시대가 변하면서 게임 녹화에 대한 기능이 너무 쉽기 때문에 누구나 사용할 수 있어 그런것 같습니다.

기본적으로 유튜브에서는 게임 영상도 저작권이 있다고 확인할 수 있습니다.

support.google.com/youtube/answer/138161?hl=ko

 

비디오 게임 및 소프트웨어 콘텐츠 - YouTube 고객센터

도움이 되었나요? 어떻게 하면 개선할 수 있을까요? 예아니요

support.google.com

명시되어 있는 것처럼 라이선스에 문제가 없을 경우 수익을 창출할 수 있다는걸 확인할 수 있습니다.

자신이 구매한 게임을 진행하면서 유튜브 영상을 업로드해도, 저작권에 문제가 생길 수 있습니다.

게임 영상을 유튜브에 올리기 위해서는 공식 문의사항, 공식 메일 등 다양한 경로로 허가를 받아서 사용해야 합니다.

현재 공식적으로 부분 허용을 하고 있는 게임사 내용을 확인해보겠습니다.

store.steampowered.com/video_policy

 

Video Policy

 

store.steampowered.com

스팀에서는 공식적으로 부분 허용을 하고 있습니다.

모든 게임에 포함되는 내용이 아니기 때문에 스트리밍을 할 경우 추가적으로

허용여부를 개발사측에 정확하게 확인해야 합니다.

forums.ubisoft.com/showthread.php/773563-Ubisoft-policy-on-YouTube-videos-updated-Jan-2016-Forums?s=234f04c293eb61f409deb0a5d57b0aa8

 

Ubisoft policy on YouTube videos [updated Jan 2016] | Forums

Ubisoft policy on YouTube videos [updated Jan 2016] Ubisoft Video Policy Last updated: Jan. 2016 We consider ourselves extremely fortunate to have fans actively engaging and creating with our game content. Using the guidelines below, we encourage you to ma

forums.ubisoft.com

유비소프트에서도 공식적으로 스트리밍을 부분 허용하고 있습니다.

부분 허용은 스트리밍 게임에 문제가 될 수 있는 발언, 이미지, 추가적인 영상과 함께만 하지 않는다면

문제가 없다는 내용입니다.

cdprojektred.com/en/videopolicy

 

CD PROJEKT RED - Award-winning creator of story-driven role-playing games.

Award-winning creator of story-driven role-playing games

cdprojektred.com

CD Projekt RED는 적극적으로 게임 스트리밍을 허용하고 있습니다.

 

이처럼 기본적으로 게임 스트리밍 허용을 하고 있는 게임회사는 생각보다 많이 있습니다.

기본적으로 허용을 하고 있는 게임은 스트리밍 시 문제가 없을 가능성이 매우 높습니다.

 


스트리밍 허용 게임에도 주의해야할 점이 있습니다.


 

게임 스트리밍 시 게임에는 저작권을 허용했지만, 게임 상에서 나오는 음악 및 이미지는 별도 저작권으로 구분 될 수 있습니다.

즉 게임 스트리밍 시 특정 음악에 저작권이 별도로 있다면는 게임과 상관 없이 저작권 문제가 발생할 수 있습니다.

 

이처럼 저작권 문제는 매우 복잡하기 때문에 기본적으로 허용 여부를 반드시 판단하고 제작해야 추후 문제가 없습니다.

처음에 쉽게 시작하려고 하다가 한번에 모든게 물 거품이 될 수 있으니 모두 꼭 한번 확인하고 접근해주세요.

감사합니다.

 

 

 

 

 

 

 

반응형
반응형

어제 애드센스 광고를 등록하고 목록에 적용하려고 하니까

활성화가 안되는 문제가 발생했습니다.

블로그 스킨을 변경해서 그런거 같습니다.

애드센스 광고 설정 화면에서 목록 상단 광고를 클릭하면

치환자가 없다는 메시지를 출력합니다.

반응형
목록 상단 치환자를 직접 추가하라고 합니다.

목록 하단을 활성화하면 이번에는

반응형
스킨에 직접 추가하라고 합니다.

자 그럼 이제 이걸 어떻게 추가하는지 알아보겠습니다.

편집을 하기 위해서 설정 -> 꾸미기 -> 스킨 편집을 클릭해서 우측 상단에 있는 html 편집을 클릭해주세요.

'찾기'를 사용해서 s_list를 검색해주세요.

그럼 확인할 수 있습니다.

이 치환자가 목록 내용입니다.


먼저 위, 아래로 

반응형
 ,  
반응형
 치환자를 복사해주세요.

저장 후 다시 광고 설정에서 활성화를 클릭하면 정상적으로 잘 됩니다.

그런데 전 이상하게 목록 이름에 광고가 위, 아래로 출력됩니다.

그래서

반응형
치환자를 list 아래쪽으로 변경하니까

정상적으로 목록 내용에서 광고를 확인할 수 있었습니다.

광고 설정을 수정하기전에는 상단에 광고가 출력되지 않습니다.

치환자를 적용 후 정상적으로 광고가 출력됩니다.

티스토리는 html 코드를 편집해서 변경하는 방법이 매우 다양합니다.

처음 광고를 추가하시면 꼭 설정에 모든 항목을 활성화 해주세요.

감사합니다.

반응형
반응형

요즘 일이 바빠서 블로그를 관리 하지 못하고 있었습니다.

그런데 광고 수익을 보니 너무나 형편 없어 이상하다 생각해서 티스토리 '헉' 광고가 사라졌습니다.

너무나 당황해서 이것저것 찾아 보니 설정이 모두 변경된 겁니다.

그래서 오늘은 티스토리에 신규 구글 AdSense 추가 방법을 알아보겠습니다.

먼저 프러그인을 확인하면 기존에 사용하던 AdSense가 없습니다.

아무리 찾아봐도 처음보는 내용들 뿐입니다.

이것 저것 확인하다 "수익"이라는 메뉴를 확인할 수 있었습니다.

지금은 설정되어 있는 상태이지만 처음에는 연동하기 버튼만 활성화 되어있습니다.

"연동하기"를 클릭하고 구글 로그인을 완료하면 상세보기가 활성화 됩니다.

그리고 다시 페이지를 확인하니 그래도 광고가 안보입니다.

 

 

 

다시 메뉴를 확인하니까 수익 아래쪽에 "애드센스 관리" 메뉴를 클릭할 수 있습니다.

"광고 설정" 항목에서 원하는 광고를 켜주면 광고가 연동됩니다.

다시 확인하니까 정상적으로 광고를 확인할 수 있습니다.

처음 보는 기능이라서 조금더 사용해보고 좋은 정보 있으면 공유하겠습니다.

혹시 처음 광고가 안뜬다고 당황하지 마시고, 꼭 확인해주세요.

감사합니다.

반응형
반응형

오늘은 유튜브에 사용할 수 있는 음성파일을 만드는 방법에 대해서 알아보겠습니다.

음성파일을 만들 수 있는 다양한 사이트가 있지만 간단하게 다양한 언어를 적용할 수 있는 편리한 사이트가 있습니다.

아래 주소에서 확인 해보세요.

soundoftext.com/

Sound of Text는 무료로 영문은 100자, 한글은 50자까지 사용이 가능합니다.

기본적으로 다양한 언어를 지원해서 간단하게 사용하기 매우 편리합니다.

사용방법은 매우 간단합니다.

유튜브에 사용 글자를 "Text" 항목에 써주세요.

그리고 아래쪽에 잇는 Voice를 선택해주고, "Submit"를 클릭하면 아래쪽에 음성 파일이 생성됩니다.

지원하는 음성은 매우 많습니다.

한글은 조금 어색하지만 무료 버전이 이정도면 만족합니다.

 

한글 변환 파일입니다.

"PLAY"를 클릭하면 음성을 확인할 수 있습니다.

영문 변환 파일입니다.

"DOWNLOAD"를 클릭하면 음성을 다운로드할 수 있습니다.

조금더 높은 퀄리티 음성을 만들고 싶다면 월 5달러로 최대 25만자의 고품질 음성을

받을 수 있습니다.

사이트 중간에 메일과 정보를 확인할 수 있습니다.

하단에는 API 연동 소스를 Git에서 확인할 수 있습니다.

Sound of Text는 매우 심플하면서 간단하게 음성을 만들 수 있는 사이트입니다.

유트브에 텍스트와 음성을 함께 사용하고 싶다면 한번 체험해 보는 것도 좋다고 생각됩니다.

감사합니다.

반응형
반응형

SSD 및 하드 디스크를 구매하면 정상 동작 여부와 속도를 확인해야 합니다.

오늘은 SSD 및 하드 디스크 벤치마크 방법을 알아보겠습니다.

디스크 벤치마크 방법은 여러가지 있지만 대표적인 3가지 프로그램을 알아보겠습니다.

CrystalDiskMark

첫 번째 CrystalDiskMark는 아래 사이트에서 다운로드할 수 있습니다.

crystalmark.info/en/software/crystaldiskmark/

 

CrystalDiskMark

CrystalDiskMark is a simple disk benchmark software. Download Standard Edition Shizuku Edition System Requirements OS Windows XP/Vista/7/8/8.1/10Windows Server 2003/2008/2012/2016/2019 Architecture x86/x64/ARM64 Installer does not support Windows XP/2003(N

crystalmark.info

아래쪽으로 스크롤하면 다운로드 버튼을 확인할 수 있습니다.

CrystalDiskMark 외에도 다양한 프로그램이 있습니다.

ZIP 파일 압축을 풀면 4개의 실행파일이 나오는데 그중 PC 사양에 맞는 프로그램을 선택하면 됩니다.

CrystalDiskMark 실행화면입니다.

초당 최대 읽기와 쓰기 속도, 묶음 전송 속도, 순차 평균 읽기 쓰기 최고 속도, 저용량의 파일 읽기 쓰기 속도를 확인할 수 있습니다.

상단 왼쪽에 있는 "All" 버튼을 클릭하면 동작합니다.

실행 후 SSD 속도 측정 상태를 확인할 수 있습니다.

일반 SSD인데도 500MB/s 이상 속도를 확인할 수 있습니다.

AS SSD Benchmark

두 번째 AS SSD Benchmark는 아래 사이트에서 다운로드할 수 있습니다.

 

 

 

www.techspot.com/downloads/6014-as-ssd-benchmark.html

 

AS SSD Benchmark

Download AS SSD Benchmark. With AS SSD Benchmark you can determine your SSD drive's performance by conducting several specific tests.

www.techspot.com

우측에 있는 다운로드 버튼을 클릭하면 ZIP 파일을 받을 수 있습니다.

ZIP 파일을 풀어주면 프로그램을 확인할 수 있습니다.

하단 "Start"를 클릭하면 파일 읽기 쓰기 속도를 측정할 수 있습니다.

최종 Score가 평가되기 때문에 보기 편리합니다.

ATTO Disk Benchmark

마지막으로 ATTO Disk Benchmark는 아래 사이트에서 다운로드할 수 있습니다.

www.techpowerup.com/download/atto-disk-benchmark/

 

ATTO Disk Benchmark (4.01.0f1) Download

ATTO Disk Benchmark is a very popular harddisk and SSD benchmarking tool. Offers nice features to benchmark RAID setups.

www.techpowerup.com

상단 왼쪽에 다운로드 버튼을 클릭하면 ZIP 파일이 다운로드됩니다.

압축을 풀면 프로그램을 확인할 수 있습니다.

클릭으로 실행해주세요.

ATTO Disk Benchmark는 다양한 크기로 디스크 읽기 쓰기 속도를 측정합니다.

측정 결과는 512B ~ 64MB까지 확인이 가능합니다.

측정 결과 3개 프로그램 모두 500MB/s 이상 확인할 수 있습니다.

SSD 속도 측정을 정확하게 하기 위해서는 BIOS 내부 설정에서 CPU C-States 관련 항목을 모두 Disabled 해줘야 합니다.

CPU 전원 관리 옵션이 활성화되면 4K Q1T1 단일 측정 항목에 영향이 있을 수 있습니다.

또한 InSpectre를 사용해서 Meltdown 및 Spectre는 모두 NO로 설정해주세요.

www.grc.com/inspectre.htm

 

GRC | InSpectre

Easily examine and understand any Windows system's hardware and software capability to prevent Meltdown and Spectre attacks. Now determines and displays whether Intel has produced a microcode update patch for the Spectre vulnerability. “InSpectre” is a

www.grc.com

상기 내용은 일반 사용자분들은 안 하셔도 되지만, 정확한 측정을 원하신다면 꼭 확인해주세요.

최대 속도 측정이 필요할 경우는 USB 케이블 속도도 매우 중요합니다.

다양한 방법을 사용해서 구매한 SSD를 측정하면 정상 여부를 바로 확인할 수 있습니다.

감사합니다.

반응형
반응형

오늘은 코틀린을 사용해서 매주 부자를 만들어주는 로또 랜덤 번호 생성기를 구현해보겠습니다.

로또 번호는 45개의 번호 중 6개의 번호를 선택하는 규칙입니다.

로또 랜덤 볼을 개발하기 위해서는 먼저 로또 볼이 어떻게 구성되어 있는지 확인을 해야 합니다.

최종 로또 랜덤 볼 프로그램은 하단 버튼을 눌러 난수를 발생하여 겹치지 않는 6개의 번호를 생성하는 모습입니다.

로또 볼 이미지를 만들기 위해서 파워포인트를 사용해서 원형을 만들고 색상은 로또 사이트에서 확인하였습니다.

각 볼 이미지는 숫자는 자릿수가 2자리 이므로 위치를 45번 기준으로 정했습니다.

이미지는 아무렇게나 만들어 주세요. 중요한 건 45개의 이미지를 분리해야 합니다.

안드로이드 프로젝트는 "빈 프로젝트"로 설정하고,  코트린(Kotlin)을 선택해주세요.

"res -> drawable"를 선택하고 우클릭하여 "Show in Explorer"을 선택해서 폴더로 이동해주세요.

위에서 만든 45개의 이미지를 "drawable" 폴더에 복사해주십시오.

"drawable" 폴더에 이미지를 복사 후 Android Studio에서 "drawable" 하위에 자동으로 이미지가 등록됩니다.

자 그럼 이제 준비는 모두 완료되었습니다.

먼저 UI를 만들기 위해서 "layout" 하위 "activity_main.xml" 파일을 클릭합니다.

생성된 "<androidx.constraintlayout.widget.ConstraintLayout"를 삭제하고 "LinearLayout"를 새로 생성해줍니다.

ImageView, Button을 세로로 배치하기 위해서입니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

orientation 속성은 "vertical"로 변경해주세요.

이제 볼을 저장하기 위한 ImageView를 6개 생성해줍니다.

ImageView는 위치를 고정하기 위해서 "layout_margin" 속성을 30px 정도 주었습니다.

<LinearLayout
        android:id="@+id/ll"
        android:gravity="center"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <ImageView
            android:id="@+id/ballView1"
            android:layout_width="100px"
            android:layout_height="100px"
            android:gravity="center"
            android:layout_margin="30px"
            />
        <ImageView
            android:id="@+id/ballView2"
            android:layout_width="100px"
            android:layout_height="100px"
            android:gravity="center"
            android:layout_margin="30px"
            />
        <ImageView
            android:id="@+id/ballView3"
            android:layout_width="100px"
            android:layout_height="100px"
            android:gravity="center"
            android:layout_margin="30px"
            />
        <ImageView
            android:id="@+id/ballView4"
            android:layout_width="100px"
            android:layout_height="100px"
            android:gravity="center"
            android:layout_margin="30px"
            />
        <ImageView
            android:id="@+id/ballView5"
            android:layout_width="100px"
            android:layout_height="100px"
            android:gravity="center"
            android:layout_margin="30px"
            />
        <ImageView
            android:id="@+id/ballView6"
            android:layout_width="100px"
            android:layout_height="100px"
            android:gravity="center"
            android:layout_margin="30px"
            />
    </LinearLayout>

ImageView를 하나의 View로 고정하기 위해서 LinearLayout 내부에 구현했습니다.

가장 중요한 내용은 ImageView 속성 ID를 순차적으로 입력해야 합니다.

즉 "@+id/ballView1", "@+id/ballView2", "@+id/ballView3"~ "@+id/ballView6"순으로 지정해주세요.

마지막으로 랜덤 실행을 하기 위해서 버튼을 설정합니다.

 <Button
        android:id="@+id/btStart"
        android:gravity="center"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="시작"
        android:textSize="20sp" />

코드가 정상적으로 등록되었다면 Design에서 사진과 같은 것을 확인할 수 있습니다.

상단에 볼을 구현하기 위한 6개의 이미지가 있고 아래쪽에 실행 버튼이 위치합니다.

자 이제 "java" 폴더 하위에 있는 MainActivity.kt 파일을 클릭합니다.

먼저 볼을 저장할 수 있는 전역 변수를 선언합니다.

val BallList = ArrayList<Bitmap>()

BallList는 전역으로 사용하기 위해서 onCreate 위쪽에 선언해주세요.

"drawable"에 저장된 45개의 이미지를 한 번에 로드해서 BallList에 등록하는 코드입니다.

getResources()를 사용해서 저장된 정보 ID를 추출할 수 있습니다.

처음 저장된 이름을 순차적으로 저장하면 for문을 사용해서 한번에 ID를 추출해서 BITMAP을 생성할 수 있습니다.

생성된 BITMAP은 크기를 지정해서 BallList에 "add"함수를 사용해서 저장합니다.

 

 

 

Toast.makeText(this@MainActivity, "Create lottovall image.", Toast.LENGTH_SHORT).show()
        for( i in 0..44)
        {
            var bmp : Int = getResources().getIdentifier("lottoball" + (i + 1), "drawable", packageName )
            var bitmap:Bitmap = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), bmp),
                70,70, false)
            BallList.add(bitmap)
        }

상단 Toast 메시지는 실행 구간을 확인하기 위해서 추가했습니다.

이제 저장된 45개의 이미지를 랜덤 하게 생성해서 이미지를 저장해보겠습니다.

먼저 버튼 클릭 이벤트를 설정합니다.

코틀린은 JAVA와 다르게 매우 직관적으로 클릭 이벤트를 설정할 수 있습니다.

val btn : Button = findViewById<Button>(R.id.btStart)

        btn.setOnClickListener{
            Toast.makeText(this@MainActivity, "button start.", Toast.LENGTH_SHORT).show()

            var set: TreeSet<Int> = TreeSet()

            while(set.size < 6){
                val random = Random()
                val num = random.nextInt(45)
                set.add(num)
            }

버튼 ID를 확인하고 setOnClickListener 함수를 설정해줍니다.

랜덤 번호는 겹치면 안 되기 때문에 TreeSet 이진 검색을 사용해서 저장해주세요.

코틀린은 JAVA와 동일한 알고리즘 클래스를 사용할 수 있습니다. 

마지막으로 랜덤으로 설정된 6개의 번호를 ImgView와 연결해줍니다.

Toast.makeText(this@MainActivity, "ball check.", Toast.LENGTH_SHORT).show()

            var nCount = 0
            for( i in set )
            {
                var tmpID : Int =  getResources().getIdentifier("ballView" + (nCount + 1),
                    "id", packageName )
                val imgView = findViewById<ImageView>(tmpID)
                imgView.setImageBitmap(BallList.get(i))
                nCount++
            }

            Toast.makeText(this@MainActivity, "button end.", Toast.LENGTH_SHORT).show()

for문을 사용해서 저장된 Treeset 이미지 번호를 전역 저장된 BallList에서 확인합니다.

ImageView 호출은 nCount를 사용해서 6번 반복하게 설정했습니다.

로또 랜덤 볼 생성 프로그램 실행 사진입니다.

하단 버튼을 클릭하면 새로운 번호가 출력되는 것을 확인할 수 있습니다.

코틀린과 JAVA를 두 개다 구현해보니 확실하게 코틀린이 더 편리합니다.

문법적으로도 매우 깔끔해서 가독성이 좋습니다.

오늘은 코틀린을 사용해서 로또 랜던 볼 생성 프로그램을 만들어 보았습니다.

감사합니다.

반응형
반응형

오늘은 코틀린 형식 확인 및 null에 대해서 알아보겠습니다.

코틀린(Kotlin)은 형식을 유추하기 위해서 굳이 지정하지 않아도 변수 선언 시점에 알아서 확인을 합니다.

하지만 코드가 길어지면 변수 형을 짐작하기 쉽지 않을 수 있습니다.

코틀린(Kotlin) 형식 확인

기본적으로 "text" 변수를 선언하고 텍스트 및 숫자를 대입하면 형식을 자동으로 확인합니다.

즉 "text" 변수에 텍스트를 지정하면 숫자 대입이 불가능합니다.

사진처럼 "text" 변수에 숫자 대입 시 오류를 확인할 수 있습니다.

더욱 정확한 표기를 하기 위해서 코틀린은 자바와 다르게 변수 뒤쪽에 형식을 지정합니다.

var text:String

var intValue:Int

지정된 형식은 처음 선언된 변수로만 대입이 가능합니다.

처음 선언 시점 변수 타입을 저장 후 대입 시 확인하여 오류를 발생합니다.

안드로이드 스튜디오를 사용할 경우 변수 대입 시점에 오류를 바로 확인할 수 있습니다.

하지만 String과 Int를 공통으로 지정할 수 있는 방식이 있습니다.

변수 선언 시점에 "Any"로 지정하면 됩니다.

"Any"는 자바 객체 형식과 동일하며 코틀린에 모든 클래스는 "Any"를 명시적으로 상속하고 있습니다.

"Pair"를 사용해서 변수를 초기화할 경우도 2가지 형태로 가능합니다.

"to"를 사용해서 지정하는 방법과 Pair 생성자를 사용하는 방법입니다.

상기 방법은 map 형태에도 동일하게 사용됩니다.

코틀린(Kotlin) null 사용법

코틀린(Kotlin)은 자바 시스템에서 가장 흔한 버그 패턴 "NullPointerException"을 방어하게 설계되어 있습니다.

기본적으로 null 초기화를 허용하지 않습니다.

자바 시스템에서는 null 확인 코드 구조를 확인하기 위해서 일종의 보일러 플레이트 코드로 사용합니다.

코틀린에서는 null로 초기화할 경우 컴파일 오류가 발생합니다.

코틀린에서는 null을 사용하기 위해서는 "?"를 좌측에 선언해 줘야 합니다.

"?"를 사용하면 컴파일 오류가 발생하지 않는 것을 확인할 수 있습니다.

"?"를 사용해서 함수 호출 시 리턴 값 또한 "?" 적용하여 null 허용을 지정해야 합니다.

즉 "?" 사용 후 리턴 값을 확인하기 위해서는 동일한 "?"를 지정해야 정상적으로 컴파일 됩니다.

null 적용 함수 리턴되는 변수 확인이 조금 불편하다면 엘비스 연산자 "?:"를 사용하면 됩니다.

엘리스 연산자를 사용하게 되면 null일 경우 선언된 값을 리턴합니다.

이상으로 코틀린 변수 확인 및 null에 대해서 마치겠습니다.

감사합니다.

believecom.tistory.com/entry/20200902Kotlin-2?category=1109462

 

코틀린(Kotlin) 안드로이드 배우기 (변수)

오늘은 코틀린(Kotlin) 변수에 대해서 알아보겠습니다. 코틀린에서 변수는 var, val로 구분할 수 있습니다. var, val 사용법에 따라서 코드를 안전하게 개발할 수 있습니다. VAR 먼저 var에 대해서 알아��

believecom.tistory.com

 

반응형
반응형

오늘은 코틀린(Kotlin) 변수에 대해서 알아보겠습니다.

코틀린에서 변수는 var, val로 구분할 수 있습니다.

var, val 사용법에 따라서 코드를 안전하게 개발할 수 있습니다.

VAR

먼저 var에 대해서 알아보겠습니다.

var은 기본적으로 변수값을 변경하고 싶을 경우 사용하는 변수입니다.

기본적으로 var을 선언 후 초기화를 진행하면, 이후 재 초기화가 가능합니다.

소스에서 같이 "cpu" 변수를 처음 "AMD"로 초기화하고, 이후 "INTEL"로 재 초기화해도 문제가 되지 않습니다.

컴파일 후 Toast를 사용해서 출력하면 "intel"이 잘 출력됩니다.

VAL

두 번째 변수는 val입니다.

val은 기본적으로 읽기 전용 참조이며, 초기화 후 재 할당이 불가능합니다.

즉 "cpu1" 변수에 "intel" 할 당 후 "AMD"로 초기화할 경우 오류가 발생합니다.

val 변수는 final 한정자 자바 변수와 동일한 기능을 합니다.

val 선언 후 재 초기화하면 error를 확인할 수 있습니다.

val은 기본적으로 변경은 불가능하지만, 참조된 객체의 상태는 변경할 수 있습니다.

배열을 사용해서 재 초기화할 경우는 오류가 발생합니다.

 

 

 

하지만, val로 선언된 배열에 함수를 사용해서 변경은 가능하다는 뜻입니다.

배열에 선언된 "list"에 remove를 사용해서 변경할 경우 정상적으로 아이템이 삭제됩니다.

변경된 변수를 for 문을 사용해서 출력했습니다.

코틀린(Kotlin) 변수는 var, val로 구분해서 오류를 최소화할 수 있어 매우 편리합니다.

정확한 변수의 개념을 이해해고 사용하면 더욱더 안전한 코드를 개발할 수 있습니다.

이상으로 코틀린 변수에 배우기를 마치겠습니다.

감사합니다.

https://believecom.tistory.com/entry/Kotlin-1-ClickEvent-when?category=1109462

 

코틀린(Kotlin) 안드로이드 배우기 #1 - ClickEvent, when

오늘은 코틀린(Kotlin) 안드로이드 배우기 #1 - ClickEvent, when에 대해서 알아보겠습니다. 코틀린(Korlin)을 사용하기 위해서는 기본적으로 안드로이드 스튜디오를 설치하면 바로 사용이 가능합니다. ��

believecom.tistory.com

 

반응형
반응형

오늘은 docker(도커)를 Windows에서 설치하는 방법을 알아보겠습니다.

VMware와 같은 가상 OS를 사용할 경우 오류가 많이 생기므로 삭제 후 설치하는 걸 추천합니다.

먼저 도커에 대해서 알아보겠습니다.

기존 Virtual Machines에서 사용하는 Guest OS 방식은 리소스를 많이 사용하고 무거운 단점이 있습니다.

docker는 컨테이너 방식을 적용하여 같은 커널 공간을 공유하는 방식으로 기존 방식보다 리소스를 적게 사용하면서

가볍게 운영할 수 있습니다.

즉 서버에서 많은 작업을 하기 위해서 사용하기 편리한 소트프웨어입니다.

docker(도커)를 Windows에 사용하기 위해서는 기본적으로 Windows 버전이 Windows7 이상이어야 합니다.

설치 전 먼저 작업관리자에서 가상화 활성화 여부를 확인해 주세요.

가상화 활성화는 메인보드에서 VT, SVM 모드를 활성화하면 됩니다.

보드 CPU 설정 창에서 확인할 수 있습니다.

대부분 기본으로 설정되어 있으니 요 부분은 그냥 확인만 해주세요.

가상화 활성화 후 Hyper-V를 실행해야 합니다.

"프로그램 제거 또는 변경" 왼쪽에 있는 'Windows 기능 켜기/끄기'를 클릭하고 Hyper-V 항목을 모두 체크해 주세요.

Hyper-V가 정상적으로 동작해야 Docker(도커)가 실행됩니다.

아래쪽에 있는 가상 머신 플랫폼도 체크해 주세요.

Docker을 설치하기 전에 Docker ToolBox를 먼저 설치해 주세요.

https://docs.docker.com/toolbox/toolbox_install_windows/

 

Install Docker Toolbox on Windows

Docker Toolbox provides a way to use Docker on Windows systems that do not meet minimal system requirements for the Docker Desktop for Windows app. What you get and how...

docs.docker.com

Docker ToolBox가 정상적으로 설치되었다면 이제 Docker를 설치하러 아래 사이트로 이동합니다.

https://docs.docker.com/docker-for-windows/install/#download-docker-for-windows

 

Install Docker Desktop on Windows

Docker Desktop for Windows is the Community version of Docker for Microsoft Windows. You can download Docker Desktop for Windows from Docker Hub. This page contains information on installing Docker...

docs.docker.com

https://hub.docker.com/editions/community/docker-ce-desktop-windows/

Docker Desktop for Windows - Docker Hub

Docker Desktop for Windows By  Docker The fastest and easiest way to get started with Docker on Windows Edition Windows x86-64 Get Docker Desktop for Windows Docker Desktop for Windows is available for free. Requires Microsoft Windows 10 Professional or Enterprise 64-bit. For previous versions get D...

hub.docker.com

오른쪽 상단에 2개의 버전이 있습니다.

Get Stable 버전은 안정적인 업데이트 버전입니다.

Get Edge 버전은 매월 새 기능 제공 버전입니다.

안정적인 버전을 사용하기 위해서 Get Stable를 클릭하고 설치 파일을 다운로드해 주세요.

다운로드 파일을 클릭하면 Hyper-V 활성화 여부를 체크하고 설치해 주세요.

언 패킹되면서 Docker가 설치됩니다.

모든 설치가 완료되면 재부팅 메시지가 출력됩니다.

재부팅 해주세요.

 

 

 

재부팅 후 하단에 메시지를 확인할 수 있습니다.

아무 문제가 없다면 Docker(도커)가 정상적으로 설치된 겁니다.

도커 오류 해결법

전 다양한 VM을 사용해서 한 번에 설치가 안 되네요. ㅠㅠ

이제부터 여러 가지 방법을 사용해서 오류 메시지를 해결하러 출발합니다.

먼저 cmd를 관리자 권한으로 실행해 주세요.

첫 번째 오류는 Hyper-V가 정상적으로 설치 안된 상태입니다.

관리자 권한으로 강제 설치하겠습니다.

아래 커맨드를 실행해 주세요.

"DISM /Online /Enable-Feature /All /FeatureName:Microsoft-hyper-V"

설정 내용이 100% 되면 재부팅하게 됩니다.

설정 후 Docker 실행 시 "Cannot enable Hyper-V service"가 계속 출력된다면 정상적으로 Hyper-v가 실행 안된 상태입니다.

해결 방법은 PowerShell을 관리자 권한으로 실행합니다.

"bcdedit" 명령어를 실행하면 하단에 'hypervisorlaunchtype'이 off 되어 있는 상태입니다.

hypervisorlaunchtype이 off 되어 있는 상태는 대부분 다른 가상머신을 사용할 경우입니다.

"bcdedit /set hypervisorlaunchtype auto" 명령어를 사용해서 auto로 변경 후 재부팅합니다.

재부팅 후 정상적으로 docker(도커)가 windows에서 실행되는 걸 확인할 수 있습니다.

다른 가상 머신을 다시 사용하고 싶을 경우

"bcdedit /set hypervisorlaunchtype off" 설정 후 재부팅해 주세요.

처음에는 쉽게 생각하고 설치를 시작했지만, 다양한 제품을 사용하는PC라서 그런지 다양한 오류가 발생했습니다.

가장 좋은 방법은 가상 머신을 모두 삭제하고 설치를 권장합니다.

다음 시간에는 Docker(도커) 활용법에 대해서 알아보겠습니다.

감사합니다.

#docker, #도커, #도커windows설치, #가상화

반응형
반응형

유튜브에 막강한 힘으로 영상 편집에 인기가 끝이 질 않고 있습니다.

영상 편집에는 다양한 프로그램이 있으며, 그 기능도 매우 다양합니다.

오늘은 무료로 사용하면서 쉽게 영상 편집할 수 있는 곰믹스에 대해서 알아보겠습니다.

곰믹스는 무료 프로그램으로 아래 사이트에서 다운로드할 수 있습니다.

https://www.gomlab.com/download/

 

곰앤컴퍼니 소프트웨어 무료 다운로드 공식 사이트ㅣ곰랩

곰플레이어, 곰오디오, 곰믹스, 곰캠 등 곰앤컴퍼니에서 제공하는 다양한 PC 소프트웨어, 모바일 앱, 웹 서비스를 제공합니다.

www.gomlab.com

버전은 일반, 프로로 구분됩니다.

무료로 사용하고 영상을 만들고 싶다면 프로가 아닌 일반 버전을 받아야 합니다.

프로 버전은 다양한 템플릿을 사용해서 영상을 만들 수 있지만

인코딩 시 워터마크가 들어가서 안 좋습니다.

추가적으로 다양한 기능을 보고 싶다면 확인만 해보세요.

곰믹스 메인 뷰

베가스, 파이널 컷, 루마 퓨전 등 다양한 제품을 사용해봤지만 곰믹스가 가장 빠르고 편리했습니다.

매우 가볍게 영상을 편집할 수 있는 프로그램이니 전문적인 영상을 만들고 싶다면 패스해 주세요.

프로그램 설치 후 실행하면 사진과 같은 화면을 볼 수 있습니다.

크게 3개의 뷰로 정의하겠습니다.

영상 뷰 영상을 확인할 수 있는 창입니다.

템플릿 뷰 다양한 영상편집에 필요한 도구 창이라고 생각하시면 됩니다.

레이어 뷰 영상 편집에 필요한 소스 위치라고 생각하시면 됩니다.

5개의 레이어만 있어 전문적인 영상 작업은 조금 문제가 있습니다.

곰믹스 영상 추가

일단 영상을 편집하기 위해서 영상을 프로그램으로 드래그해주세요.

하단에 폴더 열기를 사용해도 상관없습니다.

영상을 드래그하면 미디어 소스 레이어에 영상이 추가됩니다.

추가적인 영상이 있다면 순차적으로 뒤쪽으로 영상이 연결됩니다.

영상 화면은 영뷰에 재생 버튼을 눌러서 확인이 가능합니다.

마우스 드래그를 사용해서 위치를 변경할 수 있습니다.

곰믹스 텍스트 추가

간단하게 영상에 텍스트를 넣어 보겠습니다.

템플릿 뷰에서 "텍스트/이미지" 탭을 클릭하고, 아래쪽에 있는 "텍스트 추가"를 클릭해 주세요.

그럼 텍스트 편집기가 활성화됩니다.

 

 

 

텍스트 편집기를 사용해서 텍스트를 다양하게 변경할 수 있습니다.

기본 고정 스타일이 10개 이상 있어서 바로 선택 사용이 가능합니다.

적용 버튼을 클릭하면 텍스트 레이어에 텍스트가 추가됩니다.

텍스트 출력 구간은 마우스를 사용해서 변경할 수 있습니다.

곰믹스 음악 추가

이번엔 영상에 꼭 필요한 음악을 추가해보겠습니다.

음악도 영상과 동일하게 드래그해서 추가해 주세요.

오디오 레이어에 음악이 추가되는 것을 확인할 수 있습니다.

음악도 영상과 동일하게 마우스로 길이 조절이 가능합니다.

곰믹스를 사용해서 수정된 영상은 출력 설정을 이용해서 인코딩이 가능합니다.

하단에 출력 설정 버튼을 클릭하면 "간편 설정", "코넥", "영상", "소리" 4가지 항목 탭을 확인할 수 있습니다.

"간편 설정"은 오디오 코덱 설정 및 영상 크기를 설정할 수 있습니다.

"코덱" 설정은 인코딩 시 코덱을 변경할 수 있습니다.

초보자는 코덱 상관없이 기본 설정을 사용하면 됩니다.

"영상" 설정은 화면 비율, FPS를 변경할 수 있습니다.

이것도 복잡하니까 패스합시다.

"소리" 설정도 기본적으로 사용할 일이 없기 때문에 패스하겠습니다.

영상, 텍스트, 음악이 모두 추가되었다면 이제 영상을 인코딩을 해보겠습니다.

하단 아래쪽에 "인코딩 시작" 버튼을 클릭하면 인코딩을 시작합니다.

기본적으로 설정이 되어 있어 바로 사용해도 영상 인코딩에는 아무 문제가 없습니다.

곰믹스는 매우 단순하면서도 다양한 기능이 있어 영상 편집 초보자에게는 좋은 프로그램이라고 생각됩니다.

영상 화질이 우선일 경우는 사용하기 버거울 수 있지만, 가벼운 영상을 손쉽게 만들고 싶다면 정말 무료로

사용하기 좋은 프로그램입니다.

다음에는 다양한 편집 기법에 대해서 알아보겠습니다.

이상으로 마치겠습니다.

감사합니다.

반응형

+ Recent posts