본문 바로가기

분류 전체보기102

OSI 7 Layer - Data Link 1. 데이터 링크 계층이란? 인접한 네트워크 노드끼리 데이터를 송수신 담당 물리계층에서 발생할 수 있는 오류를 감지하고 수정 2. 대표적인 프로토콜 이더넷 (Ethernet) MAC Address란? - 컴퓨터의 고유한 물리적 주소(= 하드웨어 주소, 랜카드의 주소) - 12자리 문자열로서 48비트로 표현되고, 16진수로 표현한다. - 처음 6자리는 랜카드 제조업체를 뜻하고 마지막 6자리는 해당 특정 랜카드(=어댑터)의 고유 식별 번호를 의미 3. 대표적인 장비 스위치 (Switch) 4. 주요 기능 Framing Datagram을 캡슐화하여 프레임(Frame) 단위로 만들고 헤더와 트레일러(=FCS,에러감지)를 추가 회선 제어 신호 간의 충돌이 발생하지 않도록 제어 흐름 제어 송신자와 수신자의 데이터를.. 2022. 5. 29.
OSI 7 Layer - Physical Layer 1. 물리계층이란? OSI 7계층 모델 상에서 최하위 계층 통신기기와 전송매체 사이의 물리적 인터페이스를 정의하고 비트 전송을 위한 기계적, 전기적, 수단을 제공하는 계층 데이터를 전기신호로 변환하여 송수신 컴퓨터는 전기의 흐름(1)과 전기 흐름X(0) 두 가지의 신호로만 데이터를 저장하는 이진수체계를 사용한다 물리 계층에서는 이렇게 이진수로 저장되어있는 데이터(비트 스트림)를 전기신호로 표현하거나 전기신호를 비트스트림으로 변경하여 전달하는 역할을 한다. 2. 물리계층 장비 통신 케이블 TP + 커넥터(RJ-45) 동축 케이블, 광케이블 등 리피터(중계기) 신호의 세기를 증폭하여 좀 더 먼거리까지 통신이 가능하게 한다. 허브 전기신호를 증폭하여 포트에 연결된 PC들끼리 통신이 가능하게 한다 3. 단위 B.. 2022. 5. 28.
Protocol이란? 1. 프로토콜이란? 컴퓨터나 원거리 통신 장비 간의 원활한 통신을 위해 지키기로 약속한 규칙 ITU라는 기관에서 국제통신규약을 만들어 사용 OSI 7 Layer를 기반으로 여러가지 Protocol이 만들어졌다. 2. OSI 7 Layer 계층별 프로토콜의 종류 계층 프로토콜 응용(Application) HTTP, SMTP, FTP, Telnet 표현(Presentation) ASCII, MPEG, JPEG, MIDI 세션(Session) NetBIOS, SAP, SDP, NWLink 전송(Transport) TCP, UDP, SPX 네트워크(Network) IP, IPX 데이터 링크(Data Link) Ethernet, Token Ring, FDDI, Apple Talk 물리(Physical) 없음 3... 2022. 5. 28.
Network란? 1. 네트워크(Network)란? Net + Work의 합성어 컴퓨터와 같은 노드들이 통신 기술을 통해 그물망처럼 연결되어 통신을 하는 형태 쉽게 말해 컴퓨터 간의 통신을 의미 데이터 및 리소스를 송신, 교환 또는 공유하기 위한 목적으로 유선 또는 무선으로 연결된 2개 이상의 컴퓨터로 구성 이러한 통신을 위한 규칙이 존재 ( = Protocol) 2. 네트워크 관련 용어 IP Adress : 통신을 위해 인터넷 프로토콜(IP)을 사용하는 네트워크에 연결된 모든 디바이스에 할당되는 고유 번호 Node : 네트워크의 기본요소인 지역 네트워크에 연결된 컴퓨터와 그 안에 속한 장비들을 의미, 네트워크 연결 지점 Router : 네트워크 간에 데이터 패킷에 포함된 정보를 전송하는 물리적 또는 가상 디바이스. 패킷.. 2022. 5. 28.
JDBC) 대량 쿼리문 실행 for SQLite 대량의 데이터를 데이터베이스에 저장할 일이 생겼는데, statement를 작성하고 execute하는걸 반복문으로 돌리니 완료될때 까지 하루종일 걸렸다. 기존 코드 package com.dokuny.find_public_wifi.repository; import com.dokuny.find_public_wifi.model.WifiApiDto; import com.dokuny.find_public_wifi.service.ApiService; import java.sql.*; import java.util.ArrayList; public class WifiRepositoryImpl implements WifiRepository { public static void main(String[] args) { Wif.. 2022. 5. 21.
JDBC JDBC JDBC란? Java Database Connectivity 자바에서 데이터베이스를 연결해주는 자바 API 준비물 DB 벤더별 커넥터 필요 MariaDB : https://mariadb.com/kb/en/about-mariadb-connector-j/ MySQL : https://dev.mysql.com/downloads/connector/j/ Oracle : https://www.oracle.com/kr/database/technologies/appdev/jdbc.html 인텔리제이의 경우, Project Structure → Libraries → 다운받은 커넥터 추가 해주면 된다. 후에 Maven이나 Gradle 쓰면 굳이 사이트 들어가서 다운받고 라이브러리 넣을 필요없이 저장소 검색해서 다.. 2022. 5. 17.
함수(FUNCTION), 프로시저(PROCEDURE), 트리거(TRIGGER) 함수, 프로시저, 트리거 함수 DBMS에서 제공되는 내장함수 외에 사용자가 직접 정의가능 SQL을 이용하여 로직을 수행하고, 결과를 단일 값으로 반환할 수 있는 모듈 보통 함수명에는 sf_~ , f_~ 이런식으로 함수명을 작성한다.(stored function) # 문법 CREATE FUNCTION 함수명(파라미터명 파라미터_타입,...) RETURNS 반환타입 BEGIN #로직작성 #DECLARE 로컬변수명 변수타입; -> 변수 선언 #SELECT ~ INTO 로컬변수명; -> 조회한 내용은 변수에 저장해야 사용 가능 # SET 변수명 = 값 -> 변수에 값을 할당 RETURN 반환타입에 맞는 값 or 변수; END; # 예시 - 비밀번호를 마스킹 처리하는 함수 CREATE FUNCTION sf_pas.. 2022. 5. 17.
JOIN JOIN 조인이란? 서로 다른 2개의 테이블을 결합하여 하나의 결과물을 만드는 것 서로 관계있는 데이터가 여러 테이블로 나뉘어 저장(정규화)되는 RDB 특성상 각 테이블에 저장된 데이터를 효과적으로 검색하기 위해 조인이 필요하다. 조인의 종류 INNER JOIN : 공통 컬럼명 기반으로 결과 집합을 생성 CROSS JOIN (CARTESIAN PRODUCT) NATURAL JOIN EQUI JOIN NON-EQUI JOIN OUTER JOIN : 조건문에 만족하지 않는 행도 표시 LEFT OUTER RIGHT OUTER FULL OUTER CROSS JOIN 두 테이블을 곱집합 # 아래의 4가지 전부 같은 곱집합을 뜻한다. select * from player join student; select * f.. 2022. 5. 17.
DDL - 테이블 관련 SQL CREATE TABLE create table 테이블이름( 컬럼명 데이터타입 제약조건, 컬럼명 데이터타입 제약조건, ... 컬럼명 데이터타입 제약조건 ); 자주 쓰는 데이터 타입 / 는 MySql / Oracle 이 서로 다른 경우이다. 자세한 데이터 타입은 검색하거나 올려둔 DBMS별 데이터타입 게시글을 확인할 것 데이터 타입 설명 CHAR 고정길이 문자열 입력값이 할당값보다 작은 경우 빈칸으로 채운다. VARCHAR / VARCHAR2 가변 길이 문자열 최대 저장 가능한 길이만을 지정, 빈칸으로 채우지 않는다. INT / NUMBER 숫자 타입의 데이터 저장에 사용 DATE 날짜 타입 제약 조건 제약조건 설명 NOT NULL NULL을 허용하지 않음, 기본값은 NULL 허용 PRIMARY KEY 기본.. 2022. 5. 16.
DBMS별 데이터 타입 Oracle MySQL/MariaDB SQL Server PostgreSQL Numeric Type NUMBER FLOAT TINYINT SMALLINT MEDIUMINT INT BIGINT DECIMAL FLOAT DOUBLE TINYINT SMALLINT INT BIGINT NUMERIC / DECIMAL FLOAT REAL SMALLINT INTEGER BIGINT DECIMAL NUMERIC REAL DOUBLE String Type CHAR VARCHAR2 CHAR VARCHAR CHAR VARCHAR CHAR VARCHAR Date/Time Type DATE TIMESTAMP DATE TIME DATETIME TIMESTAMP YEAR DATE DATETIME DATETIME2 SMALLDAT.. 2022. 5. 16.
리눅스 쉘 사용법 및 관련 개념 새로운 것을 사용할 때 마다 계속해서 갱신할 예정입니다. 파일 기본 명령어 whoami : 로그인한 사용자 ID를 알려줌 whoami를 했을 때 root이 나오면 슈퍼관리자를 뜻함 sudo : root 권한(관리자 권한)으로 실행하기 sudo 명령어 형식으로 사용 pwd : 현재 디렉토리(경로) 위치 cd : 디렉토리 이동 cd 경로 형식으로 사용 cd / : root 디렉토리( / )로 이동 cd 절대경로 : 루트 디렉토리 기준으로 절대경로를 사용하여 이동 cd . : 현재 디렉토리로 이동 cd .. : 상위 디렉토리로 이동 cd 상대경로 : 상대 경로를 이용하여 이동 ex) cd ../user -> 현재 디렉토리 기준 상위 디렉토리의 user 디렉토리로 이동) cd ~ : 사용자 홈 디렉토리로 이동 .. 2022. 5. 13.
cmd 기본 명령어 모음 (필요할 때 마다 갱신) Maria DB CLI로 사용하고 싶어서 공부하게 되었습니다. 기본 명령어 cd 경로명 경로로 이동 예시 cd C:/User -> c드라이브에 있는 User 디렉토리로 이동 cd . -> 현재 경로 cd .. -> 상위 경로 dir 현재 경로의 디렉토리와 파일 목록 표시 dir /w : 목록을 여러 열로 나누어서 보여줌 cls 터미널 내의 모든 내역을 지워줌 (칠판을 지우개로 지우는 것처럼) sc 윈도우 서비스 관련해서 사용 (등록,삭제,시작,중지) sc start 서비스명 : 서비스 시작 sc stop 서비스명 : 서비스 중지 sc create 서비스명 binpath= 서비스 파일 경로 : 서비스 등록 sc delete 서비스명 : 서비스 삭제 sc query : 전체 서비스 조회 sc query 서비.. 2022. 5. 13.
최단 경로 알고리즘 - 벨만-포드 (Bellman-Ford) 벨만-포드 알고리즘이란? 하나의 정점에서 모든 정점으로 가는 최단 거리를 구할 수 있습니다. 다익스트라와 달리 음수 간선이 포함되어 있어도 최단 경로를 구할 수 있습니다. 다만, 음수 사이클이 있을 땐 사용 X 매번 모든 간선을 확인하기 때문에 다익스트라에 비해 느립니다. 알고리즘 복잡도 : O(VE) 벨만-포드 알고리즘 흐름 1. 정점의 숫자만큼 모든 간선을 체크한다. (정점 * 간선 , VE) distance가 무한대인 경우, 뽑힌 변의 가중치를 더해봤자 무한대이기 때문에 continue 처리한다. 1의 노드에서 5의 노드로 가는 경우, 1의 최단 경로 값이 0이기 때문에 5번 노드로 가는 가중치 5를 더해준다. 위의 작업을 정점 별로 모든 간선을 체크해나가다보면 distance가 갱신된다. 2. 음.. 2022. 5. 11.
최단 경로 알고리즘 - 다익스트라 최단 경로 알고리즘이란? 가중 그래프 상의 두 노드를 연결하는 가장 짧은 경로를 찾는 방법 지도 경로 탐색, 네트워크 구축에 드는 비용을 최소화 하는데 사용 최단 경로 알고리즘 종류 다익스트라 벨만-포드 플로이드-워셜 다익스트라 알고리즘 (Dijkstra Algorithm) 출발점에서 목표점까지의 최단 경로를 구하는 알고리즘 한 노드에서 다른 모든 노드로의 최단 경로를 구할 수 있음 간선에 음의 가중치가 없어야 함. 하나라도 음의 가중치가 있다면 다익스트라 알고리즘을 사용할 수 없다. 그리디 + DP 형태 알고리즘 복잡도 : O(ElogV) * E = Edge , V = Vertex 다익스트라 알고리즘 흐름 1. 출발점으로부터의 최단경로를 저장할 노드만큼의 크기를 가진 배열을 만들고, 출발 노드에는 0을.. 2022. 5. 11.
최소 신장 트리 (MST) 최소 신장 트리 (MST, Minimum Spanning Tree) 란? 그래프 상의 모든 노드들을 최소 비용으로 연결하는 방법 종류 크루스칼 (Kruskal) 간선 중 최소 값을 가진 간선부터 순차적으로 연결 사이클 발생 시 다른 간선을 선택 사이클 발생 여부는 Union-Find를 통해서 체크 주로 간선 수가 적을 때 사용 시간복잡도 : O(ElogE) import java.util.Arrays; import java.util.Comparator; public class Kruskal { // Union-Find를 위한 배열 static int[] parents; public static int kruskal(int[][] data, int v, int e) { int weightSum = 0; //.. 2022. 5. 11.