본문 바로가기

Just Do

(82)
친숙한 이름으로 바꿔주는 DNS - IP는 200.200.200.2 와 같이 복잡한 형태로 이루어져있기 때문에 기억하기 어렵다. - 또한 IP는 중간에 변경될 수 있다. - 이를 편하게 구분하기 위해 (전화번호부) 처럼 도메인을 등록해두고 사용할 수 있게 한다. 이것을 DNS라고 한다. DNS(Domain Name System) - 도메인 네임 시스템 전화번호부 도메인 명을 IP주소로 변환 (출처)
프로세스를 구분하는 PORT 만일 한 클라이언트가 둘 이상 연결을 해야하는 경우 어떻게 해야할까? - IP만 가지고 이 문제를 해결하려면 이러한 문제에 닥치게 된다. - 하지만 이전에 봤던 TCP/IP 패킷에 포함되어 있는 정보에 보면 이미 PORT 정보가 포함되어 있다. (출처) - 즉 PORT를 통해 여러 프로세스를 구분할 수 있다 PORT - 같은 IP내에서 프로세스를 구분 (출처) 대표적인 예로는 IP가 아파트의 단지라면 PORT는 몇동 몇호 웹브라우저로 예를 들면 도착지의 IP인 200.200.200.3:80(PORT)까지 포함하여 보낸다. 도착지에서는 아 100.100.100.1에 10010 포트에서 왔구나 라고 인식한다. 0 ~ 65535 까지 할당이 가능하다. 0 ~ 1023 까지는 잘 알려진 포트로 사용하지 않는게 ..
IP의 한계 극복 TCP와 UDP 앞서서 IP의 문제점인 비연결성, 비신뢰성 등의 문제점을 해결하기 위해 등장한 프로토콜이 TCP와 UDP 이다. 인터넷 프로토콜의 4계층 애플리케이션 계층 - HTTP, FTP 전송 계층 - TCP, UDP 인터넷 계층 - IP 네트워크 인터페이스 계층 아래의 그림을 통해 프로토콜 계층에서 어떻게 동작하는지 알아보자! (출처) 어떠한 프로그램이 메시지를 보낸다고 가정한다면, 소켓 라이브러리를 통해 OS 계층으로 메시지를 전달한다. OS계층에서는 메시지에다가 TCP정보를 겉에다가 씌워준다. 그리고 이어서 TCP정보 겉에다가 IP정보를 씌워준다. 이제 네트워크 인터페이스에서 LAN 카드를 통해서 나갈 때 이더넷 프레임이라는 것을 포함해서 밖으로 나간다. 메시지를 보내게 될 경우 아래 그림과 같이 전송데이터를..
IP(Internet Protocol) IP 인터넷 프로토콜의 역할 지정한 IP 주소에 데이터를 전달 패킷이라는 통신 단위로 데이터 전달 단, 메시지를 그냥 보내는 게 아니고 IP 패킷이라는 전송 규칙에 의거하여 보낸다! IP패킷 정보 IP패킷에는 나의 IP와 목적지 IP를 포함하고 있다. 이 포함된 IP패킷을 메시지와 함께 던지는 형태 아래 그림은 이런 IP패킷을 메시지와 함께 던졌을 때 어떻게 흘러가는지를 보여준다. (출처) IP패킷을 받은 목적지 쪽에서도 마찬가지로 IP패킷을 만들어서 리턴 메시지를 실어서 보낸다. (출처) IP 프로토콜의 한계 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 (출처) 비신뢰성 중간에 패킷이 사라지면 어떻게 될까? (출처) 패킷이 순서대로 안오면 어떻게 하지? 등의 문제가 있다. (출처..
h2 데이터베이스 설치 및 사용하기! h2데이터베이스는 개발이나 테스트 용도로 사용할 수 있는 가벼운 DB이며, 웹화면이 존재하여 편리한 장점이 있다. 설치부분에 대한 내용은 왠만해서는 안적으려고 했지만.. 간단히 정리해보려 한다. 아래의 링크에 접속하여 h2데이터베이스를 다운받는다. (window, macOS 구분) https://www.h2database.com H2 Database Engine (redirect) H2 Database Engine Welcome to H2, the free SQL database. The main feature of H2 are: It is free to use for everybody, source code is included Written in Java, but also available as na..
스프링 부트 라이브러리 (Test) 편 이번엔 스프링 부트 라이브러리 중 Test 관련하여 살펴보자! 마찬가지로 이미지 첨부 후 설명을 추가하겠다! 중요한 부분의 라이브러리들은 위의 표시된 4개이다. 먼저 기본적으로 junit (단위테스트)를 하기위한 라이브러리 org.springframeworkspring-test : 스프링 테스트를 위해 필요한 라이브러리 mockito-core : mock 객체를 만들어주는 라이브러리 org.assertj:assertj-core : 테스트를 편하게 해주는 유틸리티 클래스
스프링부트 라이브러리(JPA) 편 스프링부트에서 JPA 기반 라이브러리를 살펴보자! 아래의 라이브러리 이미지를 보고 추가적으로 살펴보자 스프링 부트에서 JPA를 사용하기위해 라이브러리를 추가하면 말그대로 데이터베이스를 쓰는 것으로 spring-boot-starter-jdbc 관련한 라이브러리들과 spring-boot-starter-aop 등 이 포함된다. 하지만 그중에서도 중점적으로 볼 부분은 위의 3개이다. com.zaxxer:HikariCP : 디비 커넥션 풀로 스프링 부트 2버전때부터는 이게 기본으로 설정된다. spring-jdbc : Spring Data JPA를 쓰면 스프링 Jdbc도 가져다 쓰게된다. 안에는 spring-tx (트랜잭션) 등이 포함된다. org.hibernate:hibernate-core : JPA는 ORM 기..
스프링부트가 제공하는 라이브러리 살펴보기! SpringBoot 번역하면 좀더 봄이다. 이전에 Spring으로만 한다면 사용할 웹 어플리케이션 서버(Tomcat 등)을 직접 연결시켜줘야 했다! 하지만 스프링 부트로 넘어오면서 별도로 연결시켜줄 필요없이 내장해서 가지고 있다. 아래의 그림을 살펴보자 한가지 더 자세히 살펴보면 org.springframework:spring-webmvc를 의존하고 있다는 점도 주목하자!