- 직렬화(Serialization)란 무엇일까?2024-03-01 11:01:06직렬화라는 용어에 대해서 들어만 보고 공부해본 적이 없기에 이번 기회에 정리하게 되었다. public interface Serializable { } Serializable의 인터페이스를 보면 메소드가 하나도 없는 것을 볼 수 있다. 아무런 구현해야 할 메소드도 없는 이 인터페이스가 왜 있는걸까 개발을 하다보면 아래와 같은 경우가 존재한다. 생성한 객체를 파일로 저장할 일이 있을 수도 있다. 저장한 객체를 읽을 일이 생길 수 있다. 다른 서버에서 생성한 객체를 받을 일도 생길 수 있다. 이럴 때 꼭 필요한 것이 Serialization 이다. 우리가 만든 클래스가 파일을 읽거나 쓸 수 있도록 하거나, 다른 서버로 보내거나 받을 수 있도록 하려면 반드시 이 인터페이스를 구현해야 한다. Serializabl..
- [백엔드 로드맵] 입출력(IO / NIO)2024-01-11 21:35:32입출력 IO와 NIO Java의 입출력 관련 클래스는 너무나 많은데, 크게 Java.io 패키지와 java.nio 패키지로 구분할 수 있다. 둘의 차이를 쉽게 말하면 IO의 기능들을 개선하고 새로운 기능을 추가(대표적으로 비동기 / Non-Blocking 지원)하여 나온 것이 NIO라고 생각하면 된다. 그럼 무조건 IO보다 NIO가 좋은가? 답은 아니다. NIO가 많은 기능을 개성한 것은 사실이나 특정 상황에서는 IO보다 성능이 떨어지는 경우도 있다. [1] IO (Old IO) 대략적인 IO 패키지 구조이다. 1. File 클래스 파일의 위치 정보를 가진다. 파일의 내용이 아닌 파일 자체를 다룬다. 파일 자체에 대한 정보를 가져오고 다루는 메서드를 포함하고 있다. File 정보를 String 타입으로 ..
- [백엔드 로드맵] 언어 배우기 - JAVA2024-01-04 00:08:57백엔드 개발자로서 다룰 수 있는 언어가 다양하다면 많은 장점이 있을 것이다. 하지만 여러 언어를 조금씩 파는 것보다 주 언어를 더 깊게 파는 것이 중요하다고 생각하여 Java에 대해 공부하였다. 1. Java 기본 1-1. 기동 원리 1. 시스템으로부터 메모리 할당(JVM) 2. Java 컴파일러에 의해. java 형식에서. class 형식으로 변환(바이트 코드 변환) 3. 클래스 로더에 의해 클래스 파일들은 JVM에 로드된다. 4. 실행기(Execution Engine)에 의해 클래스 파일을 해석하며 프로그램 실행 1-2. 변수 지역 변수 : 함수 안에 선언 / 함수가 실행될 때 전역 변수(필드 변수) : 함수 밖에 선언 클래스 변수 : static 변수 인스턴스 변수 : 객체 변수 변수의 사용처에 따..