본문 바로가기
728x90

자바 기초5

[Java] 직렬화와 역직렬화 안녕하세요. 씨위드입니다. 저는 요즘 Kerberos 를 이용한 사용자 인증과 관련된 업무를 진행 중인데요. 프로젝트를 진행하며 transient이라는 키워드를 사용하게 되었습니다. 해당 키워드는 직렬화 과정에서 제외하고싶은 데이터에 사용하게 되는데요. transient이라는 키워드가 생소하신 분들도 있을 것 같아 키워드를 소개하며 추가로 이와 연관된 직렬화와 역직렬화에 대하여 알아보려 합니다. 먼저 자바의 직렬화(Serialization)와 역직렬화(Deserialize)의 개념에 대하여 알아볼까요? Serialization 먼저 일반적 의미의 직렬화란 데이터의 포맷을 변환하는 기술입니다. 자바에서 말하는 직렬화는 객체를 전송 가능한 형태로 변환하는 것을 의미합니다. 일반적으로는 시스템 내부에서 사용되.. 2023. 2. 21.
[Java] 객체 - 클래스 안녕하세요. 씨위드입니다. 오늘은 객체지향의 중요한 개념인 클래스에 대하여 알아보겠습니다. 클래스 클래스는 데이터(변수)와 함수의 집합입니다. 변수는 단순하게 말하면 데이터를 저장하는 기능을 수행합니다. 그렇다면 함수는 어떤 기능을 할까요? 함수는 주로 데이터를 이용한 작업을 수행합니다. 해서 객체지향 언어에서는 데이터와 함수를 하나의 클래스에 정의해 함께 다룰 수 있도록 하였죠. 사용자 정의 타입 클래스 우리가 자주 사용하는 String이나 Map, ArrayList 같은 자료형도 사실은 하나의 클래스입니다. String 클래스로 예를 들자면 클래스 내부에 문자열을 저장할 수 있는 배열과 문자열을 쉽게 다룰 수 있는 함수들이 정의되어 있죠. 우리도 자바의 String처럼 서로 관련된 변수를 묶어 '사용.. 2023. 2. 6.
[Java] 객체 지향 안녕하세요. 씨위드입니다. 오늘은 객체지향을 주제로 가지고 왔습니다. 사실 가장 먼저 포스팅했어야 하는 개념이기도 합니다. 대표적인 객체지향언어가 바로 자바이기 때문이죠. 그럼 객체지향이란 무엇인지 알아볼까요? 객체지향이란? 객체지향 언어는 1960년대 처음 등장했다는 것을 알고 계신가요? Simula라는 최초의 객체지향 언어와 C++ 등의 언어들을 거쳐 1995년 Java가 탄생합니다. Java를 기점으로 객체지향언어는 프로그래밍 언어의 주류가 되었습니다. 그럼 객체지향 언어는 기존의 언어와 무엇이 다를까요? 사실 크게 몇 가지 규칙을 추가한 것이고 기존의 언어와 크게 다르지는 않습니다. 하지만 객체지향을 통해 코드의 재사용성과 관리의 측면에서 많은 이점을 가지게 됩니다. 코드 중복 제거 및 접근제어와.. 2023. 2. 1.
[Java] 생성자 안녕하세요. 씨위드입니다. 오늘은 포스팅 주제로 생성자를 가지고 왔는데요. 같이 일하던 친구가 본인은 처음부터 스프링과 그루비만 사용하여 생성자를 어떻게 사용하는 건지 모르겠다는 고민을 이야기한 적이 있었습니다. 저는 퓨어 자바를 사용하여 개발 중이기 때문에 생성자를 만들 일이 아주아주 많습니다. 해서 생성자에 대하여 정리해보려고 합니다. 생성자(constructor)란? 모든 클래스에는 반드시 하나 이상의 생성자가 있어야 합니다. 그럼 생성자란 무엇일까요? 생성자란 인스턴스가 생성될 때마다 호출되는 초기화 메서드입니다. 인스턴스 변수의 초기화 또는 인스턴스 생성 시 수행할 작업에 사용하는데요. 몇 가지를 제외하고는 기본적으로는 일반 메서드와 동일합니다. 아직 이해가 조금 힘드신가요? 그럼 클래스를 하나.. 2023. 1. 31.
728x90