[Infra] EC2 인스턴스 생성하기 & SSH 접속 방법
·
Infra
🎉  개요프로젝트를 진행하면 EC2를 제공해 주지만, 직접 EC2 인스턴스를 생성해서 미리 배포 연습을 할 것이다. 졸업 프로젝트에서 EC2를 생성해서 배포한 경험이 있지만, 이때는 너무 급하게 진행하다보니 정리를 하나도 해놓지 않았다. 이번에는 잘 정리해서 다음에 참고할 수 있도록 정리하려고 한다! ❓ EC2란?Elastic Compute Cloud의 약자로, 아마존에서 제공하는 클라우드 컴퓨팅 시스템이다. Amazon EC2를 사용해서  가상 서버를 구축하고 보안 및 네트워킹을 구성하며 스토리지를 관리할 수 있다. 간단하게 말하자면 AWS에서 원격으로 제어할 수 있는 가상의 컴퓨터를 한 대 빌리는 것이라고 생각하면 된다! ⚒️ EC2 인스턴스 생성하기1. 인스턴스 시작우선 EC2를 검색하여 AWS ..
[SQL] 문제 풀이 모음집 - SUM, MAX, MIN (ING)
·
Algorithm/SQL
Level 1가장 비싼 상품 구하기🔗 문제 링크최댓값 구하기: MAX(컬럼명)컬럼명 변경(앨리어싱): AS 컬럼명 or 컬럼명# 가장 높은 판매가 출력SELECT MAX(PRICE) MAX_PRICE # 컬럼명은 MAX_PRICE로 지정FROM PRODUCT; 최댓값 구하기🔗 문제 링크가장 최근 날짜 ⇒ MAX(), 가장 오래된 날짜 ⇒ MIN()# 가장 최근에 들어온 동물이 언제 들어왔는지 조회SELECT MAX(DATETIME) 시간 FROM ANIMAL_INS; 잡은 물고기 중 가장 큰 물고기의 길이 구하기🔗 문제 링크문자열 붙이기: CONCAT(문자열1, 문자열2, ...)# 가장 큰 물고기의 길이 출력(컬럼명: 은 'MAX_LENGTH)SELECT CONCAT(MAX(LENGTH), 'cm..
[SQL] 문제 풀이 모음집 - SELECT (ING)
·
Algorithm/SQL
잠깐만 안 풀어도 까먹는 SQL... 그래서 풀었던 기록 & 알게된 내용들을 기록해 두려고 한다. Level 1평균 일일 대여 요금 구하기🔗 문제 링크소수점 모두 반올림: ROUND(값, 0)cf) 소수점 첫 번째 자리까지 반올림: ROUND(값, 1)평균 구하기: AVG(칼럼명)AVG(DAILY_FEE)SELECT ROUND(AVG(DAILY_FEE), 0) AS AVERAGE_FEE # 반올림 & DAILY_FEE 평균 구하기 FROM CAR_RENTAL_COMPANY_CAR WHERE CAR_TYPE = 'SUV'; # 자동차 종료가 SUV 흉부외과 또는 일반외과 의사 목록 출력하기🔗 문제 링크날짜 형식 지정2024-09-01 형식: DATE_FORMAT(컬럼명, '%Y-%m-%d')..
[Spring] Access Token 블랙리스트 관리하기
·
Backend
🎉 개요로그인 기능을 구현하고 테스트 하던 중, Access Token을 새로 발급 받았는데도 발급 전의 Access Token으로 여전히 접근이 가능하다는 것을 알게 되었다. 이는 이전 토큰의 만료 기간이 남았기 때문에 해당 토큰이 유효하다고 인식하여 발생한 일이었다. 만약 이전 토큰이 탈취된 경우라면, 새 토큰이 발급되었음에도 탈취한 토큰으로 계속 접근이 가능하므로 보안상 문제가 생길 수 있다. 따라서 이전의 토큰을 무효화하여 접근할 수 없도록 해야 한다. 이 문제를 해결하기 위해 이전 토큰들을 블랙리스트에 넣어서 관리하는 방법을 선택했다. 스프링 시큐리티 관련 코드는 이전에 정리했으니, 블랙 리스트에 넣는 과정만 기록하려고 한다. [Spring] Spring Security JWT 로그인 구현하기..
[Web] 웹 소켓(Web Socket)이란?
·
Backend
프로젝트에서 웹 소켓을 활용한 기능을 개발하기 전에, 웹 소켓에 대해 먼저 공부하려고 한다. 💡 웹 소켓의 등장 배경가장 많이 쓰는 인터넷 통신 방식 중 하나는 HTTP를 이용한 클라이언트-서버 모델이다. 클라이언트가 서버에게 요청하고, 서버가 이에 응답하는 통신 방식이다. 하지만 이 방식은 실시간으로 데이터를 주고받는 데 한계가 있다. 클라이언트가 서버에게 요청하지 않는 이상, 서버는 클라이언트에게 먼저 데이터를 보낼 수 없다. 또한, 클라이언트는 항상 새로운 데이터가 있는지 확인하기 위해 서버에게 지속적으로 요청을 보내야 한다.  그러면 불필요한 트래픽이 증가되고, 이로 인해 서버의 비용이 증가한다. 그리고 요청과 응답 사이의 지연 시간이 있어 실시간 통신의 효율성을 저하시킬 수 있다.  이와 문제..
[Spring] Spring Security JWT 로그인 구현하기(with Redis)
·
Backend
📝 개요앞에서 JWT에 대해 대략적으로 알아봤으니, 이제는 JWT를 사용한 Spring Security 로그인을 구현하려고 한다. 이때, Refresh Token을 저장하기 위해 Redis를 사용하려고 한다. [Spring] JWT(JSON Web Token)란?스프링 시큐리티를 사용한 로그인(with JWT)을 구현하기 전, JWT에 대해 간단하게 알아보려고 한다! 🔎 JWT 개념JWT는 사용자 인증 정보를 JSON 형태로 안전하게 전달하는 Claim 기반 웹 토큰으로, Base6guswls28.tistory.com 👤 로그인 과정 알아보기AccessToken과 RefreshToken을 사용한 로그인 과정클라이언트가 ID, PW로 서버에게 인증을 요청한다.서버는 이를 확인하고 AccessToken..
[Spring] JWT(JSON Web Token)란?
·
Backend
스프링 시큐리티를 사용한 로그인(with JWT)을 구현하기 전, JWT에 대해 간단하게 알아보려고 한다! 🔎 JWT 개념JWT는 사용자 인증 정보를 JSON 형태로 안전하게 전달하는 Claim 기반 웹 토큰으로, Base64로 인코딩되어 클라이언트 - 서버 간 권한 검증에 사용된다.  🔧 JWT 구조JWT는 Header, Payload, Signature 총 세 부분으로 구성된다. 각 부분을 .을 이용해서 연결하고, 이 값을 Base64로 인코딩하여 JWT를 생성한다. 생성한 JWT는 HTTP 요청 시 Authorization 헤더에 Bearer JWT 토큰 형태로 전달된다.{ "Authorization": "Bearer {JWT 토큰}"} HeaderHeader는 JWT에서 사용할 토큰의 타입과 ..
[혼공컴운] Ch 04. CPU의 작동 원리
·
CS/컴퓨터구조
본 글은 강민철 님의 혼자 공부하는 컴퓨터구조 + 운영체제를 읽고 정리한 내용입니다.첨부된 이미지는 혼자 공부하는 컴퓨터구조+운영체제 유튜브 강의에서 캡쳐한 것입니다. ALU와 제어장치ALU계산을 담당하는 부품ALU가 받아들이는 정보피연산자레지스터부터 받음제어 신호제어장치로부터 받음 ALU가 내보내는 정보연산 결과특정 숫자, 문자, 메모리 주소CPU가 메모리에 접근하는 속도보다 레지스터에 접근하는 속도가 훨씬 빠르므로, 일시적으로 레지스터에 저장됨 플래그연산 결과에 대한 추가적인 상태 정보플래그 레지스터에 저장됨플래그 종류의미사용 예시부호 플래그연산 결과의 부호1이면 음수, 0이면 양수제로 플래그연산 결과가 0인지1이면 연산 결과가 0, 0이면 0이 아님캐리 플래그연산 결과 올림수나 빌림수가 발생했는지1..
[혼공컴운] Ch 03. 명령어
·
CS/컴퓨터구조
본 글은 강민철 님의 혼자 공부하는 컴퓨터구조+운영체제를 읽고 정리한 내용입니다.첨부된 이미지는 혼자 공부하는 컴퓨터구조+운영체제 유튜브 강의에서 캡쳐한 것입니다. 소스코드와 명령어고급 언어사람이 이해하고 작성하기 쉽게 만들어진 언어알고 있는 대부분의 프로그래밍 언어가 고급 언어에 속함ex. C, Java, Python, ... 저급 언어컴퓨터가 직접 이해하고 실행할 수 있는 언어고급 언어로 작성된 소스 코드를 실행하려면 반드시 저급 언어로 변환해야 함!저급 언어에는 두 가지 종류가 있음기계어어셈블리어기계어: 0과 1의 명령어 비트로 이루어진 언어즉, 0과 1로 이루어진 명령어 모음오로지 컴퓨터만을 위해 만들어진 언어라 사람이 그 의미를 이해하기 어려움어셈블리어: 0과 1로 표현된 명령어(기계어)를 읽기..
[혼공컴운] Ch 02. 데이터
·
CS/컴퓨터구조
본 글은 강민철 님의 혼자 공부하는 컴퓨터구조+운영체제를 읽고 정리한 내용입니다.첨부된 이미지는 혼자 공부하는 컴퓨터구조+운영체제 유튜브 강의에서 캡쳐한 것입니다. 0과 1로 숫자를 표현하는 방법정보 단위컴퓨터는 0 또는 1만 이해할 수 있음비트 (bit) 0과 1을 나타내는 가장 작은 정보 단위 1비트는 두 가지 정보 표현 가능 (0, 1)2비트는 네 가지 정보 표현 가능 (00, 01, 10, 11)...n비트는 2ⁿ가지 정보 표현 가능바이트 (byte)8개의 비트를 묶은 단위로, 비트보다 한 단계 큰 단위 (1byte = 8bit)총 256개(2^8)개의 정보를 표현할 수 있음표현 단위 (byte, kB, MB, GB, TB)바이트를 제외한 나머지 단위들을 이전 단위를 1,000개 묶어 표현한 단위..