네트워킹(Networking)
컴퓨터와 컴퓨터를 서로 연결하여 데이터를 주고 받거나 자원(프린터 또는 주변기기)을
서로 공유하기 위해 사용된 원거리 데이터 통신.
유선 네트워킹
데이터 통신 선으로 연결되어 데이터를 주고 받기 위한 통신 기술
예전의 유선 전화기, Fax 및 랜선을 통한 통신 등등
무선 네트워킹
데이터 통신을 무선(전파)으로 연결하여 데이터를 주고 받기 위한 통신 기술
무선 전화기, 휴대폰, 스마트폰 등의 무선 음성 통화 및 WIFI 데이터 통신 등등
네트워크 주요 용어
1) 클라이언트(Client)
일반적으로 사용자 컴퓨터를 가르키는 말
2) 서버(Server)
일반적으로 사용자에게 서비스를 제공하기 위한 상업용 고성능 컴퓨터
3) IP주소(IP Address)
클라이언트와 서버가 서로 연결하기위해 사용하는 주소
4) IP Adress의 예 > 192.168.1.22
포트번호
서버에서 주로 사용되며 서버에서는 여러개의 프로그램을 실행하는데 그 중 하나를 찾아가기 위한 번호. 아파트로 비유하면 동/호에 해당
Port의 예 > 192.168.1.22:8080, 192.168.1.22:2564
URL(Uniform Resource Locator)
서버의 주소를 번호가 아닌 사람들이 인식할 수 있는 문자 주소로 변환한 주소를 의미한다.
URL의 예 > https://www.daum.net
TCP
TCP/IP를 줄여서 TCP라고 말하며, 간단히 연결기반 네트워크 통신을 말함.
1 대 1 전화 연결을 예로 들 수 있으며 데이터 통신의 신뢰성을 보장한다.
UDP
UDP/IP를 줄여서 UDP라고 말하며, 간단히 비 연결기반 네트워크 통신을 말함.
1 대 1, 1 대 N, N 대 N의 라디오 방송을 예로 들수 있으며 데이터 통신의 신뢰성 없음
여기서 데이터 신뢰성이란 데이터의 손실보다도 상대가 받았는지를 확인 불가하다는 의미
소켓(Socket)
전구의 소켓과 같은 의미로 컴퓨터와 컴퓨터를 통신하기 위해 서로 연결을하는 도구 또는 프로그래밍
소켓은 일반적으로 서버에서 서버 소켓을 클라이언트에서 클라이언트용 소켓을 사용하여 서로 통신을 수행한다.
1) Practice

관련영상(네트워킹 영상) : https://blog.naver.com/yyhhhjun/222730141809
디자인 패턴(Design Pattern)
프로그래밍에서 반복적으로 일어나는 문제들을 미리 정해놓은 방법론으로 쉽게 풀어가기 위한 솔루션
GoF(Gang of Four)의 디자인 패턴
1) 생성 패턴(Creational Pattern)
객체 생성에 관련된 패턴으로 객체 생성/변경 시 유연성을 갖도록 하는 패턴
2) 구조 패턴(Structural Pattern)
클래스나 객체를 조합해 더 큰 구조를 만드는 패턴
3) 행위 패턴(Behavioral Pattern)
객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴
생성패턴의 대표적
싱글톤 패턴(Singleton)
객체를 단 한개만 인스턴스화하여 여러곳에서 공유해 사용하기 위한 방법
구조패턴의 대표적
어댑터 패턴(Adapter)
이미 만들어진 것을 그대로 사용할 수 없을 때, 연결 인터페이스를 만들어 사용하는 방법
행위패턴의 대표적
탬플릿 패턴(Template)
중복되는 코드를 템플릿화하여 중복되는 곳에서 재사용하는 방법
MVC 모델(Model, View, Controller)
프로그램을 크게 모델, 뷰, 컨트롤 영역으로 나누어 구조적 설계를 하는 방법론.
- wikipedia 가라사대 -
이 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다.
모델(Model or Domain)
Model이란 프로그램이 작업하는 세계관의 요소들을 개념적으로 정의한 것
뷰(View)
사용자가 보는 화면에 입출력 과정 및 결과를 보여주기 위한 역할
컨트롤(Controller)
Model과 View를 연결 시켜주는 다리 역할을 함과 동시에 도메인 객체들의 조합을 통해 프로그램의 작동 순서나 방식을 제어
MVC 패턴의 장점
사용자가 보는 페이지, 데이터처리, 그리고 이 2가지를 중간에서 제어하는 컨트롤, 이 3가지로 구성되는 하나의 애플리케이션을 만들면 각각 맡은바에만 집중을 할 수 있게 된다. 도메인을 작은 역할 단위로 분리하여 설계하는 것도 일종의 분업이라고 할 수 있지만 전체적인 구조에서도 MVC 패턴은 분업을 만들어 낼 수 있다.
서로 분리되어 각자의 역할에 집중할 수 있게끔하여 개발을 하고 그렇게 애플리케이션을 만든다면, 유지보수성, 애플리케이션의 확장성, 그리고 유연성이 증가하고, 중복코딩이라는 문제점 또한 사라지게 된다.
시도해보지 않고는 결코 알지 못한다.
'IT Study > 따즈아 Java & Java 기초' 카테고리의 다른 글
따즈아 Java 멘토 시리즈 2강 - 출력 메서드와 입력 메서드 (0) | 2022.12.25 |
---|---|
따즈아 Java 멘토 시리즈 1강 - Java의 시작 (0) | 2022.12.25 |
Java - 프로그램/스레드/파일 입출력 (0) | 2022.12.25 |
Java - Set/Map (1) | 2022.12.25 |
Java - Wrapper클래스/자료구조/CollectionFramework (1) | 2022.12.25 |
댓글