'프로그래밍'에 해당되는 글 14건
- 2024.03.14 :: 세차 언제? 세차일 추천 어플
- 2024.02.06 :: Cloud9로 AWS Lambda Layer 만들기(python)
- 2021.04.07 :: [Flutter/Dart] 문자열 String Method 가지고 놀기
- 2016.09.19 :: [안드로이드/Android]레이아웃 숨기기
- 2016.09.13 :: [안드로이드/Android]약분, 최대공약수 구하기
- 2016.07.22 :: [안드로이드/Android]특수문자 입력하기
- 2016.07.15 :: [안드로이드/Android]setTextColor 사용법
- 2016.07.14 :: [안드로이드/Android]랜덤함수, 난수 만들기
- 2016.07.13 :: [안드로이드/Android]안드로이드 Activity 전환
- 2016.07.13 :: [안드로이드/Android]ExpandableListView ClickListener 설정
언제 세차하지? 세차일 고민 끝!
기상청 예보를 바탕으로 세차 예상 지속일을 알려드립니다.
안드로이드
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
등록 지역의 일기예보에 맞춰 예상 세차 지속일을 알려줍니다.
기상청의 단기, 중기예보를 바탕으로 각 날짜별 예상 지속일을 알려줘요.
특정 날짜에 세차 예정을 등록할 수 있고, 당일이 되면 알림을 보내줍니다.
세차 지속 예상에 쓰이는 강수확률을 직접 설정 가능해요. 개인별 맞춤 설정이 가능합니다.
안드로이드
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
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 버전을 사용했고, 필요한 버전으로 변경해서 사용하면 됩니다.
필요한 버전 파일 확인은 여기서.
https://www.python.org/ftp/python/
파일 추출
tar xvf Python-3.12.0.tgz
설치
cd Python-*/
./configure --enable-optimizations
sudo make altinstall
1 파이썬 디렉토리로 이동
2 최적화
3 기존 설치 버전을 덮어쓰지 않고 설치
시간이 좀 걸립니다.
설치 확인
python3.12 -V
정상적으로 설치되었다면 버전을 확인할 수 있습니다.
패키지 설치
가상 환경 생성
cd ..
mkdir packaging
cd packaging
python3.12 -m venv layer_package
1 디렉토리 이동
2 packaging 디렉토리 생성
3 디렉토리 이동
4 가상 환경 생성
가상 환경 활성화
source layer_package/bin/activate
패키지 설치
pip install firebase-admin
필요한 패키지를 설치합니다.
저는 lambda에서 fcm을 보내기 위해 firebase-admin을 설치했습니다.
firebase-admin의 경우 호환성 관련 에러로 인해 특정 패키지를 다운그레이드 해줬습니다.
pip install cryptography==3.4.8
가상 환경 비활성화
deactivate
패키지 압축
mkdir python
cp -r layer_package/lib/python3.12/site-packages/* python/
zip -r lambda_layer.zip python
1 디렉토리 생성
2 패키지 아카이브
3 압축
다운로드
명령줄로 layer를 만들어 줄 수있지만, 그냥 다운로드 받아서 콘솔에서 업로드 해주었습니다.
끝.
도움되셨다면 하트 눌러주세요!
참고한 글 목록
https://awstip.com/create-aws-lambda-layers-using-cloud-9-694895903ca5 - 전체적인 방법
https://github.com/pyca/cryptography/issues/9060 - 호환성 에러 관련
layout.setVisibility(View.VISIBLE);
해당 뷰를 보여줌
layout.setVisibility(View.INVISIBLE);
해당 뷰를 안 보여줌(공간은 존재)
layout.setVisibility(View.GONE);
해당 뷰를 안 보여줌(공간마저 감춤)
보여주는 모습이 약간 헷갈릴 수 있는데 예를 들자면 이렇다.
가운데 B2라고 적힌 레이아웃을 setVisibility(View.INVISIBLE)해주면
이렇게 된다. 원래 B2가 있던 공간이 자리를 차지하고 있다.
여기서 아까 그 레이아웃을 layout.setVisibility(View.GONE)해주면
이렇게 된다. 자리를 차지하고 있던것도 사라진다.
'프로그래밍 > 안드로이드' 카테고리의 다른 글
[안드로이드/Android]약분, 최대공약수 구하기 (0) | 2016.09.13 |
---|---|
[안드로이드/Android]특수문자 입력하기 (0) | 2016.07.22 |
[안드로이드/Android]setTextColor 사용법 (0) | 2016.07.15 |
[안드로이드/Android]랜덤함수, 난수 만들기 (0) | 2016.07.14 |
[안드로이드/Android]안드로이드 Activity 전환 (0) | 2016.07.13 |
이번에 분수 계산하는 클래스를 만들면서 약분을 어떻게 해야할까 고민하다가 검색을 해보니 이런 알고리즘이 있더군요.
최대공약수를 구하는 알고리즘으로 유클리드.. 잘은 모르지만 활용만 해봤습니다.
유클리드 호제법(- 互除法, Euclidean algorithm)은 2개의 자연수 또는 정식(整式)의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란 말은 두 수가 서로(互) 상대방 수를 나누어(除)서 결국 원하는 수를 얻는 알고리즘을 나타낸다. 2개의 자연수(또는 정식) a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다. 이 성질에 따라, b를 r로 나눈 나머지 r'를 구하고, 다시 r을 r'로 나눈 나머지를 구하는 과정을 반복하여 나머지가 0이 되었을 때 나누는 수가 a와 b의 최대공약수이다. 이는 명시적으로 기술된 가장 오래된 알고리즘으로서도 알려져 있으며, 기원전 300년경에 쓰인 유클리드의 《원론》 제7권, 명제 1부터 3까지에 해당한다.
출처 : https://ko.wikipedia.org/wiki/%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C_%ED%98%B8%EC%A0%9C%EB%B2%95
최대공약수가 이렇게 간단한 알고리즘으로 구해진다는게 신기하더라구요
'프로그래밍 > 안드로이드' 카테고리의 다른 글
[안드로이드/Android]레이아웃 숨기기 (0) | 2016.09.19 |
---|---|
[안드로이드/Android]특수문자 입력하기 (0) | 2016.07.22 |
[안드로이드/Android]setTextColor 사용법 (0) | 2016.07.15 |
[안드로이드/Android]랜덤함수, 난수 만들기 (0) | 2016.07.14 |
[안드로이드/Android]안드로이드 Activity 전환 (0) | 2016.07.13 |
안드로이드 특수문자 입력방법입니다.
텍스트뷰나 기타등등에 특수문자를 입력할 때 유니코드를 이용하여 입력합니다.
먼저 특수문자의 유니코드를 알아야겠죠
윈도우즈 실행창에 다음과 같이 입력해서 문자표를 실행시켜줍니다.
그럼 문자표가 뜨는데요
여기서 원하는 기호를 눌러주면 유니코드가 보입니다
이 코드를 입력해주면 되겠습니다.
\u003d 와 같이 입력합니다. 역슬래시라는것에 주의합니다.
xml에도 같은 방법으로 입력할 수 있습니다.
'프로그래밍 > 안드로이드' 카테고리의 다른 글
[안드로이드/Android]레이아웃 숨기기 (0) | 2016.09.19 |
---|---|
[안드로이드/Android]약분, 최대공약수 구하기 (0) | 2016.09.13 |
[안드로이드/Android]setTextColor 사용법 (0) | 2016.07.15 |
[안드로이드/Android]랜덤함수, 난수 만들기 (0) | 2016.07.14 |
[안드로이드/Android]안드로이드 Activity 전환 (0) | 2016.07.13 |
항상 찾고나서 느끼는건 겁나 간단하다는것.. Reference문서만 봐서는 알 방법이 없다.
'프로그래밍 > 안드로이드' 카테고리의 다른 글
[안드로이드/Android]약분, 최대공약수 구하기 (0) | 2016.09.13 |
---|---|
[안드로이드/Android]특수문자 입력하기 (0) | 2016.07.22 |
[안드로이드/Android]랜덤함수, 난수 만들기 (0) | 2016.07.14 |
[안드로이드/Android]안드로이드 Activity 전환 (0) | 2016.07.13 |
[안드로이드/Android]ExpandableListView ClickListener 설정 (0) | 2016.07.13 |
난수를 만들어주는 두가지 방법
첫 번째 방법
Math 클래스의 random메소드를 이용한다.
random메소드는 0과 1사이의 double형 난수를 만들어준다.
예시
'프로그래밍 > 안드로이드' 카테고리의 다른 글
[안드로이드/Android]특수문자 입력하기 (0) | 2016.07.22 |
---|---|
[안드로이드/Android]setTextColor 사용법 (0) | 2016.07.15 |
[안드로이드/Android]안드로이드 Activity 전환 (0) | 2016.07.13 |
[안드로이드/Android]ExpandableListView ClickListener 설정 (0) | 2016.07.13 |
[안드로이드/Android]화면 가로 또는 세로로 고정하기 (0) | 2016.07.13 |
Intent를 이용하여 전환합니다.
먼저 새로 만든 액티비티를 매니페스트 문서에 등록해줍니다.
'프로그래밍 > 안드로이드' 카테고리의 다른 글
[안드로이드/Android]특수문자 입력하기 (0) | 2016.07.22 |
---|---|
[안드로이드/Android]setTextColor 사용법 (0) | 2016.07.15 |
[안드로이드/Android]랜덤함수, 난수 만들기 (0) | 2016.07.14 |
[안드로이드/Android]ExpandableListView ClickListener 설정 (0) | 2016.07.13 |
[안드로이드/Android]화면 가로 또는 세로로 고정하기 (0) | 2016.07.13 |
ExpandableList가 깔끔하고 좋아보이길래 테스트를 했습니다만..
OnItemClickListener로 클릭 할 수 없더라구요!?
그래서 여기저기 검색한 결과
GroupClick과 ChildClick으로 나눠져 있더군요
그리고 onChildClick메소드가 void가 아니라 boolean이던데 왜 그런지, 어떤 효용인지는 아직 잘 모르겠네요
어떻게 쓰는거지..
리스너는 다음과 같이 쓰면 되더라구요
'프로그래밍 > 안드로이드' 카테고리의 다른 글
[안드로이드/Android]특수문자 입력하기 (0) | 2016.07.22 |
---|---|
[안드로이드/Android]setTextColor 사용법 (0) | 2016.07.15 |
[안드로이드/Android]랜덤함수, 난수 만들기 (0) | 2016.07.14 |
[안드로이드/Android]안드로이드 Activity 전환 (0) | 2016.07.13 |
[안드로이드/Android]화면 가로 또는 세로로 고정하기 (0) | 2016.07.13 |