본문 바로가기
반응형

Language/☕️Java12

Java 직렬화란(Serialization)? 1. 직렬화란? 직렬화(Serialization)는 객체 인스턴스의 데이터를 I/O스트림에 적합한 일련의 데이터로 변환하는 과정이다. 이 과정을 거쳐 파일, 메모리 버퍼, 네트워크 전송을 통해 동일하거나 다른 컴퓨터환경에서 객체 인스턴스를 재구성할 수 있다. 객체 인스턴스는 메모리 주소 값을 저장하고 있기 때문에, 메모리 주소 값을 그대로 송신하면 수신 받는 쪽에서는 아무 쓸모 없는 데이터가 된다. 따라서 객체 인스턴스의 값의 형태로 변환이 필요하다. - 역직렬화란? 역으로 스트림에 입력된 데이터를 읽어서 객체 인스턴스를 생성하는 것. 2. JAVA 객체 직렬화 구현 1) Serializable 구현 클래스 객체의 직렬화를 가능하게 하려면, Serializable이라는 인터페이스를 구현해야 한다. Ser.. 2021. 8. 19.
class파일로 컴파일 후, FTP를 통한 배포에서 발생한 문제. (UnsupportedClassVersionError ) 최근 특정 레거시 시스템에서 소스 수정이 필요했다. JEUS를 WAS로 사용하는 리눅스 서버였다. 배포형태는 Maven이나 gradle을 사용하여 war, jar형태로 압축하여 배포하는 형태가 아닌, class파일로 배포하는 형태였다. 배포를 하기 전, 소스를 수정한 후 SAP와 인터페이스 테스트까지 모두 마친 후 Svn을 통해 형상관리까지 해놓은 후 배포를 기다리고 있었다. 현업사용자들이 모두 퇴근한 후, 배포를 시작했다. 먼저, 웹서버와 WAS를 모두 shut down 시킨 후 기존 class파일을 백업하였다. 그리고 수정한 java 소스코드를 class파일로 컴파일 한 후, FTP를 통하여 class파일을 배포하였다. 그리고 웹서버와 WAS를 모두 start시켰다. 서버도 정상적으로 start된 것.. 2021. 8. 14.
String을 쓰지 말라는 이유 모든 개발자가 알면서도 지키지 않는 것이 있다. 바로 문자열 관련 부분이다. String 클래스는 잘 사용하면 상관없지만, 잘못 사용하면 메모리에 많은 영향을 준다. 먼저 String 클래스를 잘못 사용한 사례를 보자. 음.. 약 5만번의 strSQL += 이라는 작업을 수행한다. 이를 여러번 돌려봤는데 거의 다 6초가 나왔다. 이는 각자 PC환경에 따라 시간의 차이가 있을 것이다. 단순히 String 작업만 했는데 이렇게도 오래 걸렸다. 그렇다면 해결방법을 찾아보자. StringBuffer 클래스와 StringBuilder 클래스 오늘의 주인공들이다. JDK 5.0 을 기준으로 문자열을 만드는 클래스는 이 두개가 가장 많이 사용된다. 여기서 StringBuilder 클래스는 JDK 5.0에서 새로 추가.. 2020. 6. 16.
자바란? (Java Programming Language) 1.1 자바란? 자바는 썬 마이크로시스템즈(Sun Microsystems, Inc)에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어이다. (2010년에는 썬 마이크로시스템즈가 오라클에 인수되면서 오라클의 제품이 되었음.) 자바의 가장 중요한 특징은 운영체제(윈도우, 리눅스 등)에 독립적이라는 점이다. 자바로 작성된 프로그램은 운영체제의 종류에 관계없이 실행이 가능하기 떄문에, 운영체제에 따라 프로그램을 변경하지 않고도 실행이 가능하다. 이러한 장점으로 인해 자바는 다양한 기종의 컴퓨터와 운영체제가 공존하는 인터넷 환경에 적합한 언어로써 인터넷의 발전과 함께 많은 사용자층을 확보할 수 있었다. 또한 객체지향개념과 기존의 다른 프로그래밍언어, 특히 C++의 장ㅈ머을 채택하는 동시에 .. 2020. 6. 15.
반응형