반응형

안녕하세요.

 

Flutter Bug에 대한 해결책을 정리해볼까 합니다.

https://spikez.tistory.com/456

 

[Flutter] flutter 3.7 google map 버그 (frame이 남아있는 문제)

(2023년1월28일) 어제 시간이 좀 나서 flutter 3.2 버전으로 개발 진행해오던 프로젝트를 3.7로 업그레이드 해봤습니다. 아.. 뭔가 달라진게 있는지 custom 으로 작성한 theme 쪽에서 deprecated 된 것이 보이

spikez.tistory.com

 

 

일단 문제는 위 링크에 있는 내용인데요.

 

화면전환시에 한프래임이 남아서 화면전환을 어색하게 만듭니다.

google map을 dispose 시키기 위해서 여러가지 방법을 사용해봤는데, 방법을 찾지 못하다가, 문제 올린 링크의 내용중에 개발자 한분(AdrienGannerie)이 임시 해결책을 제시해주셨습니다.

 

그래서 그 코드로 테스트 해보고 문제가 사라진것을 확인했네요 ^^

 

코드는 다음과 같습니다.

import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';

class NewMap extends StatefulWidget {
  const NewMap({super.key});

  @override
  State<NewMap> createState() => _NewMapState();
}

class _NewMapState extends State<NewMap> {


  late Widget googleMap;
  bool showMap = true;

  late GoogleMapController mapController;

  @override
  void initState() {
    super.initState();
  }


  @override
  void dispose(){
    print("_NewMapState:dispose()");

    mapController.dispose();  // Map 을 Dispose 시키는 부분
    super.dispose();
  }



  @override
  Widget build(BuildContext context) {

    googleMap = GoogleMap(
      mapType: MapType.normal,
      mapToolbarEnabled: false,
      zoomControlsEnabled: false,
      myLocationEnabled: true,
      trafficEnabled: false,
      onMapCreated:  (GoogleMapController controller){
        mapController = controller;
      }, initialCameraPosition: const CameraPosition(target: LatLng(0,0)),

    );
    return PopScope(
        onPopInvoked: (bool didPop) {   //<-- 이부분이 핵심인데, pop 될때 showMap을 false로 변경하고,
            setState(() {  // 상태가 변경되어 google map이 사라지고 빈 container만 남기는것입니다.
            showMap = false; 
          });
        },
        child:showMap?googleMap:Container()
    );   
//Old version : WillPopScope 이 deprecated 되었습니다. ㅠ_ㅠ
//    return WillPopScope(
//        onWillPop: () {   //<-- 이부분이 핵심인데, pop 될때 showMap을 false로 변경하고,
//            setState(() {  // 상태가 변경되어 google map이 사라지고 빈 container만 남기는것입니다.
//            showMap = false; 
//          });
//          return Future.value(true);
//        },
//        child:showMap?googleMap:Container()
//    );
  }
}

 

 

 

위의 WillPopScope 부분이 핵심이 되는데요.

WillPopScope을 걸어서 back navigation 될때 map widget을 build 에서 제거 하는 형태로 문제를 해결한 것입니다.

=> WillPopScope 이 deprecated 됬고 PopScope 을 사용해야 해서 위에 코드에도 반영했습니다.

 

물론 위 코드를 보셔서 알겠지만, 만약 GoogleMap widget이 정상적으로 동작했다면 필요없는 코드입니다.

하지만 당장 앱의 퀄리티를 위해서 ㅠ_ㅠ 개발자가 회피코드(Workaround)를 작성할 수 밖에 없겠네요....

 

저는 이렇게 해서 flutter 3.2를 3.7로 업그레이드 할 수 있게 되었습니다. 

 

 

!!! 해피코딩!! 

 

반응형

Pocket A

https://play.google.com/store/apps/details?id=com.rjlife.pocketa&pli=1

 

Pocket A - Google Play 앱

Chat GPT와 Dall-E 를 활용할 수 있는 AI 어플리케이션입니다.

play.google.com

 

Chat GPT Client 만들기

Chat GPT client 를 만들어서 사용해보기 위해서 만들어보았습니다.

어플리케이션 개발 목적은, flutter 스터디도 있지만, Chat GPT와 같은 대화형 AI 를 다루는 클라이언트(client, application)은 어떻게 만드는 것이 좋을까 고민 해보는 것도 좋을것 같아서 시작하게 되었 습니다.

 

먼저 어플리케이션의 기능 구성을 다음과 같이 고민해봤습니다.

- chat GPT로 채팅하기

- Dall-E 로 그림그리기

이 2가지 기능이 핵심이 될것이고, 부가적으로는 몇가지 기능들을 더 고민해봤습니다.

 

- Dall-E는 영문만 지원이 되기 때문에, chat gpt를 용해서 한글로 입력하면 영문으로 번역하고 나서 입력하는 형태로 하였습니다.

- Chat GPT는 채팅 내용을 기록 하여 여러가지 주제를 따로 관리할수 있도록 하였습니니다.

 

스크린샷

 

 

# 해피 코딩

반응형

음.. 이 주제는 사실 좀 안습 인것이 제가 원래 windows에서 주로 개발을 하던 개발자다 보니 Mac/ Mac OS 와 별로 친하지 못합니다.

약간은 낯선? 사람을 만나는 느낌 이랄까. 그랬습니다.

그래도 몇달 코딩 하다보면 익숙해 지겠지 하고 사용해왔으나, 결국,

이제는 window pc에서도 mac 단축키를 사용하려고 하고, mac 에서는 windows 단축키를 사용하는 혼돈의 시대에 들어와 버렸습니다.

 

 

이제 용단을 내려야 할 시기가 와서, 단축키를 10년 넘게 사용해온 windows에 맞추기로 하였습니다.

먼저 가장 불편하다고 생각되는 것들을 나열 해봤습니다.

 

1. 가장 기본이 되는 copy & paste , 즉 Ctrl-C Ctrl-V, Ctrl-X 등에 대한 단축키

2. 한영키

3. 데스크탑 보기 :Window+D 

4. Lock screen 보기 : Window+L

 

 

 

Copy& Paste

copy & paste는 사실상 가장 많이 쓰고 익숙한 키인데 이것이 window랑은 정 반대 위치에 있습니다. 

단순히 vs-code 나 android studio 와 같은 코딩 툴에서 단축키를 바꾸는 것으로는 해결이 안됩니다. control 이나 alt 조합이 있어서 모든 관련 키들의 단축키를 변경 해야 하기 때문입니다.

해결책은 Command , Option  Control 의 위치를 서로 바꿔주는 것입니다.

이것 만으로도  60% 완성!!

Command --> ⌥ Option
Option -->  Control
Control --> Command

System Setting -> Keyboard -> Keyboard shortcuts

 

이렇게 바꾸고 나면 창 전환 명령인 Alt-Tab, Contol-Tab 의 동작이 달라지게 됩니다.

그리고 이외에 한영키 등의 키 설정도 쉽지가 않습니다.

 

Karabiner-Element

https://karabiner-elements.pqrs.org/

그래서 키 매핑(key mapping)을 변경할 수 있는 Karabiner-Element를 설치 !!

한영키

right_option 을 f18로 매핑을 하고 f18을 입력 소스를 변경하는 것으로 처리합니다.

System Settings -> Keyboard -> Keyboard Shortcuts -> Input Sources

 

 

데스크탑 보기 : Window + D

System Settings -> Keyboard -> Keyboard Shortcuts -> Mission Control

 

 

Lock Screen 보기 : Window+L

Lock screen 단축키 설정 메뉴는 따로 없기 때문에 아래와 같이 All Application에서 동작하는 단축키(shortcut)으로 만들어야 합니다.

System Settings -> Keyboard -> Keyboard Shortcuts -> App Shortcuts

에서 App Applications 밑에서 '+' 로 추가해주고 메뉴 이름을 Lock Screen 이라고 입력(타이핑)해주면 됩니다.

 

 

그러면 Mac의 시스템 메뉴에도 Lock Screen 메뉴의 단축키가 바뀌어 있는 것을 볼 수 있습니다.

 

 

 

 

 

Rectangle

 

https://rectangleapp.com/

 

Rectangle

Move and resize windows in macOS using keyboard shortcuts or snap areas. The official page for Rectangle.

rectangleapp.com

 

윈도우에서 Ctrl 키 + 방향키로 윈도우의 크기를 바꾸는 기능이 있는데, 종종 유용하게 사용합니다.

Mac에서도 이런 유사 기능을 하기 위해서는 Rectangle 이라는 무료 어플리케이션을 사용하면 됩니다.

 

단축키 설정 화면

 

 

Sleep Mode

>>> Sleep mode 진입  ... 작업중 ㅜ_ㅜ..

 

 

 

'Macbook' 카테고리의 다른 글

Apple Silicon (M1,M2) Stable diffusion  (0) 2023.07.11
반응형

트랜스포머는 시퀀스-투-시퀀스(seq2seq) 모델입니다. 
즉, 데이터에 순서가 있고, 출력 그 자체가 시퀀스인 모든 문제에 적합합니다. 
적용 예로는 기계 번역, 추상적 요약(abstractive summarization), 음성 인식 등이 있습니다. 

 

 

최근 [Vision Transformers (ViT)] 심지어 컴퓨터 비전(computer vision)에서의 최첨단 기술까지 향상시켰습니다.

https://arxiv.org/abs/2006.03677

 

Visual Transformers: Token-based Image Representation and Processing for Computer Vision

Computer vision has achieved remarkable success by (a) representing images as uniformly-arranged pixel arrays and (b) convolving highly-localized features. However, convolutions treat all image pixels equally regardless of importance; explicitly model all

arxiv.org


아래에서 전체 트랜스포머 아키텍처의 시각화를 확인하실 수 있습니다. 
저희는 모든 구성 요소가 무엇을 하는지, 왜 그곳에 있는지, 어떻게 모든 것이 서로 잘 맞물려 작동하는지 설명해드리겠습니다. 
우선, 둘 내부에 여러 신경망 계층(neural network layer)가 있는 인코더(좌측)와 디코더(우측)가 있음을 확인하시기 바랍니다.

코드 예시는 Harvard NLP Group의 [The Annotated Transformer] 및 [트랜스포머에 대한 PyTorch 문서]

https://nlp.seas.harvard.edu/2018/04/03attention.html

 

The Annotated Transformer

———————- There is now a new version of this blog post updated for modern PyTorch. ———————- from IPython.display import Image Image(filename='images/aiayn.png') The Transformer from “Attention is All You Need” has been on a l

nlp.seas.harvard.edu

 

https://pytorch.org/tutorials/beginner/transformer_tutorial.html

'머신러닝 & 텐서플로 & 파이썬' 카테고리의 다른 글

Conda 설치, SSL error 대응  (0) 2020.01.14
cer file을 pem 변환하기  (0) 2020.01.14
GAN 스터디  (0) 2019.03.27
데이타 크롤링  (0) 2018.04.02
머신러닝 유투브 영상모음  (0) 2018.03.29
반응형

써먹을 수 있는 간단한 영어 표현들 과 일상에서 쓸만한 것들..

 


let me kick back and relax.

"내가 좀 쉴수 있게 해줘", "날 좀 편하게 쉬게 해줘"

kick back and relax : 편히 쉬게 하다.

you just kick back and relax : 좀 편히 쉬어라~



As for ~~ 뭐뭐에 대해서
As for my personality,

I tend to be a bit introverted.  난 내성적인 경향이 있다.
~한 경향이 있다.


come up with  ~ 떠오르게 한다

I try not to take things too seriously.
난 일을 심각하게 받아들이지 않으려고 노력해.


I like to crack a lot of jokes.
난 농담 많이 하는거 좋아해.

Eventually I'd like to ...
미래의 꿈.
start a new chapter in my life.

 

ran into (my friend)  마주치다.

 

알다.   I know / I understand / find out / figure out / realize /recognize


I know ~
나 ~ 알아.


I understand how you feel, 
I understand why she do that,but I don't agree ...

이해 했어.


find out   : (어떤 사실을 )모르는 상태에서 알게 된것.
I found out about that just yesterday.
어제야 알았어


figure out : (방법을) 찾거나 알게 되는 것.
I figured out how to use it.

realize : 깨달다.
I realized wthat the problem was.
문제가 뭔지 알았어.

notice :  != notify
- 변경된 것을 알아 차린다.
I saw my friend at school today and 
noticed she had gotten a haircut.
친구가 머리 자른것을 알아 차리다.

recognize : 알아차리다. 뭔지 알다.


 

 

'일상' 카테고리의 다른 글

스타필드: 노티드(knotted)  (0) 2024.03.08
가고싶은 여행지 링크  (0) 2014.07.17
근대 과학의 정모  (0) 2010.06.05
돌고있는 방향이 어느쪽인가요?  (0) 2010.06.04
아이언맨 슈트 제작자 - youTube  (0) 2010.06.01
반응형



□ 창업에듀 (K-StartUp)

  - 법인 설립 과정 및 사업계획서 작성 관련 온라인 강좌

     * URL : https://www.youtube.com/@user-gh3dm9ew9w/featured

     ☞ Inside 출구Deck을 기초로 아래 사업계획서 작성 과정을 수강하신 후,

         IR Deck(사업계획서) 초안(PPT 버젼)을 작성 부탁드립니다. (~ 8/16)

         → 사업계획서 작성 과정 : https://www.youtube.com/playlist?list=PL-1Jp6vuXXQqiZjj76l-lxcsdvUAEVRcT 



□ Y-Combinator (How to Start a Startup)

  - 아이디어 사업화 관련 온라인 강좌 

     * URL : https://www.youtube.com/watch?v=CBYhVcO4WgI&list=PL5q_lef6zVkaTY_cT1k7qFNF2TidHCe-1 

     ☞ 스타트업과 관련한 글로벌 스탠다드에 대한 내용으로 기본 소양 강화의 목적으로 자율 수강해 주십시오.



□ Fast Campus 스타트업 투자 유치와 벤처 투자 (하단 수강 방법 참조)

  - 스타트업 투자 유치 관련 온라인 교육 (5시간, 유료)

     * URL : https://fastcampus.co.kr/biz_online_vc

     ☞ 법인 설립 후, 투자 유치 전략 수립 및 실행에 대한 내용을 담고 있습니다.

         수강 일정 수립하시어 8월 말까지 수강 부탁드립니다. (수강 일정 공유 요망)



[Fast Campus 스타트업 투자유치&벤처 투자 올인원 패키지 Online 교육 수강안내]



1. 패스트캠퍼스 접속

2. 로그인 (ID/PW 별도 전달)

3. 우측 상단 "서정관" 클릭

4. "내 강의보기" 클릭

5. 온라인 강의 시청하기



* 특이사항

- 사내망에서는 웹사이트가 차단되어 있습니다.

  정보보안에 문의해 보니 접속자 별로 웹사이트차단해제 신청을 하셔야 된다고 합니다.ㅠ.ㅠ

- 사외망/스마트폰에서는 정상 접속 되는 것을 확인하였습니다.  



감사합니다.

제임스 드림.

반응형

동업할 때 지분 비율별 권리 1분 정리서

알아둘 필요가 있어서 아래 링크에서 가져왔습니다.

내용은 지분율에 따른 권한에 대한 것입니다.

[펌] https://help.jobis.co/hc/ko/articles/13642807766297-%EB%8F%99%EC%97%85%ED%95%A0-%EB%95%8C-%EC%A7%80%EB%B6%84-%EB%B9%84%EC%9C%A8%EB%B3%84-%EA%B6%8C%EB%A6%AC-1%EB%B6%84-%EC%A0%95%EB%A6%AC%EC%84%9C

 

 

 

지분율에 따라 통제력도 다르다 ⛔️

 

하지만 작은 규모의 회사가 아닌 이상 지분율이 80, 90%씩 차지하기란 쉽지 않아요. 웬만한 대기업은 3%만 넘어도 대주주라 칭할 정도죠. 그래서 지분율에 따라 행사 가능한 통제력의 수준도 조금씩 다른데요. 한번 지분 비율별 권리에 대해 살펴볼까요?🤔

 

3% : 위법 행위 감시 및 통제

 

3%는 주식회사에 통제력을 행사할 수 있는 최소단위라고 할 수 있어요. 3%의 지분을 가진 주주는 ✅주식 회사의 회계장부를 열람하거나 ✅임시주주총회 소집을 청구할 수 있지요. 💡다만 상장회사의 주주는 그 수가 매우 많기 때문에 0.1%의 지분만 가져도 회사 회계장부를 열람할 수 있답니다.

 

25% : 단독 출석 시 보통결의사항 통과 가능

 

주주총회에서 보통결의사항은 ① 출석한 주주가 보유한 의결권의 과반수와 ② 발행 주식총수의 25% 이상이 찬성할 경우 결의사항이 통과되는데요.

 

이에 따라, ✅25%의 지분을 가진 주주가 단독 출석할 경우 보통결의사항은 해당 주주가 단번에 통과시킬 수 있게 됩니다. 이때, 보통결의사항은 다음과 같아요.

- 이사 선임 및 보수 결정
- 이익 배당
- 재무제표 승인

 

 

33.4% : 단독 출석 시 특별결의사항 통과 가능

 

주주총회에서 특별결의사항은 ① 출석한 주주가 보유한 의결권의 2/3와 ② 발행 주식총수 33.4%(⅓) 이상이 찬성할 경우 결의사항이 통과돼요.

 

그러므로 ✅33.4%의 지분을 가진 주주가 단독 출석할 경우, 특별결의사항을 바로 통과시킬 수 있는 거죠. 특별결의사항은 보통결의사항보다 회사에 미치는 영향이 더 크기 때문에 조건이 더 까다로운 건데요. 다음과 같답니다.

 

- 정관 변경
- 사업의 양수도
- 회사의 합병/분할
- 이사 및 감사의 해임

📌제법 중요한 사항들에 대해서 단독으로 처리할 수 있는 만큼, 33.4%의 지분율의 의미는 상당합니다.

 

50% + 1주 : 보통결의사항 통과 가능

 

앞서 말했듯 보통결의사항은 ‘주주 과반수’ 조건이 채워져야 해요. 하지만 ✅지분율이 50%에서 단 1주라도 넘어간다면? 이때부터는 혼자서 단독으로 보통결의사항을 통과시킬 수 있답니다.

 

그래서 보통 회사들끼리 합병할 때는 50%+1주를 거래하는 편이에요. 주식회사의 인수합병 과정에서 50%+1주만 확보할 수 있다면, 그 회사의 경영권을 안정적으로 가져올 수 있기 때문이죠.😀

 

66.7% : 특별결의사항 통과 가능

 

보통결의사항보다 더 많은 의결권을 요구하는 특별결의사항. 하지만 이 또한 지분율이 66.7%가 넘어가면 단독으로 처리할 수 있게 돼요. 따라서 66.7%의 지분은 회사의 중대한 영향력을 미치는 여러 사항들을 안정적으로 처리할 수 있음을 의미합니다.

 

 

📌만약 동업을 한다면, 그리고 동업에서 결정적인 영향력을 미치고 싶다면 무조건 66.7% 이상의 지분율을 확보해야겠죠?

 

100% : 1인 주주

 

지분율 100% 1인인 회사를 가리켜 1인 회사라고도 해요. 어차피 단독으로 결정하게 되므로 사실상 동업이라 보기는 어렵겠죠?

 

동업할 때 지분 비율별 권리에 대해 알아보았어요. 다시 말씀드리지만, 주도적인 역할을 하고 싶다면 무조건 50%+1주는 확보하는 게 좋아요. 그 점은 동업자와도 확실하게 이야기해 놓아야 하고요. 또, 좀 더 확실한 결정 권한을 행사하고 싶다면 66.7% 이상은 확보해야겠죠.

 

이 문제는 민감한 문제이기 때문에 나중에 정하려고 하면 문제가 될 확률이 크답니다. 반드시 동업하기 전에 체크하고 넘어가자고요!😁

 

 

 

반응형

  

 

 

안녕하세요 데몬스쿼드 키우기 쿠폰을 쉽게 사용할 수 있도록 만들었습니다.!!

많이 활용해주세요.

 

+ Recent posts