일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- rx
- Observable
- list
- mvvm
- 동영상
- Animation
- Kotlin
- SwiftUI Tutorial
- google play
- MediaPlayer
- android13
- databinding
- Android
- RxKotlin
- node.js
- Koin
- MediaSession
- 인앱결제
- SWIFTUI
- node
- php
- 테스트 자동화
- MotionLayout
- Reactive
- junit
- Android 13
- GCP
- mysql
- paging
- PagingLib
- Today
- Total
목록전체 글 (142)
봄날은 갔다. 이제 그 정신으로 공부하자
서론해당 글은 Selenium을 사용해 UI 테스트 자동화 환경을 구축하는 것을 정리한 글입니다. UI 테스트 자동화에 Selenium을 사용한 이유는UI 테스트 자동화를 지원하는 솔루션은 많지만 사용할 만한 솔루션은 유료이고 또 대부분의 솔루션이 Selenium을 base로 만들어졌기에 인터넷에 관련 자료가 많아 굳이 유료 솔루션을 사용하는 것 보다는 Selenium을 직접 사용해 구현하는 것이 좋을 것 같아서 입니다. 이 글은 다음과 같은 순서로 구성됩니다.Selenium IDE 설치 (크롬 익스텐션)크롬 드라이버 다운로드UI 테스트 자동화 프로젝트 생성 (IntelliJ, JAVA, MAVEN)dependency 추가 (selenium, unit, assert)UI 테스트 자동화 코드 작성 (Sel..
GPS 관련 처리를 하다보면 사용자가 선택한 포인트가 영역내에 포함되어 있는지 체크해 별도의 처리를 해주어야 하는 경우가 있는데 이를 지원해주는 함수는 아래와 같습니다. function ptInPolygon($polygon, $point) { $p0 = end($polygon); $ctr = 0; foreach ( $polygon as $p1 ) { // there is a bug with this algorithm, when a point in "on" a vertex // in that case just add an epsilon if ($point[1] == $p0[1]) $point[1]+=0.0000000001; #epsilon ..
FFMPEG 설치 FFMPEG는 디코딩, 인코딩, 트랜스코딩, mux, demux, stream, filter 그리고 오디오와 비디오를 스트리밍 할 수 있는 크로스 플랫폼 솔루션으로 FFMPEG을 사용해 업로드하려는 미디어(동영상, 이미지)의 재생 시간 및 해상도 정보를 획득할 수 있습니다. 1. CLI이 HomeBrew를 사용해 ffmpeg 설치 >> brew install ffmpeg 설치되면 아래 경로에 ffmpeg가 설치됩니다. /opt/homebrew/Cellar/ffmpeg/6.0_1/bin 2. 서버의 코드 변경 없이 인식하게 하기 위해 /user/local/bin 폴더에 ffmpeg 심볼릭 링크를 생성해야 하지만 접근 권한 문제로 생성이 되지 않기 때문에 우선 아래와 같이 ..
// id로 Element를 가져온다.var articles = document.getElementById(“articles”);// element의 자식 노드가 있는지 확인한다.if(articles.hasChildNodes()) { var children = articles.childNodes; // 자식 노드 갯수만큼 반복한다. for(var i=0; i
파일을 다운로드할 때 일반적으로 아래와 같이 만듭니다.다운로드 하지만 다운로드 받으려는 파일의 host가 현재 사이트와 다른 경우, 일부 파일은 다운로드 되지만 브라우저가 지원하는 타입의 파일은 브라우저에서 직접 보여주는 문제가 발생합니다.이글은 이러한 문제를 해결하기 위한 방법에 대해 설명합니다. Blob(Binary Large Object) 형태로 다운로드 받기파일을 다운로드 받기 위해서는 아래와 같이 fetch()함수를 사용해 blob 형태로 다운로드 받아야 합니다.자세한 설명은 코드 내에 주석으로 설명합니다.fetch( FILE_DOWNLOAD_PATH, // 파일 다운로드 경로 {method: "GET"} ).then((res) => { // fetch() 함수 호출시 바로 호출되는 함수로..
서버를 올려놓고 서버가 잘 동작하나 확인해보니 뜬금없이 서버가 최소 하루에 한번은 다운되는 문제가 발생했습니다. 엥!!! 이게 뭐지... @_@ 서버 다운 에러 원인 파악 아래 명령어로 로그 출력해 원인을 파악해보니... $ sudo journalctl -u google-startup-scripts.service … -- Reboot -- Jul 05 08:40:46 newquiz-instance-1 systemd[1]: Starting Google Compute Engine Startup Scripts... Jul 05 08:40:46 newquiz-instance-1 google_metadata_script_runner[930]: Starting startup scripts (version 20230..
이번 글은 VM 인스턴스를 보다 효율적으로 사용하는 방법에 대해서입니다. 개발 서버로 사용하다보니 사용하지 않는 시간대에는 VM 인스턴스를 내려놓고 필요할 때만 켜는 방식으로 설정해 비용을 절감한다거나 아니면 이전 글에서 작성한 VM 인스턴스 재실행 시 자동 재시작 코드가 정상적으로 동작하는지 확인하고자 할 때에 사용할 수 있습니다. 이번 글은 아래 사이트를 참고하여 작성하였습니다. 참고 사이트: https://cloud.google.com/compute/docs/instances/schedule-instance-start-stop?hl=ko 일정 관리는 크게 세 부분으로 구분됩니다. 일정 생성 생성한 일정을 VM 인스턴스와 연결 서비스 계정에 필요한 권한 추가 1. 일정 생성 Compute Engine..
Compute Engine으로 VM 인스턴스를 생성하고 node.js로 웹서비스를 만들어서 띄우는 작업까지 완료하고 Cloud SQL 서버도 연동하고 Cloud Storage도 연동하고 작업하다보니 최소 하루에 한번은 웹서비스가 내려가 있는 것을 확인하게 되었습니다. 기본적으로 VM 인스턴스 이러저러한 이유로 재실행되면 웹서비스도 같이 자동으로 실행되어야 하므로, VM 인스턴스가 재실행되는 원인 분석은 차차 분석해보기로 하고... 우선 이번 글에서는 VM 인스턴스 재실행 시 node.js가 자동으로 재실행되도록 작업한 내용을 기록합니다. 이번에도 별것도 아닌걸로 2~3시간 정도 삽질 했네요. ㅠ_ㅠ 그 삽질 내용도 같이 기록합니다. 1. VM 인스턴스 재실행 시 호출되는 startup-script에 웹 ..