Java 2025. 1. 7.
[Java] FTP로 전송할 때 파일 사이즈가 커지는 문제 발생
😱 문제원인FTP로 파일을 전송할 때 파일 사이즈가 커지는 문제가 발생했다.같은 파일인데 파일 사이즈가 커지는 부분이 문제 되었다. (파일 사이즈를 비교하여 동작하는 기능이 있기 때문이다.) 참고로 아래 라이브러리를 사용하여 FTP, FTPS, SFTP 기능을 구현했다. commons-net commons-net 3.11.1 com.jcraft jsch 0.1.55 😊 해결방법FTP 설정 문제임을 파악하여 FTP 접속 시 조건을 변경했다.바이너리 모드로 설정해야 파일 사이즈가 그대로 간다고 한다. 옵션에 대한 자세한 설명은 아래에 작성했다. if(ftp.login(user, pass)) { ftp.setFileType(FTPClient.BINARY_FILE_TYPE); /..

Java 2022. 7. 6.
[RxJava] RxJava 이해하기 - 1. Reactive Programming이란
🌳 리액티브 프로그래밍이 주목받는 배경 최근에 모바일, 사물인터넷, 클라우드 등 시스템에서 처리할 이벤트나 데이터가 극단적으로 증가하면서 대용량 데이터의 저장, 업데이트, 실시간 반영을 효율적으로 해결할 방법으로 리액티브 프로그래밍이 주목받고 있다. 🌳 리액티브 프로그래밍 데이터가 변경될 때마다 관련 프로그램이 반응해 데이터를 처리하는 프로그래밍 방식이다. 여기서 중요한 포인트는 반응형과 데이터 흐름이다. 🌳 반응형 옵저버 패턴(Observer Pattern)의 그 자체를 말한다. 옵저버 패턴은 간단하게 얘기하자면 어떤 상태 변화가 있을 때마다 그와 관련된 객체들에게 알림을 보내는 디자인 패턴이다. 참고로, Reactive Programming은 Observer Pattern의 확장한 프로그래밍 방식이다..

Java 2021. 12. 29.
3주차 - 연산자
🧡 목표 자바가 제공하는 다양한 연산자를 학습하세요. 📢 About 산술, 비트, 관계, 논리, assignment(=) 연산자 등에 대해서는 이미 알고 있기에 학습 속도 향상 및 시간을 위해 학습하지 않았다. 모르는 부분이 있을 수 있겠지만 그렇다고 처음부터 정리하는 것은 효율적이지 않다고 개인적으로 판단했다. instanceOf, 화살표(->) 연산자, (optional) Java 13. switch 연산자에 대해서만 학습하였다. instanceOf instanceOf 연산자는 객체가 어떤 클래스인지, 어떤 클래스를 상속받았는지 확인하는 데 사용하는 연산자이다. object instanceOf type instanceOf 예제 Car이 부모이고 FireEngine, Ambulance가 자식인 구조를 ..

Java 2021. 8. 27.
2주차 - 자바 데이터 타입, 변수 그리고 배열
목표 자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다. 자료형은 크게 '기본형'과 '참조형' 두 가지로 나눌 수 있는데, 기본형 변수는 실제 값(data)을 저장하는 반면, 참조형 변수는 어떤 값이 저장되어 있는 주소(memory address)를 값으로 가진다. 먼저, 기본형(Primitive Type)에 대해 알아보자. Primitive Type(기본형, 프리미티브 타입) Primitive Type이란 논리형, 문자형, 정수형, 실수형 계산을 위해 실제 값을 저장하는 타입을 말한다. 실제값이 저장되는 공간은 stack 메모리 공간이다. 기본형은 총 8가지이다. 크게는 정수형(byte, short, int, long), 실수형(float, double), 문자형(char), 논리형..

Java 2021. 8. 22.
1주차 - JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가
목표 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기. JVM이란 무엇인가 Java Virtual Machine의 줄임말로 '자바를 실행하기 위한 가상 기계(컴퓨터)'라고 할 수 있다. 기존의 언어는 한 운영체제에 맞게 개발된 프로그램을 다른 종류의 운영체제에 적용하기 위해 많은 노력을 기울였지만 자바는 운영체제의 종류와 상관없이 실행할 수 있다. 그 이유는 자바가상머신(JVM)이다. 자바 응용프로그램은 운영체제나 하드웨어가 아닌 JVM하고만 통신하고 JVM이 자바 프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달한다. 자바 애플리케이션은 JVM을 한번 더 거치기 때문에, 그리고 하드웨어에 맞게 완전히 컴파일된 상태가 아니고 실행 시에 해석되기 때문에 속도가..
