본문 바로가기

분류 전체보기

(657)
[Flutter] Widgets(4) - 재사용 가능한 팝업창 만들기 일반적인 경고창을 만들고 필요한 화면에서 호출가능하고, 재사용 가능하다. 팝업창의 입력값에 따라 다른 처리도 가능하다. class WarningYesNo extends StatelessWidget { final title; final msg; final YesMsg; final NoMsg; WarningYesNo({required this.title, required this.msg, required this.YesMsg, required this.NoMsg}); @override Widget build(BuildContext context) { return AlertDialog( title: Text(title, textAlign: TextAlign.center, ), content: Text(msg,..
[Flutter] Widgets(3) - Custom Widget 이전 블로그에서는 함수처럼 적용한 경우였고, 이번에는 조금 복잡한 경우로 클래스로 적용한 경우의 샘플입니다. 드롭다운 메뉴를 화면마다 동일하게 처리할수도 있고, 클래스로 처리하여 중복코드를 제거할 수도 있다. 기능적인 차이로, 드롭다운 메뉴를 재사용할 수 없는 경우입니다. 다음 블로그에서 재사용 가능한 위젯의 샘플을 만들어 보겠습니다. 아래 소스코드는 Getx 컨드롤러에 대한 설명부분은 생략하였습니다. // dropdown_button_controller.dart // 언어 설정 class DropdownButtonLangType extends StatelessWidget { final DropdownButtonController _dropdownButtonController = Get.put(Dropd..
[Flutter] Widgets(2) - Custom decoration 자주 사용하는 decoration 이 있다면 이런 부분을 함수처럼 처리하여 반복적으로 사용 가능하다. // input_decoration.dart InputDecoration buildInputDecoration({String? label, String? hintText}) { return InputDecoration( fillColor: Colors.white, focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(8), borderSide: BorderSide(color: Colors.blue)), enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(16..
[GO] Scrapping(1) - URL checker 샘플 사이트를 접속하여 상태 정보 및 응답 코드를 가져오는 샘플코드임. - 고루틴, 자료구조는 map{string, slice} 구조를 사용함, key:url, value:status, errCode // URL checker package main import ( "fmt" "net/http" "strconv" ) type requestResult struct { url string status string errCode int } func main() { ch := make(chan requestResult) // var results = make(map[string]string) // value를 string 으로 처리한경우 var results = make(map[string][]string) /..
[GO] channel 고루틴 결과를 공유하는 방법 - 채널 - 메인함수에서 Wait() 호출을 하지 않아도 채널을 읽으려고 하면 자동으로 wait 상태로 기다림. // channel package main import ( "fmt" "time" ) func main() { c := make(chan bool) people := [2]string{"AAA", "BB "} for _, person := range people { go isSexy(person, c) } // time.Sleep(time.Second*5) // sleep 함수를 사용하지 않아도 됨. fmt.Println("get from channel:",
[GO] 고루틴 오늘은 고루틴에 대해서 간단하게 정리합니다. 고루틴은 개념은 아주 심플합니다. 고루틴으로 처리하면 6초정도 걸릴 실행시간이 순차적으로 처리할 경우 11초 정도로 늘어납니다. package main import ( "fmt" "sync" "time" ) var wg sync.WaitGroup func main() { go sexyCount("AAA") fmt.Println("******************") go sexyCount("BBB ") wg.Add(2) wg.Wait() } func sexyCount(person string) { for i := 0; i < 5; i++ { fmt.Println(person, "is sexy", i) time.Sleep(time.Millisecond * 100..
[GO] 자료구조 - map/dictionary 자료구조 - map{ string:string } \mydict\mydict.go package mydict import "errors" // Doctionary map type Dictionary map[string]string var errNotFound = errors.New("not found") var errWordExists = errors.New("that word already exists") var errCantUpdate = errors.New("can not update, non-existing word") // Search for a word func (d Dictionary) Search(word string) (string, error) { v, exists := d[word] ..
[GO] 커스텀 패키지 만들기 개인 패키지를 import 할때 몇가지 이슈가 자주 발생하여 개인환경을 기준으로 정리했음. 1. 환경관련. 중요한 3가지 변수는 아래와 같습니다(윈도우10 64/인텔 기준입니다). set GO111MODULE= //이부분설정없어도 잘 됩니다. set GOPATH=D:\workspace\GO //개인프로젝트 위치로 설정 set GOROOT=C:\Program Files\Go 2. VSCode 를 실행시, 프로젝트 폴더에서 실행해야함, 이렇게 안하면 환경변수문제가 발생할 가능성이 높습니다. 현재 폴더를 프로젝트 폴더로 해서 VSCode 가 실행됩니다. d:\workspace\GO\nomad>code . //. 앞에는 공백 한개 있음 아래의 그림처럼 프로젝트 폴더가 자동으로 설정됨 d:\workspace\GO..