전체 글
-
암호화(Encryption) vs 해시화(Hashing): 차이점과 사용 예시IT 2025. 4. 8. 17:59
데이터 보안이 중요한 요즘, 암호화와 해시화는 자주 언급되는 개념입니다. 하지만 이 둘은 비슷해 보이지만 전혀 다른 목적으로 사용됩니다. 이번 글에서는 이 둘의 차이점과 어떤 상황에 각각을 써야 하는지 예제를 통해 알아보겠습니다.🔐 암호화 (Encryption)란?암호화는 원본 데이터를 특정 알고리즘을 이용해 다른 형태로 변환하는 과정입니다. 변환된 데이터는 복호화 키가 있어야만 다시 원래대로 되돌릴 수 있습니다.▲ 대칭키 방식의 암호화 예시 (출처: Wikipedia) 대표 알고리즘: AES, DES, RSA 사용 목적: 정보 보호 및 안전한 전송 복호화 가능🧩 해시화 (Hashing)란?해시화는 임의의 길이를 가진 데이터를 고정된 길이의 값으로 변환하는 과정입니다. 이 과정은 단방향으로, 원..
-
MySQL Replication과 AWS Aurora MySQLDB/Mysql 2025. 4. 8. 17:45
MySQL Replication(복제)란?MySQL Replication은 하나의 MySQL 서버에서 발생한 변경 사항을 다른 서버로 실시간 혹은 지연 복제하는 기능입니다. 이를 통해 읽기 부하 분산, 백업, 고가용성 아키텍처 구현이 가능합니다.🔗 기본 구조MySQL Replication은 아래와 같은 구조로 동작합니다.Primary Server (Master) → Binary Log 생성 ↓Replica Server (Slave) → I/O Thread → Relay Log → SQL Thread🛠️ 복제 방식Statement-Based Replication (SBR): SQL 문장을 그대로 복제Row-Based Replication (RBR): 변경된 행 자체를 복제Mixed: 상황에..
-
🔍 MySQL 실행 계획(Execution Plan)DB/Mysql 2025. 4. 8. 17:33
MySQL에서 쿼리 성능을 분석하고 최적화할 때 반드시 알아야 할 것이 실행 계획(Execution Plan) 입니다.이 글에서는 실행 계획이 무엇인지, 어떻게 확인하고 해석하는지, 그리고 성능 향상을 위한 팁까지 상세히 설명합니다.📌 실행 계획이란?MySQL이 쿼리를 어떻게 실행할지 내부적으로 결정한 전략입니다.예를 들어 어떤 인덱스를 사용할지, 어떤 테이블부터 읽을지, 조인은 어떤 방식으로 할지 등을 포함합니다.실행 계획은 옵티마이저(Optimizer)에 의해 자동으로 결정되며, 쿼리를 최대한 빠르게 수행하기 위한 로드맵 역할을 합니다.✅ 실행 계획 확인 방법: EXPLAIN아래처럼 EXPLAIN 키워드를 붙이면 쿼리의 실행 계획을 확인할 수 있습니다.EXPLAIN SELECT * FROM empl..
-
🎨 MySQL 인덱스 알아보자!DB/Mysql 2025. 4. 8. 11:36
🎨 MySQL 인덱스 심층 분석: 데이터 검색 성능 향상을 위한 여정, 함께 떠나보시죠!오늘 우리가 함께 살펴볼 MySQL 인덱스는 데이터베이스 성능 향상의 핵심 중의 핵심입니다!이 중요한 개념을 더욱 깊이 이해하고, 실제 데이터 처리에 적용해서 효율을 확 끌어올려 보는 건 어때요?📚 인덱스를 사용하는 이유: 데이터 접근 속도, 이제 혁신을 만들어봐요!데이터베이스에서 원하는 정보를 찾는 과정, 마치 드넓은 도서관에서 딱 맞는 책 한 권을 찾는 것과 같지 않나요?인덱스가 없다면 모든 책장을 일일이 뒤져야 하니 얼마나 비효율적이겠어요!책갈피와 목차처럼, 인덱스를 활용해보자!🧠 인덱스의 핵심 특징과 성능 트레이드오프인덱스는 단순한 위치 정보 이상의 역할을 합니다.항상 정렬된 상태를 유지해주기 때문에 빠른..
-
[mysql] Public Key Retrieval is not allowed 발생DB/Mysql 2023. 7. 18. 10:39
Docker 컨테이너로 mysql 8.0을 실행시키고 springboot 실행시키려는데 에러가 발생했다. 2023-07-18T10:26:15.152+09:00 ERROR 23296 --- [ restartedMain] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization. java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:111) ~[mysql-connector-j-8.0.33...
-
[Springboot] 스프링부트 개요Server/Spring Boot 2023. 1. 18. 10:31
공식홈페이지 학습에 대해서 천천히 읽어보면서 번역한 글을 작성합니다. 본 내용의 링크를 남깁니다. https://spring.io/projects/spring-boot Spring Boot Commercial support Business support from Spring experts during the OSS timeline, plus extended support after OSS End-Of-Life. Publicly available releases for critical bugfixes and security issues when requested by customers. spring.io Spring Boot makes it easy to create stand-alone, producti..
-
[Python 코딩테스트] 최빈값 구하기Language/Python 2022. 12. 17. 07:14
최빈값 구하기 문제 풀이중 꽤나 고민했던 부분이 있어서 해결과정을 작성한다. 문제 더보기 최빈값 구하기 문제 설명 최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다. 제한사항 0 1 and items[0][1] == items[1][1] else items[0][0] #(3) return answer 코드 작성을 나눠서 보면 (1) : dict 를 하나 만들고, array를 한번씩 돌면서 값으로 key를 생성하면서 해당 카운트를 1씩 올려준다. (2) : dict.items() 로 (key, value) 리스트로 value 기준으로 오..