Java
객체와 클래스
이 세상의 모든 사물은 객체로 되어있다.
모든 사물에는 상태가 행위가 있다. 클래스 또한 상태가 행위가 있다.
즉, 세상의 모든 사물을 클래스로 나타낼 수 있다.
실제 사물을 나타내기 위한 것을 객체(Object) 혹은 인스턴스(Instance)라고 한다.
클래스와 객체의 차이점
클래스는 객체를 만들기 위한 설계도이며, 객체는 해당 클래스를 기반으로 실제로 생성된 인스턴스이다.
Network
데이터를 주고 받는 주체
데이터를 주고 받는 주체는 애플리케이션이다.
데이터 통신은 요청과 응답, 양방향으로 이루어진다.
서버와 통신하는 애플리케이션을 클라이언트-서버 애플리케이션이라 한다.
서버를 거치지 않고 클라이언트 끼리 직접 데이터를 주고 받는 애플리케이션을 피어-투-피어 애플리케이션이라 한다. 피어-투-피어 애플리케이션의 예시로 SNS 메신저 등이 있다.
피어-투-피어 애플리케이션에 서버가 클라이언트를 지정하고자 개입하는 경우도 있다.
네트워크 아키텍처
컴퓨터 통신에서는 네트워크 아키텍처를 이용한다.
통신에 필요한 규칙들은 ‘통신 상대를 지정’, ‘데이터 형식’, ‘통신 절차’ 등이 있는데 이를 프로토콜 이라 한다.
프로토콜의 집합이 네트워크 아키텍처이다.
즉, 컴퓨터끼리의 통신에서도 같은 네트워크 아키텍처를 이용해야 한다.
대표적인 네트워크 아키텍처로는 TCP/IP, OSI 등 있다.
TCP/IP
TCP/IP에서는 네트워크를 통해 애플리케이션의 데이터를 주고받기 위해, 역할별로 계층화된 복수의 프로토콜을 조합한다.
프로토콜을 계층화하면 나중에 변경하거나 확장하기 쉬워지는 장점이 있다.
- 애플리케이션 계층 : HTTP, SMTP, POP3, IMAP4, DHCP, DNS 등
- 전송 계층 : TCP/UDP
- 인터넷 계층 : IP, ICMP, ARP, RARP 등
- 네트워크액세스 계층 : 이더넷, 무선 LAN, PPP 등
서버, 운용 관리
애플리케이션이 제대로 동작하려면 항상 서버가 가동되고 있어야 한다.
새로운 서버를 도입하려면 하드웨어 선정, OS와 서버 애플리케이션을 설치하고 테스트해야 한다.
서버의 상태를 항상 감시하며, 문제가 발생하면 대처해야 한다.
데이터를 항상 백업해야 한다.
필요에 따라 처리 능력을 확장해야 한다.
보안 대책도 중요 하다.
클라우드 서비스
서버를 직접 관리 운용 하지 않고, 인터넷을 통해 서버의 기능만 이용할 수 있게 한 것이 클라우드 서비스이다.
직접 서버를 운용 관리하는 서버 운영 방식은 온프레미스 라고 한다.
클라우드 서비스는 매우 편리하지만, 보안이나 가용성에 주의가 필요하다.
'Back-end' 카테고리의 다른 글
2023.07.31 TIL (0) | 2023.07.31 |
---|---|
2023.07.30 TIL (0) | 2023.07.30 |
2023.07.28 TIL (0) | 2023.07.28 |
2023.07.27 TIL (0) | 2023.07.27 |
BackEnd(Java/Spring) 기술면접 (3) | 2023.05.09 |