클라이언트 인증 방식 - Cookie, Session, Token
서버가 클라이언트 인증을 확인하는 방식은 대표적으로 쿠키, 세션, 토큰 3가지 방식이 있다. 📌 Cookie 쿠키는 Key-Value 형식의 문자열 덩어리로, 클라이언트가 어떠한 웹사이트를 방문할 경우, 그 사이트가 사용하고 있는 서버를 통해 클라이언트의 브라우저에 설치되는 작은 기록 정보 파일이다. 서버가 클라이언트에게 저장하고자 하는 정보를 응답 헤더(Cookie)에 저장하여 전달한다. 각 사용자마다의 브라우저에 정보를 저장하여 고유 정보 식별이 가능하다. 💡 인증 방식 브라우저(클라이언트)가 서버에 요청(접속)을 보낸다. 서버는 클라이언트의 요청에 대한 응답을 작성할 때, 클라이언트 측에 저장하고 싶은 정보를 응답 헤더의 Set-Cookie에 담는다. 이후 해당 클라이언트는 요청을 보낼 때마다, 매..
REST 개념, 구성 요소, 특징, 장단점
REST(REpresentational State Transfer)는 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나이다. 자원을 이름으로 구분하여 해당 자원의 상태(정보)를 주고받는 모든 것을 의미한다. 즉, 자원(resource)의 표현(representation)에 의한 상태 전달(state transfer)을 뜻한다. 자원 : 해당 소프트웨어가 관리하는 모든 것 ( 문서, 그림, 데이터, 해당 소프트웨어 자체 등 ) 표현 : 그 자원을 표현하기 위한 이름 ( DB의 학생 정보가 자원이면, 'students'를 자원의 표현으로 정함 ) 상태 전달 : 데이터가 요청되는 시점에 자원의 상태를 전달. ( JSON 혹은 XML을 통해 데이터를 주고 받는 것이 일반적 ) REST는 기본..
[JAVA] 연산자, 조건문, 반복문 - 이것이 자바다 ☕
📌 연산자와 연산식 연산(operations) : 프로그램에서 데이터를 처리하여 결과를 산출하는 것 연산자(operator) : 연산에 사용되는 표시나 기호 피연산자(operand) : 연산되는 데이터 연산식(expressions) : 연산자와 피연산자를 이용해 연산의 과정을 기술한 것. 연산식은 반드시 하나의 값을 산출한다. 자바에서 제공하는 다양한 연산자들 연산자의 연산 방향과 우선순위 🌟 증감 연산자 증감 연산자는 변수의 값을 1 증가 (++) 시키거나 1 감소 (—) 시키는 연산자를 말한다. boolean 타입을 제외한 모든 기본 타입의 피연산자에 사용할 수 있다. int a = 1; int b = 1; int result1 = ++a + 10; // 10 을 더하기 전 a의 값을 2로 변경 in..
CI/CD란?
📌 CI/CD란?매번 개발자가 코드를 수정하고 빌드와 테스트를 하고 배포까지 한다면 상당히 많은 시간이 소요될 것이다. 그러나 git에 코드를 올리는 것만으로도 빌드와 테스트, 배포까지 해준다면, 쓸데없는 시간을 단축시키고 개발에 더 많은 시간을 투자할 수 있을 것이다. 이를 위해 고안된 방법이 CI/CD이다.CI/CD 서비스는 애플리케이션 구축, 테스트 및 배포에 자동화를 적용하여 개발 및 운영 활동과 팀 간의 격차를 해소한다. 개발자가 만든 코드 변경 사항을 컴파일한 다음 이를 소프트웨어 결과물에 연결하고 패키징하고, 자동화된 테스트를 통해 소프트웨어 기능을 확인하여 자동화된 배포 서비스로 이를 최종 사용자에게 제공한다.목표는 조기 결함 발견을 높이고 생산성을 높이며 더 빠른 릴리스 주기를 제공하는..
프로토콜 정의, 기본 요소, 종류, 기능
📌 프로토콜이란? 프로토콜(Protocol)은 컴퓨터나 네트워크 장비가 서로 통신하기 위해 미리 정해 놓은 약속 또는 규약을 말한다. 🌟 프로토콜의 기본 요소 구문(Syntax) : 전송하고자 하는 데이터의 형식(Format), 부호화(Coding), 신호 레벨(Signal Level) 등 규정 의미(Semantics) : 두 기기 간의 효율적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보 규정 시간(Timing) : 두 기기 간의 통신 속도, 메시지의 순서 제어 등 규정 🌟 프로토콜 종류 계층 프로토콜 응용(Application) HTTP, SMTP, FTP, Telnet 표현(Presentation) ASCII, MPEG, JPEG, MIDI 세션(Session) NetBIOS..
비트나미(Bitnami) WAMP 설치하기
📌 Bitnami(비트나미)란? 비트나미(Bitnami)는 가상 어플라이언스 및 웹 애플리케이션, 개발 스택용 소프트웨어 패키지 및 설치 라이브러리이다. WAMP(Windows/Apache/MySQL/PHP) : 윈도우 환경에서 아파치(Server), MySQL(DB), PHP(서버사이드)와 같은 웹 개발환경을 통합적으로 구축해주는 프로그램 MAMP(Mac/Apache/MySQL/PHP) : 맥 환경에서 아파치(Server), MySQL(DB), PHP(서버사이드)와 같은 웹 개발환경을 통합적으로 구축해주는 프로그램 📌 Bitnami(비트나미) 설치하기 > bitnami.com/stack/wamp/installer Infrastructure Bitnami Application Catalog Develop..
IP 주소 체계(IPv4, IPv6), DNS
📌 IP 주소란? IP 주소는 각각의 컴퓨터 기기가 서로 통신하기 위해 가지고 있는 네트워크 주소이다. 우리가 우편주소로 집의 위치를 찾는 것처럼, 컴퓨터는 IP주소라는 주소체계를 통해 컴퓨터를 식별한다. 📌 IP 주소 체계 💡 IPv4 8비트씩 4블럭으로 이루어져 있는 주소체계. 현재 주로 활용되고 있는 주소체계. 8비트는 10진수로 표현하면 0~255 (2^8 = 256) 까지의 값을 가지므로, 0~255 사이의 숫자가 4블럭으로 이루어졌다고 보면 된다. 172.217.25.14 IPv4로는 2^32 = 4,294,967,296개의 주소를 만들 수 있다. (약 42억 개) 요즘같이 스마트폰 등 IP주소를 할당받을 필요가 있는 기기가 증가하면서 사용 가능한 IPv4 주소는 빠르게 고갈되고 있다. 이런 ..
MediaPipe를 이용해 손 인식하기 🖐
import cv2import mediapipe as mpimport timecap = cv2.VideoCapture(0)mp_drawing = mp.solutions.drawing_utils # 손 위에 그림을 그릴 수 있는 메소드mp_hands = mp.solutions.hands # MediaPipe solution에서 제공하는 손 모델hands = mp_hands.Hands( max_num_hands = 1, # 인식할 손모양의 갯수, 생략하면 2가 지정된다. min_detection_confidence = 0.5, # 성공적인 것으로 간주되는 최소 신뢰도 값. 0.0 ~1.0사이로서 기본값은 0.5이다. min_tracking_confidence = 0.5) # 손 랜드마크가 성..
사용자 손 제스처 인식 기반 키오스크 제어 시스템 설계 🖐
🔗 깃허브 레포지토리 링크 https://github.com/jiholee0/2022-IDPCD GitHub - jiholee0/2022-IDPCD: 2022년 2학기 개별연구(Independant Capstone Design) 2022년 2학기 개별연구(Independant Capstone Design). Contribute to jiholee0/2022-IDPCD development by creating an account on GitHub. github.com 💡 프로젝트 개요 정전식 터치패드로 동작하는 기존의 키오스크는 시력 저하와 같은 신체적 노화, 기계에 대한 부정적 인식 등으로 인해 노인에게 불편함을 초래한다. 따라서 손 제스처로 키오스크를 제어함으로써 노인이나 시각장애인을 포함한 모든 사..
리눅스 기초, CLI와 GUI 🐧
📌 Linux 🌟 주요 명령어 pwd(print working directory) : 현재 작업중인 디렉토리 정보 출력 cd(change directory) : 경로 이동 ls(list segments) : 디렉토리 목록 확인 mkdir(make directory) : 디렉토리 생성 rm(remove) : 파일이나 디렉토리 삭제 이외에도 touch(최근 수정 일자 변경), cat, head, tail, find 등 매우 다양하다. 자주 쓰이는 건 외워지겠지만 나머지는 필요할 때마다 찾아쓰도록 하자. 각 명령어마다 여러 옵션이 존재한다. 이것도 필요할 때마다 찾아쓰자. 리눅스 명령어 모음 BEST 50 초보자 및 전문가용 - 도라가이드 🌟 디렉토리 구조 구분자 ‘/’(슬래시) 역트리 구조 리눅스 파일시스템..
[JAVA] 변수, 상수, 자료형, 특수문자 - 이것이 자바다 ☕
📌 변수🌟 변수란 ?값을 저장할 수 있는 메모리 상의 공간변수의 값은 변경이 가능하고 하나의 변수에는 하나의 값만 저장할 수 있다. (만약 하나의 변수에 값을 여러 번 저장할 경우 마지막에 저장된 값을 최종적으로 가지게 된다.) 🌟 변수 선언변수를 사용하기 위해서는 변수 선언을 해야한다.변수를 선언하면서 초기값을 저장해주는 것을 초기화 라고 하는데 변수 선언과 변수 초기화는 동시에 할 수 있다.// 변수 선언int num;// 변수 선언과 초기화int num = 5; 🌟 변수 규칙변수, 메서드, 클래스 등 이름을 지을 때 아래의 규칙을 따라야한다.대소문자는 구분되며 길이에 제한없다.예약어는 사용해서는 안된다.숫자로 시작할 수 없다.특수문자는 ‘_’ 과 ‘$’ 만 허용된다. 🌟 coding con..
[JAVA] JAVA의 언어적 특성 - 이것이 자바다 ☕
1. 이식성이 높은 언어 이식성 : 서로 다른 실행환경을 가진 시스템 간에 프로그램을 옮겨서도 실행할 수 있는 것 왜 이식성이 높을까 ? 자바는 JVM(Java Virtual Machine) 위에서 동작하기 때문에 운영체제 상관없이 작동 가능하다. 2. 객체지향 언어 객체지향 : 부품에 해당하는 객체들을 먼저 만들고 이것들을 하나씩 연결해서 전체 프로그램을 완성하는 기법 자바는 100% 객체지향 언어에 해당한다. 객체를 만들기 위해 설계도에 해당하는 클래스를 작성하고, 객체와 객체를 연결해 목적에 맞는 프로그램을 만들어 낸다. 자바에서는 아무리 작은 단위의 프로그램이라도 객체로 만든다. 객체지향언어이기 때문에 객체지향 언어가 갖는 캡슐화, 다형성 , 상속 등의 기능을 제공한다. 🌟 객체지향 프로그래밍(O..