[CS] 컴퓨터 핵심 부품
·
CS/컴퓨터구조
본 글은 강민철 님의 혼자 공부하는 컴퓨터구조+운영체제를 읽고 정리한 내용입니다. 🔢 컴퓨터가 이해하는 정보컴퓨터는 0과 1로 표현된 정보만 이해함즉, 0과 1로 표현되는 정보인 데이터, 명령어만 이해함데이터란?컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상과 같은 정적인 정보명령어 없이는 아무것도 할 수 없는 정보 덩어리명령어란?데이터를 움직이고 컴퓨터를 작동시키는 정보컴퓨터를 실질적으로 작동시키는 정보즉, 컴퓨터는 명령어를 처리하는 기계라고 말할 수 있다! 🖥️ 컴퓨터의 핵심 부품핵심 부품은 크게 4가지로 구분할 수 있다. 각 부품에 대해 알아보자.중앙처리장치 (CPU)주기억장치 (메모리)보조기억장치입출력장치 CPUCPU는 컴퓨터의 두뇌라고도 불린다.메모리에 저장된 명령어를 읽어들이고, 읽어들인 ..
[SQL] 문제 풀이 모음집 - IS NULL
·
Algorithm/SQL
Level 1경기도에 위치한 식품창고 목록 출력하기🔗 문제 링크IFNULL(컬럼, 대체 값)해당 값이 NULL일 때, 다른 값으로 출력ISNULL(컬럼, 값1, 값2)컬럼 == NULL → 값1을 반환컬럼 ≠ NULL → 값2를 반환NULLIF(값1, 값2)값1 ≠ 값2 → 값1을 반환값1 == 값2 → NULL을 반환# 창고ID, 이름, 주소, 냉동시설 여부 조회# 냉동시설 여부가 NULL이면 'N'SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, IFNULL(FREEZER_YN, 'N') AS FREEZER_YNFROM FOOD_WAREHOUSEWHERE ADDRESS LIKE '%경기도%'ORDER BY WAREHOUSE_ID; 이름이 없는 동물의 아이디🔗 문제 ..
[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
보호되어 있는 글입니다.
[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에서 사용할 토큰의 타입과 ..
[BOJ] 18111: 마인크래프트 (JAVA)
·
Algorithm/완전탐색
📄 문제https://www.acmicpc.net/problem/18111 📝 풀이땅을 고르게 만들기 위해서는 먼저 목표로 하는 땅의 높이를 정해야 한다.  이를 위해 땅의 최소 높이와 최대 높이를 구해야 한다. 그 후, 목표 높이를 "최소 높이 ~ 최대 높이" 사이 값으로 지정하여 최적의 높이를 찾아 시간을 계산하면 된다.  땅의 최대 높이는 256이므로, 최소 높이에서 최대 높이까지 모든 경우를 확인해도 된다. 또한, 최대 높이가 크지 않으므로 땅의 정보를 2차원 배열 대신 1차원 배열에 저장할 수 있다. (해당 높이의 땅이 몇 개인지 저장하는 1차원 배열) 목표 높이를 정했으면 깎아야 할 블록의 개수와 쌓아야 할 블록의 개수를 계산한다. 깎아야 하는 블록의 개수: 해당 높이의 땅 개수 * (현재..