전체 글(57)
-
[네트워크 기초 #10] IP 주소 통신_IP 프로토콜
IPv4 프로토콜 - IPv4가 하는 일 - IPv4 프로토콜의 구조 ICMP 프로토콜 - ICMP가 하는 일 - ICMP 프로토콜의 구조 라우팅 테이블 - 패킷은 어디로 이동할까 다른 네트워크와 통신 과정 - 다른 네트워크까지 패킷의 이동 과정 IPv4의 조각화 - 조각화란? 멀리 있는 곳(다른 LAN 대역)과 통신하기 위해서 IP 주소를 이용해 IPv4 프로토콜로 통신합니다. IPv4 프로토콜 IPv4가 하는 일 네트워크 상에서 데이터를 교환하기 위한 프로토콜로 데이터가 정확하게 전달될 것을 보장하지 않습니다. 중복된 패킷을 전달하거나 패킷의 순서를 잘못 전달할 가능성도 있습니다. 데이터의 정확하고 순차적인 전달은 그보다 상위 프로토콜인 TCP에서 보장합니다. IPv4 프로토콜의 구조 한 행당 4 B..
2021.08.10 -
[Spring 핵심 원리 #3] 스프링 핵심 원리 이해 2
앞에서 진행해 온 프로젝트에서 새로운 할인 정책을 추가하는 요구사항이 발생했다는 가정 하에 진행하겠습니다. 할인 정책을 추가하게 되면 DIP, OCP를 지키지 못할 수도 있습니다. 이러한 문제를 해결하며 왜 스프링 컨테이너가 탄생했는지도 알아보겠습니다. 또한 앞에서 만든 순수 자바 코드를 스프링 컨테이너에서 동작하도록 바꿔보도록 하겠습니다. 이 카테고리에 있는 포스트는 인프런 김영한 강사님의 '스프링 핵심원리 - 기본편' 내용을 개인 공부용도로 정리한 것입니다. #1. 새로운 할인 정책 개발 기존에 정액 할인 정책이 아닌 정률 할인 정책에 대한 구현과 테스트를 작성해보겠습니다. hello.core/discount/RateDiscountPolicy package hello.core.discount; imp..
2021.07.23 -
[네트워크 기초 #9] IP 주소 통신_ARP 프로토콜
ARP 프로토콜 - ARP가 하는 일 - ARP 프로토콜의 구조 ARP 프로토콜의 통신 과정 - IP 주소로 MAC 주소를 알아오는 과정 ARP 테이블 - 나와 통신했던 컴퓨터들 - ARP 테이블 확인해보기 - ARP 프로토콜 분석하기 ARP 프로토콜 ARP가 하는 일 일반적으로 우리가 통신할 때 사용하는 것은 IP 주소입니다. 하지만 같은 네트워크 대역에서 컴퓨터들끼리 통신할 때 필요한 것은 MAC 주소입니다. (MAC 주소가 들어간 Ethernet 프로토콜) IP 주소를 입력했을 때 컴퓨터들끼리 서로의 MAC 주소를 알아보게 되는데 이때 ARP 프로토콜을 이용해 상대방의 MAC 주소를 알아오게 됩니다. 사용자는 IP 주소만 입력하더라도 컴퓨터가 자동으로 상대방의 MAC 주소를 알아오고 그 MAC 주소..
2021.07.21 -
프로그램 / 프로세스 / 스레드
프로그램(Program) 어떤 작업을 위해 실행할 수 있는 파일을 의미하며 하드디스크 파일 시스템에 존재합니다. 프로세스(Process) > 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 의미합니다. > 운영체제가 프로그램을 실행시키는 하나의 인스턴스를 의미합니다. 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체) 운영체제로부터 시스템 자원을 할당받는 작업의 단위 즉, 동적인 개념으로는 실행된 프로그램을 의미한다. 할당받는 시스템 자원의 예 CPU 시간 운영되기 위해 필요한 주소 공간 Code, Data, Stack, Heap의 구조로 되어 있는 독립된 메모리 영역 특징 프로세스는 각각 독립된 메모리 영역(Code, Data, Heap, Stack의 구조)을 할당받는다. 기본적으로..
2021.07.19 -
Virtual Memory & System call
이번 글에서는 Virtual Memory와 System call에 대해 정리해보겠습니다. Virtual Memory : 예를 들어 PC의 메모리는 4GB인데 응용 프로그램들은 그보다 더 큰 리소스가 있다고 생각하고 돌아갈 수 있도록 운영체제가 서비스를 제공하는 것이다. System Call : 운영체제에게 서비스를 요청하는 것. 예를 들어, c++에서 cout 했을 때 모니터에 출력해야 하는데 라이브러리를 통해 모니터에 보여주는 것 자체는 운영체제가 하는 것이다. Virtual Machines 하드웨어는 하나만 존재하는데 각 운영체제가 하드웨어를 본인이 다 쓰고 있다고 가상적으로 생각하게 만드는 것입니다. 실제 사용 예시를 들자면, Java 프로그램이 수행될 때, JVM은 해당 프로그램이 마치 하드웨어를..
2021.07.19 -
[Spring 핵심 원리 #2] 스프링 핵심 원리 이해 1
프로젝트 생성 비즈니스 요구사항과 설계 회원 도메인 설계 회원 도메인 개발 회원 도메인 실행과 테스트 주문과 할인 도메인 설계 주문과 할인 도메인 개발 주문과 할인 도메인 실행과 테스트 이 카테고리에 있는 포스트는 인프런 김영한 강사님의 '스프링 핵심원리 - 기본편' 내용을 개인 공부용도로 정리한 것입니다. 1. 프로젝트 생성 역할과 구현을 나누어서 즉, 인터페이스와 구현 객체를 나눠 순수 Java로만 개발을 해보겠습니다. 순수한 자바로 진행하지만 프로그램 세팅에 있어서 편의를 위해 스프링으로 세팅하겠습니다. Requirement Java 11 설치 IntelliJ or Eclipse 스프링 부트 스타터 사이트로 프로젝트 생성 (https://start.spring.io/) 프로젝트 선택 Project:..
2021.07.16