분류 전체보기1436 [Kotlin][Android] 텍스트 뷰 글 내용 변경하기 오늘은 텍스트 뷰의 글 내용을 변경하는 예시를 만들어 보겠습니다. 레이아웃 xml 파일 코드(activity_main.xml) 액티비티 코틀린 코드class MainActivity : AppCompatActivity() { // 멤버 변수로 선언 private lateinit var displayTextView: TextView private lateinit var inputEditText: EditText private lateinit var changeButton: Button private lateinit var resetButton: Button override fun onCreate(savedInstanceSta.. 2025. 3. 15. [Java] synchronized를 활용한 멀티스레드 동기화 처리 안녕하세요.오늘은 자바의 동기화(Synchronization) 개념을 활용해서 멀티스레드 환경에서 발생할 수 있는 데이터 충돌 문제와 이를 해결하는 방법을 살펴보겠습니다.동기화(Synchronization)란?동기화는 프로세스 또는 스레드들이 수행되는 시점을 조절하여 서로가 알고 있는 정보를 일치시키는 것을 말합니다. 여러 스레드가 동시에 하나의 공유 자원(예: 변수, 객체 등)에 접근할 때, 데이터 충돌(Data Race)이나 불일치와 같은 문제가 생길 수 있습니다. 은행 계좌를 예로 들어보겠습니다. 계좌에는 잔액(balance)이 있고, 여러 스레드가 동시에 입금과 출금을 처리한다고 가정해 봅시다. 동기화를 하지 않을 경우, 아래와 같은 상황이 발생할 수 있습니다.데이터 손실: 두 스레드가 동시에 잔.. 2025. 3. 13. [JAVA] 도서 대여 시스템으로 객체 지향 프로그래밍 (OOP) 개념 익히기 안녕하세요 이번 시간에는 Java의 객체지향 프로그래밍 (OOP, Object-Oriented Programming) 주요 개념인 클래스, 객체, 상속, 인터페이스를 적용하여 도서 대여 시스템을 구현한 예제를 작성해보겠습니다. 1. 객체지향 개념 정리 1.1 클래스(Class)란?클래스는 객체를 생성하기 위한 설계도입니다. 클래스 내부에는 속성(변수)과 행동(메서드)이 정의되어 있으며, 이를 기반으로 여러 개의 객체를 만들 수 있습니다.예를 들어, Book 클래스는 책의 제목과 저자를 저장하는 속성을 가지고 있고, 책을 대여하거나 반납하는 기능(메서드)을 제공합니다.1.2 객체(Object)란?객체는 클래스의 인스턴스로, 클래스의 구조를 실제 데이터와 함께 메모리에 생성한 것입니다. 즉, 클래스는 틀.. 2025. 3. 12. [Java][Android] Toolbar 사용해 상단바 만들기 안녕하세요이번에는 안드로이드의 Toolbar 기능 사용해서 상단바를 간단하게 만들어보겠습니다. 전체 코드입니다 activity_main.xml MainActivity.javapublic class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Toolbar 설정 Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(too.. 2025. 3. 11. [JavaScript] Debounce와 Throttle: 차이점과 활용 방법 Debounce와 Throttle: 차이점과 활용 방법프로그래밍을 하다 보면 이벤트가 너무 자주 실행되어 성능 저하가 발생하는 경우가 많습니다. 대표적인 예로 스크롤 이벤트, 입력 필드 변화 감지, 창 크기 조절 등이 있습니다. 이런 문제를 해결하는 대표적인 기법이 **Debounce(디바운스)**와 **Throttle(스로틀)**입니다.이번 글에서는 두 개념의 차이점을 이해하고, 언제 어떤 방식을 사용해야 하는지 실제 코드와 함께 알아보겠습니다. 1. Debounce(디바운스)란?Debounce는 특정 이벤트가 연속적으로 발생할 때, 마지막 이벤트 이후 일정 시간이 지난 후에만 실행되는 기법입니다. 즉, 사용자가 계속해서 입력하거나 행동하는 동안에는 실행되지 않고, 일정 시간이 지나서야 함수가 실행됩니.. 2025. 3. 10. [JAVA] Thread와 Runnable 안녕하세요. 오늘은 java에서 멀티스레드를 구현하는 방법 중 Thread와 Runnable 의 차이에 대해 알아보겠습니다. 먼저 두 가지 방식은 다음과 같습니다. 1. Thread 클래스를 상속하는 방법2. Runnable 인터페이스를 구현하는 방법 이 두 방법은 겉으로는 비슷해 보이나, 확장성, 코드구조, 사용목적에 차이가 있습니다. 1. Thread - Thread 클래스를 상속하는 방법- 다른 클래스를 상속할 수 없음- 코드 재사용성이 낮음 (같은 로직을 다른 곳에서 재사용하려면 Thread 를 다시 만들어야 함)- 객체 공유가 불가능함 (각 Thread 객체가 독립적임, Thread 인스턴스 자체가 실행됨) class MyThread extends Thread { private i.. 2025. 3. 9. [Kotlin][Android] 뷰 사이즈 변경하기 오늘은 SeekBar를 활용해 뷰사이즈를 변경하는 예시를 만들어 보겠습니다 레이아웃 xml 파일 코드(activity_main.xml) 액티비티 코틀린 코드class MainActivity : AppCompatActivity() { private lateinit var targetView: View private lateinit var widthSeekBar: SeekBar private lateinit var heightSeekBar: SeekBar private lateinit var w.. 2025. 3. 7. [Java] 스레드를 활용해서 여러 파일 동시에 다운로드 받기 안녕하세요.오늘은 스레드(Thread)를 활용해 여러 파일을 동시에 다운로드하는 프로그램을 만들어보겠습니다. 스레드는 하나의 프로세스 내에서 실행되는 작은 작업 단위입니다. 자바에서는 Thread 클래스를 상속받거나 Runnable 인터페이스를 구현하여 스레드를 생성할 수 있습니다. 스레드를 활용하면 여러 작업을 동시에 실행할 수 있습니다. 1. FileDownloader 클래스 작성Thread 클래스를 상속받아 스레드로 동작합니다.생성자에서 다운로드할 파일의 URL과 로컬 저장 경로를 전달받습니다.run() 메서드에서 파일 다운로드 로직을 구현합니다.URL 스트림을 열어 데이터를 읽고, 로컬 파일 스트림을 열어 데이터를 씁니다.다운로드 시작과 끝의 시간을 기록하여 소요 시간을 계산합니다.import j.. 2025. 3. 6. [Kotlin][Android] ML Kit으로 QR 코드 인식하고 링크 연결하기 안녕하세요 지난 시간에는 QR 코드 생성하는 기능을 구현해보았는데요 오늘은 카메라로 QR 코드를 한 뒤 해당 링크로 연결(웹 페이지 열기 등) 해보도록 하겠습니다. 이를 위해 구글에서 제공하는 머신러닝 기반의 QR 코드 및 바코드 인식 라이브러리인 ML Kit (Machine Learning Kit) 를 사용할 예정입니다. QR 코드에 포함되어 있는 텍스트 URL을 인식해서 자동으로 웹 페이지 이동 가능합니다. 아래는 전체 코드입니다. 1. QRCodeScannerActivity.ktclass QRCodeScannerActivity : AppCompatActivity() { // implementation 'androidx.appcompat:appcompat:1.7.0' // 최신 버전 24.5.. 2025. 3. 5. 이전 1 2 3 4 ··· 160 다음