우리는 별빛을 연구하고 세상을 밝게 비출 것입니다.(We study starlight, and shall brighten the world.)
수학 평균(Mean)
공유 링크 만들기
Facebook
X
Pinterest
이메일
기타 앱
수학 평균(Mean)에 대해서 알아보겠습니다.
평균은 수들은 중간 값을 구할 수 있습니다. 공식은 다음과
같습니다. 모든 항목의 합 / 모든 항목의 수 예를
들어보겠습니다. 1, 2, 3, 4, 5가 있다면, 1+2+3+4+5(모든 항목의 합) / 5(모든
항목의 수) 15/5 = 3 평균은 3이 됩니다. 끝.
사용 버전: 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(...
사용 버전 : 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'을 누릅니다. 이상이 ...
사용 버전: 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이 나옵니다. 눌러봅시다. ...
딩기 요트 명칭을 알아보겠습니다. 딩기 요트(Dinghy Yacht)란 엔진이 없고 바람으로 가는 작은 요트(1~3 인승)를 말합니다. 돛단배랑 비슷하다고 보면 되는데, 돛단배와의 차이점은 바람을 거슬러 올라갈 수 있다는 점입니다. 엔진이 없는데 바람을 거슬러 올라간다? 신기하죠? 어떤 장치가 있기 때문인데요. 아래 명칭을 보면서 어떤 장치가 바람을 거슬러 오를 수 있게 해주는 지도 알려드릴게요. 고화질 참고 자료를 기대하셨다면 아쉽게도 그런 거 없습니다. 위에가 대략적인 딩기 요트의 명칭을 적은 그림입니다. 메인 세일: 주 동력원입니다. 바람이 요트를 움직일 수 있게 만들어 줍니다. 마스트: 메인 세일을 다는 기둥입니다. 붐: 메인 세일 밑에 자리하며 메인 세일을 펼쳐지게 만드는 막대기입니다. 붐뱅: 붐과 마스트를 연결해 주는 시트(밧줄)입니다. 블록(도르래)들이 달려 있습니다. 바우: 배의 앞 부분을 말합니다. 대거보드: 바람을 거슬러 오를 수 있게 해줍니다. 옆으로 뒤집히면 요트를 세우는 역할도 합니다. 완전히 빠지지 않는 것은 센터보드라고 부릅니다. 메인시트: 메인 세일의 각도를 조정할 수 있는 시트(밧줄)입니다. 러더: 배의 방향을 조정하는 부위입니다. 틸러: 러더를 조작할 수 있는 조정장치입니다. 대략 이 정도가 있는 것 같아요. 위에서 말한 바람을 거슬러 갈 수 있게 해주는 게 바로 대거보드 였습니다. 돛단배는 이 대거보드가 없기 때문에 바람을 거슬러 갈 수 없답니다. 끝. 카테고리: Yacht
안드로이드 App architecture: State holders and UI state를 알아보겠습니다. 출처: https://developer.android.com/topic/architecture/ui-layer/stateholders UI(유아이) layer(레이어) 지침에서 논의했던 unidirectional data flow (UDF, 단방향 data 흐름)은 UI State(상태)를 생산하고 관리하는 것을 의미합니다. 또한 UDF를 관리하는 특별한 class를 state holder(홀더)라고 합니다. 당신은 state holder를 ViewModel 또는 일반 class에 적용할 수 있습니다. 이 문서에서는 좀 더 가까이에서 state holders 공부하고 UI layer에서의 역할을 다룹니다. 이 문서의 마지막에서 당신은 앱의 state를 어떻게 UI layer에서 다루는지 이해하게 됩니다. 이것은 UI state의 생성 pipeline(과정)을 다룹니다. 당신은 아래의 사항들을 이해하고 알게 됩니다. • UI layer에 존재하는 UI state의 type(타입) 이해 • UI layer에 있는 UI state의 logic(논리) type 이해 • ViewModel이나 일반 class 같은 state holder를 적정하게 선택하여 사용하는 방법 습득 ⊙ Elements of the UI state production pipeline: UI state 생성 과정의 요소; UI state와 logic이 UI layer를 정의합니다. • UI state: UI 상태; UI state는 UI를 설명하는 property(소유물)입니다. 여기에는 두 가지 종류의 UI state type이 있습니다. - Screen UI state(화면 유아이 상태)는 화면에 표시를 위해 필요한 것입니다. 예를 들면, NewsUiState class(클래스)에는 뉴스 기사와 UI를 표현하기 위한 다른 정보들이 있을 겁니다. 이 state는 보통 다른 la...
사용 버전 : KiCad 5.1.0 kicad 새로운 소자 추가하기에 대해서 알아보겠습니다. 추가할 소자는 시멘트 저항을 추가해 보겠습니다. 'Symbol Editor'를 눌러줍니다. 아래와 같은 화면이 나옵니다. 파일 - 'New Library...' 적당한 위치에 저장합니다. 만든 라이브러리를 KiCad의 어떤 프로젝트든 적용하고 싶다면, 전체 적용을 눌러주고, 이번 KiCad 프로젝트에만 적용하고 싶다면, Project를 눌러줍니다. 라이브러리에 추가된 것을 확인할 수 있습니다. 클릭 후, 'Create new symbol'을 눌러줍니다. 이름과 레퍼런스 이름을 적어주고, 확인을 누릅니다. 입력한 문구가 나타났습니다. 라이브러리에 수정 중인 상태는 색깔과 '*'문자가 생성됩니다. 우리가 추가할 시멘트 저항은 핀이 2 개입니다. 그리고, 네모난 형태를 가지고 있습니다. '키보드 M'으로 적당히 이동시켜줍니다. 'Add graphic rectangle to symbol body'를 눌러줍니다. 다음과 같이 네모를 그려줍니다. 네모 위에 마우스를 대고, '키보드 E'를 눌러줍니다. background를 선택해주고, 확인 누릅니다. 다음과 같이 네모에 색깔이 채워졌습니다. '키보드 P'를 눌러, 핀을 추가해줍니다. 저항이라, 'Pin name'은 안 적으셔도 상관없습니다. 'Pin number'은 'footprint'와 연결되기 때문에 잘 적어주셔야 합니다. 적당한 위치에 놔둡니다. 동일하게 한 번 더 합니다. 핀 회전은 '키보드 R'입니다. 저장해줍니다. 'Save a...
외동 휴게소(부산 방향) 추천 메뉴를 알아보겠습니다. 2021.03.12 해물순두부찌개 - 8,000 원 (추천) 옛날돼지고기김치찌개 - 8,000 원 (추천) 외동식소고기장터국밥 - 8,500 원 (베스트) 외동휴게소 정식 - 10,000 원 (프리미엄) 기소야돈가스우동정식 - 9,500 원 (추천) 양푼이동태매운탕 - 8,500 원 (추천) 경주천년표고애호박국밥 - 9,000 원 (베스트, 추천, 프리미엄) 통영굴왕만둣국 - 11,000 원 (프리미엄) 가족과 함께 여행 갈 때 사용하세요. 전국 고속도로 휴게소 메뉴는 [휴게소 메뉴] 앱에 있습니다. https://play.google.com/store/apps/details?id=starlight.jaehwa.restaurantarea 감사합니다. 끝. 카테고리: 휴게소 메뉴
사용 언어: Kotlin 1.9.22 사용 버전: Android Studio Iguana 2023.2.1 안드로이드 Room database FTS를 알아보겠습니다. FTS는 Sqlite에서 제공해 주는 Full-text search(글자 검색)를 위한 가상의 table(테이블)입니다. 아래는 Sqlite fts 문서입니다. https://www.sqlite.org/fts3.html 이 문서에 따르면 517,430개의 data에서 어떠한 글자를 찾는데 일반 table은 22.5초가 걸린 반면 FTS3에서는 0.03초 밖에 안 걸렸다고 하네요. Sqlite 기반인 Room 또한 FTS를 지원합니다. Android Room Fts4 문서입니다. https://developer.android.com/reference/androidx/room/Fts4 우리는 DBA(데이터베이스 관리자)가 될 만큼 지식이 많이 필요하지 않기 때문에 바로 Summary를 봐줍니다. Sqlite 문서입니다. 여기에 따르면 FTS tables는 일반 table과 같이 INSERT, UPDATE 그리고 DELETE로 관리합니다. 자료를 가져오는 것은 동일하게 SELECT를 사용합니다. 다른 점은 아래와 같습니다. 1. 다른 가상 테이블과 마찬가지로 색인을 만들거나 트리거를 붙일 수 없습니다. 추가적인 column은 ALTER TABLE로 추가하거나 이름을 변경할 수 있습니다. 2. rowId를 제외한 모든 columns는 TEXT 형식입니다. 3. rowId 대신 사용할 수 있는 docId를 제공합니다. 4. FTS MATCH 명령어로 full-text를 검색할 수 있습니다. 5. FTS auxiliary 함수를 제공합니다. snippet(), offsets() 그리고 matchinfo()가 있습니다. 6. 모든 FTS tables는 숨겨진 column이 있습니다. 테이블 이름과 동일하며, blob 타입으로 MATCH나...
서브넷 마스크에 대해서 알아보겠습니다. 제가 간편하게 IP를 구할 수 있는 Android 앱을 만들었습니다. https://play.google.com/store/apps/details?id=starlight.jaehwa.aboutsubnetmask 도움이 되면 좋겠습니다. (개선사항은 언제나 환영입니다) 서브넷 마스크는 네트워크를 잘게 나눠서 사용하기 위해서 만들어졌습니다. 표기법은 두 가지가 있습니다. 192.168.0.1/255.255.255.0 (10 진수 표기법) 192.168.0.1/24 (CIDR: Classless Inter-Domain Routing 표기법) 사용법은 다음과 같습니다. Subnet mask는 1인 부분은 Network를 나타내는 숫자이고, 나머지 0인 부분이 host의 개수입니다. 위의 경우 host의 개수는 2^8 = 256개입니다. 그런데, 0과 255는 지정된 IP이므로, 사용할 수 있는 host의 개수는 254개가 됩니다. 즉, 192.168.0.0 ~ 192.168.0.255까지 가 같은 Network가 되고, 192.168.0, 192.168.0.255를 제외한 모든 IP를 사용할 수 있습니다. 다른 경우를 보겠습니다. 위의 경우 host의 개수는 2^4 = 16개입니다. 범위의 처음과 끝인 0(처음)과 15(끝)는 사용하지 못하므로, 14개입니다. 제가 표시하지는 않았지만, 나머지 범위도 마찬가지 이유로 처음과 끝은 사용할 수 없습니다. ...
댓글
댓글 쓰기
궁금한 점은 댓글 달아주세요.
Comment if you have any questions.