1. 개발환경 셋팅에 앞서

    1. Flutter는 Visual Studio Code또는 Android Studio And IntelliJ 2가지를 공식적으로 지원함(링크

    2. 앱을 배포하기 위해 필요한 도구들이 Android Studio에 있고, 기타 셋팅도 편해서(intelliJ를 평소 사용하기에) Android Studio를 사용해서 셋팅을 진행

  2. Android Studio 설치

    1. https://developer.android.com/studio

    2. SDK 설치

      1. ANDROID_HOME 환경 변수 등록

      2. Sdk 하위의 platform-tools를 path에 등록

  3. Flutter SDK 다운로드

    1. https://flutter.dev/docs/development/tools/sdk/releases?tab=windows 

      1. path 설정

        1. flutter\bin path에 등록

  4. Flutter Plugin 설치

    1. Flutter Plugin 설치

    2. dart도 함께 설치

  1. Flutter 프로젝트 생성

    1. SDK Path 셋팅

       

    2. New Project

       

    3. 앱 구동 테스트

 

 

 





Action
IntelliJ IDEA
Eclipse
Open any file quickly
(파일명 입력으로 바로 찾기)
Ctrl + Shift + NCtrl + Shift + R
프로젝트 전체에서 찾기Ctrl + Shift + F 
Show all the members of current typeCtrl + F12Ctrl + O
Delete lineCtrl + YCtrl + D
Duplicate lineCtrl + DCtrl + Alt + ↓
메소드 호출 위치로 바로 가기Ctrl + Alt + H 
Open hierarchyCtrl + HF4
특정 라인넘버의 위치로 바로 이동CTRL + G 
구현체로 바로 가기(ex. 인터페이스의 구현체로 바로가기)CTR + ALT +B 
out line viewALT + 7 또는 CTR + F12 
리네임(리팩토링)Shifth + F6 
스프링 Request MapperSHIFT + CTRL + \ 
마지막 편집 위치로 이동ctrl + shift + backspace
To jump from one member to the next (or previous)Alt + ↓ Alt + ↑Ctrl + Shift + ↓ Ctrl + Shift + ↑
Go to parent classCtrl + BCtrl + T
Back and forth through the files you have visitedCtrl + Alt + ← Ctrl + Alt + →Alt + ← Alt + →
Last edit locationCtrl + Shift + BackspaceCtrl + Q
Organize importsCtrl + Alt + OCtrl + Shift + O
DebugShift + F9F11
RunShift + F10Ctrl + F11
Step IntoF7F5
Step OverF8F6
Step OutShift + F8F7
ResumeF9F8
Rename in placeShift + F6Alt + Shift + R
Format codeCtrl + Alt + LCtrl + Shift + F
Change signatureCtrl + F6Alt + Shift + C
Quick fixAlt + EnterCtrl + 1
View Javadoc for memberCtrl + QMouse over


ctrl + H 예

SVN -> GIT 변경방법(커밋이력 보존됨)
 - 기여자: 회사후배 (링크


  1.  git-svn을 통해 svn history를 받을 temp 폴더 생성

    $ mkdir git-folder
    $ cd git-folder

  2.  git-svn을 통해 git repository 초기화

    $ git svn init [svn repository url]/{프로젝트 폴더명} -T trunk -b branches -t tags



  3. svn 히스토리 가져오기

    $ git svn fetch

       * history가 많을 수록 오래 걸린다. (하루종일 걸릴 수도 있음)

       * 중간에 실패로 중단 되더라도 반복하여 끝까지 받으면 된다.


  4. 로컬 & 리모트 브랜치 확인

    $ git branch -a

    아래와 비슷하게  svn remote branch를 확인 할 수 있다.

    * master
    remotes/svn/tags/0.1.0
    remotes/svn/tags/0.2.0
    remotes/svn/tags/0.3.0
    remotes/svn/tags/0.4.0
    remotes/svn/trunk

  5.  새로 이동할 git 저장소 주소로 git remote url을 셋팅해줌 

    $ git remote add origin [git repository url]
    $ git remote -v

  6.  새로운 git 저장소로 코드 push

    $ git push origin master




'개발툴' 카테고리의 다른 글

Top 35 Git Commands With Examples  (0) 2021.08.24
postman 툴의 HTTP/2 지원과 관련  (0) 2020.04.21

  • 목적/배경
    • 가끔 네이버 실시간검색 키워드를 파싱할 필요가 있는데(toy) 간단히 빠르게 만들기 위해서 파이썬 사용


  1. 코드
    1. 2020-01-12 기준 네이버 급상승검색어의 html 규칙상 apsn.ah_k 를 선택
#!/usr/bin/env python3
# Anchor extraction from HTML document
from bs4 import BeautifulSoup
from urllib.request import urlopen


#네이버 급상승 검색어 순위 가져오기
with urlopen('https://www.naver.com'as response:
    soup = BeautifulSoup(response, 'html.parser')
    rank = 1
    for anchor in soup.select('span.ah_k'):
       print(str(rank) + " : "  + anchor.get_text())
       rank = rank +1


  1. 결과
  




 

 
참고 링크
 
  1. 배경 및 목적
    1. 요즘 MSA 등의 형태로 서비스를 만들다보니 외부 API호출하는 경우가 많음(또는 AWS 서비스 호출)
    2. 네트웤 문제나 스로틀링 등의 문제로 가끔 실패가 발생하는 경우가 있음. 실패가 발생할 경우 재 처리가 필요하여 사용
 
 
 
예제 소스 (from AWS)
  •  지수 백오프의 기본 아이디어는 오류 응답이 연이어 나올 때마다 재시도 간 대기 시간을 점진적으로 늘린다는 것.
  • 최대 지연 간격과 최대 재시도 횟수를 구현해야 함. 최대 지연 시간 간격과 최대 재시도 횟수는 고정 값일 필요가 없으며, 수행 중인 작업과 다른 로컬 요인(예: 네트워크 지연 시간)을 기반으로 설정
java 버전의 재 시도 대기시간 구하는 메소드 샘플
* 참고로 jitter를 적용하는게 좋음(위 aws글 참고
Thread.sleep(RetryUtil.getRetrySleepTime(retryCnt, 2, 1000, 2000)); //대기처리

	
/**
* 재 시도시 대기시간(sleep) 구하기
*  - 지수 백오프 알고리즘 기반
*
* @param retryCount 요청하는 재시도 횟수
* @param increaseBase 증가 처리의 지수의 밑(ex. 2^4 에서 2)
* @param increaseMillis 매 재 요청마다 증가하는 시간(밀리시간초)
* @param maxWaitMillis 최대 대기시간(밀리시간초). 매 증가하는 대기 시간은 최대 대기시간을 넘을 수 없음
* @return
*/
public static long getRetrySleepTime(int retryCount, double increaseBase, long increaseMillis, long maxWaitMillis) {

    long waitTime = ((long)Math.pow(increaseBase, retryCount) * increaseMillis); //ex) ((long)Math.pow(2, retryCount) * 100L);  => 100, 200, 400, 800, 1600과 같이 증가함
    return Math.min(waitTime, maxWaitMillis); //두번째 argment은 최대 대기시간(밀리세컨드)
}



 
AWS 샘플 소스
public enum Results {
    SUCCESS,
    NOT_READY,
    THROTTLED,
    SERVER_ERROR
}
 
 
/*
* Performs an asynchronous operation, then polls for the result of the
* operation using an incremental delay.
*/
public static void doOperationAndWaitForResult() {
 
 
    try {
        // Do some asynchronous operation.
        long token = asyncOperation();
 
 
        int retries = 0;
        boolean retry = false;
 
 
        do {
            long waitTime = Math.min(getWaitTimeExp(retries), MAX_WAIT_INTERVAL);
 
 
            System.out.print(waitTime + "\n");
 
 
            // Wait for the result.
            Thread.sleep(waitTime);
 
 
            // Get the result of the asynchronous operation.
            Results result = getAsyncOperationResult(token);
 
 
            if (Results.SUCCESS == result) {
                retry = false;
            } else if (Results.NOT_READY == result) {
                retry = true;
            } else if (Results.THROTTLED == result) {
                retry = true;
            } else if (Results.SERVER_ERROR == result) {
                retry = true;
            }
            else {
                // Some other error occurred, so stop calling the API.
                retry = false;
            }
 
 
        } while (retry && (retries++ < MAX_RETRIES));
    }
 
 
    catch (Exception ex) {
    }
}
 
 
/*
* Returns the next wait interval, in milliseconds, using an exponential
* backoff algorithm.
*/
public static long getWaitTimeExp(int retryCount) {
 
 
    long waitTime = ((long) Math.pow(2, retryCount) * 100L);
 
 
    return waitTime;
}
 

 


메모

 - 2019-10-11 글


https://quickblox.com/blog/why-quickblox-choose-xmpp-protocol/

https://infrastructure.aws/


멋있게 나옴



+ Recent posts