TCP/IP 4계층 모델
·
CS/Network
❒ DescriptionOSI 참조 모델에 대해 알아보고 각각의 계층의 특징을 알아보자.또한 데이터가 어떻게 흐르는지에 대해서도 이해하고 넘어가자.참고로 여기서는 TCP/IP 4계층 모델에 대해서 집중적으로 공부할 것이다.   ❒ OSI  7 계층 & TCP/IP 4 계층1. OSI(Open System Interconnetion) 7 계층깃블로그에 정리해 둔 내용으로 대체OSI란 서로 다른 컴퓨터가 네트워크 구조에 상관없이 통신할 수 있도록 하는 국제 표준이다.  2. TCP/IP 4계층일반적으로 TCP/IP는 TCP와 IP 뿐만 아니라 상위 응용 계층의 프로토콜도 포함된 개념이다.즉, TCP/IP는 인터넷에 접속하는 프로토콜 중에서 가장 중요한 기능을하는 TCP와 IP 또는 여러 프로토콜의 집합을 말..
[LeetCode#92] Reverse Linked List II
·
Algorithm/문제풀이
❒ Description제목Reverse Linked List II링크https://leetcode.com/problems/reverse-linked-list-ii/자료구조선형 (연결 리스트)시간복잡도O(n) 이번 문제에서는 기억하고 있으면 나중에 사용하기 좋은 공식? 같은 것들을 알았다.가상의 노드 Root 생성하기특정 범위의 노드의 순서만 변경하기. ❒ Solutionpublic ListNode reverseBetween(ListNode head, int left, int right) { if (head == null) { return null; } // 가상의 노드 생성하기 ListNode root = new ListNode(0); root.next = head; // 노드 변경 시작점으로 이동하기..
[LeetCode#24] Swap Nodes In Pairs
·
Algorithm/문제풀이
❒ Description제목Swap Nodes In Pairs링크https://leetcode.com/problems/swap-nodes-in-pairs/description/자료구조선형 (연결 리스트)  ❒ Solution1. 값만 교환 : 임시 변수를 사용 public ListNode swapPairs(ListNode head) { ListNode node = head; while (node != null && node.next != null) { int temp; temp = node.val; node.val = node.next.val; node.next.val = temp; node = node.next.next; } ..
[LeetCode#206] Reverse Linked List
·
Algorithm/문제풀이
❒ Description제목Reverse Linked List링크https://leetcode.com/problems/reverse-linked-list/자료구조선형 (연결리스트) 이번 문제는 연결리스트를 뒤집는 방법에 대해 알 수 있는 문제다.기억해두면 쓸모가 있을 듯.   ❒ Solve1.  재귀 구조public ListNode reverse(ListNode node, ListNode prev) { if (node == null) { return prev; } ListNode next = node.next; node.next = prev; return reverse(next, node);} `1 → 2 → 3`를 reverse 하는 케이스1st 2nd3rd4thnod..
네트워크의 기초
·
CS/Network
❒ Description이번 학습에서는 네트워크에서 사용되는 기본 언어의 정의, 네트워크의 기초에 대해서 학습한다.마지막에는 미니 퀴즈 또는 예상 면접 질문을 작성하고 답하는 시간을 가질 것이다.   ❒ 네트워크 기초1. 네트워크란?네트워크는 컴퓨터 등의 장치들이 통신 기술을 이용하여 구축하는 연결망을 지칭하는 용어이며,노드(node)와 링크(link)가 서로 연결되어 있으며 리소스를 공유하는 집합을 의미한다. 좋은 네트워크란 많은 처리량을 처리할 수 있으며 지연시간이 짧고 장애 빈도가 적으며좋은 보안을 갖춘 네트워크를 말한다.  2. 처리량과 지연시간처리량(througput)이란?• 링크내에서 성공적으로 전달된 데이터의 양• 많은 트래픽을 처리한다 = 많은 처리량을 가진다.• 단위 : bps(bits ..
README
·
CS/Network
❒ Description해당 카테고리에서는 면접을 위한 CS 전공식 노트에서 언급하는 내용을 우선적으로 학습할 것이다.기초는 널널한 개발자의 "외워서 끝내는 네트워크 핵심이론" 강의에서 학습하고, 보다 더 디테일한내용은 네트워크 개론을 통해서 학습한다.  2024.08.05널널한 개발자의 "외워서 끝내는 네트워크 핵심이론" 추가 2024.08.09HTTP 관련된 상세 내용은 "HTTP 완변가이드" 로 공부한다.   ❒ Rule공부를 하기 앞서 스스로 몇 가지 룰을 정했다.면접을 위한 CS 전공식 노트를 우선으로 한다디테일한 내용은 네트워크 개론을 통해 학습한다.마지막에는 면접 준비를 위한 미니퀴즈 또는 예상 면접 질문을 작성하고 스스로 답변한다.
Observer Pattern
·
CS/Design Pattern
❒ DescriptionObserver 패턴의 원리와 동작과정에 대해서 학습할 것이다.또한 Observer 패턴의 예시를 들어 이해도를 높여보자.   ❒ Observer 패턴이란?주체가 어떤 객체(subject)의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메서드 등을 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 디자인 패턴. 상호작용하는 객체 사이에는 가능하면 느슨한 결합을 사용해야 하는데 Observer 패턴이 대표적이라고 할 수 있다.또한 일대다(one-to-many) 의존성을 정의한다.Observer 패턴은 여러 가지 방법으로 정의할 수 있지만, 보통은 주제 인터페이스와 Observer 인터페이스가 들어있는클래스 디자인으로 구현하다. Observer 패턴은 트위터, 인스타그램 등 SNS에..
README.MD
·
CS/Design Pattern
❒ Description해당 카테고리에서는 면접을 위한 CS 전공식 노트에서 언급하는 디자인패턴을 우선적으로 학습할 것이다. 이와 더불어 해드 퍼스트 디자인패턴도 함께 살펴가면서 부족한 내용을 보완,보충한다.그리고 과거 학습 과정에서 굉장히 두리뭉실하게 알고 있었던 부분을 확실히 이해하고 넘어가야 한다.  ❒ Rule공부를 하기 앞서 스스로 몇 가지 룰을 정했다.면접을 위한 CS 전공식 노트를 우선으로 한다.해드 퍼스트 디자인패턴에 있는 예제를 그대로 사용하기, 가능하면  스스로 직접 예시를 만든다.학습 끝에는 예상 면접 질문을 작성하고 그에 답변을 한다.
[LeetCode#21] Merge Two Sorted Lists
·
Algorithm/문제풀이
❒ Description제목Merge Two Sorted Lists링크https://leetcode.com/problems/merge-two-sorted-lists/description/자료구조선형 자료구조푼 날짜7/24     ❒ Solution1. Brute Force public static void main(String[] args) { // create Test Case ListNode node1_3 = new ListNode(4, null); ListNode node1_2 = new ListNode(2, node1_3); ListNode node1_1 = new ListNode(1, node1_2); ListNode node2_3 = new ListNode(4, nu..
[LeetCode#234] Palindrome Linked List
·
Algorithm/문제풀이
❒ Description제목Palindrome Linked List링크https://leetcode.com/problems/palindrome-linked-list/description/자료구조선형자료 구조 (연결 리스트)푼 날짜7/24    ❒ Solution1. Deque 자료구조를 사용한 풀이public static boolean solve(ListNode head) { Deque deque = new LinkedList(); ListNode node = head; while (node != null) { deque.add(node.val); node = node.next; } while (!deque.isEmpty() && deque.size()..