개발 일기 20

[PHP] 난수, 랜덤값, 난수, 유니크, 고유한 값이 필요할 때

rand() 함수 일반적으로 PHP에서 랜덤한 값을 출력한다고 한다면 아래와 같이 숫자로 임의의 값을 도출할 수 있습니다. 하지만 이런식의 랜덤값은 출력하다보면 언젠가는 중복될 여지가 남아있습니다. mt_rand() 함수 rand 함수와 거의 동일하지만 표시되는 난수 범위가 다릅니다. mt_rand가 rand에 비해 실행 속도도 빠르고 생성할 수 있는 난수의 범위가 커서 mt_rand 사용이 권장됩니다. rand 함수 : 윈도우에서 0 ~ 32,767 까지 난수 생성, 리눅스에서 0 ~ 2,147,483,647 까지 난수 생성. mt_rand 함수 : 윈도우, 리눅스 환경 모두 0 ~ 2,147,483,647 까지 난수 생성. uniqid() 함수 일반적으로 사용자 고유 식별 값 등 유니크한 Key 값이..

Web 2023.03.15

[C#] Dictonary 간단하게 총 정리

C#에서 Dictonary를 활용할 때 자주 사용하던 함수 등에 대해 설명합니다. * Dictionary 클래스 사용 시 //Dictionary 클래스를 사용하기 위한 네임스페이스 using System.Collections.Genetric; * Dictionary의 선언, 정의, 초기화 //선언과 정의 var tempDic = new Dictonary(); //선언과 정의2 Dictionary tempDic2 = new Dictionary(); //선언과 정의, 초기화 var tempDic = new Dictonary( { "key1", "value1" }, { "key2", "value2" }, { "key3", "value3" } ); * Dictionary에 Add로 요소 추가/삭제 var tem..

Windows Application 2023.03.15

[PHP] 한글 문자열 자르기 한글 깨짐 방지 mb_substr()

PHP에서 일부 문자열만 잘라서 필요할 때 일반적으로 substr() 함수를 사용하게 됩니다. 하지만 한글은 2byte, 영어는 1btye기 때문에 한글을 자르면 깨져보일 수 있습니다. 이럴 때 mb_substr() 를 사용하시면 됩니다. echo mb_substr('한글은 아름다워', 0, 3, 'utf-8); 와 같이 작성하게 되면 영문, 한글 상관없이 총 3글자 '한글은'이 표시되게 됩니다. echo mb_substr(원본문자열, 시작인덱스, 표시할길이, 인코딩방식);

Web 2023.03.15

다이소 방묘창, 방묘문 편하게 여닫기 경첩 3D 모델링 파일

위와 같이 다이소에서 구매한 네트망을 연결하여 사용하고 있습니다! 저희집에 경우 스트리트 파이터 출신 봄이랑 찡찡이 가을이 이렇게 두마리가 있어요. 봄이는 들어와도 얌전하기 때문에 가을이가 못넘어오는 높이정도로만 만들었습니다. 근데 문을 여닫으려니 너무 불편해 경첩대용으로 부품을 하나 뽑아냈습니다. 위와 같은 모델을 2개 인쇄하여 경첩대신에 설치해주었습니다! 참고로 일부러 잘 빠지지 않도록 벌려지는 틈 부분을 좁게 만들었으니 좁아서 잘 안들어가시면 롱노즈 같은 공구로 틈을 살짝 벌려주세요^^. 그리고 장착하신 뒤 다시 닫아주시면 됩니다^^. 이제 문을 잠글 장치가 필요한데 원래 위 사진처럼 살짝 방묘창을 살짝 들어서 고정시키고 풀 때도 살짝 들어서 여는 구조를 생각했는 데 나머지는 하다보니 귀찮아서 포기..

3D 모델링 2022.08.27

[Flutter] webview_flutter JS 자바스크립트 통신 구현

안녕하세요. 웹뷰 앱을 만들면서 js 통신 작업을 진행했는 데 검색해도 별다른 팁이나 방법이 안내된게 많지 않다보니 정석은 아니지만 어떻게든 구현했던 방법을 공유하고자 합니다. 아래 사진과 같이 javascriptChannels를 작성해줍니다. 이때, _webToAppChange(context)는 아래에서 말씀해드리겠습니다. 저는 html 파일에서 아래와 같이 WebToApp이라는 자바스크립트 함수를 만들었습니다. 내용을 요약하자면 WebToApp이라는 함수를 호출할 때 json 데이터를 만들어 commandType 등의 전달한 명령어가 어떤 수행을 할 것인지에 대한 구분자를 작성해줍니다. 여기서 중요한 것은 webToAppChange.postMessage(jsonData); 입니다. webToAppCh..

Flutter 2022.08.04

[Flutter] webview_flutter Local File 웹뷰 로컬 파일 열기

저는 주로 C++언어를 다루기 때문에 Flutter에서 UI를 그려내기엔 숙련도가 매우 낮아 어려움이 있었습니다.. 그나마 웹은 Bootstrap을 자주 사용해봤고 반응형 웹을 만드는 것이 시간도 절약되고 당장에는 편할 것 같아 간단히 웹뷰 앱을 만들기로 했습니다. 근데 문제는 간단한 기능과 UI를 제공할 뿐인데 웹을 일일히 접속하기엔 트래픽을 감당할 자신이 없었습니다. 그래서 로컬에 html, js, css를 보관해서 불러오도록 구현했고 주요 기능, 통신 기능은 앱에서 작동하고 이를 js통신으로 웹뷰에서 불러온 로컬 파일과 통신하도록 구현했습니다. 회사 내에서 개발하던게 완료되어 자그마한 노하우를 공유하고자 합니다. 일단 저는 아래 패키지를 사용했으니 참고바랍니다. https://pub.dev/pack..

Flutter 2022.08.04

[Flutter] webview_flutter gesture(swipe) page move disable

history 관리 기능이 없다는 것을 알게 되었습니다. 제가 개발하고 있는 앱에서는 http통신과 기타 기능을 제외하고 단순히 웹뷰 내에서 모든게 이루어집니다. 이러한 상황에서 IOS는 swipe로 history에 기록된 뒤, 앞 페이지로 이동하는 게 가능하다 보니 해당 history 기록을 clear 할 수 있는 지 찾아보았으나 제가 사용 중인 https://pub.dev/packages/webview_flutter 패키지는 지원하지 않고 결국 이 기능은 현재 inappwebview 패키지 밖에 지원되지 않는다고 하네요.. 결국 gesture를 사용한 페이지 이동을 비활성화 해야 했습니다. 주구장창 Flutter webview_flutter swipe disable 등등 검색해보았으나 아무리 검색해도..

Flutter 2022.08.01