배열
배열은 모든 프로그래밍 언어에서 기본적으로 제공하는 자료구조이며 자바에서도 마찬가지이다. 배열을 제대로 이해하기 위해서는 배열이 메모리에서 어떤 모습을 하고 있는지 아는 것이 중요하다.자바에서는 배열을 선언할 때 배열의 크기를 지정해야 한다. 예를 들어 int[] arr = new int[10];과 같이 선언하면, 운영체제(JVM)는 메모리에서…
배열은 모든 프로그래밍 언어에서 기본적으로 제공하는 자료구조이며 자바에서도 마찬가지이다. 배열을 제대로 이해하기 위해서는 배열이 메모리에서 어떤 모습을 하고 있는지 아는 것이 중요하다.자바에서는 배열을 선언할 때 배열의 크기를 지정해야 한다. 예를 들어 int[] arr = new int[10];과 같이 선언하면, 운영체제(JVM)는 메모리에서…
비대칭키 암호화 시스템은 한 쌍의 서로 다른 키(공개키와 개인키)가 상호작용하는 구조를 갖는다. 이 두 키 중 하나로 암호화하면, 반드시 쌍을 이루는 다른 키로만 복호화할 수 있다. 이는 공개키 기반 구조 (PKI: Public Key Infrastructure)의 핵심 기술이며, 현대 인터넷 보안의 근간을…
대칭키 암호화 시스템은 하나의 키로 데이터를 암호화하고 복호화하는 방식이다. 비대칭키 방식에 비해 효율적이라는 장점이 있으며, 우리의 일상생활에서 흔히 볼 수 있는 자동차 키나 보안 카드와 유사하게 작동한다고 이해할 수 있다 주요 특징 대표적인 알고리즘 대칭키는 크게 두 가지로 나뉜다 XOR(Exclusive…
Hash 함수의 핵심 특징 단방향성의 이해 고정된 결과값 길이 데이터 무결성 확보 해시 함수의 주된 용도 중 하나는 데이터 무결성(Data Integrity) 확보이다. 데이터 무결성은 데이터가 전송되거나 저장되는 과정에서 변조되거나 위조되지 않았음을 증명하는 것을 의미한다. 해시는 Checksum보다 훨씬 강력한 방식으로 데이터…
Checksum(검사합)은 데이터 오류 여부를 확인하는 데 널리 사용되는 방법이다. 데이터가 전송되거나 저장되는 과정에서 손상되었는지 검증하는 데 목적이 있다. 하지만 Checksum 자체는 데이터의 무결성을 보장하지만, 보안성(기밀성이나 위변조 방지)은 제공하지 않는다. 즉, 의도적인 데이터 변조를 막지는 못한다. Checksum의 작동 원리와 보안성의 한계…
도메인 모델 설계 시, 관련된 엔티티들을 묶어 애그리거트(Aggregate)로 정의하면 데이터 변경의 일관성을 유지하고 모델의 복잡성을 줄일 수 있다. 애그리거트는 도메인 주도 설계(DDD)의 핵심 구성 요소 중 하나로 여러 객체를 하나의 논리적인 단위로 취급하여 변경 시 전체 데이터의 일관성을 보장하는 데…
헥사고날 아키텍처(Ports & Adapters)를 이야기할 때, 종종 도메인 모델과 JPA(데이터) 모델을 분리해야 한다는 이야기를 들었다. 이는 주로 유명한 서적에서 매핑 전략의 하나로 소개된 내용이 마치 헥사고날 아키텍처의 절대적인 원칙처럼 오해되면서 비롯되었다고 한다. 이러한 오해가 있었는지도 몰랐다. 오늘도 하나를 더 배운다…
도메인과 도메인 모델에 대해 이야기할 때, 팀 내에서 특정 대상을 명확하고 일관된 단어로 부르는 것이 매우 중요하다. 이를 ‘보편 언어(Ubiquitous Language)’로 발전시키려는 노력이 필요하며, 개발 기술에서도 마찬가지이다. 하나의 기술 개념을 두 가지 이상의 용어로 표현하거나, 하나의 단어가 여러 의미로 사용되는…
헥사킬은 예전부터 알고 있었는데 헥사고날 아키텍처는 2023년부터 인프런 강의로 공부를 하면서 한 두번씩 들어본 것이 전부이다. 개발은 공부를 해서 하나씩 더 알게 될 수록 개발이 점점 어렵게 느껴진다. 그래도 일보 전진해보기로 한다 헥사고날 아키텍처는 2005년 유명 개발자이자 컨설턴트인 앨리스터 코번(Alistair…
아키텍처: 시스템 구조와 품질을 결정하는 핵심 설계 원칙 아키텍처의 중요성: 품질 속성과 설계 기반 아키텍처의 제약 조건과 원칙 계층형 아키텍처(Layered Architecture) 계층형 아키텍처는 시스템을 여러 개의 독립적인 계층(Layer)으로 나누어 구조화하는 가장 일반적이고 전통적인 아키텍처 스타일 중 하나이다. 마치 건물처럼 층층이…