스트레티지 패턴 http 와 socket 차이http 는 Application layer 에서 동작하는 프로토콜로 socket 위에서 동작한다. http만으로 데이터를 보내거나 받거나 할 수 없다.socket 은 OS에서 네트워크에서 제공하는 API이다. Transport layer에서 동작하며 시스템 간 데이터를 전송하기 위해 사용된다. socket을 활용하여 자체적인 네트워크 프로토콜을 설계할 수도 있다. 로우 레벨로 컨트롤이 가능하다.netty 설명async Event-Driven Network Framework. 프로토콜 서버 및 클라이언트 같은 네트워크 어플리케이션의 개발을 빠르고 간편하게 할 수 있도록 도와주는 NIO 클라이언트 서버 프레임워크이다. TCP , UDP 소켓 서버와 같은 네트워크..
자바는 기본적으로 한 번 개발된 코드를 활용하여 OS와 상관없이 실행할 수 있다. Platform independent 하다고 하며 이는 JVM(Java Virtual Machine) 위에서 동작하도록 만들어졌기 때문에 가능하다. 그래서 Java의 기본적이 동작원리에 대해서 간단하게 확인해보고자 한다. 위에 이야기 했듯이 자바 언어는 JVM 위에서 동작하도록 되어 있는데, JVM 은 모든 OS 에서 동작할 수 있다. 따라서 개발된 코드는 JVM 에서 실행할 수 있는 코드로 변환되면 된다. 개발자는 .java 파일을 만들어서 실행하고자 하는 기능을 작성한다. 이렇게 작성된 프로그래밍 코드는 자바 컴파일러를 통해 바이트코드화 되어 .class 파일을 생성한다. 이 .class 파일이 바로 JVM에서 인식할 ..
Java 는 기본적으로 완전한 객체 지향 프로그래밍 언어이다. 프로그래밍의 대상이 되는 사물과 현상을 모두 객체에 담아서 표현하는 프로그래밍 방식이다. 사람, 책상, 강아지, 화면, 노트북 등 모든 것을 하나의 객체로 보며 객체는 각각의 구성요소와 하는 일에 대해서 가지고 있다. 이런 요소 및 하는 일을 통해 유기적으로 다른 객체들과 연동하여 하나의 프로그램을 만들 수 있는 것이 바로 객체 지향 프로그래밍인 것이다. 객체를 표현할 때 java 에서는 class 를 사용한다. class 를 정의하고 그 class 를 사용하여 객체를 생성한 다음 프로그래밍을 한다. OOP는 아래와 같은 특성들을 지닌다. 1. 추상화(Abstraction) 다양한 객체의 유사한 속성들을 묶어 일반화 시킨다고 이해하면 된다. ..