M1 flutter 설치

개발환경 2023. 8. 15. 00:36
반응형

책을 읽다보니 정리하고 싶은 데, 티스토리는 전자기기 블로그라는 생각으로.

그리고 아이폰 메모앱은 업무나 일처리 용이라는 생각으로.

적을 데가 별로 없다.

 

도서 앱을 개발해보고 싶어서,.

다시 flutter 를 설치해보려고 한다.

 

1. flutter sdk 설치

- https://docs.flutter.dev/get-started/install/macos#get-sdk

- 다운받은 sdk 파일을 특정 폴더로 이동한 후 압축 해제

- 터미널을 실행하여 파일 위치로 이동

   - terminal > cd flutter 

 

macOS install

How to install on macOS.

docs.flutter.dev

 

2. 환경변수 설정

- terminal > echo $SHELL

- terminal > vim ~/.zshrc

   - i 키 입력

   - export PATH="$PATH:/flutter sdk 폴더 경로/flutter/bin"

   - esc 키 입력

    - !wq 키 입력하여 저장

- termianl > source ~/.zshrc

 

3. flutter sdk 설치 여부 버전 확인

 - terminal > flutter --version

 - terminal > flutter doctor

 

4. Android Studio 설치 

 - https://developer.android.com/studio/index.html

 

Download Android Studio & App Tools - Android Developers

Android Studio provides app builders with an integrated development environment (IDE) optimized for Android apps. Download Android Studio today.

developer.android.com

 

5. Android Studio SDK 설치 

 - More Actions > SDK Manger > Android SDK > SDK Tool

    아래 항목 선택 후 설치

    - Android SDK COmmand-line Tools (latest)

    - Android Emulator

    - Android SDK Platform-Tools 

 - terminal > path/to/sdkmanager --install "cmdline-tools;latest"

 - terminal > flutter doctor --android-licenses

 

6. App store 에서 Xcode 설치

 - terminal > sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

 - terminal > sudo xcodebuild -runFirstLaunch

 

7. brew 설치 

 - terminal > /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

 - terminal > eval $(/opt/homebrew/bin/brew shellenv)

 

8. cocoapods 설치

 - terminal > brew install cocoapods

 

9. 설치 여부 최종 확인

  - terminal > flutter doctor -v

반응형
블로그 이미지

ingus

,
반응형

배포 방법

  1. pip install pyinstaller
  2. pyinstaller script.py --onefile
  3. dist 에 생성된 파일을 복사

실행 전 필수 설정

    1.  파일을 실행한다.

    2. 시스템 설정 > 개인정보 보호 및 보안 하단 에서 확인없이 열기 를 클릭한다.

    3. 권한을 부여한다.

      - terminal > chmod 700 실행파일명

 

배포 후 발생된 문제

  1. 발생된 문제 : mac 에서 script 실행시 현재 경로를 임시파일로 가져오는 문제가 있으므로 os.getcwd() 등을 사용할 수 없었음
    • ini 파일 읽기, 파일 생성하기 등을 상대경로로 지정하더라도 스크립트 실행되는 경로가 임시파일 경로를 사용하기 때문에 실행되지 않음 (admin 계정)
    • --add-data 로 지정하여도 동일함
  2. 해결 방법 : https://blog.system32.kr/289

     import sys
     import os

 

     # 스크립트 경로 가져오기
     current_path = os.path.sep.join(sys.argv[0].split(os.path.sep)[:-1])

     # 현재 경로로 스크립트 실행 경로를 변경
     os.chdir(current_path)

 

 

이제 윈도우 뿐 아니라 mac 에서도 python 을 .. 

반응형
블로그 이미지

ingus

,
반응형

 

회사에서 반복적으로 수행하는 업무 중 

인내력을 요구하는 것은 가끔씩 파이썬으로 만들고 있다.

사실 3번째 회사에서 잡무 보다 개발업무를 하고 싶어서 시작한 언어인데..

현재 회사에서 업무를 도와주고 있다. 

 

파이썬 스크립트로 깨잘깨잘 프로그램을 만드는 이유는

반복적인 업무 수행 결과를, 아니면 나를 믿지 못하는 것도 있지만

프로그램으로 규격화하면 다른 사람도 이 업무를 쉽게 인수인계 받을 거란 생각이 크다.

 

현재 회사에서 자동화 해본 업무

1. AWS 특정 리전 S3에서 LB 로그를 다운 받아 읽어서 특정 응답코드만 분류하여 구글스프레드 시트에 자동으로 붙여넣기

2. 작업 완료시점을 확인하며 Swagger 나 curl 로 restful API(GET/PUT) 를 호출하는 리빌드 업무를, requests 를 이용하여 자동 호출

3. 여러개 터미널을 띄워서 병렬로 restful API(PUT)를 호출하는 업무를, ThreadPoolExecutor 와 requests 를 이용하여 자동 호출

  - https://docs.python.org/ko/3.7/library/concurrent.futures.html 

 

concurrent.futures — 병렬 작업 실행하기 — Python 3.7.16 문서

소스 코드: Lib/concurrent/futures/thread.py와 Lib/concurrent/futures/process.py concurrent.futures 모듈은 비동기적으로 콜러블을 실행하는 고수준 인터페이스를 제공합니다. 비동기 실행은 (ThreadPoolExecutor를 사용

docs.python.org



3번을 만들면서 비동기 호출 테스트할 때는 grequests 를 사용해봤었다.

https://pypi.org/project/grequests/

 

반응형
블로그 이미지

ingus

,
반응형

오늘 공부할 대상을 정리해보다가

관련 앱을 개발해보고 싶어서 flutter 환경설정을 기웃거리다가 중간에 설정이 꼬여서 맥북을 초기화 했다.

초기화 한 후에는 노마드코더 의 맥북세팅 보고 iTerm 터미널 설정 + brew 설치 를 했다.

https://youtu.be/B26yiuC5zPM

 

1. 기초 설정

  1) xcode는 앱스토어로 설치한다.

  2) root 관리자 비밀번호 설정한다.

  

2. brew 를 설치한다. ( https://brew.sh ) 

    brew 로 chrome , android studio , flutter , vs code 를 설치한다.

 $ brew install --cask google-chrome 

 $ brew install --cask android-studio 

 $ brew install --cask android-SDK 

 $ brew install --cask android-ndk flutter

 $ vim ~./bash_profile 

    i 키보드를 눌러서 편집모드 로 변경하고

    export PATH="`pwd`/flutter/bin:$PATH" 내용 추가 후

    esc 키보드를 누른 후 :wq! 를 입력한다.

 

 $ brew install --cask visual-studio-code

 

3. iTerm 터미널에서 

    $ sudo flutter doctor 를 이용하여 설치 환경을 확인한다. 

 $ flutter doctor --android-license

 $ sudo xcodebuild -license

 $ sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

 $ sudo xcodebuild -runFirstLaunch

 

 $ sudo gem install cocoapods -v 1.7.5

 $ sudo gem install cocoapods

 $ brew reinstall cocoapods

 

 $ flutter doctor --android-licenses

 

4. 안드로이드 스튜디오 설정

 1) Plugins 에 Flutter 와 Dart 추가

 2) SDK 추가 설치

   (1) SDK Manager 를 클릭하여 SDK Tools 에서 Hide Obsolete Packages 와 Show Package Details 체크 해제 하고

        Android SDK Tools(Obsolete) 와 Android SDK Command-line Tools (latest) 를 체크하여 설치한다.

 

        나는 혹시 몰라 SDK Platforms 에서 API Level을 28까지 선택하여 다운받고

        SDK Tools 탭에서 Show Package Details 체크하여

        Android SDK Build-Tools 을 28 까지 다운받았다.

 

5. 최종 확인

 $ flutter doctor

 

내일은 프로젝트를 돌려봐야지..

 

  

반응형

'개발환경' 카테고리의 다른 글

M1 flutter 설치  (0) 2023.08.15
Dynamic Project(Spring MVC), Deployment Assembly 설정  (0) 2021.03.10
OpenJDK 설정 방법  (0) 2019.08.13
Spring + Active Directory 연동기  (0) 2019.08.13
여러 프로젝트 ant xml 설정방법  (0) 2018.12.18
블로그 이미지

ingus

,
반응형

 

1. Gradle 을 설치하고 환경변수 를 추가한다. 

  - 시스템변수 : GRADLE_HOME 변수 추가

  - 환경변수 :  path 변수에 %GRADLE_HOME%\bin 추가

 

2. CMD 창에 gradle -v 라고 입력해서 환경변수가 잘 적용됬는 지 확인해본다.

   cmd > cd 프로젝트 경로

 

3. CMD 창에서 프로젝트 경로로 이동한다.

   cmd > cd 프로젝트 경로

 

4. CMD 창에서 gradle init 명령어를 입력하고 몇가지 선택하면

   cmd > gradle init 

 

   build.gradle , settings.gradle 등이 생긴다.

   

5. IDE에서 Spring MVC maven 프로젝트를 제거하고

   Existing Gradle Project로 import 한다.

 

   1) build.gradle 에서 빨간색 경고창이 뜨는 게 있는 지 확인한다.

     

      추가해야 하는 경우 아래 사이트에서 검색 후 추가

      https://mvnrepository.com/

 

      나의 경우 @Resource 에서 오류가 나서 아래 설정을 추가해줬다.

      implementation 'javax.annotation:javax.annotation-api:1.3.2'

 

   2) 프로젝트 속성에서 Deployment Assembly에서 maven 의존성을 제거해준다.

                               Gradle 설정을 확인해준다.

 

   3) 프로젝트 속성에서 Deployment Assembly에서 Add 하여 Proejct and External Dependencies 추가한다.

 

   4) 프로젝트를 우클릭하고 Refresh Gradle Project 를 눌러준다.

       Proejct and External Dependencies 에 관련 jar들이 올라온걸 확인한다.

     

    5) 프로젝트 속성에서 Java Build Path 를 점검한다.

 

 

    - 끝 -

 

    log4j 점검하면서 이참에 maven 를 몽땅 몽땅 gradle로 바꿨다.

    가독성이 높아져서 그런가 한결 개운하다. 

반응형
블로그 이미지

ingus

,
반응형

 

윈도우 작업스케줄러를 사용해도 되지만,

"내 일을 바꾸는 업무 자동화" 책에서 cron으로 배포하는 방법이 있어서 해봤다.

 

cron은 윈도우 작업스케줄러와 같이 잡 스케줄러다.

작업 실행 시간설정하는 부분이 스프링배치와 유사하다.

 

[ 선행 작업 ]

 - 배포용 프로그램을 만든다.

   (.py 파일을 바로 cron에 설정할 수 있지만, 유지관리 측면에서 배포용 프로그램 생성함)

 

2021.07.09 - [개발환경/python] - python 소스파일을 exe 파일로 배포하는 방법

 

python 소스파일을 exe 파일로 배포하는 방법

cron 또는 작업스케줄러로 배치를 작성하기 위해 배포를 했다. 크롬드라이브를 배포시 포함할 수 있는 데 --add-binary 구문을 사용하면 된다. 파이썬 터미널 > pip install pyinstaller 파이썬 터미널 > pyins

ingus26.tistory.com

 

1. cron 설치

  1) http://www.nncron.ru 사이트에 접속한다.

 

nnSoft: nnCron, nnCron LITE, nnBackup, nnSync

: nnCron : shareware : Win9*,ME,NT,2000,XP,Vista nnCron is an advanced and very powerful scheduler, scripting tool and automation manager. nnCron is very small in size (900k), but its capabilities are truly colossal. Besides possessing the traditional sche

www.nncron.ru

  2) 상단에 download 버튼을 클릭한 뒤, LITE 버전을 설치한다.

   -> 현재 LITE 버전은 nncronlt117.exe 이다.

 

  3) 설치가 완료되면 서비스에 cron 이 등록된다!

 

2. cron에 일정 등록

  1) 워드패드를 "관리자 권한으로 실행" 한다.

   

  2) 파일 > 열기 버튼을 클릭하여 cron.tab 파일을 선택한다.

     - 모든 문서(*.*)로 해야 cron.tab이 보인다.

     - 설치경로 : C:\Program Files (x86)\cron

   - 워드패드에 분 시 매일 매월 매요일 "경로\실행파일명" 를 입력한다.

     ㄴ 참고 리눅스 crontab 시간 설정 방법 예제 샘플 (tistory.com)

 

리눅스 crontab 시간 설정 방법 예제 샘플

crontab 파일에 시간을 설정하는 방법을 알아보겠습니다. crontab 서식 분 시 일 월 요일 명령어또는 스크립트 단위  내용  분  분(0~59)을 설정. *을 설정한 경우 1분 단위로 실행.  시  시간(0~23)을

ponyozzang.tistory.com

   3) 설정된 시간에 제대로 실행되는 지 결과물과 로그를 확인해본다.

    - 로그위치 : C:\Program Files (x86)\cron\log

반응형
블로그 이미지

ingus

,
반응형

2021.07.09 - [개발환경/python] - python, selenium 창 안띄우고 실행 및 파일 다운로드 방법

 

python, selenium 창 안띄우고 실행 및 파일 다운로드 방법

1. 인터넷브라우저 창을 안띄우고 실행하는 방법 - option을 추가하고 headless를 명시한다. # -*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver.chrome.options import Options opt..

ingus26.tistory.com

회사 컴퓨터에 다양한 보안 프로그램이 설치 되어 있어서

시행착오가 많았다.

 

내 컴퓨터는 윈도우가 관리자 계정이 아니라 사용자 계정으로 되어있다.

 

[ 선행 작업 ]

  1) 파일을 exe파일로 배포한다.

    -> py 파일을 바로 실행할 수 있지만,

        유지관리측면에서 다른 사람과 공유하기 쉽게 exe 파일로 배포했다.

 

    ㄴ 관련글 

2021.07.09 - [개발환경/python] - python 소스파일을 exe 파일로 배포하는 방법

 

python 소스파일을 exe 파일로 배포하는 방법

cron 또는 작업스케줄러로 배치를 작성하기 위해 배포를 했다. 크롬드라이브를 배포시 포함할 수 있는 데 --add-binary 구문을 사용하면 된다. 파이썬 터미널 > pip install pyinstaller 파이썬 터미널 > pyins

ingus26.tistory.com

   2) 파일 다운로드 기능이 있으면, 절대경로 또는 상대경로를 지정해준다.

    ㄴ 관련글

2021.07.09 - [개발환경/python] - python, selenium 창 안띄우고 실행 및 파일 다운로드 방법

 

python, selenium 창 안띄우고 실행 및 파일 다운로드 방법

1. 인터넷브라우저 창을 안띄우고 실행하는 방법 - option을 추가하고 headless를 명시한다. # -*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver.chrome.options import Options opt..

ingus26.tistory.com

 

 

1. 윈도우 작업스케줄러 이용

   - 나의 경우 사용자 계정으로 작업스케줄러를 실행할 수 없어서,

     관리자 권한으로 작업스케줄러를 실행했다.

 

 

   1) 작업 스케줄러 (로컬)에서 마우스 우클릭하여, "작업 만들기(R)..."을 클릭한다.

 

  2) "이름(M)" 을 지정하고 

     "사용자의 로그인 여부에 관계없이 실행(W)"을 선택한다.

다음, 작업실행시 사용할 사용자 계정을 변경한다.

-> 해당작업은 작업스케줄러를 관리자권한으로 실행하여

    작업실행시 사용할 사용자 계정이 Administrator로 설정되었기 때문에 변경하는 단계이다.

    또한, os.getlogin()를 이용하여 컴퓨터 계정 정보를 다운로드 경로에 사용하고 있다면

    꼭 사용자계정으로 변경해야 Administrator 하위폴더에 저장되지 않고 사용자계정 하위폴더로 저장된다.

 

 [ 선행 작업 ]

 - 사용자 계정으로 변경시 "일괄 작업으로 로그온" 권한을 추가하라는 팝업이 뜬다.

   이 부분은 아래 블로그를 통해 해결해보자.

Windows 작업 스케줄러에 URL 실행 예약작업 등록 :: ::: System Engineer 대백과사전 ::: (tistory.com)

 

 

 3) 위 이미지에서 "사용자 또는 그룹 변경(U)..."을 누른다.

     그리고 "고급(A)..."을 클릭한다.

    "지금 찾기(N)" 클릭하여

    사용자계정을(현재 컴퓨터 계정 아이디) 선택하고 "확인" 버튼을 클릭한다.

 

  4) 스케줄러를 수행할 시작점을 지정해준다.

  - 트리거 탭에서 "새로 만들기(N)..."을 선택한다.

 

- 그리고 작업 시간 정보를 입력한다.

 

 5) 스케줄러로 실행할 동작을 지정해준다.

 - 동작 탭에서 "새로 만들기(N)..." 을 클릭한다.

- "찾아보기(R)..."을 클릭하여 실행할 프로그램을 지정한다.

 

 6) 전원 옵션을 해제한다.

  - 조건 탭에서 "컴퓨터의 AC 전원이 켜져 있는 경우에만 작업 시작(P)"를 체크 해제한다.

 

  7) 마무리 되면, 암호 입력창에 암호를 입력한다.

     그리고 작업스케줄러를 실행했을 때

     제대로 지정된 시간에 작업이 완료되는 지 확인해본다.

   ㄴ 잘 되지 않는 경우 1-2)에서 "가장 높은 수준의 권한으로 실행(I)"을 체크한 후 작업이 진행되는 지 확인해본다.

 

   ※ 실행 기록을 확인하고자 한다면

       작업 스케줄러 왼쪽 상단, 아래 이미지의 빨간색 표시를 클릭한 뒤

       우측 창에서 "모든 작업 기록 사용" 을 클릭하고

       다시 작업을 실행해본다.

 

- 끝 - 

반응형
블로그 이미지

ingus

,
반응형

 - 파이참 오른쪽 하단에 버전정보를 클릭한다.

 - Add Interpreter...를 클릭한다.

 

- 경로를 설정해준다. (완료)

 

 

기존에 사용중이던 프로젝트 인 경우

아래 Run/Debug Configurations 설정이 필요하다.

안 그럴경우 이전 파이썬 경로/환경설정을 가져오면서 오류가 났다.

 

- 파이참 오른쪽 상단에 ▶의 좌측 버튼을 클릭한다(노란색 표시된 부분)

 

- Edit Configurations...를 클릭한다.

 

- 제거할 항목을 선택하고 - 를 클릭한다.



출처: https://ingus26.tistory.com/76 [일상기록]

반응형
블로그 이미지

ingus

,
반응형

 

  cron 또는 작업스케줄러로 배치를 작성하기 위해 배포를 했다.

  크롬드라이브를 배포시 포함할 수 있는 데 --add-binary 구문을 사용하면 된다.

 

  파이썬 터미널 > pip install pyinstaller

  파이썬 터미널 > pyinstaller --add-binary "파일명.exe;." 소스파일명.py

 

  배포용으로 생성된 파일은 아래 경로에 있다

  ㄴ 위치 : 소스폴더 > dist 폴더 하위

   

반응형
블로그 이미지

ingus

,
반응형

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

server = smtplib.SMTP("smtp 주소", "smtp 포트")
server.starttls()
server.login("보내는 사람 이메일 계정", "보내는 사람 이메일 비밀번호")

msg = MIMEMultipart('alternative')
msg['Subject'] = "제목"
msg['From'] = "보내는 사람 이메일 계정"
msg['To'] = "받는 사람 이메일 계정"
mailContent= "메일 본문"

 

mailContent= MIMEText(mailContent, 'html')
msg.attach(mailContent)

server.sendmail(msg['From'], msg['To'].split(','), msg.as_string())
server.quit()

 

 

 

 

2021.06.24 - [개발환경/python] - 윈도우에서 Python으로 이메일 발송시(smtp) 발송 안 되는 문제 해결방법

 

윈도우에서 Python으로 이메일 발송시(smtp) 발송 안 되는 문제 해결방법

 파이썬 파일 자체 인코딩 문제인 줄 알고 헤맸는 데  사실은 정말 단순하게도 컴퓨터 이름 인코딩 문제였다. [ 오류 내용 ] UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb1 in position 0..

ingus26.tistory.com

 

반응형
블로그 이미지

ingus

,