전체 글
Github Action을 이용한 빌드 & 실행에서 패스워드 숨기기
Github에는 Actions라는 기능이 있습니다. Travis CI처럼 소스코드를 이용해서 build, test, deploy 등의 기능을 수행할 수 있는 서비스입니다. Github Actions을 이용하면 hugo blog 빌드 & 배포, cron을 이용한 반복적인 업무 자동화도 할 수 있습니다. Github Actions을 이용해서 DB 데이터 업데이트하기 만약에 일주일에 한번씩 DB를 업데이트해야 하는 일이 있다고 가정합니다. 사용하는 DB용 클라이언트를 실행 login/password로 로그인 업데이트 query를 수행하기 위한 데이터 확인 Query를 실행 잊지 않고 정해진 요일에 반복 수행 아마도 개발자는 위와 같은 단계를 반복적으로 수행하게 됩니다. 잊지 않고 반복적으로 해야 하는 것도 중..
Github Pages에서 HTTPS 사용하지 않기
Github Pages는 정적 웹사이트를 제공하는 기능입니다. Github 계정명.github.io 도메인을 자동으로 사용할 수 있는 괜찮은 서비스입니다. 기본적으로 jekyll을 이용하여 서비스를 제공합니다. 계정명.github.io URL은 default로 https가 활성화 상태로 제공이 됩니다. setting으로 이동해서 보면 아래와 같이 Github Pages에 대한 설정을 변경할 수 있습니다. https를 사용하고 싶지 않다면? 만약 default로 제공되는 https를 사용하지 않는다면 어떻게 해야 할까요? default로 https를 제공하지만 계정명.github.io URL를 사용한다면 무조건 HTTPS 상태가 강제됩니다. 아래와 같이 setting -> Github Pages -> En..
Flutter에서 모든건 Widget이다. Show/Hide까지도
Flutter에서 모든 건 Widget입니다. 간단한 문자를 출력하는 Text부터 다른 Widget을 담기 위한 Container까지 모두 Widget입니다. 한마디로 사용자에게 보이든, 보이지 않든 화면을 구성하는 모든 것은 Widget입니다. 그리고 한발 더 나아가서 Widget 자체의 show/hide 까지도 별도의 Widget(Visibility)입니다. 다른 UI에서 Visibility UI를 다루는 다른 프레임워크를 보면 일반적으로 A라는 컴포넌트를 사용자에게 Show, Hide 처리하는 것은 그 컴포넌트 자체에서 show(), hide() 함수(혹은 메서드)를 제공하거나 투명도를 0으로 설정하여 처리하곤 합니다. 예를 들어 안드로이드에서 TextView는 xml에서 visibility를 설정..
Flutter로 개발한 Web App을 Release 상태로 테스트하기
Flutter를 이용하여 Web App을 개발했다면 서버에 Deploy 하기 전에 Release 상태로 테스트를 진행해야 합니다. 테스트는 아래와 같은 순서로 진행합니다. Web App을 Release 모드로 build Web Server 실행 테스트 Release 모드로 build 대상 프로젝트로 이동하고 command 라인에서 다음 명령을 실행하여 빌드합니다. $ flutter build web 정상적으로 빌드가 되었다면 프로젝트 폴더 내에 프로젝트 폴더/build/web 디렉터리에 index.html 파일을 포함한 release 파일들이 생성된 것을 확인할 수 있습니다. Web Server 실행 빌드된 소스는 정적 웹페이지 리소스입니다. apache, nginx 등의 웹 서버가 설치되어 있다면 로컬..
DartPad와 Gist를 이용한 Flutter UI Demo 만들기
dartpad.dev는 dart 언어를 직접 실행할 수 있는 REPL(read-eval-print loop) 사이트입니다. dart 개발 환경을 따로 구축하지 않고 dart 코드를 바로 실행해볼 수 있는 유용한 사이트입니다. Flutter UI 테스트 기능 dartpad.dev에는 dart 코드뿐만 아니라 Flutter 코드, 즉 UI를 테스트할 수 있는 기능도 제공합니다. 에러가 없는 코드를 입력한 후에 RUN을 클릭하면 결과를 확인할 수 있습니다. 소스코드 공유 기능 부재 dartpad.dev에는 다른 REPL site와 달리 소스코드 공유 기능이 없습니다. 예를 들어 golang의 REPL 사이트인 play.golang.org에는 share 기능을 통해 테스트한 코드를 공유할 수 있습니다. Gist..
Text normalization in Go
아래와 같이 특수 문자가 섞여 있는 문자열이 있습니다. "São Paulo, Brazil. Wien, Österreich." 이런 문자열을 아래와 같이 알파벳으로 변경하고 싶다면 어떻게 해야 할까요? "Sao Paulo, Brazil. Wien, Osterreich." 고민 없이 쉽게 할 수 있는 방법은 대상 문자를 찾아서 원하는 문자로 치환하는 방법입니다. 치환해야 할 문자 종류가 많지 않다면, 간단하게 적용할 수 있는 방법입니다. 그런데 치환 대상 문자의 개수가 1750개 이상이라면 어떻게 해야 할까요? 이럴 때 필요한 것이 Unicode Normalization(유니코드 정규화)입니다. 특수문자? combining characters? 위에서 특수문자라고 표현했던 문자는 유니코드에서 사용되는 Com..
Your development team has reached the maximum number of registered iPhone device
애플 개발자 계정이 만료되고 갱신 없이 지내다가 오랜만에 빌드를 하면 이런 에러가 발생한다. 디바이스에 직접 앱을 올리려고 하면 발생을 하는데 Free Provisioning Profile 상태로 올릴 수 있을 거라고 생각했는데… StackOverFlow을 찾아보니 아래와 같은 답변이 있더라. 결재하지 않으면 3개까지만 지원된다. ;;; I believe this is a problem with paid developer accounts that have expired and become free developer accounts. Technically free accounts are limited to 3 devices. If you have a previous paid account that had ..