사용 버전: Python 3.6.8 사용 프로그램: Atom 1.40.1 x64 파이썬 urllib.parse.quote()에 대해서 알아보겠습니다. 괄호 안에는 string, safe, encoding, errors 인자가 들어갑니다. urllib.parse.quote()는 아스키코드 형식이 아닌 글자를 URL 인코딩 시켜줍니다. String 인자에는 string, bytes 형식이 들어갑니다. String 형식. Bytes 형식 Safe 인자에는 URL encoding에서 제외할 문자를 넣습니다. 기본으로 '/'이 설정되어 있습니다. Encoding 인자에는 인코딩 이름이 들어갑니다. string에 들어가는 문자와 맞지 않으면 오류가 나옵니다. 기본적으로 'utf-8'이 들어갑니다. Error 인자에는 'strict', 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace', 'namereplace', 'surrogateescape', 'surrogatepass'가 들어갑니다. 기본적으로 strict가 설정되어 있습니다. unicode 오류를 알려줍니다. Ignore의 경우 오류는 무시하고, 변환할 수 있는 것만 변환합니다. Replace는 에러 글자를 '?'로 변환해줍니다. 그리고 quote(...
사용 프로그램 : MuseScore 3 총보와 파트보에 대해서 알아보겠습니다. 총보는 모든 악기들의 보표가 표시된 악보입니다. 보표의 악기 순서는 다음과 같습니다. 목관악기, 금관악기, 타악기, 독주 악기(피아노, 하프), 현악기 파트보는 자신이 연주하는 악기에 대한 보표만 존재하는 악보입니다. 총보(score) 파트보(part) 위의 악보에서 Flute 1은 첫마디를 한 뒤, 31마디는 아무 음도 없습니다. 그래서 뒤에 31로 숫자 적힌 긴 막대로 표시됩니다. Flute 2의 경우는 앞 2마디를 쉬고, 연주하고, 뒤 29마디를 쉽니다. 끝. 카테고리: Music
일본어 문장부호를 알아보겠습니다. 우리나라 대한민국에서 사용하는 문장부호들과 비교해보겠습니다. 한국의 작은따옴표('')를 일본에서는 낫표(「」)로 표시합니다. 한국의 큰따옴표("")를 일본에서는 겹낫표(『』)로 표시합니다. 한국의 쉼표(,)를 일본에서는 모점(、)으로 표시합니다. 한국의 마침표(.)를 일본에서는 고리점(。)으로 표시합니다. 한국의 느낌표(!)를 일본에서는 고리점(。)으로 표시합니다. 한국의 물음표(?)를 일본에서는 고리점(。)으로 표시합니다. 일본에는 마침표, 물음표, 느낌표가 모두 고리점으로 표시되기 때문에 잘 생각해서 문장을 이해해야 할 것 같네요. 끝. 카테고리: 언어 공부
사용 버전: Android Studio 4.0.1 사용 언어: Kotlin 1.3.72 안드로이드 특정 SDK Version 설정하기를 해보겠습니다. 안드로이드 API에는 Level이 존재합니다. 안드로이드 버전에 따라 사용 가능한 level이 다릅니다. 아래의 경우 현재 SDK 최소 버전은 21인데, 사용하고자 하는 API는 23이라서 사용할 수 없다고 오류가 나온 상태입니다. 두 가지 해결 방법이 존재합니다. 하나는 app 용 build.gradle의 minSdkVersion을 23으로 수정하는 방법입니다. 위의 방법은 고작 API 하나 때문에 포기해야 하는 Android 버전이 많아집니다. 다른 하나는 23 이상인 버전에서만 작동되게 만드는 것입니다. Build.VERSION.SDK_INT를 사용하여 버전을 체크합니다. 위의 사진처럼 하게 되면, 낮은 버전에서는 위의 API가 작동하지 않고, 높은 버전에서만 작동되게 됩니다. 끝. 카테고리: Android
사용 버전: Python 3.7.6, OpenCV 4.2.0 파이썬 OpenCV 빈 화면 만들기를 해보겠습니다. 검정 빈 화면을 만들기 위해서는 numpy가 필요합니다. img1의 경우는 color로 불러들었을 때를 위한 빈 화면이고, img2의 경우는 grayscale로 불러들었을 때의 빈 화면입니다. 끝. 카테고리: Python, cv2
사용 버전 : 5.1.0 kicad 기존 회로도 수정 및 추가에 대해서 알아보겠습니다. 'Schematic Layout Editor'를 눌러줍니다. 아래의 화면이 나옵니다. '키보드 A'를 누릅니다. 우리가 추가한 소자가 보입니다. 적당한 위치에 놓습니다. 전원을 연결할 커넥터도 추가해줍니다. 적당한 위치에 놓습니다. 시멘트 저항을 지나는 LED 회로를 추가하겠습니다. LED를 복사합니다. '키보드 C' 이번엔 직접 전선 연결 말고, 레이블 기능을 사용해 보겠습니다. '키보드 L'을 누릅니다. 적당한 이름과 크기를 설정하고, 확인을 누릅니다. 다음과 같이 놔둡니다. '키보드 C'로 복사를 해서, 맞은편 LED에도 붙여줍시다. '키보드 R'로 회전 가능합니다. 'Label'기능은 같은 이름을 가진 것끼리 전선으로 연결해줍니다. 선이 복잡하게 있으면, 보기 힘들기 때문에 Label을 많이 사용합니다. 나머지 부분은 다음과 같이 똑같이 만들어주세요. 'Assign PCB footprints to schematic symbols'를 눌러줍니다. 'Annotate'를 누릅니다. 다음과 같은 창이 나옵니다. 'View selected footprint'를 누르면, footprint를 미리 볼 수 있습니다. 적당한 footprint를 설정해줍니다. 확인을 눌러줍니다. 'Perform electrical rules check'를 눌러줍니다. 'Run'을 누릅니다. 이상이 ...
사용 언어: Kotlin 1.9.0 사용 버전: Android Studio Hedgehog 2023.1.1 Patch 1 안드로이드 컴포즈 Hilt를 알아보겠습니다. Hilt는 DI(Dependency Injection, 의존성 주입)를 편하게 하기 위한 라이브러리입니다. Dagger라는 DI 라이브러리를 Android에 사용하기 편하게 수정한 게 Hilt입니다. 공식 사이트입니다. https://dagger.dev/hilt/ 참고 프로젝트: https://github.com/Jaehwa-Noh/Practice-Amphibians/tree/compose-hilt-amphibians-app 우선, 이러한 dependencies가 필요합니다. app 용 build.gradle에 현재 필요한 두 개만 적어줍니다. implementation("com.google.dagger:hilt-android:2.50") kapt("com.google.dagger:hilt-compiler:2.50") kapt를 인식하지 못하네요. Project 용 build.gradle로 갑니다. kotlin("kapt") version "1.9.0"을 적어줍니다. 그 후, app 용 build.gradle로 와서 kotlin("kapt")를 적어줍니다. 그리고 밑에 kapt를 적고 correctErrorTypes = true를 적어줍니다. Sync now를 눌러주세요. 간편하게 사용하기 위한 Hilt Gradle Plugin을 추가해 줍시다. project 용 build.gradle로 갑니다. id("com.google.dagger.hilt.android") version "2.50" apply false 추가해 줍니다. app 용 build.gralde로 갑니다. id("com.google.dagger.hilt.android") enableAggreg...
사용 프로그램 : MuseScore 3 음악 악상기호(Musical symbols)에 대해서 알아보겠습니다. 아티큘레이션(Articulation marks) 스타카토(Staccato)입니다. 스타카토는 원래 음표 길이보다 짧게 끊어서 치기 때문에 통통 튀는 느낌이 듭니다. 악센트(Accent)입니다. 악센트는 소리가 크게 나도록 음을 연주합니다. 테누토(Tenuto)입니다. 테누토는 원래 음표 길이대로 치거나 조금 더 길게 치는 것을 나타냅니다. 페르마타(Fermata)입니다. 페르마타는 음을 길게 유지합니다. 보통 두 배 정도라고 하네요. 반복과 종결(Repetition and codas) 트레몰로(Tremolo)입니다. 작대기 하나는 8분음표 속도로, 작대기 둘은 16분음표 속도로, 작대기 셋은 32분음표 속도로, 작대기 넷은 64분음표 속도로 반복해서 칩니다. 도돌이표(Repeat signs)입니다. 도돌이표 사이를 한 번 더 반복합니다. 만약 왼쪽 도돌이표가 없으면, 악보의 처음으로 돌아갑니다. 다카포(Da capo)입니다. 곡의 처음으로 돌아가라는 뜻입니다. 세뇨(Segno)와 달세뇨(Dal segno)입니다. 달세뇨는 세뇨가 있는 곳으로 가라는 뜻입니다. 코다(Coda)입니다. 반복할 시, 양옆에 코다가 있는 마디는 연주하지 않습니다. 위의 프로그램에서는 왼쪽 코다를 코다 기호 대신, To Coda로 표시하는군요. 끝. 카테고리: Music
사용 버전: Android Studio 4.1.1 사용 언어: Kotlin 1.4.20 안드로이드 Notification with Full Screen을 알아보겠습니다. 알람이나 전화 같은 경우 사용자에게 큰 화면으로 Notification을 보여줘야 합니다. 이때 사용하는 게, FullScreenIntent입니다. 기본 Notification이 필요합니다. https://shwoghk14.blogspot.com/2020/09/android-notification.html FullScreen으로 띄울 Activity를 하나 만듭니다. 저는 FullScreenNoonActivity로 만들었고 모습은 아래와 같습니다. 위의 Activity를 이용하여 NotificationCompat.Builder가 있는 곳에 fullScreenIntent를 만듭니다. setContentIntent는 설정할 필요 없습니다. setFullScreenIntent를 설정합니다. priority는 PRIORITY_HIGH가 필요합니다. 그리고 Android 10 이상의 경우 권한이 필요합니다. AndroidManifest.xml에 USE_FULL_SCREEN_INTENT를 추가합니다. 실행해봅시다. 분명 FullScreenIntent로 실행했음에도 Heads-up Notification이 나옵니다. 눌러봅시다. ...
사용 버전: OpenCV 4.5.2 사용 프로그램: Microsoft Visual Studio 2019 16.9.4 openCV 모폴로지 침식, 팽창하는 법을 알아보겠습니다. 영상의 팽창은 흰색 픽셀을 늘리는 역할을 합니다. 영상의 침식은 흰색 픽셀을 줄이는 역할을 합니다. 영상의 열기는 침식 후, 팽창을 실행하여 노이즈를 어느 정도 제거합니다. 영상의 닫기는 팽창 후, 침식을 실행하여 홀을 어느 정도 제거합니다. 사용할 이미지는 다음과 같습니다. 침식(Erosion)을 하기 위해서는 erode() 함수를 사용합니다. 괄호 안에는 InputArray(src), OutputArray(dst), InputArray(kernel), Point(anchor), int(iterations), int(borderType), const Scalar(&borderValue) 따위가 들어갑니다. src에는 원본 영상이 들어갑니다. dst에는 출력 영상이 저장될 Mat이 들어갑니다. kernel은 침식 영상을 만드는데 사용할 커널입니다. Mat()을 사용하면 기본 내장 커널을 사용합니다. anchor는 커널에서 값이 추출될 곳인데, 기본은 (-1, -1)로 가운데를 가리킵니다. iterations는 반복할 횟수입니다. borderType은 커널이 닿지 않는 가장자리 부분에 대한 정의입니다. 기본으로 BORDER_CONSTANT를 사용합니다. borderValue는 커널이 닿지 않는 가장자리 부분에 대한 값 정의입니다. 기본으로 morphologyDefaultBorderValue()를 사용합니다. 기본 커널로 5 ...
댓글
댓글 쓰기
궁금한 점은 댓글 달아주세요.
Comment if you have any questions.