분류 전체보기 52

컴퓨터 CPU

CPU(중앙 처리 장치)1. 개념컴퓨터 구성 단위 중 4대 기능인 중앙 처리 장치의 줄임말이다. (사람으로 치면 뇌)컴퓨터의 핵심 구성 요소이고 모든 연산과 처리를 담당하는 장치다.CPU는 프로그램의 명령을 해석하고 실행하여 컴퓨터의 기능을 수행한다. 2. CPU의 세부장치1. 산술 논리 장치(ALU : Arithmetic Logic Unit)산술 연산과 논리 연산을 수행하는 장치이다.CPU가 데이터를 처리하는데 핵심 역할을 한다. 2. 제어 장치(CU : Control Unit)CPU 내부의 다른 요소를 관리하고 프로그램의 명령어를 이용해 실행 순서를 제어한다.메모리와 데이터 전송을 조정한다. 3. 레지스터CPU 내부 고속 메모리로 필요한 데이터를 임시로 저장한다.일반적으로  빠른 접속 속도로 CPU의..

TIL 20241008 (직사각형 별찍기 - 알고리즘)

직사각형 별찍기   코드process.stdin.setEncoding("utf8");process.stdin.on("data", (data) => { const n = data.split(" "); const a = Number(n[0]), b = Number(n[1]); answer = ""; for (let i = 0; i   풀이두 수를 입력받아 이중 for문을 이용해 별 직사각형을 만드는 코드이다. process.stdin.setEncoding("utf8");입력 데이터를 문자열로 처리하기 위해 쓰는 입력 인코딩 설정 process.stdin.on("data", (data) => {데이터가 입력될 때마다 실행되는 이벤트 리스너이다.데이터가 data 매개변수로 전달된다. const n ..

TIL 2024.10.08

TIL 20241007 (제일 작은 수 제거하기 - 알고리즘)

제일 작은 수 제거하기 배열에서 가장 작은수를 찾아서 제거를 하는데 배열이 빈 배열이 되는 경우에는 -1이 리턴이 되어야한다.배열의 길이가 1인 경우에는 -1을 바로 리턴하고 1 보다 클때는 가장 작은수를 찾아서 제거해야한다. 코드function solution(arr) { if (arr.length === 1) return [-1]; let min = 0; for (let i = 1; i  풀이 if (arr.length === 1) return [-1]; 배열의 길이가 1인 경우 -1을 리턴( 리턴후 코드 종료)  let min = 0;  가장 작은수를 저장할 변수 min 초기화  for (let i = 1; i  최솟값을 찾는 반복문i는 1부터 배열 arr의 길이..

TIL 2024.10.07

TIL 241002 ( 약수의 갯수와 덧셈[알고리즘] )

매개변수 : 함수의 특정한 성질을 나타내는 변수  코드function solution(left, right) { let answer = 0; for(let i = left; i  입출력 예처럼 13부터 17까지인 경우13부터 17까지의 약수를 구하고 짝수 갯수인 수들은 더하고 홀수 갯수인 수들은 빼서 return 하면 된다. function solution(left, right) { let answer = 0;soulution이라는 함수 아래 left와 right라는 두 개의 매개변수를 받는다.answer 변수를 초기화 해서 결과를 저장하게 한다. for(let i = left; i 약수 구하는 for문을 돌려서 left 부터 right까지의 i에 대해 반복하게 한다. let count..

TIL 2024.10.02

TIL 240930 (흐름제어와 혼잡제어)

흐름제어와 혼잡제어는 TCP 통신에 관한 두가지 기법이다.TCP 통신에는 4가지 문제점이 존재한다.packet이 손실될 수 있다.packet의 순서가 바뀔수 있다.네트워크가 혼잡하다. (Congestion)수신자가 과부하되어 데이터를 받을 수 없게 된다.흐름제어송신과 수신 간의 데이터 처리 속도 차이를 해결하기 위한 것이다.송신 쪽 전송량이 수신측 처리량보다 클 경우 패킷이 전송량을 제어해줘야 한다. 흐름제어에는 두가지 방식이 있다.1. Stop and Wait (정지 - 대기)먼저 전송한 패킷에 대한 응답을 받아야  그 다음 패킷을 전송할 수 있다. 2. Sliding Window 수신 측에서 설정한 윈도우 크기만큼 송신 측에서 응답 없이 세그먼트(데이터 작은 단위)를 전송할 수 있게해서 데이터 흐름을..

TIL 240926 (JWT)

JWT (Json Web Token)서버와 클라이언트 사이에서 정보의 안전한 전송을 도와주는 웹 토큰이다.JSON 형태의 데이터를 안전하게 전송하고 검증할 수 있는 기능을 가지고 있다.다양한 암호화 알고리즘이 사용가능해 신뢰성도 있다. 구성헤더(Header)토큰의 타입과 어떤 암호화를 사용하여 생성된 데이터인지 정의가 되어있다. 페이로드(Payload)실제 전달 데이터를 가지고있다 서명(Signature)헤더와 페이로드 그리고 비밀 키를 이용해 생성한다.토큰이 변조되지 않았는지 확인할 수 있게 도와준다.JWT 장점디버깅 및 관리가 편리하다.트래픽에 대한 부담이 낮다.자체적으로 필요한 정보를 포함하고 있다. (독립적)토큰에 만료 시간을 설정할 수 있는 기능이 내장되어 있다.웹서비스 아키텍처 스타일 중 하나..

TIL 2024.09.26

TIL 240925 (웹소켓)

웹소켓 (WebSocket)클라이언트와 서버 간의 양방향 통신을 위한 프로토콜이다.기존의 HTTP 통신 방식과는 다르게 연결이 한번되면 실시간으로 양쪽에서 데이터를 주고받을 수 있다. HTTP : 단방향 통신 ( 클라이언트가 요청하지 않으면 서버에서 데이터를 전송할 수 없다.) Web Socket : 양방향 통신 (지속적인 연결) 웹소켓 장점 양방향 통신 : 언제든 데이터를 주고받을 수 있다.낮은 오버헤드 : HTTP와 달리 매번 요청과 응답을 반복하지 않아서 네크워크 자원을 덜 소모한다.실시간 데이터 교환 : 온라인 게임, 주식 차트, 협업도구 등에서 유용하게 쓰인다.지속적인 연결 : 연결이 끊기지 않은 상태여서 데이터 전송 속도가 빠르고 연결에 대한 부담이 적다.낮은 지연시간 : 웹소켓은 헤더 정보의..

TIL 2024.09.25

OSI 응용계층

응용계층사용자와 가장 밀접한 계층으로 사용자와 컴퓨터 사이의 인터페이스의 역할을 담당한다.통신 상대와의 통신 가능성을 확인하고 오류 회복 절차와 데이터 무결성 제어에 대한 동기화 및 설정을 한다.송신 측 : 사용자로부터 데이터를 받아 표현 계층으로 전달수신 측 : 표현계층으로부터 받은 데이터를 사용자에게 표시  HTTP의 개념HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 응용계층의 프로토콜이다.HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트 - 서버 프로토콜이기도 하다.클라이언트 - 서버 프로토콜이란 수신자 측(보통 웹브라우저)에 의해 요청이 초기화 되는 프로토콜을 의미한다.즉, HTTP는 클라이언트가 요청을 생성하기 위한 연결을 연 다음 응답을 받을 때 까지 ..

TIL 240924 (OSI 전송 계층)

OSI 4계층(전송 계층)OSI 전송 계층은 서비스를 구분하고 신뢰성 있는 데이터의 전송 방식을 담당하는 계층이다.포트번호를 사용하여 목적지인 프로세스까지 데이터가 도달하게 도와준다.보낼 데이터의 용량, 속도, 목적지 등을 처리한다.  TCP/UDPTCP와 UDP는 OSI 표준모델과 TCP/IP 모델의 전송계층에서 사용되는 프로토콜이다. TCP핵심연결 지향적 프로토콜, 3 - way - handshake 사용3 - way hand shake 과정SYN (동기화) > SYN + ACK (동기화 및 확인) > ACK (응답 확인)특징신뢰성, 순차 전송 보장, 흐름 및 혼잡 제어, 오류 감지, 데이터 손실 시 재전송 가능세그먼트데이터를 세그먼트 단위로 전송하여 TCP 헤더를 붙여 처리단점1 : 1 통신만 가능..

TIL 240920 (회원가입, 로그인)

회원가입과 로그인 백엔드 소스코드를 만들어 보았다.express, bcrypt, jsonwebtoken, joi, authmiddelware 등의 프레임워크, 라이브러리를 임포트해왔다.express 프레임워크는 서버 및 API를 쉽게 구축할 수 있게 도와준다. bcrypt 라이브러리는 비밀번호를 안전하게 해싱하는걸 도와준다.jsonwebtoken 라이브러리는 JSON 웹 토큰을 생성하고 검증하는 것을 도와준다.joi는 JavaScript 객체의 유효성 검사를 도와주는 데이터 검증 라이브러리다.authMiddleware는 사용자 인증을 처리해주는 미들웨어다. (JWT 인증상태)   회원가입에 필요한 데이터 유효성 검사 스키마를 정해보았다.const account_vaildation = joi.object(..

TIL 2024.09.20