본문 바로가기

기타7

[Convention] 디미터 법칙(Law of Demeter) 디미터 법칙이란? 객체지향 프로그래밍의 원칙 중 하나로, 객체 간의 결합도를 낮추고, 객체의 캡슐화를 강화하기 위한 원칙이다. 이를 간단하게 요약하면 "긴 객체 구조의 경로를 따라 멀리 떨어져 있는 간접적인(낯선) 객체에 메시지를 보내는(또는 이야기하는) 설계는 피하라는 것이다."라고 할 수 있다. 디미터 법칙에 따르면, 객체는 자신이 조작하는 객체의 내부 구조를 최소화하고, 다른 객체와의 상호작용을 제한해야 한다. 객체는 자신이 직접 소유하거나 관리하는 멤버에만 접근하고, 다른 객체의 내부 구조를 노출하는 것을 피해야 한다. 디미터 법칙의 주요 원칙 객체는 자신이 직접 소유하거나 관리하는 멈버에만 접근해야 한다. 객체는 다른 객체의 내부 구조를 노출하는 것을 피하고, 다른 객체와의 상호작용은 메서드를 .. 2023. 4. 22.
[Convention] Commit Message Conventions 커밋 메시지와 관련된 요약된 원칙 제목과 본문은 빈줄로 구분 제목은 명령어 형태로 작성, 50자 이내로 제한 제목에는 아래와 같은 접두사를 사용 feat 기능 추가 fix 버그 수정 docs 문서 업데이트 style 코드 스타일 변경 refactor 코드 리팩토링 test 테스트 코드 추가 또는 수정 chore 빌드, 배포 등의 작업 본문은 변경 사항에 대한 자세한 설명 작성 본문은 72자마다 줄바꿈, 한줄에는 80자 제한 본문에는 변경 사항의 원인, 영향, 해결 방법 기술 본문에는 "Closes #이슈번호" 형식으로 관련 이슈를 참조 제목 접두사 별 예시 여러 줄로 커밋 메시지를 작성하려고 하면, 줄바꿈이나 특수 문자('^' 등)가 올바르게 처리되지 않을 수 있음. 따라서 텍스트 편집기(메모장 등)에 .. 2023. 4. 13.
[암호기술] 인증 시스템이 포함된 SSL 통신 및 인증서 검증원리 기본용어 CA (Certificate Authority) 디지털 인증서를 제공하는 공인된 기업 (Certificate Authority 혹은 Root Certificate) 대표적인 CA 서비스 제공 기업과 시장점유율 Symantec (VeriSign, Thawte, Geotrust) with 42.9% market share Comodo with 26% GoDaddy with 14% GlobalSign with 7.7% RA (Registration Authority) 신원확인, 고객데이터 유지 등 인증기관의 입증을 대행하는 등록기관 사용자의 인증서 발급 요청을 등로하고, 신원확인 기능을 수행 SSL 인증서의 서비스 보증방법 웹브라우저가 서버에 접속하면 서버는 제일 먼저 인증서를 제공한다. 브라우저는 .. 2023. 3. 7.
[암호기술] 대칭키의 작동원리 / 비대칭키의 작동원리 대칭키의 원문, 암호문, 키, 복호화, 대칭키 원문(평문)을 암호문으로 만드는 것을 암호화 라고 한다. 암호문을 만드는 정보를 키(Key) 라고 한다. 암호문을 해당 키를 이용해서 원문으로 만드는 것을 복호화 라고 한다. 암호화와 복호화에 사용하는 키가 같다면 이를 대칭키라고 부른다. 대칭키의 암호화 원리 암호화키와 원문을 바이너리 형태로 변형한 후 배타적 논리합(XOR) 연산에 따라 암호화 & 복호화 를 하게된다. 위와 같은 원리로 암호화 키의 길이, 키의 사용횟수등의 제약이 없다면 복잡도를 무한히 증가시켜 거의 완벽한 암호화를 할 수 있으나 복호화 하는데 비용(시간소모)이 계속 커진다면 사용할 수가 없을 것이기 때문에 일정한 규격에 의한 암호화를 고려해야 한다. 이러한 암호화방식은 양자연산이 가능한 .. 2023. 3. 7.
[암호기술] Hash를 알아야 블록체인이 보인다 Hash? 단방향 함수이고, 입력과 상관없이 길이가 일정하게 변경한다. 대표적인 알고리즘으로는 MD-5와 SHA-1이 있다.(여기서 단방향 암호화 기법은 암호화는 수행하지만 복호화는 불가능한 알고리즘을 말한다.) 아래는 단방향 해시함수인 MD-5을 통해 해시를 생성할 수 있는 사이트이다. https://www.md5hashgenerator.com/ MD5 Hash Generator A tool for creating an MD5 hash from a string. Use this fast, free tool to create an MD5 hash from a string. www.md5hashgenerator.com 블록체인? 위 사진을 보자. 블록 #0번을 하나의 덩어리로 묶으면 Hash값이 결과가 도.. 2023. 3. 7.
Dummy Data 생성을 위한 코드 우선, 더미 데이터가 어떻게 저장되었는지 사진을 통해 확인해보겠습니다. Member 테이블 Board 테이블 Comment 테이블 Image 테이블 Membership 테이블 Review 테이블 Reaction 테이블 java.util.Arrays 에 대한 설명.. Arrays 클래스에는 배열을 다루기 위한 다양한 메서드가 포함되어 있다. Arrays 클래스의 모든 메서드는 클래스 메서드(Static method) 이므로, 객체를 생성하지 않고도 바로 사용 가능함. 주요 메서드는, asList() : 전달받은 배열을 고정 크기의 리스트(list)로 변환하여 리턴합니다. 위와 같이 리스트를 생성한 후 순서를 막 섞는 방법이 있는데, Java에서는 리스트를 섞는 방법을 내장 객체를 통해서 제공합니다. Col.. 2023. 2. 18.