분류 전체보기
-
OSI 7 Layer - 3계층 : IPv4Network 2023. 5. 22. 17:24
OSI 7 Layer - 3계층 : IPv4 IPv4가 하는 일 네트워크 상에서 데이터를 교환하기 위한 프로토콜로 단순히 다른 네트워크 대역과 통신하기 위해 네트워크 대역을 찾아가는 프로토콜이다. 20 바이트 데이터가 정확하게 전달될 것을 보장하지 않는다. 중복된 패킷을 전달하거나 패킷의 순서를 잘못 전달할 가능성도 있다. (악의적으로 이용하면 Dos 공격이 됨) 데이터의 정확하고 순차적인 전달은 그보다 상위 프로토콜인 TCP에서 보장한다. IPv4 프로토콜의 구조 ✅ Version : IP프로토콜의 버전, 일반적으로 4만 온다. IPv6 프로토콜은 따로 있다. ✅ IHL : IP Header Length, 일반적으로 옵션을 제외한 20바이트, 이를 4로 나눠서 표기 표현할 수 있는 수가 4bit이기 때..
-
SQL Query - SELECTDatabase 2023. 5. 17. 01:53
SQL Query - SELECT IT 회사 관련 RDB 만들기 부서, 사원, 프로젝트 관련 정보들을 저장할 수 있는 RDB 만들기 RDBMS는 MySQL(Inno DB)을 사용 SELECT Query Statement 예제 ID가 9인 임직원의 이름을 알고 싶다. SELECT name, position FROM employee where id = 9; SELECT를 수행하면 selection condition을 통해 선택된 튜플의 값들 중에서 projection attributes에 의해 지정된 attribute에 대응하는 값만 가져오게 된다. 따라서 최종적으로 위의 쿼리를 수행하게 되면 다음과 같은 결과를 얻을 수 있다. project 2002를 리딩(leading)하고 있는 임직원의 ID와 이름과 ..
-
OSI 7 Layer - 3계층 : ARP 프로토콜Network 2023. 5. 12. 20:26
OSI 7 Layer - 3계층 : ARP 프로토콜 ARP 프로토콜 ARP가 하는 일 IP주소를 MAC주소로 변환해준다. ARP 프로토콜은 같은 네트워크 대역에서 통신을 하기 위해 필요한 MAC주소를 IP주소를 이용해서 알아오는 프로토콜이다. 같은 네트워크 대역에서 통신을 한다고 하더라도 데이터를 보내기 위해서는 7계층부터 캡슐화를 통해 데이터를 보내기 때문에 IP주소와 MAC주소가 모두 필요하다. 이 때 IP주소는 알고 MAC주소는 모르더라도 ARP를 통해 통신이 가능하다. ARP 프로토콜의 구조 ✅ 하드웨어 타입 : 2계층 주소의 타입 보통 이더넷 프로토콜이 오므로 0x0001이다. ✅ 프로토콜 타입 : 3계층 주소의 타입 IPv4 프로토콜이 오므로 0x0800이다. ✅ 하드웨어 주소 길이 : 2계층..
-
OSI 7 Layer - 3계층 : IP 주소Network 2023. 5. 12. 17:53
OSI 7 Layer - 3계층 - IP 주소 3계층이 하는 일 3계층은 다른 네트워크 대역 즉, 멀리 떨어진 곳에 존재하는 네트워크까지 어떻게 데이터를 전달할 지 제어하는 일을 담당한다. LAN과 LAN을 연결, WAN 대역에서 통신할 때 필요. 발신에서 착신까지의 패킷의 경로를 제어한다. INTRO : 3계층에서 쓰는 주소 1. IPv4 : 현재 PC에 할당된 IP 주소 IPv4 프로토콜로 통신하기 위해서는 IP주소, 서브넷마스크, 게이트웨이가 필요하다. 이러한 3계층 주소는 다음과 같은 리눅스 명령어로 확인할 수 있다. # 활성화된 전체 인터페이스 정보 확인 ifconfig # 사용하지 않는 것을 포함한 전체 인터페이스 정보 확인 ifconfig -a # 특정 인터페이스 정보만 보기 ifconfig..
-
Hexagonal Architecture Practice 프로젝트 회고Project 2023. 5. 12. 03:44
Hexagonal Architecture Practice Project 현재 서비스를 운영하고 있는 let's Git it 토이 프로젝트는 controller, service, repository로 이루어진 3 tier layered architecture로 개발하고 있다. 초기 개발 이후 지속적으로 서비스를 개선하고자 리펙토링이나 기능들을 추가는 과정에서 유지보수에 불편함을 겪었는데 그 원인이 무엇일까 생각해보았다. 문제가 무엇인가? 레이어 간 side effect 서비스 초기라서 service와 repository의 영역에서 리펙토링 되는 부분이 많았다. 그 과정에서 repository의 변경이 service의 변경을 낳다보니, 유지보수 비용이 많이 들었다. 뿐만 아니라, 각 레이어에서 앞단으로 던지..
-
SQL Command(insert, update, delete statemant)Database 2023. 5. 11. 23:31
SQL Command(insert, update, delete) IT 회사 관련 RDB 만들기 부서, 사원, 프로젝트 관련 정보들을 저장할 수 있는 RDB 만들기 RDBMS는 MySQL을 사용 Insert CREATE TABLE `employee` ( `id` int NOT NULL, `name` varchar(30) NOT NULL, `birth_date` date DEFAULT NULL, `sex` char(1) DEFAULT NULL, `position` varchar(10) DEFAULT NULL, `salary` int DEFAULT '50000000', `dept_id` int DEFAULT NULL, PRIMARY KEY (`id`), KEY `employee_department_fk` (`..
-
Sorting(선택정렬, 삽입정렬, 퀵정렬, 계수정렬)Algorithm | Data structure/Theory 2023. 5. 10. 02:17
Sorting ✅ 정렬이란 데이터를 특정한 기준에 따라 순서대로 나열하는 것 ✅ 일반적으로 문제 상황에 따라서 적절한 정렬 알고리즘이 공식처럼 사용된다. 데이터의 개수가 적을 때, 혹은 데이터의 개수가 많지만 특정 범위로 한정되어 있을 때, 이미 데이터가 정렬되어 있을 때 등 선택정렬(Selection sort) 알고리즘 ✅ 처리되지 않은 데이터 중에서 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸는 것을 반복한다. 첫 번째 요소를 가장 작은 값이라고 가정하고 저장한다. 더 작은 수를 찾을 때까지 가장 작은 값(가정)을 값을 비교하지 않은 나머지 배열의 요소들과 비교한다. 더 작은 숫자가 발견되면 더 작은 숫자를 새로운 "최소값"으로 저장하고 배열이 끝날 때 까지 이 과정을 반복한다. 배열의 끝..
-
QueueAlgorithm | Data structure/Theory 2023. 4. 26. 20:53
Queue 큐란? 스택의 반대 개념이다. 데이터 접근 방법은 선입 선출(FIFO, First In First Out)이다. 이러한 구조이기 때문에 마지막에 삽입한 요소를 삭제하기 위해서는 앞의 모든 요소가 삭제되어야 한다. 주로 순서를 보장하기 위한 처리가 필요할 때 사용되는 자료구조이다. 시간복잡도 삽입과 삭제는 큐는 선입 선출 구조이기 때문에 O(1)의 시간 복잡도를 가진다. 검색은 큐 안의 데이터를 찾을 때 까지 진행되기 때문에 O(n)의 시간복잡도를 가진다. 큐 예시 네트워크 연결 상태 Check setInterval(() => { if (!checkNetwork()) { // 네트워크 끊어짐 }; }, 1000); function checkNetwork() { if (네트워크 연결 되었음) { ..
-
StackAlgorithm | Data structure/Theory 2023. 4. 26. 20:52
Stack 스택이란? 데이터를 순서대로 쌓는 자료구조 입력과 출력이 하나의 방향으로 이루어져 접근이 제한적 입력과 출력은 후입 선출(LIFO, Last Input First Out) 방식이다. 아래가 막혀있고 위가 뚫려있는 구조로, 데이터가 차곡차곡 쌓이는 구조 이러한 구조 때문에, 마지막에 삽입된 요소만을 삭제할 수 있다. Stack에서 삽입은 push, 삭제는 pop이라는 용어를 사용한다. 시간복잡도 삽입과 삭제는 스택은 후입 선출 구조이기 때문에 O(1)의 시간 복잡도를 가진다. 검색은 스택 안의 데이터를 찾을 때 까지 진행되기 때문에 O(n)의 시간복잡도를 가진다. 스택 예시 Javascript call stack(호출 스택) 자바스크립트는 단일 스레드 프로그래밍 언어이므로 단일 호출 스택을 사용..
-
SQL 기본Database 2023. 4. 25. 20:16
SQL SQL 뜻 Structured Query Language 현업에서 쓰이는 relational DBMS의 표준 언어 종합적인 database 언어 : DDL + DML + VDL SQL 주요 용어 SQL에서 relation이란? multiset(=bag) of tuples @ SQL SQL에서는 중복된 tuple을 허용한다. SQL & RDBMS SQL은 RDBMS의 표준 언어이지만 실제 구현에 강제가 없기 때문에 RDBMS마다 제공하는 SQL의 스펙이 다양하다. 예제를 통해 SQL로 DB 정의하기 IT 회사 관련 RDB 만들기 부서, 사원, 프로젝트 관련 정보들을 저장할 수 있는 관계형 데이터베이스를 만들자. 사용할 RDBMS는 MySQL(InnoDB) Database 정의하기 -- RDBMS 내..