전체 글1432 [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. [Java][Android] TextClock 위젯 사용하기 안녕하세요오늘은 TextClock 위젯을 사용하여 현재 시간을 실시간으로 표시하는것을 구현해보겠습니다.TextClock을 사용하면 간단하게 구현할 수 있습니다. 전체 코드입니다. MainActivity.javapublic class MainActivity extends AppCompatActivity { private TextClock textClock; private boolean is24HourFormat = false; // 초기값: 12시간 형식 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_.. 2025. 3. 4. [Nodejs] Multer을 사용하여 파일 업로드 서버 만들기 [vscode / window11에서 코드작성, 테스트 하였습니다] Multer는 Node.js 환경에서 파일 업로드를 처리하기 위한 미들웨어입니다. Express와 함께 사용되며, 파일을 서버에 업로드하고 이를 다루는 데 필요한 기능을 제공합니다. 간단히 말하면, Multer는 사용자가 서버에 파일을 업로드할 때, 그 파일을 처리하고 저장하는 데 도움을 주는 도구 미들웨어란? 웹 애플리케이션에서 요청(request)과 응답(response) 사이에서 실행되는 함수입니다. 클라이언트가 요청을 보내면, 서버가 응답을 보내기 전에 여러 작업을 수행할 수 있게 도와주는 중간 단계 역할을 합니다. Multer를 사용하는 이유파일 업로드 처리:기본적으로 HTTP 요청에서는 텍스트 데이터만 처리되므로, 파일 업로드.. 2025. 3. 3. [JAVA] JVM 메모리 구조 알아보기 안녕하세요, 오늘은 Java 프로그림이 실행되는 환경인 JVM(Java Virtual Machine)의 메모리 구조에 대해 알아보겠습니다. JVM(Java Virtual Machine)이란?JVM은 Java 프로그램을 실행하는 가상 머신 입니다. java 코드는 cpu가 직접 실행할 수 없고, JVM이 바이트 코드로 변환해서 실행합니다. 따라서 OS관계없이 실행할 수 있습니다. JVM은 실행 중 메모리를 관리하고, GC(Garbage Collection)로 불필요한 객체를 정리해 줍니다. JVM 구조JVM은 크게 3개의 영역으로 나뉩니다. 1. 클래스 로더(Class Loader) : .class 파일 로드 2. 런타임 데이터 영역(Runtime Data Area) : java 실행에 필요한.. 2025. 3. 2. [Kotlin][Android] 뷰 가시성 변경하기 오늘은 버튼을 누름에 따라 텍스트뷰의 가시성(보이기/숨기기)이 변경되는 예시를 만들어 보겠습니다. 레이아웃 xml 파일 코드(activity_main.xml) 액티비티 코틀린 코드class MainActivity : AppCompatActivity() { private var isTextVisible = true override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // TextView와 Button 참조 가져오기 val textV.. 2025. 2. 28. 이전 1 2 3 4 ··· 160 다음