1. IPv4 주소

IPv4 네트워크에 접속한 단말을 식별하는 IP를 말한다.

총 32비트로 8비트씩 나뉘어 10진수로 표기[각주:1]한다.

점으로 구분한 그룹을 옥텟(octet)이라고 부른다.

IPv4 주소 예시, pigSheep

2. 부분망 (Subnetwork)

네트워크에서 분리되어 구성된 새로운 네트워크를 말하며, 보편적으로는 서브넷 마스크로 구분되는 IP주소의 범위를 서브넷이라고 한다.

IPv4 주소는 네트워크 부분과 단말 부분이 나뉘어져서 표기되고, 이 네트워크 주소는 각각 A, B, C, D 클래스로 구분된다.

 

2-1 ) A Class 

255.0.0.0 서브넷 마스크를 가지고 있다.

첫 옥텟은 0 ~ 127로 126개의 네트워크를 허용한다.

 

2-2 ) B Class 

255.255.0.0 서브넷 마스크를 가지고 있다.

첫 옥텟 128 ~ 191이며, 중-대 규모의 네크워트에서 B 클래스를 주로 이용한다.

대략 1600개의 네트워크를 허용한다.

 

2-3 ) C Class 

255.255.255.0 의 서브넷 마스크를 가지고 있다.

LAN에 이용되고, 200만개의 네트워크를 허용한다. 첫 옥텟은 192 ~ 223으로 구성된다.

 

2-4 ) D Class 

멀티캐스트

 

3. 서브넷 마스크

32비트의 숫자로 IP주소의 네트워크 부분을 마스킹하여, IP주소를 네트워크 부분과 호스트 부분을 분리시키는 것

 

4. 서브넷팅을 하는 이유

먼저 서브넷팅이란, 네트워크의 성능관리를 위해 관리자가 네트워크 자원을 효율적으로 분배하는 것을 말한다.

서브넷팅을 하면 ISP에서 추가 IP를 받을 필요가 없고, 네트워크 트래픽 감소 등 네트워크 관리에 있어서 이점을 준다.

하지만 서브넷팅을 위해 하드웨어가 필요한 경우도 있기 때문에 비용문제를 고려해야 하는 경우도 있다.

 

 

 

참고문헌

TTA정보통신용어사전 '부분망' http://word.tta.or.kr/dictionary/dictionaryView.do?subject=%EB%B6%80%EB%B6%84%EB%A7%9D 

 

TTA정보통신용어사전

한국정보통신기술협회(TTA)는 정보통신 기술 발전과 타 분야와의 기술 융합에 따라 무수히 생성되는 정보통신용어를 해설하고 표준화하여, 전문가뿐만 아니라 비전문가들도 올바르게 활용할 수

word.tta.or.kr

NordVPN '서브넷 마스크란 무엇인가요?' https://nordvpn.com/ko/blog/what-is-subnet-mask/

 

서브넷 마스크란 무엇인가요?

이 글에서 서브넷 마스크의 정의 및 확인 방법, IP 주소를 숨겨야 하는 이유에 대해서 정확히 알아보세요.

nordvpn.com

미야타 히로시, 「그림으로 공부하는 TCP/IP구조」,제이펍,2021

  1. 점으로 구분한 10진 표기법 [본문으로]

1. 개요

자바는 1991년에 제임스 고슬링을 주축으로 썬 마이크로 시스템즈의 엔지니어들이 개발한 Oak라는 언어로 시작됐다.

Oak는 가전 제품을 프로그래밍 할 목적으로 만들어진 언어였지만, 인터넷의 등장으로 인터넷에서 실행되는 프로그래밍 언어로 사용하게 된다. 자바가 발표 된 1995년 ~ 1999년은 윈도우 프로그램 개발이 주류였기 때문에 자바는 주목 받지 못했다. 하지만 1999년도부터 인터넷이 활성화되며 자바 애플릿이 추가 되었고 웹 앱 개발용 언어로 자바가 주목받기 시작했다.

 

자바는 유닉스 기반의 개발자들이 개발하여 C언어와 비슷하며, JVM (Java Virtual Machine)을 사용해 운영체제에 독립적으로 동작이 가능하다.

 

2. 자바의 특징

1) 객체 지향 언어

자바는 초기 설계시부터 객체 지향 언어로 설계되었다.

객체 지향 프로그래밍(OOP)이란, 프로그램의 부분 부분에 해당하는 객체들을 먼저 만들고 그것들을 조립하여 하나의 프로그램을 완성시키는 프로그래밍 기법을 말한다.

 

2) 높은 이식성

: JRE[각주:1]를 바꿔끼면 되므로 다양한 플랫폼에 자유롭다. (운영체제에 독립적으로 실행)

 

3) 자동 메모리 관리

: 가비지 컬렉션으로 메모리 관리는 자바가 알아서 한다.

 

4) 상대적으로 느린속도

: JVM을 거치기 때문에 실행속도가 비교적 느리다.

 

3. 실행과정

자바로 짜여진 프로그램이 실행되는 과정이다.

  1. 개발자가 자바 클래스 파일(.java)를 생성
  2. 자바 컴파일러[각주:2]가 자바 바이트 코드(.class) 파일로 번역 
  3. 번역 된 자바 바이트 코드를 클래스 로더가 JVM으로 보낸다.
  4. JVM이 프로그램 실행 

 

 

 

 

 

참고문헌

위키백과 '자바 (프로그래밍 언어)' https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%EC%96%B8%EC%96%B4) 

 

자바 (프로그래밍 언어) - 위키백과, 우리 모두의 백과사전

 

ko.wikipedia.org

TCP SCHOOL.COM '자바 기초' http://www.tcpschool.com/java/java_intro_basic

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

TCP SCHOOL.COM '자바 프로그래밍'http://www.tcpschool.com/java/java_intro_programming

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

  1. Java Runtime Environment, 자바 런타임 환경 [본문으로]
  2. 자바 소스코드를 JVM이 이해할 수 있는 자바 바이트 코드로 변환시키는 역할. javac.exe로 설치된다. [본문으로]

1. 데이터 모델

 현실의 정보를 인간과 컴퓨터가 이해할 수 있게 추상화하여 표현한 모델을 말한다.

인간이 알아들을 수 있게 표현 한 모델을 개념적 데이터 모델이라고 하고, 컴퓨터가 알아듣게 표현 한 모델은 논리적 데이터 모델이라고 한다. 

일반적으로 개념적 데이터 모델 > 논리적 데이터 모델 > 물리적 데이터 모델의 순서로 데이터 베이스가 설계된다.

 

2. ERD ( Entity Relationship Diagram : 개체-관계 다이어그램 )

 개체 관계 모델링을 그림으로 표현한 것을 말한다. 

개념적 데이터 모델의 산출물이며, 현실의 정보를 추상적(개념적)으로 표현하여 구조를 그린 것이다.

ERD 그리기 , pigSheep

 

참고문헌

위키백과 '개체-관계 모델' https://ko.wikipedia.org/wiki/%EA%B0%9C%EC%B2%B4-%EA%B4%80%EA%B3%84_%EB%AA%A8%EB%8D%B8

 

개체-관계 모델 - 위키백과, 우리 모두의 백과사전

 

ko.wikipedia.org

NCS 정보처리기술사 연구회,「수제비 정보처리기사 실기vol.1」,건기원,2021

1. LAN ( Local Area Network )

가정이나 기업처럼 한정된 범위의 네트워크를 말한다.

 일반적으로 가정에서 사용하는 단말[각주:1]은 브로드밴드 라우터가 제공하는 LAN에 연결된 후 인터넷으로 연결되고, 기업용의 경우 일반적으로 가정용보다 네트워크 기기의 성능이 좋다. (많은 단말의 패킷을 처리할 수 있어야 하므로...) 그리고 기업용은 네트워크의 안정성을 위한 다중화 기능이나 L2 루프 방지 기능[각주:2]을 하는 기기가 있기도 하다.

 기업용 네트워크에서 단말은, 액세스 포인트나 엣지 스위치[각주:3]등에 연결 된 후 엣지 스위치를 모아놓은 코어 스위치[각주:4]를 타고 인터넷(서버)에 연결된다.

LAN 도식도, PigSheep

 

2. WAN ( Wide Area Network )

넓은 범위(원거리)의 네트워크를 말한다.

크게 인터넷과 VPN을 사용한 내부망 (VPN network)로 나눌 수 있다.

 

2-1 ) 인터넷

TCP/IP ( Transmission Control Protocol/Internet Protocol )를 이용해 데이터(패킷)를 주고 받는 네트워크를 말한다.

인터넷은 라우터[각주:5]의 집합으로 볼 수 있다.

 

 

2-2) VPN network ( Virtual Private Network 가상 사설 망 )

특정 단체가 공중 네트워크를 사용하면서 주고받는 내용을 외부인에게 드러내지 않기 위해 사용하는 사설 통신망이다.

직접 구축시엔 일반적으로 IPsec프로토콜[각주:6]을 이용해 거점 사이를 일대일로 연결(peer-to-peer)하고, 그 사이의 통신을 암호화한다. ISP ( Internet Service Provider )의 WAN을 이용하여 구축할 경우엔 ISP의 폐역 VPN망에 접속해 거점과 패킷을 교환하게 된다. 

VPN으로 우회하는 원리 , pigSheep

 특정 국가에서 특정 서버에 접속이 안되는 경우가 있다. 이와 같은 경우 우리가 보통 사용하는 통신사(ISP)에서 할당받은 IP는 국가가 검열하여 특정 서버에 접속이 불가능하지만  VPN은 사설 망이라(국가가 검열하는 IP형식이 아님) 단말을 VPN 네트워크에 붙여서 해당 네트워크로 가고싶은 서버에 접근할 수 있게 된다. VPN은 통신이 암호화되므로 보안성과 익명성이 보장된다.

 

3. DMZ ( DeMilitarized Zone )

인터넷에 공개되는 서버를 설치한 네트워크를 말하며, 요즘엔 클라우드에 구축하는 경우도 있다.

DMZ에서 제공하는 서비스는 사용자에게 공개되므로 서비스의 안정성을 위해 다중화(redundancy)가 필요하다.

DMZ Network 도식도, pigSheep

 

 

 

참고문헌

위키백과 '인터넷'

https://ko.wikipedia.org/wiki/%EC%9D%B8%ED%84%B0%EB%84%B7

 

인터넷 - 위키백과, 우리 모두의 백과사전

 

ko.wikipedia.org

위키백과 '라우터' https://ko.wikipedia.org/wiki/%EB%9D%BC%EC%9A%B0%ED%84%B0

위키백과 '가살사설망' https://ko.wikipedia.org/wiki/%EA%B0%80%EC%83%81%EC%82%AC%EC%84%A4%EB%A7%9D

 

가상사설망 - 위키백과, 우리 모두의 백과사전

 

ko.wikipedia.org

위키백과 'IPsec' https://ko.wikipedia.org/wiki/IPsec

 

IPsec - 위키백과, 우리 모두의 백과사전

 

ko.wikipedia.org

"VPN, Virtual Private Network,우회하는 원리", 노는 게 제일 좋아, https://luv-n-interest.tistory.com/1072

 

VPN, Virtual Private Network, 우회하는 원리

우리는 VPN 우회로 해외 사이트를 접속하고는 한다. 막힌 사이트 주소를 정부에서 먼저 검열하여, 우리의 컴퓨터가 보기 전에 정보를 차단하기 때문이다. 이런 뜻이 무엇일까?? VPN은 인터넷에 가

luv-n-interest.tistory.com

미야타 히로시, 「그림으로 공부하는 TCP/IP구조」,제이펍,2021

 

 

  1. 핸드폰,랩탑 등 [본문으로]
  2. 네트워크에서 프레임이 루프를 돌아 LAN전체가 통신 할 수 없게 되는 장애 [본문으로]
  3. L2스위치, 단말을 모으는 역할, 많은 양의 통신을 지탱하게 하는 기기 [본문으로]
  4. L3스위치,다중화를 보장한다 [본문으로]
  5. 네트워크 내에서 데이터 패킷을 전송하는 네트워크 장치 [본문으로]
  6. Internet Protocol Security, 각 IP패킷을 암호화하고 인증하는 IP통신을 위한 인터넷 프로토콜 스위트 [본문으로]

HTTP ( Hyper Text Transfer Protocol ) 란?

W3 (World Wide Web)에서 데이터를 주고 받을 수 있는 애플리케이션 단의 통신 규약(프로토콜)이다.

보편적으로 HTML (Hyper Text Markup Language)[각주:1]문서를 주고 받으며, TCP를 이용해 통신한다. 

 

HTTP /3 부터는 UDP를 사용하며 80번 포트를 사용한다.

 

HTTP는 클라이언트와 서버 사이에서 Request와 Response를 주고 받는 형식으로 통신하고,

HTTP로 전달되는 자료는 http:// 로 프로토콜을 선언 한 뒤, 해당 url를 붙여서 조회할 수 있다.

 

HTTP는 상태값을 저장하지 않는다 (Stateless). 각 요청과 응답은 독립적인 형태이다.

HTTP통신에서 상태 값을 저장하기 위해 쿠키나 세션을 사용한다.

 

HTTP가 통신하는 과정

1. TCP 연결을 연다.

 : 응답을 주고 받는 것에 사용한다.

 

2. HTTP 메세지를 전송한다. 

  : HTTP /2 이후로는 메세지가 프레임[각주:2] 속으로 캡슐화되어서 개발자가 직접 읽을 수 없다

 

3. 서버가 주는 응답을 읽어들인다. 

 

4. 연결을 닫거나, 다른 요청을 위해 연결을 재사용한다.

 

HTTP 요청(Request) 메시지 구조

헤더 :        바디 :     

 

start-line :

HTTP 메서드[각주:3]

URL[각주:4]이나 프로토콜, 포트, 도메인의 절대경로 (포맷은 HTTP메소드에 따라 달라진다)

header :

User-Agent, Accept-Type,Accept-Language,Referer 등...

blank-line :   

body (document) :

일반적으로 데이터를 가져오는 요청에는 값을 넣지 않지만, POST나 PUT과 같은 메소드에서는 값이 들어간다

 

 

HTTP 응답(Response) 메시지 구조

헤더 :        바디 :     

 

status-line :

프로토콜 버전[각주:5], 상태 코드, 상태 텍스트

header :

User-Agent, Accept-Type,Accept-Language,Referer 등...

blank-line :   

body (document) :

서버에서 반환한 데이터

 

HTTP 응답의 상태 코드

보통 200 대는 정상적 반환, 300대 리다이렉션, 400대 클라이언트 에러, 500대 서버 에러로 나뉘어진다.

상태코드는 다양하며 여기서는 몇 가지만 정리해보려고 한다.

 

403 Forbidden : 권한으로인한 거절 (로그인 실패시와 같은...)

404 Not Found : 서버가 리소스를 찾을 수 없을 때. 보통 화면 매핑에 실수가 있을 때 자주 보인다

 

500 Internal Server Error : 서버에서 예외가 발생했을 때

(스프링에선 서버 에러 로그가 노출되므로 가급적 이 페이지가 안 떨어지게 예외 처리를 잘 해야한다)

505 HTTP Version Not Supported : 요청으로 들어온 HTTP 버전을 서버가 지원하지 않음

 

418 I'm a teapot 이라는 만우절 농담에서 유래한 상태 코드도 있다.😂

 

 

 

 

참고문헌

위키백과 'HTTP' https://ko.wikipedia.org/wiki/HTTP

 

HTTP - 위키백과, 우리 모두의 백과사전

 

ko.wikipedia.org

mdn web docs 'HTTP 개요' https://developer.mozilla.org/ko/docs/Web/HTTP/Overview

 

HTTP 개요 - HTTP | MDN

HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜입니다. HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 합니다. 클라이언트-서버

developer.mozilla.org

mdn web docs 'HTTP 메시지' https://developer.mozilla.org/ko/docs/Web/HTTP/Messages

 

HTTP 메시지 - HTTP | MDN

HTTP 메시지는 서버와 클라이언트 간에 데이터가 교환되는 방식입니다. 메시지 타입은 두 가지가 있습니다. 요청(request)은 클라이언트가 서버로 전달해서 서버의 액션이 일어나게끔 하는 메시지

developer.mozilla.org

 

  1. 웹 페이지에 주로 쓰이는 마크업 언어 [본문으로]
  2. 이진 구조로 되어있다. [본문으로]
  3. GET,POST,PUT,DELETE...등 [본문으로]
  4. uniform resource locator [본문으로]
  5. 일반적으로 HTTP/1.1이다 [본문으로]

에러 전문

Execution failed for task ':bootRun'.
> Process 'command 'C:\~\jdk1.8.0_202\bin\java.exe'' finished with non-zero exit value 1

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

 

인텔리제이에서 그레이들로 스프링부트 프로젝트를 만들어서 부트런 시켰을때 만난 에러다.

그레이들의 부트런은 개발모드로 간단히 빌드하는 걸로 알고 있는데,

이번 경우는 jdk나 빌드 툴 설정 문제는 아닌 것 같았다.

 

에러 메세지도 빈약하고...뭘까....하다가,

다른 창에 있던 에디터를 보니 run 되어 있는 것들이 있어서 끄고 재빌드 했더니 정상작동했다.

포트가 겹쳐서 위와 같은 에러가 난 것 같았다...

 

+ Recent posts