본문 바로가기
반응형

분류 전체보기571

[Kotlin] SQLite 에서 statement ? parameter 사용하기 이전 글에서 sql 문을 아래와 같이 만들어서 사용했다면, fun addData(tableName: String, name: String, age: Int, mobile: String){ val sql = "insert into $tableName (name, age, mobile) values " + "('$name', $age, '$mobile')" database?.let{ it.execSQL(sql) logView("Table $tableName Data Inserted") } ?: run { logView("database is null!") } } value 부분을 이렇게 만들면 sql injection에 취약하게 됩니다. : ('$name', $age, '$mobile') 그래서 다음과 같이.. 2023. 8. 16.
[Android]Kotlin - WebView 사용하기 AndroidManifest.xml 에서 다음 권한을 추가해줍니다. Activity 를 하나 생성합니다. layout 파일에서 WebView 를 검색해서 추가합니다. 또는 직접 코드 추가. 아래는 Activity 의 코드입니다. class WebViewActivity : AppCompatActivity() { private lateinit var binding: ActivityWebViewBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityWebViewBinding.inflate(layoutInflater) setContentView(binding.roo.. 2023. 8. 16.
[FastAPI] 비밀번호 암호화, JWT 사용하기 비밀번호 암호화 라이브러리 설치 pip install "passlib[bcrypt]" 우선 비밀번호 hash / verify 하는 예제 코드 입니다. from passlib.context import CryptContext pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") def get_password_hash(password): return pwd_context.hash(password) def verify_password(plain_password, hashed_password): return pwd_context.verify(plain_password, hashed_password) print(get_password_hash('he.. 2023. 8. 15.
[AWS] Python 으로 CloudWatch Log 쓰기 (Feat. FastAPI) BackEnd 로 FastAPI 를 사용하는데, AWS 에 서비스를 올릴거라서 로깅은 CloudWatch 를 사용해보기로 했습니다. 로그 저장부터 검색, 삭제까지 너무 편한 기능이 다 있어서, 로깅에 대해서 내가 귀찮은 작업을 안해도되는..ㅎㅎ; 우선 dev 환경인 로컬에서도 aws 의 서비스를 사용하기 위해서 aws 사용자를 추가해야합니다. 사용자 생성 IAM 으로 가서 사용자를 생성합니다. 사용자 > 사용자추가 클릭 다음 > 사용자 생성 생성이 완료되면, 생성된 사용자를 클릭, 액세스 키 만들기 클릭 액세스 키가 생성되면 복사해서 잘 보관해야합니다. 또는 csv 다운로드해서 보관. watchtower 추가 pip install watchtower Logger 에 Handler 추가 import wat.. 2023. 8. 14.
Python 실행 파일의 경로를 환경 변수에 추가하기 import sys from pathlib import Path sys.path.insert(0, Path(__file__).parent) 2023. 8. 13.
AWS - RDS - MySQL 사용해보기 (외부접속 설정) AWS MySQL 사용해보기 AWS 콘솔에 로그인 서비스 : RDS 검색 [데이터베이스 생성] 클릭 표준 생성은 많은 옵션을 설정해야되서 "손쉬운 생성" 으로 테스트나 개인 프로젝트 용도라면 MySQL 과 프리티어 DB 이름, root 계정이름, 암호입력 마스터 사용자 이름과 비밀번호는 잘 기억해두세요. 생성이 완료되면, 외부에서 (로컬 workbench 나 datagrip 같은 곳에서) 접근하기 위해 설정을 더 해줍니다. 데이터베이스를 선택하고 우측 상단에 [수정] 클릭 스크롤 다운 하다보면, 중간 쯤, 연결의 추가구성 클릭 "퍼플릭 액세스 가능" 으로 선택합니다. 수정을 누릅니다. 꽤 오래 걸리네요.. 아직 끝난게 아닙니다.. db 식별자를 누르고 나오는 연결&보안 탭에서 VPC보안 그룹을 클릭합니다.. 2023. 8. 12.
[Selenium] Scroll to Element # element 를 찾음 element = driver.find_element(By.ID, 'hello-bryan') # javascript를 실행해서 element 로 이동 driver.execute_script("arguments[0].scrollIntoView();", element) 2023. 8. 12.
[Kotlin] SQLiteDatabase 기본적인 사용 방법 우선 DbTestActivity 를 Empty Activity 로 생성. ViewBinding 으로 설정 class DbTestActivity : AppCompatActivity() { private lateinit var binding: ActivityDbTestBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityDbTestBinding.inflate(layoutInflater) setContentView(binding.root) } } layout 의 root layout 을 LinearLayout 으로 변경하고, 4개의 버튼과 1개의 TextView.. 2023. 8. 10.
Git SSH 사용해서 clone 하기 (ssh key) ssh-keygen -t ed25519 -C "com.bryan.oh@gmail.com" -C 다음엔 아무 문구나 괜찮음. 이렇게 뭐라뭐라 입력하라고 나오면 그냥 Enter키 ㄱㄱㄱ key 가 만들어진 위치로 이동 cd ~/.ssh 파일 내용 확인 후 복사 (아래 명령어 날리면 나오는 텍스트 복사) cat id_ed25519.pub github 으로 이동 title 임의로 입력하고 Key 에 위에서 복사한 값 붙혀넣기 위에꺼 복사해서 git clone {복사한거 붙혀넣기} 2023. 8. 8.
_update_by_query (부분 업데이트) _update_by_query 아래와 같은 document 가 있을 때, { "user_name": "hello-bryan", "site_url": "https://hello-bryan.tistory.com", "language": "python" } language 필드의 값만 바꾸고 싶다면 POST your_index/_update_by_query?conflicts=proceed { "script":{ "source": "ctx._source.language = 'java'" }, "query": { "query_string": { "query": "_id: 123456" } } } query 필드로 documents 를 검색해서 검색된 결과를 모두 업데이트 합니다. 위는 간단한 값을 변경하는 예제이.. 2023. 8. 7.
728x90
반응형