모바일 앱을 보면 상중하로 나뉘어져 있는 경우가 많다. 아무래도 모바일은 화면이 작기 때문에 윈도우에서 처럼 많은 UI를 한 화면에 담을 수가 없어서 상중하로 나누면 작은 화면을 효율적으로 사용할 수 있다. 정해진건 아니지만 보통 상단과 하단은 고정 UI를 넣어서 다른 메뉴로 이동하거나 이벤트를 바로 실행하는 기능을 넣고 중간 부분은 내용을 보여주는 경우가 많은 것 같다. 네이버 모바일 layout flutter의 경우 상중하를 Scaffold 위젯을 사용해서 간편하게 나눌 수 있다. 우선 결과물부터 보면 아래 이미지와 같다. 상단에 appbar를 위치시켰고 중간과 하단에는 배경색을 넣어서 구분만 해놨다. 실제로 앱을 만든다면 중간에는 내용이 들어가고 하단에는 navigation 같은게 들어가면 좋을 것..
flutter 개발에 앞서 개발환경을 세팅해야 한다. 여러가지 과정이 있지만 크게는 개발툴인 안드로이드 스튜디오와 flutter sdk를 설치하면 된다. 개발툴은 Visual Studio Code를 사용해도 되지만 flutter가 구글에서 개발한 프래임워크이기 때문에 호환성이나 향후 업데이트 이슈가 있을 수 있어서 개발툴도 구글의 안드로이드 스튜디오를 설치해서 사용하기로 했다. 개발환경을 세팅하기까지 시간이 상당히 소요되고 과정도 조금 지루하기 때문에 인내를 갖고 진행해보자. 개발환경 세팅 순서 1. flutter sdk 다운로드 2. 압축해제 후 flutter sdk 폴더 위치 변경 3. flutter sdk 위치를 환경변수 path에 설정 4. Android Studio 설치 5. Android St..
모바일 프레임워크 비교 이유 수년간 Visual Studio로 devexpress 컴포넌트를 사용해서 C# 윈도우 개발만 했었다. 하지만 트렌드가 변해서인지 몇년 전부터 회사에서 모바일 개발 요청이 들어오기 시작했다. VS 개발툴을 사용하고 c# 개발을 하다보니 자연스럽게 진입 장벽이 낮게 느껴지는 xamarin을 공부해서 앱을 만들게 되었고 실제 수십개의 메뉴를 만들어서 만족하며 운영중이다. 불편한 부분들이 많이 있었지만 C# 윈도우 개발과 크게 차이가 없어서 편하게 잘 사용하고 있었다. 그러나 점점 개발 난이도가 높은 요청이 들어오는데 xamarin 프레임워크는 시간이 지나도 다른 프레임워크에 비해서 개발환경이 크게 개선되는 부분이 없다고 느껴졌고 xamarin을 사용하는 개발자도 점점 적어지는걸 느..
복수문자 파싱 string 문자열을 특정한 구분자로 분리(파싱)해야하는 경우가 빈번하게 발생한다. 예를 들어 "강아지, 고양이, 독수리, 코끼리, 기린" 이라는 문자를 string으로 받았는데 string에 있는 동물의 종수를 알아야 한다거나, 아니면 한줄씩 화면에 출력해야 하는 경우 등 다양한 경우가 있을 수 있다. 이럴 경우 편하게 사용할 수 있는 함수가 split 이다. split을 사용하면 특정 문자를 기준으로 string에 입력된 문자를 배열로 변환할 수 있다. 변환할 배열의 타입을 list로 받을 수도 있고 string[] 로 받아도 된다. 콤마로만 구분이 가능한 string -> list 변환 예제 // 동물을 콤마 기준으로 입력 string animals = "강아지, 고양이, 독수리, 코..
윈도우 암호 복잡성 설정 윈도우 서버의 경우 기본적으로 "암호는 복잡성을 만족해야 함"이 설정되어 있다. 이 옵션이 설정되어 있으면 사용자 계정에 단순한 암호는 사용할 수 없고 영문+숫자+특수키+자릿수 제한 등의 복잡한 조건을 만족해야 암호를 설정할 수 있게 된다. 경우에 따라서 단순한 암호를 사용해야 하는 경우가 있는데 예를 들면 # 서버 마이그레이션 작업으로 기존 사용하던 단순한 사용자 암호를 사용해야할 수도 있고 # 특정 사용자 계정은 다수가 기억할 수 있는 암호를 설정해야할 수도 있다. 1. 윈도우 키를 누른 후 "로컬 보안 정책" 을 검색 후 선택한다. 2. 보안 설정 -> 계정 정책 -> 암호 정책 -> "암호는 복잡성을 만족해야 함" 마우스 우클릭하여 "속성" 선택 3. 로컬 보안 설정 탭에..
Ping 테스트 허용 방법 윈도우 버전에 따라서 기본적으로 ping 테스트 옵션이 설정되어 있는 경우도 있지만 별도로 설정해줘야 ping 테스트가 가능한 버전도 있다. ping 테스트 설정이 되어있지 않은 경우 아래 설명을 따라서 추가하면 된다. 1. 윈도우 key를 눌러서 "고급 보안이 포함된 Windows Defender 방화벽"을 검색 후 선택한다. 2. 인바운드 규칙 -> 파일 및 프린터 공유(에코 요청 - ICMPv4-In)을 선택 후 "규칙 사용"으로 설정한다. 여기 까지만 진행하면 로컬의 동일 서브넷 상에서는 정상적으로 ping이 나간다. 만약 원격지(외부)에서는 ping이 나가지 않을 경우 추가로 하나를 더 설정해줘야 한다. 3. (원격지에서 ping 테스트가 안될 경우) 속성에 들어가서 ..
react native에서 "eas build -p android" 명령어로 build를 하면 "eas.ps1 파일을 로드할 수 없습니다. 파일이 디지털 서명되지 않았습니다." 라는 에러가 발생하면서 build 되지 않는 경우가 있다. 권한문제로 eas 커맨드를 사용할 수 없어서 권한을 추가해주면 된다. 1. Windows PowerShell을 관리자 권한으로 실행한다. 2. "get-help Set-ExecutionPolicy"를 입력한다. 실행 정책에 대한 관련 도움말과 프로그램을 설치한다. 3. "Set-ExecutionPolicy RemoteSigned"를 입력한다. 신뢰하지 않는 스크트립트를 실행하도록 권한을 설정해서 eas 커맨드를 실행할 수 있도록 하면 된다. RemoteSigned 설정이 ..
이번주에는 방문자 1명 당 0.85원이 발생했다. 2월 14일에 1,359명이 방문해서 적어도 1천원은 넘는 수익이 발생할 것이라 생각했는데 967원이 수익이 났다. 아무래도 애드핏에서 수익 1천원을 넘게 주지 않으려는 로직이 있지 않나 의심이 생길 정도이다. 일주일 방문자수가 5천명이나 6천명이나 수익은 똑같이 5천원이 발생했고, 방문자수가 1천명이 넘는 날은 광고를 2회 진행했고 1천명이 안되는 날은 광고를 1회만 진행해서 차이가 방문자수 차이가 발생했다. 아무래도 광고하는데 시간이 꽤 소비가 되는데 지금 수익으로는 굳이 시간내서 2회 광고할 필요는 없을 것 같다. 애드센스 승인이 되면 애드핏 광고를 제거하고 애드센스로 변경 후에 일방문자 3천명 정도로 바로 만들 생각이다. 2023년 2월 13일 ~..