반응형 개발 이야기45 [Android] WebView에서 URI가 Intent Schema 인 경우 웹사이트 로딩하기 웹뷰에서 보여 줄 사이트 URI가 Intent Scheme 인 경우가 있다. 이 경우 URL은 intent://blah.blah 처럼 내려오게 되는데, 브라우저에서 식별 가능한 URL이 아니기 때문에 해당 URI를 브라우저가 이해할 수 있는 URL로 아래 코드 처럼 변환해줘야 한다. // WebViewClient // webViewClient = object : WebViewClient() { } 안에 아래 오버라이딩 함수 정의 override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean { request?.url?.let { uri -> if (uri.toString().startsWith("int.. 2022. 5. 19. Jenkins 설치 및 원격 배포 설정 Ubuntu 18.04 JDK 설치 > sudo apt-get update > sudo apt-get install openjdk-11-jre openjdk-11-jdk > java -version 환경변수 설정 > vim ~/.bashrc # ~/.bashrc export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java)))) export PATH=$PATH:$JAVA_HOME/bin > source ~/.bashrc > $echo $JAVA_HOME > sudo wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - > echo deb http://pkg.jenk.. 2022. 2. 18. Nginx Response header 커스터마이징하기 response header에 Server 항목을 보면, Server: nginx x.x; 처럼 nginx version이 명시되는 경우, 보안상 좋지 않기 때문에 해당 Server 헤더 값을 커스터마이징 할 필요성이 있다. 이런 경우 추가적인 패키지를 받아서 해결할 수 있다. > sudo apt-get update > sudo apt-get install nginx-extras nginx 서버 세팅 파일에서는, location ... { server_tokens off;# removed pound sign more_set_headers 'Server: MySite'; } 처럼 처리할 수 있다. 2022. 2. 4. Multi Thread 결과 값 리턴하여 저장하기 Thread는 보통 현재 메인 Thread 에서 시간을 더 이상 잡아먹지 않기 위해 비동기적으로 작업을 넘겨버리고 주 작업을 하고 싶을 때 사용한다. 따라서 이런 경우는 그렇게 생성한 Thread의 결과가 어떤지 살펴볼 필요가 없을 때이다. 예를 들어, 고객 주문 처리 함수를 구현한다고 가정하면, 고객 주문을 완료 하고 마지막에 고객에게 알림 메시지를 발송하는 기능을 구현한다고 하자. 고객에게 알림 메시지를 발송하기 위해 타 업체의 API를 이용해야 하는데, 만약 타 업체 서버가 점검 중이어서 타임아웃 30초 동안 리스폰스를 받지 못한다면 해당 주문 처리 함수는 30초 동안 진행이 되지 않는다. 따라서 이런 경우에 알림의 성공 유무와 관계 없이 일단 주문처리를 완료하고 싶을 때 Thread를 이용할 수 .. 2021. 7. 22. 베트남어 성조 제거하여 알파벳으로 변환하기 회사에서 다국어를 지원하다보니 베트남어 인풋을 받아 처리를 해야 하는 문제가 생겼다. 고객이 베트남인일 때 알파벳을 입력하는 것은 어려워하지만 베트남어 키보드로 이름을 치는 건 쉽게 할 수 있는데, 문제는 우리가 베트남어를 받아서 영문 알파벳으로 변환을 하여 협력사에 알파벳 이름을 전달해야 한다. 예를 들어, 한 고객의 이름이 Nguyễn Vũ Quốc Anh 이라고 했을 때, 이 이름을 Nguyen Vu Quoc Anh 으로 변환해야 한다. 문제 해결을 위해 베트남어에 사용되는 전체 문자열을 나열하고, 그에 대응하는 알파벳으로 치환해주는 간단한 함수를 구현한다. def remove_accents(input): if not input: return "" s1 = u'ÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚÝàáâãè.. 2021. 6. 30. [Swift] 메인 스레드 밖에서 UI 관련 호출 에러 발생시 DispatchQueue.main.async { 코드 블럭 } 2021. 4. 14. 이전 1 2 3 4 5 6 ··· 8 다음 반응형