전체 글 199

OSI 7 Layers (3/3)

5. Session (세션 계층) 종단 간에 통신 세션의 시작과 종료를 정의하며 세션계층을 포함한 상위 계층에서 다루는 데이터를 메세지(message)라 부른다. 세션 계층은 동기 점을 삽입함으로써 메세지를 그룹화하며, 전이중 전송이나 반 이중 전송과 같은 데이터 전송 방향을 결정하고 데이터에 대한 중간 점검 및 복구를 위한 동기 점을 생성한다. 6. Presentation (표현 계층) 데이터를 어떻게 표현하는지를 정의하는 계층이다. 응용계층에서 생성된 데이터는 컴퓨터에서 만들어진 데이터이고 이 데이터를 다른 모든 컴퓨터가 이해할 수 있는 형태로 변환하는 것이 표현 계층의 역할이다. 따라서 송수신 장치 간에 데이터를 변환하는 역할을 수행하며, 암호화를 통해 데이터의 보안성을 높이고 데이터 압축 기능을 ..

CS/network 2021.03.16

OSI 7 Layers (2/3)

3. Network Layer (네트워크 계층) 사용자 데이터를 전달하기 위하여 논리적 통신 채널(peer to peer communitacion channel)을 통해 상위 계층으로부터 받은 데이터를 패킷(또는 데이터그램)이라 불리는 단위로 규격화하여 전송하고 수신하는 기능을 수산한다. 데이터 링크 계층에서 MAC 주소를 기반으로 프레임이라는 데이터를 송수신한다면 네트워크 계층에서는 IP주소를 기반으로 패킷이라는 데이터를 송수신하는데 이 패킷을 송수신하기 위해 사용되는 장치가 라우터, 스위치이다. 스위치는 L2, L3, L4, L7 스위치로 나뉘어지는데 , L2 스위치는 프레임 기반의 데이터를 전송하기 위해 사용되며 L3 스위치는 IP 기반의 패킷을 전송하기 위해 사용된다. L4/L7 스위치는 L2와 ..

CS/network 2021.03.15

OSI 7 Layers (1/3)

OSI 참조 모델은 ISO에서 개방형 시스템 간의 통신을 위해 제안한 것이며 데이터를 전송하는 호스트는 응용 계층에서 시작하여 물리 계층으로 사용자 데이터를 내려보내고, 데이터를 수신하는 호스트는 거꾸로 물리 계층에서 응용 계층으로 데이터를 올려보내는 계층화된 구조를 사용하고 있다. 또한 이러한 표준화된 모델을 사용함으로써 1. 이기종 장치 간에도 데이터를 주고받을 수 있으며 2. 운영체제가 다른 상황에서도 통신에 문제가 발생하지 않는다. 1. Physical Layer (물리 계층) 물리 계층은 사용자 데이터를 물리 매체 상에서 소통이 가능한 통신 신호(전기적 신호)로 변환하여 전송하는 역할을 담당하는 계층이다. 신호 전송을 위한 링크의 설정과 유지, 그리고 전기적, 기능적, 절차적, 물리적 특성들을 ..

CS/network 2021.03.12

JDBC Programming 개발 순서

1. JDBC Driver Load: 데이터베이스 규격, 종류 오라클/mysql인지 이런거 알려주기 2. Connection 획득 (DBMS와의 연결 채널을 수립한다. 네트워크 통신으로 치면 소켓 연결임) 3. SQL 실행을 준비한다. (Statment, PreparedStatement 구문을 준비한다.) 4. Statement 구문을 투척한다. (실행하는 단계): DML, Query 5. 필요하다면 결과물을 수집한다.:ResultSet 6. DBMS와의 연결 끊기 EX) INSERT 예시 Connection conn = null; Statement stmt = null; ResultSet rs= null; try { Class.forName("com.mysql.cj.jdbc.Driver"); conn ..

CS/database 2021.03.12

JDBC(Java DataBase Connectivity)

* JDBC (Java DataBase Connectivity)? 자바 프로그래밍 언어로 만들어진 클래스와 인터페이스로 이루어진 API이다. SQL문을 실행할 수 있는 함수 호출 인터페이스이다. DBMS 종류에 독립적인 자바 프로그래밍이 가능하다. 데이터베이스가 달라지더라도 동일한 API를 사용하게 해준다. (드라이버 및 URL만 수정하면 가능하다.) 자바의 특성인 플랫폼 독립적 특성과 DBMS 에 독립적이라는 특성을 동시에 가진다. * JDBC 기능 데이터베이스에 연결 설정한다. SQL 문장을 DBMS에 전송한다. SQL 문장을 전송한 뒤 결과를 처리할 수 있게 해준다. * JDBC 인터페이스 - Database를 만드는 업체에게 제공되는 인터페이스 - 업체에게 제공되는 인터페이스를 각각의 DBMS업체..

CS/database 2021.03.12

SQL 언어

* SQL? SQL (Structured Query Lanuage) - 데이터베이스에 있는 정보를 사용할 수 있도록 지원하는 언어 - 대소문자는 구별하지 않지만 데이터의 대소문자는 구분한다. * SQL 언어의 정의 - 관계형 DB를 조작하기 위한 표준 언어 - 관계 대수와 관계 해석의 수학적이 이론을 기초로 개발 - DB의 구조를 정의하거나 DB에 저장된 데이터를 검색하기 위한 목적 * SQL 언어의 특징 - 비절차적 언어 기존 프로그래밍 언어: 레코드 단위로 처리 조건에 따라 데이터에 대한 접근 경로가 달라진다. SQL 언어: 조건을 만족하는 데이터를 집합 단위로 한꺼번에 처리함 - 대화식으로 사용되거나 응용 프로그램에 삽입하여 사용한다. * SQL 명령문의 종류 데이터 언어: 데이터베이스를 정의하고 ..

CS/database 2021.03.11

운영체제 입문 강의 및 책 추천

운영체제는 컴퓨터 공학을 공부하는 학생이라면 누구나 반드시 접하는 과목이다. 그런데 나는 접근이 생소하고 어려워서 공부에 많은 어려움을 겪었다. 그러나 KOCW 등에 양질의 강의가 있어 그것을 통해 운영체제를 조금이나마 이해할 수 있었다. www.kocw.net/home/search/kemView.do?kemId=1046323 운영체제 운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 본 강좌에서는 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각 www.kocw.net 이화여대 반효경 교수님의 운영체제 강의로, 운영체제를 입문하기에 최적의 강의이다. 2017년 버전도 있는데, 모르고 2014년 버전을 수강하였다... 그러나 강의 목차를..

CS/operating system 2021.03.10

Counting Sort: 계수 정렬

* Counting Sort? 카운팅 소트는 일단 한 수가 몇번 등장하는지를 세는 것에서부터 시작을 한다. 그런다음 누적합을 구해준다. 이게 무슨 소리냐면 0번이 2번, 1번이 2번 나왔다면 누적합 배열에서는 2번 나온 0이 2, 그 다음인 1이 2+2해서 4가 된다는 얘기다. 카운팅 소트의 핵심은 앞의 놈이 몇번 나왔는지 안다면 나는 몇번부터 몇번 인덱스에 걸쳐있을지를 계산할 수 있다는 것이다. * Pseudocode CountingSort(A) //A[]-- Initial Array to Sort //Complexity: O(k) for i = 0 to k do c[i] = 0 //Storing Count of each element //Complexity: O(n) for j = 0 to n do ..

CS/algorithm 2021.03.09

MVVM

* MVVM Model? 모델-뷰-뷰 모델(model-view-viewmodel, MVVM)은 디자인 패턴 중에 하나이다. MVVM 패턴을 사용하면 비지니스 로직과 프레젠테이션 로직을 UI로부터 깔끔하게 분리할 수 있다. 그 얘기는 유지 보수가 용이하다는 이야기이다. 뷰는 뷰 모델을 알지만, 뷰 모델은 뷰를 알지 못한다. MVVM 패턴은 뷰가 어느 특정한 모델 플랫폼에 종속되지 않도록 해준다. 이러한 구조를 통해서 뷰 모델과 모델이 뷰로부터 독립적인 형태를 만들어서 비지니스 로직과 프레젠테이션 로직을 UI로부터 깔끔하게 분리할 수 있게 되는 것이다. * MVVM 패턴의 구성 요소 - 모델(Model) 비지니스 로직과 데이터를 다룬다. - 뷰(View) UI와 UI로직을 다룬다. 사용자가 화면에서 보는 것..

카테고리 없음 2021.03.08

Quick Sort: 퀵 정렬

* Quick Sort? 퀵 정렬도 합병 정렬과 같이 전체 리스트를 2개의 부분 리스트로 분할하고, 각각의 부분 리스트를 다시 퀵 정렬하는 분할정복법에 근거한다. 그러나 합병 정렬은 전체 데이터를 n/2로 나눴던 것과 달리, 퀵소트는 비균등하게 분할한다. 리스트 안에 있는 한 요소를 기준(피봇(pivot))으로 선택한다. 피봇을 중심으로 왼쪽은 피봇보다 작은 요소들로 옮겨지고, 오른쪽은 피봇보다 큰 요소들로 재구성되게 된다. 이 상태에서 피봇을 제외한 왼쪽 리스트와 오른쪽 리스트를 재정렬하게 되면 전체 리스트가 정렬된다. 퀵 정렬 함수는 부분 리스트에 대하여 순환 호출 된다. 부분 리스트들이 더 이상 분할이 가능할 때까지 피봇을 기준으로 2개의 부분 리스트로 재분할되는 것이다. 그러니까 퀵 소트는 피봇을..

CS/algorithm 2021.03.07