사용 버전: 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(...
사용 버전 : KiCad 5.1.0 kicad PCB 만들기에 대해서 알아보겠습니다. 'PCB Layout Editor'를 눌러줍니다. 만약 아래와 같은 알림 창이 뜬다면, 선택은 자유입니다. 내용은 그래픽 카드를 사용할 것인지, 말것인지 입니다. 쓰면 속도도 좋고, 부드러워진다고 설명하고 있군요. 다음과 같은 창이 뜹니다. 'Update PCB from schematic'을 눌러줍니다. 'Match Method'와 설정을 적절히 선택해줍니다.(저처럼 하셔도 됩니다.) 그리고 'Update PCB'를 눌러줍니다. 다음과 같이 마우스를 따라다니는, footprint가 생성됩니다. 적당한 곳에 클릭합니다. footprint 이동은 '키보드 M', footprint 회전은 '키보드 R'입니다. 'Hide board ratsnest'를 켜면, 전선이 연결되어야 할 가이드 선이 표시됩니다. 'Ctrl + 좌 클릭'은 선택된 패드에 연결될 부분만 밝게 표시합니다. 해제 방법은 빈 땅에 'Ctrl + 좌 클릭'하면 됩니다. 옆에 있는 '레이어'는 PCB의 어느 영역에 그릴 것인지를 선택할 수 있게 해줍니다. F.Cu는 PCB 윗부분 전선 B.Cu는 PCB 뒷부분 전선 F.Paste는 PCB 윗부분 SMT 접착제 B.Paste는 PCB 뒷부분 SMT 접착제 F.Mask는 PCB 윗부분 패드 B.Mask는 PCB 뒷부분 패드 Edge.Cuts는 PCB의 전체 모양 F.SilkS는 PCB 윗부분 하얀 선 또는 글자 B.SilkS는 PCB 뒷부분 하얀 선 또는 글자 전선을 그려봅시다. 'Route tracks'를 눌러줍니다. 레이어를 보시면, F.Cu에 화살표가 있으니, 전선은 F.Cu 레이어에 그려집니다...
사용 언어: 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...
사용 버전 : 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'을 누릅니다. 이상이 ...
사용 버전: Python 3.7 운영 체제: Windows 10 Home x64 1909 사용 도구: Uncompyle6 포렌식 .pyc 파일 .py로 복구하기에 대해서 알아보겠습니다. 만약 여러분이 파이썬 파일을 지워버렸는데, .pyc 파일은 남아있다면 다시 복구할 수 있습니다. 보통 .pyc 파일은 수동으로 만들지 않는 이상 main 함수가 남아있지는 않습니다. 자동 생성되는 경우는 다른 python script를 참조할 때, 참조한 script가 pyc로 생성합니다. uncompyle6를 설치합니다. python -m pip install uncomply6 저는 해당 .pyc 파일을 사용하겠습니다. 아래 git에 들어가면 동일한 파일을 사용할 수 있습니다. https://github.com/shwoghk14/mnist_tensorflow/tree/master/Start%204/__pycache__ 사용법은 다음과 같습니다. cmd 창을 엽니다. uncompyle6 [복구할 .pyc 파일 이름] 완료되면, 다음과 같이 원본 py 내용이 나옵니다. uncompyle6 version python bytecode 버전 python 버전 file name compiled 날짜 Size 등의 중요한 정보와 함께 원본 python script가 출력됩니다. 해당 파일의 원본은 mnist_util.py입니다. 비교해 보시면 좋을 것 같네요. https://github.com/shwoghk14/mnist_tensorflow/tree/master/Start%204 끝. 카테고리: forensic [계수기] 앱 광고 외국: Hand Counter https://play.google.com/store/apps/details?id=starlight.jaehwa.handcounter 계수기 앱. 하나씩 개수를 셀 때 사용해보세요. ...
사용 버전: Android Studio 4.0.1 사용 언어: Kotlin 1.4.0 안드로이드 GDPR Consent 사용을 알아보겠습니다. GDPR Consent는 유럽경제지역(EEA)에 광고를 포함해서 앱을 출시한다면 꼭 필요한 사항입니다. Consent 또는 동의라고 명칭하겠습니다. 예전에는 다른 방법을 사용해서 동의를 얻었습니다.(Legacy가 되어 버림) 현재는 구글에서 Funding Choices를 만들어서 배포하고 있기 때문에 해당 기능을 사용해 봅시다. admob에 로그인해서 개인 정보 보호 및 메시지로 이동합니다. Funding choices로 이동을 누릅니다. 자신이 만든 앱들이 보입니다. GDPR 동의를 만들 앱을 누릅니다. 만들기를 누릅니다. 선택합니다. 적당한 메시지 이름을 적어주시고, 메시지 언어를 선택합니다. 마음에 드는 선택항목을 하나 고릅니다. 이런 미리 보기 창이 나옵니다. 옆에서 조절할 수 있습니다. 위에 있는 저장을 누릅니다. 예를 누릅니다. 게시를 누릅니다. 예를 누릅니다. 동의 세부정보를 누릅니다. 개인 정보처리 방침 URL에 개인 정보처리를 어떻게 하겠다는 걸 명시한 URL을 적어주세요.(예: 개인 정보 약관 보기 눌렀을 때 나오는 화면) 없으시다면 블로그나 이런 곳에 만드셔야겠죠? 연결된 공급업체를 눌러줍니다. 사실 어디 어디에 공급되는지 잘 모릅니다....
딩기 요트 명칭을 알아보겠습니다. 딩기 요트(Dinghy Yacht)란 엔진이 없고 바람으로 가는 작은 요트(1~3 인승)를 말합니다. 돛단배랑 비슷하다고 보면 되는데, 돛단배와의 차이점은 바람을 거슬러 올라갈 수 있다는 점입니다. 엔진이 없는데 바람을 거슬러 올라간다? 신기하죠? 어떤 장치가 있기 때문인데요. 아래 명칭을 보면서 어떤 장치가 바람을 거슬러 오를 수 있게 해주는 지도 알려드릴게요. 고화질 참고 자료를 기대하셨다면 아쉽게도 그런 거 없습니다. 위에가 대략적인 딩기 요트의 명칭을 적은 그림입니다. 메인 세일: 주 동력원입니다. 바람이 요트를 움직일 수 있게 만들어 줍니다. 마스트: 메인 세일을 다는 기둥입니다. 붐: 메인 세일 밑에 자리하며 메인 세일을 펼쳐지게 만드는 막대기입니다. 붐뱅: 붐과 마스트를 연결해 주는 시트(밧줄)입니다. 블록(도르래)들이 달려 있습니다. 바우: 배의 앞 부분을 말합니다. 대거보드: 바람을 거슬러 오를 수 있게 해줍니다. 옆으로 뒤집히면 요트를 세우는 역할도 합니다. 완전히 빠지지 않는 것은 센터보드라고 부릅니다. 메인시트: 메인 세일의 각도를 조정할 수 있는 시트(밧줄)입니다. 러더: 배의 방향을 조정하는 부위입니다. 틸러: 러더를 조작할 수 있는 조정장치입니다. 대략 이 정도가 있는 것 같아요. 위에서 말한 바람을 거슬러 갈 수 있게 해주는 게 바로 대거보드 였습니다. 돛단배는 이 대거보드가 없기 때문에 바람을 거슬러 갈 수 없답니다. 끝. 카테고리: Yacht
사용 프로그램 : MuseScore 3 총보와 파트보에 대해서 알아보겠습니다. 총보는 모든 악기들의 보표가 표시된 악보입니다. 보표의 악기 순서는 다음과 같습니다. 목관악기, 금관악기, 타악기, 독주 악기(피아노, 하프), 현악기 파트보는 자신이 연주하는 악기에 대한 보표만 존재하는 악보입니다. 총보(score) 파트보(part) 위의 악보에서 Flute 1은 첫마디를 한 뒤, 31마디는 아무 음도 없습니다. 그래서 뒤에 31로 숫자 적힌 긴 막대로 표시됩니다. Flute 2의 경우는 앞 2마디를 쉬고, 연주하고, 뒤 29마디를 쉽니다. 끝. 카테고리: Music
사용 버전: Kicad 5.1.4 저번 시간에 이어서 Freeroute를 사용해보겠습니다. 각 PCB 제조사마다 디자인 룰이란 것이 존재합니다. 우리는 그것에 맞추어서 선이나 구멍을 만들어줘야 합니다. 디자인 룰 설정을 합시다. 우선 PCB Layout Editor을 실행합니다. 파일 - Board Setup을 누릅니다. Design Rules - Net Classes를 누릅니다. 위의 창에서 디자인 룰을 설정합니다. '+'를 눌러 디자인 룰을 새롭게 만들든지, 기존의 Default를 변경하든지 편하신 대로 조정해줍니다. 유격: 선과 선 사이 간격 트랙 두께: 선 굵기 Via Size: Via 납 지름 비아 드릴: Via 구멍 지름 uVia Size: 모름 uVia Drill: 모름 dPair Width: 모름 dPair Gap: 모름 저는 Power Class를 추가하여, +5V와 GND에 Assign To Selected Nets로 한꺼번에 적용시켰습니다. 나머지 전선은 Default Class 적용을 받고, +5V와 GND만 Power class 적용을 받습니다. Ctrl + S로 저장을 한 번 해줍니다. 파일 - 내보내기 - Specctra DSN... 을 눌러줍니다. 적당한 위치에 dsn 파일을 저장합니다. NetBeans에서 Autoroute를 실행합니다. Open Your Own Design을 눌러, 아까 저장한 dsn 파일을 불러옵니다. Autorouter를 눌러줍니다. 전선 긋기, 최적화하기 순으로 진행되고, 완료가 되면, Postroute completed라는 문구가 나옵니다.전선 긋기나 최적화 중 마우스 왼쪽 버튼을 누르면, 그 상태로 정지됩니다. 최적화가 필요 없으면, 정지 후 바로 PCB에 사용하셔도 됩니다. File - Export Specctra S...
댓글
댓글 쓰기
궁금한 점은 댓글 달아주세요.
Comment if you have any questions.