개발 109

[Python] venv 가상환경에서 프로젝트 실행하기

📱테스트 환경 "python": "3.9.0" "PyCharm": "2023.2" "flask": "2.3.3" 😢 주의사항 나는 파이썬 초보다. 2023.08.24 - [Python] - [Python 초보] requirements.txt [Python 초보] requirements.txt 📱테스트 환경 "python": "3.9.0" "PyCharm": "2023.2" "flask": "2.3.3" 😢 주의사항 나는 파이썬 초보다. 대학교에서 쥬피터 이용해서 네이버에 손흥민 검색했을 때 나오는 뉴스결과 긁어본게 전부다. requirem 8735.tistory.com 이것도 안지 얼마 안됐다고 말한거면 진짜 말 다한거다. 그래도 일단 Flask 로 개발을 간단하게 진행하고 있다보니 내가 배운 새로운 내..

Python 2024.01.12

[IT] Web 페이지 로딩 하는 과정

Web 개발을 하는데, Web 이 어떻게 로딩되는지 정도는 알고 개발해야 Web 개발한다고 어디가서 말할 수 있지 않을까 하는 취지에서 작성하게 되었다. 물론 모르는건 아닌데 체계적으로 설명하기 위해서 & 기록하기 위해서 .. 제일많이 사용되는 Google 을 가지고 간단하게 작성해보자면 DNS 조회 (Domain Name System) 사용자가 브라우저에 www.google.com을 입력하면, 해당 도메인 이름을 IP 주소로 변환하기 위해 DNS 서버에 요청 DNS 서버는 www.google.com에 대한 IP 주소를 반환 TCP 연결 (Three-Way Handshake) 브라우저는 얻은 IP 주소를 사용하여 Google 서버에 TCP 연결을 시도 HTTP 요청 TCP 연결이 설정되면, 브라우저는 H..

IT 2023.12.19

[IT] 객체지향 개발의 5원칙 (SOLID 원칙)

SOLID 는 객제치향 프로그래밍(OOP) 에서 디자인 원칙을 나타내는 다섯가지 원칙의 약자이다. 단일 책임 원칙 (Single Responsibility Principle - SRP): 클래스는 하나의 책임만 가져야 한다. → 클래스가 변경되어야 하는 이유는 단 하나여야 한다. 개방/폐쇄 원칙 (Open/Closed Principle - OCP): 소프트웨어 엔티티(클래스, 모듈, 함수 등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다. 새로운 기능이 추가되거나 변경이 필요할 때 코드를 수정하지 말고, 기존 코드를 확장하여 새로운 기능을 추가할 수 있어야 한다. 리스코프 치환 원칙 (Liskov Substitution Principle - LSP): 하위 타입은 상위 타입으로 치..

IT 2023.12.19

[Kotlin] Storage 이미지 저장, 불러오기, 삭제

📱테스트 환경 Samsung Galaxy Android 13 • Android 10 무지렁이 시절 이미지를 저장하고 싶은데, 이미지를 Room 에 저장하고 싶었다. 근데 Bitmap 형식은 Room 에 저장이 안되더라 .. ? 그래서 무지렁이인 나는 Bitmap 을 ByteArray 로 변환해서 Room 에 저장했다 ㅋㅋ 당연히 메모리도 무지막지하게 잡아먹었고 .. 나같이 하는 사람도 없으니 에러가 발생해도 해결하기도 어렵더라 .. 그러다가 멘토님께 설명을 들였는데 당연히 당황하셨고 ㅎ .. 스토리지에 이미지를 저장해놓고, 키값을 Room 에 저장해놓고 그걸로 불러다가 사용하는 거라고 친절하게 설명해주셨다. 해서 이 방법을 기록해 두려고 한다. fun saveImageToInternalStorage(co..

Kotlin 2023.12.19

[Kotlin] UUID 란 ? UUID 생성 하는 방법

val randomUUID: UUID = UUID.randomUUID().toString() // 결과 : f47ac10b-58cc-4372-a567-0e02b2c3d479 이런식으로 랜덤으로 된 고유한 값을 받고싶을 때 UUID 을 이용하면 간편하다. UUID 는 java 의 기본클래스로, 128비트(16바이트) 길이의 식별자로 고유한 식별자를 생성하기 위해 사용한다. 매번 호출할 때마다 다른 UUID 가 생성되기 때문에 그때에 맞춰서 값을 이용하면 된다. 그럼 이렇게 항상 랜덤으로 생성되는 값을 어디서 사용하냐 ? 데이터베이스의 기본 키 ( Primary Key ) : autoGenerate 를 사용하기도 하지만 이렇게 랜덤으로 생성한 고유 값을 사용할 수도 있다. 세션 식별자 및 토큰 : 값이 랜덤..

Kotlin 2023.12.01

[Kotlin] 이미지 다운로드받기 - ByteArray Image Download

📱테스트 환경 Samsung Galaxy Android 13 • Android 10 이미지를 저장하는 방식을 간단히 알아보도록 하자. 01.ImageDownLoad.kt 생성 if (imageData != null) { // 외부 저장소에 바이트 배열을 파일로 저장 val fileName = "downloaded_image.jpg" val file = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), fileName) FileOutputStream(file).use { fileOutputStream -> fileOutputStream.write(imageData) } // 갤러리에 이미지 추가 val m..

Kotlin 2023.11.29

[Kotlin] 애널리틱스 로그 보내기 - Analytics

📱테스트 환경 Samsung Galaxy Android 13 • Android 10 애널리틱스에 이런식으로 이벤트 이름 별 이벤트 수 에 바로 보이게 집계할 수 있도록 하는 방법을 알아보도록 하자. 01. build.gradle ( app ) 종속성 추가 apply plugin: 'com.google.gms.google-services' dependencies { ... implementation 'com.google.firebase:firebase-analytics:17.4.1' implementation(platform("com.google.firebase:firebase-bom:32.3.1")) implementation("com.google.firebase:firebase-analytics-ktx..

Kotlin 2023.11.26

[Kotlin] 상태바 상태 변경하기 - StateBar Changes

📱테스트 환경 Samsung Galaxy Android 13 • Android 10 카카오톡 상태바를 보면 검정색 글씨에 #9AADBC 색상을 사용한 것을 알 수 있다. 이처럼 변경하는 방법을 알아보도록 하겠다. window.statusBarColor 를 사용하면 상태바의 배경색상을 변경 할 수 있다. window.statusBarColor = Color.parseColor("#9AADBC") window.statusBarColor = Color.WHITE 이런식으로 HEX 코드값을 이용해서 색상을 보여줄 수도 있고, 간단하게 Color 에 등록한 색상을 사용할 수도 있다. 자신의 애플리케이션의 색상에 맞춰서 잘 보여주면 된다. window.decorView.systemUiVisibility 를 사용해서..

Kotlin 2023.11.25

[Kotlin] Text 에 Url 연결하기 - 택배검색 url 연결하기

📱테스트 환경 Samsung Galaxy Android 13 • Android 10 목표는 카톡과 유사하게 택배 송장번호를 색상을 입혀주고 Url 을 연결해줘서 검색할 수 있도록 해주는 것이다. 01. urlsTracking.kt 함수 생성 fun urlsAndTrackingNumber(text: String, textView: TextView) { val spannable = SpannableString(text) // URL 적용 val urlPattern = """(https?://[^\s]+)""".toRegex() for (match in urlPattern.findAll(text)) { val colorSpan = ForegroundColorSpan(Color.parseColor("#4187C..

Kotlin 2023.11.25

[Kotlin] Admob 적응형 배너 등록하는 방법

📱테스트 환경 Samsung Galaxy Android 13 • Android 10 https://developers.google.com/admob/android/quick-start?hl=ko#import_the_mobile_ads_sdk 시작하기 | Android | Google for Developers Android 앱을 제작 중인 Google AdMob 게시자를 위한 모바일 광고 SDK입니다. developers.google.com https://developers.google.com/admob/android/banner/anchored-adaptive?hl=ko#kotlin 앵커 적응형 배너 | Android | Google for Developers 이 페이지는 Cloud Translatio..

Kotlin 2023.11.25