728x90
반응형

category 59

[SpringBoot] yml, propertise 설정 값 암호화 (Jasypt)

🔒 Jasypt(Java Simplified Encryption)- 개발자가 암호화 작동 방식에 대한 깊은 지식이 없어도 최소한의 노력으로 프로젝트에 기본 암호화 기능을 추가할 수 있는 자바 라이브러리 - 프로퍼티로 관리하는 DB 계정 정보와 같은 설정 값을 평문이 아닌 암호문으로 관리 🐡 Jasypt Spring Stater 동작 방식@SpringBootApplication - 애플리케이션 구동 단계에서 ENC(암호화 된 값) 형식의 속성을 찾아 복호화 수행 후 복호화 된 값으로 원래의 암호화된 속성 값 대체 🧩 Jasypt 주요 메소드KeyRequiredDefault Valuejasypt.encryptor.passwordTrue-jasypt.encryptor.algorithmFalsePBEWITHHM..

Spring 2023.08.20

[Security] 온라인 주민번호 CI (Connecting Information) / DI (Duplication Information)

서비스 개발을 하다보면 인증 업체에서 인증을 받아 고객 회원가입을 하는 방식으로 개발을 하게 되는데 이때 CI라는 것을 발급 받아 사용한다. 주로 로그인과 회원가입 기능을 개발할 때 사용되는 CI / DI 에 대해 알아보았다. 🔎 CD / DI 개요이 두 가지 정보는 사람들이 온라인에서 신원을 확인하거나 개인 정보를 보호하는 데 도움을 준다. 온라인 주민등록 번호라고 생각하면 이해하기 쉽다. 2014년 8월부터 주민등록번호를 수집하지 못하도록 주민등록번호 수집 금지 제도가 시행되어 기존에 주민등록번호로 본인은 인증하던 방식에서 이제는 휴대폰과 공인인증서 등을 이용하여 본인 인증을 하고 있다. CI (Connecting Information, 연계 정보)본인확인 기관에서 개인별로 고유하게 부여하는 개인 식..

Security 2023.07.09

[암호학] 정보보안 3대 요소, 암호화, 디지털 서명

🪬 정보보안의 3대 요소 / 정보보호의 핵심 목표 기밀성(Confidentiality) 김일성아닙니다ㅎ 허락되지 않은 자가 정보의 내용을 알 수 없도록 하는 것 양방향 암호화 무결성(Integrity) 허락되지 않은 자가 정보를 수정하거나 위변조할 수 없도록 하는 것 단방향 암호화 가용성(Availability) 허락된 자는 언제든 필요할때 정보를 사용할 수 있도록 하는 것 🔑 정보보호의 기타 목표 부인 방지(Non-Repudiation) 발신 부인 방지 : 정보를 보낸 사람이 나중에 이를 부인하지 못하도록 함 수신 부인 방지 : 정보를 받은 사람이 나중에 이를 부인하지 못하도록 함 인증(Authentication) 정보 자체, 정보를 이용하는 사용자 등을 확인할 수 있고 신뢰할 수 있도록 하는 것 접근..

Security 2023.07.07

[algorithm] 그리디(greedy, 탐욕) 알고리즘

🤔 그리디 알고리즘 탐욕, 욕심쟁이 알고리즘이라고도 불림. 미래를 생각하지 않고 각 단계에서 가장 최선의 선택을 하는 기법 선택의 순간마다 당장 눈앞에 보이는 최적의 상황만을 쫒아 최종적인 해답에 도달하는 방법 일반적인 상황에서 그리디 알고리즘은 최적의 해를 보장할 수 없을 때가 많다 현재의 최적 해 != 전체의 최적 해 🧦 사용해야 하는 조건 서울에서 대전을 거쳐 부산까지 가는 최적의 경로를 선택해라. 1. 현재의 선택이 미래의 선택에 영향을 주지 않는다. 2. 부분의 최적 해가 모이면 전체의 최적 해가 된다. 그리디 문제를 푸는 방법의 핵심은 정렬이다. 어떻게 정렬해야 이 두가지 조건을 만족할 수 있을지 생각해야한다. 🤖 그리디는 왜 사용할까? 빠른 속도 : 항상 최적의 선택을 하기 때문에 dp보다도..

JAVA/Algorithm 2023.06.11

[DevOps] Jenkins 설치 및 설정

✏️ Jenkins개발자가 소프트웨어를 구축, 테스트, 배포할 수 있게 해주는 오픈 소스 자동화 서버 주요 특징1. CD/CD - 제킨스는 주로 CI/CD 워크플로우를 구현하는데 사용된다. - 통합, 테스트, 전달, 배포에 이르는 소프트웨어 전달의 다양한 단계를 자동화하는 것을 포함한다. - 개발자가 버그를 더 빨리 찾고 수정하고, 소프트웨어 품질을 향상시키고, 새로운 소프트웨어 업데이트의 배포 시간을 단축하는 데 도움이 된다. 2. Plugins - 제킨스의 가장 강력한 기능 중 하나는 플러그인을 통한 확장성이다. - 다양한 종류의 도구와의 통합을 제공하고, 다양한 기능을 활성화한다. 3. 분산 빌드 - 제킨스는 분산 빌드를 지원하며, 이는 작업 부하를 여러 기계에 분산시킬 수 있음을 의미한다. - 작..

DevOps/Jenkins 2023.05.20

[DevOps] Cloud Native Application Architecture

클라우드 네이티브 애플리케이션 아키텍처는 크게 4가지 핵심 구성 요소로 이루어져 있다. 마이크로서비스 아키텍처(MSA) 컨테이너 DevOps CI/CD 마이크로서비스 아키텍처 (MSA): 서비스를 작은, 독립적인 단위로 분리함으로써 시스템이 다양한 요구사항이나 예외 사항에 견고하게 대응하도록 한다. 컨테이너: 클라우드 환경에 쉽게 배포하고 관리할 수 있도록 컨테이너 가상화 기술을 사용한다. 컨테이너는 서비스의 실행 환경을 표준화하고, 이식성을 높여 준다. DevOps: 개발 팀과 운영 팀간의 긴밀한 협력을 통해 빠른 시간 안에 서비스의 문제를 수정하고 사용자의 요구사항을 반영하고 배포하는 것을 가능하게 한다. 이는 지속적인 서비스 개선을 가능하게 한다. CI/CD: 지속적 통합(Continuous Int..

DevOps 2023.05.20

[DevOps] 개발 방법론의 변화 WaterFall VS Agile VS DevOps

🌤️ 전통적인 개발 방법론 WaterFall VS Agile WaterFall(폭포수) 모델 - 워터폴 방법론은 선형적이고 순차적인 접근 방식이다. - 프로젝트는 요구 사항 수집, 디자인, 구현, 테스팅, 배포, 유지 보수의 순서대로 진행된다. - 각 단계는 이전 단계가 완료되어야만 시작할 수 있다. - 단순하고 예측 가능한 프로젝트에 잘 맞지만 요구 사항이 변할 경우 유연성이 부족하다는 단점이 있다. Agile 모델 - 애자일 방법론은 반복적이고 점진적인 접근 방식이다. - 프로젝트는 스프린트 또는 반복 작업 단위로 나뉘며, 각 스프린트는 자체적으로 계획, 분석, 디자인, 코딩, 테스팅, 문서화를 포함한다. - 빠르게 변화하는 요구 사항에 유연하게 대응할 수 있다. 요약하면, 프로젝트의 요구사항이 명확..

DevOps 2023.05.20

[Spring Security] JWT Token

🔐 JWT : Json Web Token JWT는 세 부분으로 구성된다 : 헤더(Header), 페이로드(Payload), 서명(Signature). 헤더 (Header): 토큰의 유형 (즉, JWT)과 해싱 알고리즘 (예: HMAC SHA256 또는 RSA)을 정의하는 데 사용된다. 페이로드 (Payload): 페이로드는 클레임을 포함하고 있으며, 이는 엔티티 (일반적으로 사용자)와 추가 데이터에 대한 선언으로 클레임에는 등록된 (즉, 표준에 정의된), 공개, 비공개 클레임이 있다. 서명 (Signature): 헤더와 페이로드를 합친 후, 비밀키를 사용하여 이를 암호화한다. 이 서명은 토큰이 변조되지 않았음을 확인하는 데 사용되며, 비밀 키를 알고 있는 경우에만 토큰을 확인하거나 생성할 수 있다. 이 ..

[Git&GitHub] Git 설정 및 프로젝트 관리

Git 최초 설정 [프로젝트 생성시] Git 전역으로 사용자 이름과 이메일 주소 설정 🚨 GitHub 계정과는 별개 터미널 프로그램(iTerm2)에서 아래 명령어 실행 git config --global user.name "(사용자 이름)" git config --global user.email "(사용자 이메일)" 설정한 사용자 이름과 이메일 주소 확인 git config --global user.name git config --global user.email 기본 브랜치명 변경 (master salve 등 -> main) git config --global init.defaultBranch main GitHub remote [intellij 터미널&gitHub 연동] git remote add ori..

Git&GitHub 2023.04.22

AWS BUILDERS 세미나

AWS 서버리스로 서버 없이 간단한 웹 애플리케이션 만들기 AWS (Amazon Web Services) 서버리스는 서버를 관리하거나 스케일링을 할 필요 없이 서버리스 애플리케이션을 배포하고 실행할 수 있는 클라우드 컴퓨팅 모델이다. 기존의 IT 환경에서는 물리적인 서버를 사용하여 애플리케이션을 운영하였으나, 이러한 방식에서는 서비스 트래픽이 급증할 경우 인스턴스의 스케일 아웃에 시간이 많이 소요되어 급격하게 증가하는 서비스 트래픽에 대응하기에 어려움이 있었다. 그러다 AWS EC2 인스턴스와 같은 가상머신 기술을 사용하면서 하드웨어를 직접 관리할 필요가 없어졌으며, 자원의 스케일링 자동화 기능을 통해 서버 인스턴스를 유연하게 확장 및 축소할 수 있..

private 2023.03.22
728x90
반응형