본문 바로가기

기술블로그334

16. IP주소 체계 [클래스풀, 클래스리스] 16. IP주소 체계 [클래스풀, 클래스리스] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 클래스풀 IP 주소 모든 단체들이 똑같은 네트워크 주소를 가지게 된다면, 보안상 문제가 일어날 수 있다 그래서 네트워크 ID를 가지되, Host ID를 따로 배포해주는 것이다 Host ID는 기기들에게 주어지는 IP 주소의 ID이다 Class A부터 Class C까지가 제일 중요하다 Class D는 멀티캐스트용 그리고 E는 주소가 부족할 때에 사용하는 클래스다 Class A 첫 번째 옥텟을 네트워크 ID고, 나머지 3개의 옥텟을 Host ID로 주어진다 즉 하나의 네트워크 당, 2 ^ 24 - 2 개의 호스트에게 IP주소를 나눠줄 수 있다 1 ~ 126 인 범위만 Network ID로 사용할 수 있다 12.. 2023. 3. 1.
15. IP주소 체계 15. IP주소 체계 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) IPv4와 IPv6 IP주소의 버전들이다 IPv4가 먼저 시작을 했고, 아직도 많이 사용하고 있다 IPv4 32비트로, 8비트씩 나누어 구분한다 여기서 8비트의 묶음을 옥텟 (Octet)이라고 한다 즉, 4개의 옥텟으로 만들어져 있다 IPv4를 가지고 2^32 (41억 9천만) 주소를 표현할 수 있다 위의 123.89.46.72 는 사람들이 보기 편하게, 쓰이는 것이다 원래는 이진수로 표현한다 41억 9천만 주소를 표현할 수 있지만, 인구 수 그리고 인당 사용 네트워크 기기를 따진다면, 부족한 수다 그래서 NAT, Subnet 같은 추가적인 기술이 필요하다 IPv6 128 비트로, 16비트씩 8개의 묶음으로 구성되어 있다 128 .. 2023. 2. 28.
14. TCP/IP 인터넷 계층 [IP, ICMP, ARP, MAC] 14. TCP/IP 인터넷 계층 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 인터넷 계층 IP, ICMP, ARP가 대표적 한 노드에서 다른 노드로 전송 계층에서 받은 세그먼트 또는 데이터그램을 패킷화 하여 전송하는 것 ICMP (Internet Control Message Protocol) 노드와 노드 사이에서 통신이 잘 되는지 확인하기 위해 사용되는 프로토콜 데이터를 주고 받는 것이 아니 에코를 주고 받으면서, 통신이 잘 된다는 것을 확인할 수 있다 IP 주소 인터넷 상에 있는 컴퓨터의 논리적인 주소 (변할 수 있는 주소) 집에서 인터넷에 연결해서 부여 받는 IP주소와, 카페의 인터넷에 연결해서 부여 받는 IP주소는 다르다 IP 주소를 통해 데이터를 주고 받을 수 있다 (택배를 받기 위해 집.. 2023. 2. 28.
Udemy : Python Flask / 터미널 명령어 / `__name__` `__main__` Udemy : Python Flask / 터미널 명령어 / __name__ __main__ Udemy Python Flask 파이썬 기반 프레임워크다 장고보다 소규모의 웹 개발을 할 때에 사용한다 백엔드 클라이언트, 서버, DB, 세 요소가 맞물려 백엔드를 작동시킨다 클라이언트 브라우저를 이용하는 사용자 서버 사용자의 요청 사항을 받을 준비가 되어 있는 곳 DB 사이트의 모든 정보를 담아두는 곳이다 즉 클라이언트에서 서버로 요청을 보낸다 서버에서 클라이언트가 요청한 데이터를 찾아서 클라이언트에 응답을 해준다 Flask 시작하기 from flask import Flask app = Flask(__name__) @app.route("/") def hello_world(): return "Hello, Worl.. 2023. 2. 27.
Udemy - Javascript - Graph Traversal Udemy - Javascript - Graph Traversal Udemy JavaScript 그래프 순회 그래프에 있는 모든 노드들을 방문할 필요까지는 없다 그래프 순회를 할 때에는 visiting / updating / checking 이 중요하다 깊이 우선 그래프 (Depth First) vertex의 이웃 중 방문하지 않은 하나의 이웃으로 가는 것이다 이것을 모든 Vertex를 방문할때까지 순회를 한다 더 작은 이웃을 기준으로 깊이 우선 순회하기 넓이 순회 (Breadth First) 이웃된 노드가 2개면, 그 2개를 모두 순회하며 그래프를 순회한다 기본 그래프 만드는 코드 Graph 클래스에 DFS와 BFS를 넣을 것 class Graph { constructor(){ this.adjacenc.. 2023. 2. 27.
[Python] 백준 1300 K번째 수 🧑‍💻 [Python] 백준 1300 Gold 2 - 이진 탐색 이 문제를 통해 더 많은 고민을 하고, 문제를 풀어야겠다는 생각을 했다 그냥 이진 배열을 만들고, 그 배열을 다시 일차원으로 만들어서, 정렬을 한 후에, k번째 숫자를 구할 수 있다 하지만 테스트를 통과하지 않는다 이진 배열을 만들고, 또 일차원 배열로 만드는 것이 메모리 면에서, 굉장히 많이 잡아 먹는다 하지만 A[i][j]는 패턴이 있다 첫 열은, 모든 수를 1로 곱하면 된다 [1, 2, 3, 4, 5] 두 번째 열은, 모든 수를 2로 곱하면 된다 [2, 4, 6, 8, 10] 세 번째 열은 ,모든 수를 3으로 곱하면 된다 [3, 6, 9, 12, 15] 이런 식인 패턴이 있다 위의 패턴을 보게 된다면 특정 숫자를 만들 때에, 그 숫자보.. 2023. 2. 27.
[Python] 백준 2343 기타 레슨 🧑‍💻 [Python] 백준 2343 Silver 1 - 이진 탐색 블루레이의 개수를 구하고, 개수가 작거나 같으면 right = mid - 1 크면 left = mid + 1을 해준다 이유는, 블루레이는 강의들의 묶음으로 이루어져 있다 블루레이의 개수가 맞춰야 하는 개수보다 적다는 말은, 하나의 블루레이에 너무 많은 강의를 넣었다는 것이다 즉 강의를 더 분포를 시켜야 한다 즉 하나의 블루레이에 들어갈 수 있는 강의의 시간은 더 줄어든다는 것 반대로 블루레이의 개수가 맞춰야 하는 개수보다 크다는 것은, 하나의 블루레이에 너무 적은 강의를 넣었다는 것 코드 N, M = map(int, input().split()) def count_cd(time): count = 0 temp = 0 for lecture .. 2023. 2. 27.
클래스 카드 - [UI설명] 카드 디테일 페이지 클래스 카드 - 카드 디테일 페이지 카드 디테일 페이지는 카드 데이터부터, 시각화까지 모든 것을 구현했다 카드 데이터 크롤링을 통해 카드 데이터를 가지고 왔다 카드 이름 / 카드사 혜택 등 페이지 구현 제일 중요하게 생각한 것이, 어떻게 하면 유저들에게 간단한 UI를 제공하고 싶었다 그래서 정말 중요한 카드 내용들은 페이지에서 보여주었다 그리고 주요 혜택 같이, 내용이 많은 것들은, 모달을 이용했다 주요 혜택의 제목 그리고 간단한 설명을 카드와 카드 호버 기능을 통해 구현을 했다 해당 카드를 누르면, 모달창이 뜨고, 주요 혜택에 대한 자세한 정보를 볼 수 있다 위와 같이 페이지를 만들어, 유저들이 한 눈에 카드에 대한 내용을 볼 수 있다 만약 주요 혜택이 궁금하면, 카드를 클릭하면 된다 주로 주요 혜택을.. 2023. 2. 26.
클래스 카드 - 카드 비교 클래스 카드 - 카드 비교 카드 비교 모델 (Model) class CompareCard(models.Model): card = models.ForeignKey(Card,on_delete=models.CASCADE) user = models.ForeignKey(get_user_model(),on_delete=models.CASCADE) 로그인을 해야 카드 비교 기능을 사용할 수 있다 그래서 유저 정보를 가지고 오고, card 정보를 통해서 카드를 카드 비교함에 넣는 것이다 여기서 user마다 카드는 최대 3개까지 카드 비교함에 넣을 수 있다 카드 비교함에 카드 넣기 (요청) # 카드를 비교하기 위해서 비교하기 바구니에 넣고 / 비교하기 페이지 path('bookmark//', views.b.. 2023. 2. 26.