no image
[CS] 해싱과 암호화의 차이점
이번 프로젝트에서 비밀번호 저장에 대한 로직을 구현하며 해싱(Hashing)과 암호화(Encryption)에 차이점에 대해서 공부해 보았다. 두 개념 모두 데이터를 변환하여 보호하는 기술이지만, 그 목적과 방식은 매우 다르다는 것을 알게 되었다.1. 해싱(Hashing)이란?해싱은 임의의 입력값을 고정된 길이의 문자열(해시 값)로 변환하는 과정이다.대표적인 해시 함수로는 SHA-256, MD5가 있다.특징단방향한 번 해싱된 값은 원래 데이터로 복원 불가능고정된 길이 출력입력 데이터의 크기과 관계없이 항상 일정한 길이의 해시값을 생성충돌 방지서로 다른 입력값이 같은 해시 값을 갖지 않음빠른 연산 속도데이터를 빠르게 변환할 수 있도록 최적화됨 사용 사례1. 비밀번호 저장2. 데이터 무결성 검증 (파일 다운로..
2025.03.17
no image
[CS] Base62 vs Base64 비교 및 용도별 적합성
Base62와 Base64는 둘 다 데이터를 문자 기반으로 변환하는 인코딩 방식이지만, 사용 목적과 특성이 다르다. 각각의 차이점과 적합한 용도를 비교해보자.1. Base62 vs Base64 개요특징Base62Base64사용 문자0-9 (10개) + A-Z (26개) + a-z (26개) = 62개0-9 (10개) + A-Z (26개) + a-z (26개) + +, / = 64개URL 안전성✅ (특수문자 없음)❌ (+, /가 포함되어 URL에서 인코딩 필요)공백 포함 여부❌ (패딩 없음)✅ (일반적으로 = 패딩 사용)인코딩 효율성덜 효율적 (62진법 변환 필요)더 효율적 (2^6 비트 단위 변환)변환 방식숫자(ID) → 62진법 변환3바이트(24비트) → 4개 6비트 단위로 변환사용 목적짧고 안전한 U..
2025.03.12
no image
[DNS] MX 레코드 확인 방법
도메인의 MX(메일 교환기) 레코드는 메일 서버의 주소를 나타내며, 이를 확인하는 것은 메일 시스템을 설정하거나 문제를 해결할 때 중요하다.이번 글에서는 Windows 환경에서 CMD(명령 프롬프트)를 사용해 특정 도메인의 MX 레코드를 확인하는 방법을 기술한다.1. 실행 창에서 CMD 실행하기1. [Win + R] 키를 눌러 실행창을 연다.2. '열기' 입력란에 cmd를 입력한 후 [확인] 버튼 클릭2. nslookup 명령어를 사용하여 MX 레코드 조회1. 명령 프롬프트 창에서 nslookup을 입력하고 Enter2. 다음 명령어를 입력하여 MX 레코드 조회 모드로 변경한다.set q=mx 3. 원하는 도메인을 입력한다.google.com 또는 naver.com 4. 결과를 확인한다. 아래와 같은 형..
2025.02.10
no image
DKIM과 DMARC 이란?
DKIM과 DMARC는 이메일 인증 기술로 이메일의 신뢰성을 보장하고 피싱 및 스팸 메일을 방지하기 위해 사용된다.각각의 개념에 대해서 알아보고 동작 방식을 살펴보자.1. DKIM (DomainKeys Identified Mail)DKIM은 이메일이 수정되지 않았음을 보장하는 전자 서명 기술이다.- 발신자가 이메일에 디지털 서명을 추가하고, 수신자가 이 서명을 검증한다. - 이메일이 전송 중 변경되었다면 서명이 일치하지 않아 수신자가 이를 탐지할 수 있다.DKIM 동작 방식:1. 발신 도메인 관리자는 공개 키와 비밀 키를 생성2. 공개 키는 DNS 레코드에 저장되며 누구나 확인 가능3. 이메일 전송 시 발신 서버는 이메일 헤더에 DKIM 서명을 추가4. 수신 서버는 DNS에서 공개 키를 가져와 이메일의 ..
2025.01.02
no image
[검색엔진] Solr에 대해서 알아보자
검색엔진 Solr 개요Apache Solr는 오픈소스 검색 플랫폼으로, Apache Lucene 라이브러리를 기반으로 개발되었다.주로 텍스트 기반 데이터 검색, 데이터 색인, 데이터 분석에 사용되며, 대규모 데이터 처리에 적합하다.Solr 주요 특징1. 강력한 검색 및 색인 기능 Solr는 빠르고 효율적인 텍스트 검색 기능을 제공한다. - 키워드 검색 - 부분 검색 및 와일드카드 검색 - 필터링과 정렬 - 여러 언어 지원 2. 확장성과 분산 처리 Solr는 클러스터링 및 분산 검색을 지원한다.SolrCloud 기능을 사용하면 데이터를 여러 서버에 분산해 검색 속도와 데이터 처리 용량을 늘릴 수 있다. 3. RESTful API 지원 Solr는 HTTP 요청을 통해 데이터를 색인하거나 검색할 수 있는 RE..
2024.11.27
no image
[정보처리기사] 소프트웨어 아키텍처
SW 아키텍처란?SW 아키텍처는 소프트웨어 시스템의 기본 구조를 정의하며, 시스템의 주요 구성 요소, 이들 간의 관계, 상호 작용 방식을 포함한다. 또한, SW 아키텍처는 품질 속성(성능, 확장성, 보안성 등)을 충족시키기 위해 설계된 주요 설계 결정을 나타낸다. 소프트웨어 아키텍처는 시스템 개발 과정에서 의사소통의 기반이 되며 시스템의 성공적인 구현과 유지 보수를 위해 필수적이다. 이를 통해 프로젝트 팀은 설계 의도를 명확히 하고 요구사항을 시스템 구조에 반영하며 기술적 위험을 완화할 수 있다.SW 아키텍처 4+1 뷰 모델SW 아키텍처 4+1 뷰 모델은 필립 크리센(Philippe Kruchten)이 제안한 소프트웨어 설계 접근법이다. 이 모델은 복잡한 시스템을 다각도로 분석하여 명확히 이해하고 설계할..
2024.11.19
no image
[정보처리기사] SW 비용산정 모형
소프트웨어 비용산정 모형은 프로젝트 예산을 효과적으로 계획하고 관리하기 위해 사용하는 중요한 도구이다.프로젝트의 특성과 크기에 따라 적합한 비용산정 모형을 선택할 수 있으며 하향식과 상향식 방식에 따라 접근할 수도 있다.주요 비용산정 모형과 하향식·상향식 방식을 아래에 정리했다.하향식 방식과 상향식 방식하향식 방식 (Top-Down Estimation)하향식 방식은 프로젝트 전체를 큰 틀에서 대략적으로 분석한 후 세부 단계별로 비용을 할당하는 방식이다.주로 이전 유사 프로젝트의 데이터를 기반으로 전체 예산을 산정한 뒤 이를 세부 항목으로 분배한다. - 장점: 빠르고 간편하게 예산을 산정할 수 있으며 전체적인 비용 산정을 효율적으로 수행할 수 있다. - 단점: 세부 요소에 대한 분석이 부족할 수 있어 세부..
2024.11.15
no image
[정보처리기사] 소프트웨어 개발 방법론(SDM)
1. 소프트웨어 개발 방법론(SDM)이란?SDM은 소프트웨어 개발 과정을 체계화하고, 단계적으로 프로젝트를 관리하기 위해 정의된 일련의 절차와 원칙이다.이를 통해 개발자는 요구사항 분석부터 설계, 구현, 테스트, 유지보수에 이르는 전 과정을 체계적으로 진행할 수 있다. 2. 주요 소프트웨어 개발 방법론 종류1) 구조적 방법론 (Structured Methodology)구조적 방법론은 소프트웨어를 기능 단위로 나누고 각 기능이 논리적으로 연결되도록 설계하는 방식주로 Waterfall 모델과 같은 순차적 접근 방식을 사용하며, 각 단계가 완료되어야 다음 단계로 진행할 수 있다. - 특징: 단계가 명확하게 구분되며, 계획과 문서화를 중시- 장점: 요구사항이 고정적일 때 효과적이며, 각 단계별 산출물을 관리하기..
2024.11.14
no image
[CS] 생성형 AI 도구의 특징과 장단점
1. Perplexity AI(https://www.perplexity.ai/)- 검색 엔진 기반의 AI 서비스로 웹에서 정보를 검색해 요약하고 관련성을 파악해주는 생성형 AI#장점- 정보 수집과 요약에 탁월해 빠르게 최신 정보를 얻기 좋음.- 소스 링크 제공으로 신뢰도를 높임.#단점- 특화된 질문에 대해선 제한적인 답변을 제공할 수 있음.- 검색 기반으로 사용하므로 특정 정보는 불완전할 수 있으며 출처는 제공하나 정확도는 확신할 수 없음. 2. ChatGPT (https://openai.com/blog/chatgpt)- OpenAI의 언어 모델 GPT-4를 기반으로 한 대화형 AI로 주제에 대한 깊이 있는 응답을 생성하며 한국어 지원이 원활#장점- 자연스럽고 깊이 있는 대화가 가능하며 다양한 주제를 포..
2024.11.13