분류 전체보기 167

[network] 혼자 공부하는 네트워크 01-3 네트워크 미시적으로 살펴보기 - 캡슐화와 역캡슐화 (240705)

캡슐화와 역캡슐화메시지는 송신지 입장에서는 가장 높은 계층에서부터 가장 낮은 계층으로 이동메시지는 수신지 입장에서는 가장 낮은 계층에서부터 가장 높은 계층으로 이동캡슐화: 계층별 프로토콜의 목적과 특징에 부합하는 헤더(+트레일러) 추가상위 계층으로부터 내려받은 패킷을 페이로드로 삼아, 프로토콜에 걸맞은 헤더(및 트레일러)를 덧붙인 후 하위 계층으로 전달한다한 단계 위의 계층의 '헤더+페이로드'는 다음 아래 계층의 페이로드가 된다역캡슐화: 캡슐화 과정에서 붙였던 헤더(및 트레일러)를 각 계층에서 확인한 뒤 제거 PDU (Protocol Data Unit)각 계층에서 송수신되는 메시지의 단위현재 계층의 PDU = 상위 계층 데이터 + 현재 계층의 프로토콜 헤더(및 트레일러)네트워크 계층의 PDU는 패킷 혹은..

network 2024.07.05

[network] 혼자 공부하는 네트워크 01-3 네트워크 미시적으로 살펴보기 - 네트워크 참조 모델 (240704)

택배로 책을 보내는 과정- 영수에게 선물할 책을 택배로 보내는 과정(위에서 아래로)  1. 선물할 책을 준비한다.2. 책이 상하지 않도록 책을 포장한다.3. 포장된 책을 택배 상자에 담는다.4. 택배 상자를 밀봉한다.5. 택배 기사가 확인할 메시지를 택배 상자에 붙인다.6. 택배 상자를 택배 기사에게 전달한다.  - 영수가 택배를 전달받는 과정(아래에서 위로) 1. 택배 상자를 택배 기사로부터 전달받는다.2. 택배 기사가 확인한 메시지를 제거한다.3. 택배 상자를 개봉한다.4. 택배 상자에서 포장된 책을 꺼낸다.5. 포장 용지를 제거한다.6. 선물 받은 책을 확인한다. 네트워크에서 패킷을 주고받는 과정은정형화된 여러 단계가 있다.송수신이 반대의 과정으로 이루어져 있다.이 단계는 계층적으로 표현 가능하다...

network 2024.07.04

[network] 혼자 공부하는 네트워크 01-3 네트워크 미시적으로 살펴보기 - 프로토콜 (240703)

미시적으로 살펴보는 네트워크두 대의 컴퓨터가 정보(패킷)를 주고받는 과정에서 벌어지는 일프로토콜네트워크 참조 모델캡슐화(역캡슐화)패킷(택배)을 보내는 순서- 멀리 떨어진 영수(수신지 호스트)에게 택배를 보냄(단, 전제는 언어가 서로 통해야 한다!) 1. 택배 상자에 물품(페이로드)을 넣는다.2. 상자 겉면에 택배 기사가 읽을 메시지, 즉 송장(헤더)을 붙인다.3. 택배 상자를 기사(네트워크 장비)를 통해 발송한다. 네트워크 세상의 언어, 프로토콜(protocol)노드 간에 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법즉, 통일된 규칙일상 속 언어와는 달리 통신 과정에서 일반적으로는 여러 프로토콜을 함께 사용 모든 프로토콜에는 목적과 특징이 있다.  IP는 패킷을 수신지까지 전달하기 위해 사용되는 프..

network 2024.07.03

[인프런] 김영한의 스프링 입문 - 순수 Jdbc, JdbcTemplate, MyBatis, JPA, Spring Data JPA

종강하고 며칠 지나지 않은 시점에서 스프링 입문 강의를 정리차 다시 들었다. 직전 학기에 한 강의에서는 Maven, Eclipse를 이용하여 도서관리 프로그램을 체계적으로 짰고, 다른 강의에서는 Gradle, Intellij를 기반으로 스프링을 가볍게 훑었다. 다른 글들에서 각각에 대해 정리해 두기도 했지만 강의에 나온 걸 바탕으로 하여(MyBatis는 학교에서 배운 코드를 참고하여) 다시 총정리해 볼 것이다.   제목에서 알 수 있듯이 강의는 인프런에서 김영한 님의 '스프링 입문-코드로 배우는 스프링 부트, 웹 MVC, DB접근 기술'을 참고하였다.이 강의는 입문 강의이기 때문에 간단한 데이터베이스인 h2를 사용하였는데 이것은 db 앱을 따로 설치하는 것이 아닌 웹 콘솔을 통해 접근한다.https://..

inflearn 2024.07.03

[JAVA] comparable, comparator 비교

https://st-lab.tistory.com/243 자바 [JAVA] - Comparable 과 Comparator의 이해아마 이 글을 찾아 오신 분들 대개는 Comparable과 Comparator의 차이가 무엇인지 모르거나 궁금해서 찾아오셨을 것이다. 사실 알고보면 두 개는 그렇게 어렵지 않으나 아무래도 자바를 학습하면서 객st-lab.tistory.comcomparable과 comparator는 아래의 메서드를 필수적으로 오버라이드해야 한다. 왜냐하면 이들은 인터페이스이기 때문.이 둘은 모두 객체를 비교할 수 있도록 만든다. primitive 자료형과 달리 객체 간 비교에서는 객체 내부의 속성 중 어떤 걸 가지고 비교해야 할지 기준이 모호한데 이들이 이 기준을 정해준다고 생각하면 된다. 비슷한 ..

JAVA 2024.07.03

[network] 혼자 공부하는 네트워크 01-2 주소와 송수신지 유형에 따른 전송 방식 (240702)

헤더에 담기는 대표적인 정보, 주소(address)송수신지를 특정하는 정보ex. IP 주소, MAC 주소주소가 있으면 누구에게 전송할지를 지정할 수 있다. 특정 기기 하나에 전송 or 같은 네트워크 내 모든 기기로 전송 or 같은 그룹에 속한 기기에 전송 ...송수신지 유형별 전송 방식1. 유니캐스트(unicast)하나의 수신지에 메시지를 전송송신지와 수신지가 일대일로 메시지를 주고받는 경우(가장 일반적인 송수신 형태)2. 브로드캐스트(broadcast)네트워크상의 모든 호스트에게 전송브로드캐스트 도메인(broadcast domain) - 브로드캐스트가 전송되는 범위브로드캐스트 도메인 ≒ LAN 범위3. 멀티캐스트(multicast)네트워크 내의 동일 그룹에 속한 호스트에게만 전송4. 애니캐스트(anic..

network 2024.07.02

[코딩테스트] 호제법, 소인수분해, 에라토스테네스의 체(소수 구하기) - 정수론

(유클리드) 호제법(Euclidean Algorithm)두 정수의 최대공약수(gcd; Greatest Common Divisor)를 쉽게 알아내는 방법gcd(0, A) = A모든 수는 0을 나눌 수 있다. 따라서, 0의 모든 약수는 임의의 정수 A를 포함한다. 따라서, 둘의 gcd는 A가 된다. gcd(a,b) = gcd(b, a%b) (단, a > b) -- b > a이면 값을 바꾼다  cf. 귀류법어떤 명제가 참임을 직접 증명하는 대신, 그 부정 명제가 참이라고 가정하여 그것의 불합리성을 증명함으로써 원래의 명제가 참인 것을 보여 주는 간접 증명법. [네이버사전]import java.io.BufferedReader;import java.io.IOException;import java.io.InputS..

[network] 혼자 공부하는 네트워크 01-2 컴퓨터 네트워크 거시적으로 살펴보기 - 네트워크의 분류 (240701)

1. 범위에 따른 네트워크 분류LAN(Local Area Network): 가까운 지역을 연결한 근거리 통신망WAN(Wide Area Network): 원거리LAN한정된 공간에서 한 개인이나 소규모 조직이 구축한 네트워크개발자가 주로 구축하고 관리할 네트워크WAN먼 지역을 연결하는 광역 통신망인터넷이 WAN으로 분류다른 LAN에 속한 호스트와 메시지를 주고받아야 할 때 필요ISP(Internet Service Provider)에서 구축하고 관리사용자에게 인터넷과 같은 WAN에 연결 가능한 회선(전송로)을 임대하는 등 WAN과 관련한 다양한 서비스를 제공국내의 대표적인 ISP는 KT, LG유플러스, SK브로드밴드ex. 인터넷 요금은 이러한 ISP에게 부담, WAN과 관련된 다양한 서비스 이용료그 외 네트워..

network 2024.07.01

[network] 혼자 공부하는 네트워크 01-2 컴퓨터 네트워크 거시적으로 살펴보기 - 네트워크의 기본 구조 (240701)

전체적인 큰 그림 설계 위한 시간 네트워크 기본 구조그래프: 노드(정점)와 노드를 연결하는 간선(링크, edge)으로 이루어진 자료 구조호스트: 가장자리에 위치한 노드 (우리가 주로 사용하는 기기)네트워크 장비: 중간에 위치한 노드통신 매체: 노드 간 연결하는 링크메시지: 노드 간 주고받는 정보호스트네트워크를 통해 주고 받는 메시지를 최초로 생성해서 송신하거나 수신하는 대상역할에 따른 구분- 클라이언트, 서버클라이언트: 서버에게 요청을 보내는 호스트서버: 클라이언트에게 요청에 대한 응답을 보내는 호스트네트워크 장비호스트 간 주고받을 정보가 거치는 중간 노드ex. 이더넷 허브, 스위치, 라우터, 공유기, 방화벽...역할에 따라 분류한 것일 뿐 서로가 완전히 배타적인 개념이 아니다통신 매체각 노드를 연결하는..

network 2024.07.01

[JAVA] System.in.read()

System.in.read()Scanner, BufferReader 말고 입력값을 받는다.아스키코드로 값을 받는다.버퍼를 사용하기 때문에 throws IOException 예외처리를 해 준다.숫자로 값을 받으려면 0의 아스키코드 값인 48을 빼준다. ex) -'0' , -48문자로 값을 받으려면 (char) 형변환을 해 준다.문자열 출력도 가능 -- 문자 하나당 byte로 받는데 byte 배열로 받은 후 new String(byte[])하여 출력 디버깅 모드로 1을 입력하고 엔터를 치게 되면 차례로 1의 아스키코드 값인 49와 엔터(LF; line feed) 값인 10이 들어가게 되어 원래 의도대로 실행되지 않는다. 엔터까지 인식하게 되어서! 그래서 이 점을 주의하고 사용하여야 한다. 안전하게 각각을 주..

JAVA 2024.06.30