전체 글

코딩 개발

암호화의 종류

단방향 암호화 단방향 암호화는 평문을 암호화 할 수는 있지만 암호화된 문자를 다시 평문으로 복호화가 불가능한 암호화 방법입니다.주로 해시 알고리즘을 이용하여 단방향 암호화를 구현 합니다. 단방향 암호화를 사용하는 주된 이유는 메시지 또는 파일의 무결성(integrity)을 보장하기 위해서 입니다. 원본의 값이 1bit라도 달라지게 되면 해시 알고리즘을 통과한 후의 해시값이 매우 높은 확률로 달라 집니다. 이를 통해 메시지나 파일이 원본인지 아닌지 확인 할 수 있습니다. 해시의 무결성을 보장하는 특징을 이용하여 저자서명, 파일 또는 데이터의 식별자, 사용자의 비밀번호, 블록체인 등에서 활용되고 있습니다. 대표적인 해시 알고리즘으로는 MD5, SHA 등이 있습니다. 하지만 단방향 암호화에는 한계가 존재합니다..

코딩 개발

Session & Token

웹 환경에서 사용자와 시스템 간에 데이터를 교환하기 위해 HTTP 방식을 사용합니다. HTTP 통신은 요청과 응답에 의해 동작하며, HTTP의 특징 중 가장 중요한 특징은 바로 Stateless 입니다. 문자 그대로 번역하면 State(상태) + less(없음) 을 의미합니다. 각각의 HTTP 통신(요청/응답)은 독립적 이기 때문에 과거의 통신(요청/응답)에 대한 내용을 전혀 알지 못 합니다. 이전의 상태를 전혀 알지 못 한다는 것은 무엇을 의미할까요? 매 통신마다 필요한 모든 정보를 담아서 요청을 보내야 합니다. 비유를 하자면, 마치 이미 자기소개를 한 사람에게 계속해서 똑같은 내용으로 자기소개를 해야하는 것과 같습니다. 따라서, 만약 로그인 후 상품 구매나 개인정보 수정 같이 여러번의 통신(요청/응답..

코딩 개발

인증과 인가

1. 인증(Authentication) 인증은 누군가 또는 시스템이 실제로 그 누구인지 또는 시스템인지를 결정하는 과정입니다. 인증 기술은 사용자의 자격 증명 정보가 데이터 인증 서버의 자격 증명 정보와 일치하는지 확인하여 인증 절차를 통과한 시스템에 대해 액세스 제어를 제공합니다. 인증 유형 인증에는 여러 가지 유형이 있습니다. 자격증명 정보로서 사용자 ID와 암호만을 요구하는 방식을 SFA(단일 요소 인증)라고 합니다. SFA는 ID와 비밀번호만 알아도 쉽게 보안에 문제가 생깁니다. 그래서 최근 기업들은 로그인 시도 시 모바일 기기를 통해 사용자에게 부여하는 고유코드나 지문 등의 추가적인 인증 요소를 요구해 인증을 강화하고 있으며 이를 2FA라고 합니다. 2FA 유형에서 조금 더 보안을 강화하기 위해..

코딩 개발

API Documentation

API 문서화의 목적과 사용의의 - API 문서화란 백엔드가 작성한 각각의 API 기능을 문제없이 사용하기 위해서, 개발자간 어떠한 구성 요소를 주고 받아야하는지 일목요연하게 정리하는 작업 - 구두 또는 수기로 작성한 문서로 주고 받기에는 불편함이 많음 - 개발 작업 특성상 서로간 공유해야하는 수많은 내부 요소들이 있고, 이들 중 단 한 개라도 누락이 되면 정상 기능을 방해하는 오류가 발생 -> 불편함을 해소하고자 많은 개발자들이 API를 자동으로 문서화 할 수 있는 방안을 고안 - 서로의 통신 내용을 직관적으로 파악할 수 있게끔하는 웹 개발자의 필수 보조 작업물 API Documentation 장점 1. 개인의 장점 - 자신의 작업물을 다른 사람과 보다 효율적으로 공유할 수 있다는 점 - API 기능정..

코딩 개발

MYSQL - query 문은 어려워 (table 1칸에 여러개의 값)

table의 곱집합 교집합 등의 data를 뽑아내는 것은 select, from, join을 사용하여 구하면 됩니다. 하지만 이것만을 가지고 table 한칸 안에 여러개의 값을 넣을 수는 없더라고요... 그래서 공부해봤습니다. 비밀의 database를 공개하겠습니다.. (연예인 이름을 이용했지만 전혀 관련 없습니다.) user 과 post / 사용자와 게시물로 table을 만들어 보았습니다. users의 posts 값들을 뽑아볼까요? left join을 해서 지저분한 값을 제외하고 값을 뽑아 볼게요. 각 user가 쓴 게시글들을 확인 할 수 있습니다. 하지만.... 이렇게 되면 너무나도 많은 row들이 확인됩니다. 따라서, 중복이되는 값을 또 삭제하기 위해 유저하나에 유저가 쓴 모든 게시글을 넣어보려고 ..

코딩 개발/Javascript

Javascript - 화살표 함수의 비밀

map 함수에 객체를 바로 return 하려고 하니 undefined 이 나타나게 되었습니다. 그리하여... 화살표 함수의 비밀을 파헤쳐보기 시작했습니다. map 함수로 간단한 예시를 보여드리겠습니다. let arr = [1,5,412,2,156,2] arr.map(x => {x}) [undefined, undefined, undefined, undefined, undefined, undefined] 화살표 함수 뒤에 리턴값을 불러오게 되면 모든 것이 생략되고 리턴 값만 작성하면 되는데 객체를 불러오면 undefined가 뜹니다. 그 이유는 저 {x} 객체를 함수로 인지해서 return 값이 없기 때문에 그렇다고 합니다. 객체 안에 값을 넣으려면 arr.map(function(x){ return {x} ..

호소세
호소세의 개발 블로그