개발상식 11

ASCII와 UTF-8

🧠 한 줄 요약ASCII는 오래된 문자 "표현 체계",UTF-8은 현대적인 "문자 인코딩 방식"으로ASCII를 포함하지만 훨씬 더 많은 문자를 지원합니다.ASCII란?American Standard Code for Information Interchange7비트 문자 집합 (총 128자): 0~127영어 알파벳, 숫자, 특수기호, 제어 문자만 표현 가능 (한글/중국어/이모지 등은 표현)문자ASCII 값 (10진수)이진A6501000001a970110000114900110001 🌍 UTF-8이란?Unicode Transformation Format - 8bit전 세계 모든 문자(Unicode)를 표현하기 위한 문자 인코딩 방식가변 길이 인코딩:1바이트: ASCII 문자 (0x00 ~ 0x7F)2~4바이..

개발상식 2025.08.07

javascript에서의 URL Encoding

📘 URL Encoding이란?URL Encoding은 URL에 포함될 수 없는 문자(공백, 한글, 특수문자 등)를 퍼센트 인코딩(percent-encoding) 방식으로 변환하는 것입니다.✅ 왜 필요한가요?URL은 오직 ASCII 문자만 허용되며,공백이나 한글, &, = 등의 문자가 있으면 서버에서 URL을 잘못 해석할 수 있습니다.예를 들어 다음과 같은 문자열이 있다고 가정해봅시다:"hello world&name=성재"이 문자열을 URL에 그대로 넣으면 문제 발생 → 정상적인 HTTP 요청이 되지 않음따라서 이를 안전하게 인코딩해야 합니다.🔢 인코딩 방식퍼센트 인코딩 (Percent Encoding)각 문자를 UTF-8 바이트로 변환 후, 16진수로 표시하고 % 기호를 붙입니다.문자 ASCII(또..

개발상식 2025.08.07

Base64 인코딩에 대해

Base64 인코딩이란?Base64는 이진(binary) 데이터를 텍스트 형식으로 인코딩하는 방식입니다.이진 데이터를 64개의 문자로 표현하기 때문에 "Base64"라고 불립니다.🔢 인코딩 방식 설명1. 기본 아이디어3바이트(24비트)의 이진 데이터를 6비트씩 4조각으로 나눈다각 6비트는 0~63까지 표현 가능 → 총 64개의 문자 매핑📌 패딩: 입력 데이터가 3바이트로 나눠떨어지지 않으면 =으로 끝을 채움 (예: TWE=)2. 인코딩 순서입력예: Man (ASCII: 77 97 110)1. 이진 변환01001101 01100001 01101110 (3바이트, 24비트)2. 6비트 단위 분할010011 010110 000101 1011103. 각 조각을 정수로 변환19 22 5 464. Base64 ..

개발상식 2025.08.07

SOAP과 REST 연동

SOAP과 REST는 다양한 기술로 개발된 어플리케이션 간의 인터넷 데이터 교환 방식이다. 먼저 차이점을 알아보기 전에 SOAP을 알아보자. SOAP이란 SOAP은 애플리케이션 간에 통신할 수 있는 프로토콜이다. 프로토콜이기 때문에 복잡성과 오버헤드를 증가시키는 빌트인 룰을 적용하는데 이로 인해 페이지 로드 시간이 길어질 수 있다는 단점이 있다. 하지만 이러한 빌트인 룰은 빌트인 컴플라이언스를 제공하는데 컴플라이언스 표준에는 보안과 안정적인 데이터베이스 트랜잭션의 기본 속성인 원자성, 일관성, 격리성, 내구성(Atomicity, Consistency, Isolation and Durability, ACID)이 포함되어 기업에서 선호될 수 있다는 장점이 있다. 또한 SOAP은 엄격한 통신 규칙이 있어 아래..

개발상식 2024.01.30

RESTful API란

RESTful API는 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스 API란 애플리케이션 프로그래밍 인터페이스(API)는 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의한다. 개발자는 다른 애플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를 표시하거나 생성한다. 웹 API는 클라이언트와 웹 리소스 사이의 게이트웨이라고 생각할 수 있다. 클라이언트 클라이언트는 웹에서 정보에 액세스하려는 사용자다. 클라이언트는 API를 사용하는 사람이거나 소프트웨어 시스템일 수 있다. 리소스 리소스는 다양한 애플리케이션이 클라이언트에게 제공하는 정보로서 리소스는 이미지, 동영상, 텍스트, 숫자 또는 모든 유형의 데이터일 수 있다. 클라이언트에 리..

개발상식 2024.01.24

Web Storage - Local Storage, Session Storage

HTML5부터 웹 데이터를 client에 저장할 수 있는 storage가 추가되었다. 영구 저장소인 Local Storage와 임시 저장소인 Session Storage로 구성되어 있으며 key-value로 저장되는 기존 웹의 Cookie와 유사한 속성을 가지고 있다. Cookie와 차이점 쿠키는 매번 서버로 전송된다. 쿠키는 매번 request 요청 시 전달되며 Web Storage는 서버로의 전송이 이루어지지 않아 웹 트래픽의 비용을 줄여준다. 용량제한이 있는 Cookie와 달리 제한이 없다. Cookie는 4kb의 용량 제한이 있다. 영구적으로 데이터 저장이 가능하다. 쿠키는 만료일자를 지정하여 언젠간 만료되지만 Web Storage는 만료기간 설정이 없으며 영구적으로 저장 가능하다. 쿠키와 다르게..

개발상식 2021.05.10

대칭키와 비대칭키(공개키)

대칭키 대칭키는 암호화와 복호화가 동일한 암호화 방식이다. 대표적 알고리즘으로 DES, 3DESC, AES 등이 있다. 속도가 빠르다는 장점이 있지만 서로 키를 교환해야 하기 때문에 중간에 탈취될 수 있는 위험성이 있고 암,복호화가 하나의 키로 이루어지기 때문에 탈취될 경우 쉽게 해독당할 수 있다는 단점이 존재한다. 비대칭키 비대칭키는 암호화와 복호화가 다른 암호화 방식으로 공개키와 비밀키가 있다. 공개키는 모두가 접근할 수 있는 키이며 비밀키는 개인이 가지고 있어야 할 키이다. 참고자료 https://velog.io/@taelee/RSA-%EC%95%94%ED%98%B8%EB%8C%80%EC%B9%AD%ED%82%A4-%EB%B9%84%EB%8C%80%EC%B9%AD%ED%82%A4#3-%EA%B2%B..

개발상식 2021.05.06

보일러플레이트(boilerplate)란

프로그래밍에서의 보일러플레이트란 여러군데에서 재사용 되는 반복적인 코드를 말한다. 프로그래밍을 하면서 보일러플레이트 코드를 작성하는 것은 비효율 적이다. 보일러플레이트를 피하는 방법이 있다. - Library 예를들면 spring framwork 에서는 DTO혹은 VO 객체에 매번 getter, setter를 작성하게 되는데 이를 Lombock library로 피할 수 있다. - annotation 마찬가지로 spring framework 에서 annotation을 통해 반복적 코드를 단순하게 표현할 수 있다. - HTML boilerplate HTML5 Boilerplate는 브라우저 간 호환성이있는 HTML5 웹 사이트를 만들기위한 HTML, CSS 및 JavaScript 템플릿 참고 : 1.char..

개발상식 2021.01.28

Hash란

해시(hash)란 단방향 암호화 기법으로 해시함수(해시 알고리즘)를 이용하여 고정된 길이의 암호화된 문자열로 바꿔버리는 것을 의미한다. 해시함수(hash function)는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. 이 때 매핑 전 원래 데이터의 값을 키(key), 매핑 후 데이터의 값을 해시값(hash value), 매핑하는 과정을 해싱(hashing)이라고 한다. Collosion이 일어날 경우 해결방법 Chaining 충돌이 일어날 경우 동일한 버킷에 저장하는데 이를 포인터로 리스트 형태로 저장 최악의 경우 한 버킷에 몰리게 되며 시간 복잡도로 따지면 O(n)이다. Open Addressing 그 다음 비어잇는 주소에 저장하는 방식 비어있는 주소를 찾는 방식을 탐사 한다고 하..

개발상식 2020.12.21