프로그래밍 15

[Flutter/Dart] 리스트 클래스 정리

Flutter 3.24.3 다트 라이브러리를 참고해서 List Class의 모든 걸 정리하고자 한다.Fixed-length list 와Growable list Fixed-Length list크기가 고정된 리스트. 리스트의 크기를 변경하려고 하면 에러남. Growable list기본적으로 사용하는 리스트. 내부 버퍼를 사용하고, 필요에 따라 늘림. 생성자 ConstructorsList.emptyList.empty({bool growable = false})빈 리스트 생성. 기본 growable이 false라 Fixed-Length list로 생성된다.List testList = List.empty(growable: false);testList.add(0); //에러testList = List.empty(g..

세차 언제? 세차일 추천 어플

언제 세차하지? 세차일 고민 끝! 기상청 예보를 바탕으로 세차 예상 지속일을 알려드립니다. 안드로이드 https://play.google.com/store/apps/details?id=kr.sheeps.car_washing_day.car_washing_day IOS https://apps.apple.com/kr/app/%EC%84%B8%EC%B0%A8%EC%96%B8%EC%A0%9C/id6476641505 등록 지역의 일기예보에 맞춰 예상 세차 지속일을 알려줍니다. 기상청의 단기, 중기예보를 바탕으로 각 날짜별 예상 지속일을 알려줘요. 특정 날짜에 세차 예정을 등록할 수 있고, 당일이 되면 알림을 보내줍니다. 세차 지속 예상에 쓰이는 강수확률을 직접 설정 가능해요. 개인별 맞춤 설정이 가능합니다. 안드로..

프로그래밍 2024.03.14

Cloud9로 AWS Lambda Layer 만들기(python)

aws 람다에서 사용할 계층을 만들며 고생한 것을 정리한 것입니다. 윈도우 환경에서 개발중인데, 일부 패키지들은 OS에 따라 구성이 다르기때문에 Lambda에서 사용할 수 없습니다. 이 문제를 해결하기 위한 Docker 사용 등 다른 방법도 있지만 AWS Lambda와 환경이 같은 Cloud9을 이용해서 layer에 사용할 패키지를 설치하는게 가장 깔끔하겠다고 생각해서 이 방법으로 진행했습니다. Cloud9 세팅 AWS Cloud9 환경 생성 기본 세팅으로 생성해줍니다. Cloud9 IDE 실행 터미널 창 열기 필요한 파이썬 버전 설치 파일 내려받기 wget https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgz 저는 파이썬3.12.0 버전을 사용했고, ..

프로그래밍/AWS 2024.02.06

[안드로이드/Android]레이아웃 숨기기

layout.setVisibility(View.VISIBLE);해당 뷰를 보여줌 layout.setVisibility(View.INVISIBLE);해당 뷰를 안 보여줌(공간은 존재) layout.setVisibility(View.GONE);해당 뷰를 안 보여줌(공간마저 감춤) 보여주는 모습이 약간 헷갈릴 수 있는데 예를 들자면 이렇다. 가운데 B2라고 적힌 레이아웃을 setVisibility(View.INVISIBLE)해주면이렇게 된다. 원래 B2가 있던 공간이 자리를 차지하고 있다.여기서 아까 그 레이아웃을 layout.setVisibility(View.GONE)해주면이렇게 된다. 자리를 차지하고 있던것도 사라진다. RelativeLayout rl_B2; rl_B2 = (RelativeLayout)fi..

[안드로이드/Android]약분, 최대공약수 구하기

이번에 분수 계산하는 클래스를 만들면서 약분을 어떻게 해야할까 고민하다가 검색을 해보니 이런 알고리즘이 있더군요.최대공약수를 구하는 알고리즘으로 유클리드.. 잘은 모르지만 활용만 해봤습니다. 유클리드 호제법(- 互除法, Euclidean algorithm)은 2개의 자연수 또는 정식(整式)의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란 말은 두 수가 서로(互) 상대방 수를 나누어(除)서 결국 원하는 수를 얻는 알고리즘을 나타낸다. 2개의 자연수(또는 정식) a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다. 이 성질에 따라, b를 r로 나눈 나머지 r'를 구하고, 다시 r을 r'로 나눈 나머지를 구하는 과정을 반복하여 나머지..

[안드로이드/Android]특수문자 입력하기

안드로이드 특수문자 입력방법입니다. 텍스트뷰나 기타등등에 특수문자를 입력할 때 유니코드를 이용하여 입력합니다. 먼저 특수문자의 유니코드를 알아야겠죠 윈도우즈 실행창에 다음과 같이 입력해서 문자표를 실행시켜줍니다. 그럼 문자표가 뜨는데요 여기서 원하는 기호를 눌러주면 유니코드가 보입니다 이 코드를 입력해주면 되겠습니다. \u003d 와 같이 입력합니다. 역슬래시라는것에 주의합니다. xml에도 같은 방법으로 입력할 수 있습니다.

[안드로이드/Android]랜덤함수, 난수 만들기

난수를 만들어주는 두가지 방법 첫 번째 방법 Math 클래스의 random메소드를 이용한다. random메소드는 0과 1사이의 double형 난수를 만들어준다. 예시 import java.util.Random; //객체생성 Random random = new Random(); //x에는 0~5 사이의 정수가 담김 int x = random.nextInt(6); //y에는 Math.random()과 동일하게 0~1사이의 난수가 저장된다. double y = random.nextDouble(); Random클래스의 자세한 부분은 Reference문서 참조https://developer.android.com/reference/java/util/Random.html

[안드로이드/Android]안드로이드 Activity 전환

Intent를 이용하여 전환합니다. 먼저 새로 만든 액티비티를 매니페스트 문서에 등록해줍니다. 그리고 새로운 액티비티로 전환할 액티비티의 온클릭 등 적당한 위치에 Intent를 이용하여 새 액티비티를 띄워줍니다. Intent intent = new Intent(현재액티비티.this, 새로운 액티비티 클래스.class); startActivity(intent); 끝! 간단하네요.