본문 바로가기

전체 글1426

[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.
[JAVA][Android] Chronometer 위젯 사용하기 안녕하세요이번시간에는 안드로이드스튜디오의 Chronometer 위젯을 사용하여 간단한 스톱워치 기능을 구현해보겠습니다.Chronometer 위젯은 별도의 Handler없이도 시간을 측정할 수 있어 편리하게 사용할 수 있습니다. 우선 전체 코드입니다. MainActivity.javapublic class MainActivity extends AppCompatActivity { private Chronometer chronometer; private Button startButton, stopButton, resetButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSta.. 2025. 2. 27.
[Kotlin][Android] ZXing 라이브러리 사용하여 QR 코드 생성 및 Intent 로 공유하기 안녕하세요 오늘은 안드로이드 코틀린에서 원하는 링크로 이동할 수 있는 QR 코드 생성하고외부 어플로 공유할 수 있도록 intent 로 전달하는 예제를 만들어보도록 하겠습니다 이제는 일상생활 어디에서나 QR 코드를 쉽게 접할 수 있습니다. 카페나 음식점에서 메뉴를 보거나 결제할 때, 지하철/버스 정류장에서 실시간 도착 정보를 확인할 때, 공유 킥보드 및 자전거를 대여할 때, 항공권 및 기차표 전자 티켓 발급할 때 등 이외에도 정말 많은 곳에서 QR 코드가 쓰이고 있습니다. 따라서 어떻게 구현할 수 있을지 알고 있다면 유용하게 사용할 수 있을 것 같습니다. 안드로이드 코틀린에서는 ZXing 라이브러리를 사용해 QR 코드를 생성할 수 있습니다class MainActivity : ComponentActivity.. 2025. 2. 26.
[Kotlin][Android] 복합 대입 연산자 활용하기 오늘은 복합 대입 연산자를 활용해 더하기, 곱하기, 빼기 값을 화면에 보이게하는 예시를 만들어 보겠습니다.   레이아웃 xml 파일 코드(activity_main.xml)       액티비티 코틀린 코드class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // 텍스트뷰를 가져오기 val ScoreView = findViewById(R.id.ScoreView) // 점수를 나타내는.. 2025. 2. 25.
[Node.js] Socket.IO를 사용한 웹 채팅 만들기 이번에는 Socket.IO를 사용한 간단한 채팅을 만들어 보겠습니다.Socket.IO를 사용하면 웹소켓을 쉽게 구현이 가능합니다. 클라이언트와 서버간의 통신이 가능합니다. 왜 이 코드를 사용할까?실시간 채팅 구현이 간편함 → Socket.IO를 사용하면 복잡한 웹소켓 프로토콜을 신경 쓰지 않고도 채팅 기능을 쉽게 구축할 수 있음.빠른 데이터 전송 가능 → 서버와 클라이언트가 이벤트 기반으로 데이터를 주고받음 -> 채팅이 가능.Node.js의 비동기 처리 → 대량의 동시 접속자를 처리하기에 적합.어디에 활용하면 좋을까?기본적인 채팅 애플리케이션 → 익명 채팅, 고객 문의 챗봇, 커뮤니티 채팅 등에 활용 가능.실시간 알림 시스템 → 사용자에게 실시간 알림을 보내는 기능에 응용 가능.멀티 유저 협업 도구 → .. 2025. 2. 24.
[JAVA] WeakReference, SoftReference 사용법 안녕하세요,  오늘은 메모리 누수 방지를 위한 WeakReference, SoftReference 사용법에 대해 알아보고자 합니다.  먼저, 참조(Reference)란, 객체의 메모리 주소를 가리키는 변수를 의미합니다.  Java에서 모든 객체(클래스의 인스턴스)는 참조를 통해 접근하고, 참조가 없으면 해당 객체는 더 이상 사용할 수 없습니다.  Java의 참조(Reference)는 4가지 종류가 있습니다.  StrongReference기본적인 java 객체의 참조 형식, new를 통해 객체를 생성하는 경우의 참조 형식GC가 제거하지 않음 (명시적으로 null 할당해야 해제됨) WeakReferenceJVM의 Garbage Collector(GC)가 더 쉽게 객체를 수거할 수 있도록 하는 참조 타입GC가.. 2025. 2. 23.
[Python] 파일 자동 정리 프로그램 만들기 안녕하세요! 오늘은 Python을 사용해 특정 폴더의 파일을 확장자별로 자동 정리하는 프로그램을 만들어 보겠습니다. 이 프로그램은 폴더 안의 파일들을 확장자별로 분류하고, 각 파일을 해당 확장자 폴더로 이동시켜 정리해 줍니다. 1. 파일 자동 정리 프로그램우리가 작성할 프로그램은 다음과 같은 작업을 합니다:사용자가 지정한 폴더를 확인합니다.폴더 안에 있는 파일들의 확장자를 확인합니다.각 확장자에 해당하는 이름의 폴더를 생성합니다.파일을 해당 폴더로 이동시킵니다.예를 들어, 아래와 같은 폴더가 있다고 가정해 봅시다.정리 전:my_folder/ file1.txt file2.jpg file3.pdf file4.txt 프로그램을 실행하면 이렇게 정리됩니다.정리 후:my_folder/ .. 2025. 2. 21.