예전에 장염으로 대형병원 응급실을 갔을 때, 그곳에서 환자 밴드를 손에 채워주고 검사를 시작했습니다.이 밴드에는 바코드가 있었는데요, 밴드 하나로 개인정보, 병원에 온 이유 등을 말하지 않아도 병원에서는 이사람이 환자임을 알 수 있었습니다.유효한 밴드를 가지고 있는 것만으로 병원에 온 환자 임이 인증되는거니까요. 웹 서비스에서도 이와같은 원리로 회원을 확인할 수 있는 기능을 하는 것이 있습니다. 바로 JWT 토큰입니다.JWT 토큰의 정의와 기본 개념JWT(Json Web Token)는 웹의 사용자 인증을 위해 사용되는 전자 서명된 URL-safe 암호화된 토큰을 의미합니다.서버에서 특정 방식으로 암호화 처리를 해서 클라이언트에게 토큰을 주면, 클라이언트는 이 토큰을 들고 있다가 필요할 때 서버한테 내밀어..
트랜잭션이란데이터베이스 시스템에서 트랜잭션이란 하나의 기능을 수행하는 작업 단위입니다.ACID 원칙은 이러한 트랜잭션의 일관성과 무관성을 지켜주는 핵심 개념입니다.예를 들어, 상대방에게 이체를 하는 기능이라면 이런 과정을 거치게 됩니다.나의 계좌를 확인한다.계좌에서 잔액을 확인하여 출금한다.상대방의 계좌에 보낸 금액을 입금한다.이 과정들은 하나로 묶여서 '이체'라는 기능을 수행하고 있고, 이를 하나의 트랜잭션으로 볼 수 있습니다.하나의 기능을 위해 여러개의 연산 과정을 거치면서 여러 데이터 값을 변경하고 있으므로 정확한 처리가 필요합니다.여기서 ACID 원칙이 중요한 역할을 합니다.ACID 원칙ACID원칙은 다음 네가지 요소로 구성됩니다.Atomicity(원자성)Consistency(일관성)Isolati..
인터넷 프로토콜 스택(TCP/IP 레이어)인터넷 통신은 우편이나 택배 서비스 등으로 비유를 합니다.발신자(클라이언트)가 있고, 택배물건(패킷)을 통해 수신자(서버)에 전달하고, 물류센터들(노드)을 거쳐 수신자에게 전달되는 점에서 그렇습니다.그렇지만 일반 택배와 다른 점이 있다면 정해진 상자(패킷 크기)에 나누어서 보내야하고, 나누어서 보내기 때문에 조립순서가 필요합니다. 따라서 순서를 확인하기 위한 어떤 무엇인가가 있어야 할 것이고, 수신자 주소와 발신자 주소도 제대로 적혀있어야 합니다.인터넷 통신에서는 이렇게 순서를 확인하고, 실제로 발신자가 있는지 확인하는 프로토콜(언어)이 TCP(Transmission Control Protocol, 전송 제어 프로토콜)이고, 수신자와 발신자가 적혀있는 것이 IP(..
permission denied맥북을 사용하다보면 심심치 않게 파일을 실행할 때 permission denied를 만날 수 있습니다.이럴 때마다 chmod 755 명령어를 사용하여 파일에 대해 권한을 주어 해결하곤 하는데요.얼마전 시험에서도 공부했던 부분이라 정리 차원에서 더 공부하여 포스팅합니다.chmod 명령어란?chmod 명령어는 "change mode"의 약자로, 파일이나 디렉토리의 권한을 변경하는 리눅스(유닉스) 명령어입니다.(읽을때마다 쵸몬도로 읽게되어 썸네일에 추가해 봤습니다.) 엄밀히 말하면 유닉스 명령어이지만 리눅스도 유닉스 계열이고, 맥북의 macOS도 유닉스 계열이다보니 사용할 수 있는 것이지만 편의를 위해 리눅스 명령어라고 칭하겠습니다.755는 뭐지?리눅스의 파일 권한은 소유자/그룹..
리트코드 - 57. Insert Interval출처 - https://leetcode.com/problems/insert-interval/description/?envType=study-plan-v2&envId=top-interview-150 문제 설명다음과 같은 비중첩(intervals)이 주어집니다. 이 intervals 배열은 intervals[i] = [starti, endi] 형식으로 주어지며, 이는 i번째 interval의 시작과 끝을 나타냅니다. 또한 이 intervals 배열은 시작 값 starti 기준으로 오름차순으로 정렬되어 있습니다. 또한 [start, end] 형식의 새로운 interval newInterval이 주어지며, 이는 새로운 interval의 시작과 끝을 나타냅니다.new..