본문 바로가기

CS 과목(CS科目)

[OSI 7Layer]와 [TCP/IP Stack Layer]의 탄생 네트워크 프로토콜(Protocol) : 네트워크 통신을 하기 위해서 통신에 참여하는 주체들이 따라야 하는 형식, 절차, 규약 그런데 위 모든 기능을 단 하나의 프로토콜로 구현할 수가 있을까?? 이건 마치, 백엔드의 모든 기능을 하나의 클래스로 구현한다는 소리와 같다. 하나의 클래스는 하나의 기능을 담당한는 것이 객체지향의 원칙이다. 네트워크의 통신 기능들도 [계층별]로 [모듈화]를 시켜야 한다. 그래서 탄생한 것이 바로, OSI 7 Layer이다. 대표적인 네트워크 Layer 2가 있다. 1. OSI 7 Layer 2. TCP/IP stack (4 layer) -> TCP/IP stack은 [인터넷]에 특화된 네트워크 구조 Apllication Layer HTTP Protocol : 만약 해당 애플리케이.. 더보기
홈 네트워크 IP : ISP에서 제공하며, 인터넷에 ㅇ녀결되기 위해 필요한 [인터넷 상]의 주소. 모뎀(Modem) : 네트워크 통신에 필요한 [신호 변환] 장치. 공유기(Home Rounter) : 1] 여러 기기들을 인터넷에 연결될 수 있도록 하는 장치 2] [하나의 IP] 주소로도 동시에 인터넷을 사용하도록 해줌. 3] 공유기에 연결된 기기들은 모두 같은 네트워크 소속이 된다. 스위치(Switch) : 1] 같은 네트워크 내의 기기들이 서로 통신할 수 있도록 하는 장치 2] 일반적으로, 공유기의 LAN Port 수가 부족할 때 사용 3] Switcing Hub 또는 Hub라고 불림(개인적으로는 [스위치]라고 정확하게 부르는 걸 권장. Hub라는 장 치가 따로 있으나, 지금은 거의 사용하지 않아 사람들이 스위치를.. 더보기
Inner Join과 Cross Join(세타 Join)의 차이 Inner Join : FK와 PK를 이용하여 Table들을 Join Cross Join(세타 Join) : FK,PK이용하는 것 없이, 모~~든 Tuple들에 대해서 막 Join한다. 더보기
페이징(Paging) 페이징 : [한 화면]에서 보여 줄 수 있는 데이터의 범위를 결정하는 것 우리가 흔히 접하는 일반적인 웹 게시판이나 조회 화면을 생각하면 된다. 조회 대상 데이터가 10만 건이라면 한 화면에서 모두 보여 줄 수는 없다. 더보기
DB 설계 시, 多 관계에 있는 Table에 FK가 있어야 하는 이유 사전 지식 : FK는 단 1개의 TABLE만을 가리킬 수가 있다.( 위 그림은 여러 Member들(Member Table)이 하나의 Team(1개의 Team Table)에 소속되어 있음을 뜻함) Member : Team == 多 : 1의 관계이다. 즉, 여러 Member들이 하나의 Team(하나의 Team Table에 소속)에 소속될 수 있다는 것이다. 만약 Member Table에 TEAM_ID가 FK로 있어야 2명 이상의 Member들이 Table에 들어 왔을 때, 그 2명 이상의 Member들이 하나의 Team 소속(하나의 Team Table을 가리키고 있다는 것을)이라는 것을, TEAM_ID(FK)로 나타낼 수가 있다. 반대로 만약, FK가 Team Table의 MEMBER_ID였다면, 해당 팀 .. 더보기
Associational Relation의 주인(Owner)에 대해 확실히 이해하자! Player, Team(多:1)라는 2개의 Table이 있다고 하자. DB는 Foreign Key(FK) 하나로만 Table들의 연관 관계를 만든다.(FK로 JOIN연산을 통해서) 그러나 클라이언트 코드에서는 2개의 객체 사이의 연관 관계를 맺기 위해서는 Player 객체에 Team객체를 가리키는 참조 변수와 Team 객체에 Player 객체를 가리키는 참조 변수(List players), 즉 2개의 참조변수가 선언돼서, 서로가 서로를 가리키도록 해줘야 한다. ========================================================== DB의 Table : Foreign Key(FK) 하나로만 Table들의 연관 관계를 만든다 객체 : 2개의 참조변수가 선언돼서, 서로가 서로.. 더보기
ORM 프레임워크를 사용하는 이유(ex. JPA..) ORM(Object - realtional mapping) -> 객체는 객체대로 설계를 하고, DB는 Relational하게 설계를 하면서, 이 2개의 패러다임의 차이로 생기는 [SQL 중심적인 개발]이라는 문제를 [JPA와 같은 ORM 프레임워크]가 중간에서 매핑함으로써 해결해 준다. Object와 RDB의 차이 [1. 상속 관계의 유무] -> RDB에도 [Super Type], [Sub Type]이 존재하지만, OPP에서의 그것들과는 다른 의미이다. Album 저장 1. 객체 분해 : RDB는 Album이라는 상속 관계에 의한 Table을 만들 수가 없으므로, 아래와 같이 SQL을 크게 2개로 나누어 서 작성을 해 줘야 한다. ( 만약 Album 객체의 부모 클래스가 100개 있다면??? -> 100.. 더보기
트리(Tree)에서 자주 까먹는 용어 및 파생 개념 문서에 따라서의 경로의 길이가 [노드들의 수]가 아니라, [간선들의 수]일 때가 있다. lefth of path 라는 용어가 나오면 어느 맥락에서 사용되는 말인지를 먼저 파악을 해야 한다. 그러나, 관련 문서에 따라서는 [edge의 수]가 아니라, leaf까지의 가장 많은 [노드의 수]인 경우도 있다. 문서마다 서로 다르니, 트리의 height이라는 말을 보면, 어느 의미로 쓰인 지를 파악하는 것이 중요하다. 노드의 레벨도 어떤 문서에서는 레벌 0이 아니라, [레벨 1]부터 카운팅하는 경우도 있다. 트리의 특징 1. 노드는 단 하나의 부모 노드를 가진다. 형태에 따른 이진 트리(binary tree)의 종류 편향 이진 트리 = 왼쪽 편향 이진 트리 or 오른쪽 편향 이진 트리 더보기