본문 바로가기

전체 글28

인터넷 Internet 인터넷은 컴퓨터들이 서로 통신 가능한 거대한 네트워크이다. 네트워크 두 개의 컴퓨터가 통신이 필요할 때, 우리는 다른 컴퓨터와 물리적으로 (케이블) 또는 무선으로 (wifi, bluetooth ..) 연결되어야 하며 원하는 만큼의 컴퓨터를 연결할 수 있다. 하지만 이런 방법으로 연결한다면 10대의 컴퓨터가 연결 되기 위해선 한 컴퓨터 당 9개의 케이블이 필요하게 되어 복잡해진다. 이를 해결하기 위해 네트워크의 각 컴퓨터는 라우터라고하는 특수한 소형 컴퓨터에 연결된다. 라우터의 역할은 철도역의 신호원처럼 주어진 컴퓨터에서 보낸 메시지가 올바른 대상 컴퓨터에 도착하는지 확인하는 것이다. 컴퓨터 B에게 메시지를 보내려면 컴퓨터 A가 메시지를 라우터로 보내야 하며, 라우터는 메시지를 컴퓨터 B로 전달하고 메시지.. 2021. 1. 18.
Java의 특징 자바(Java) 객체 지향 프로그래밍 언어 중 하나로 썬 마이크로시스템즈에서 처음 자바 언어를 발표했다. 초기의 자바는 가전 제품에 탑재할 프로그래밍 언어로 개발되었지만, 지금은 스마트폰을 비롯, 각종 장비와 데스크톱에서 실행되는 애플리케이션을 개발하는 중추적인 언어가 되었다. 특징 이전 버전과의 호환성 수년 전의 코드를 최신 버전의 Java에서도 실행할 수 있다는 점에서 거의 독보적이다. 몇년이 지난 코드라도 JVM에서 실행된다. 지속적 개선 플랫폼과 언어의 발전. Java는 2017년(Java 9)부터 6개월마다 새로운 버전이 출시되어 꾸준히 변경되고 개선되어 왔다. 새로운 구문을 실험하고 개발자로부터 피드백을 받은 다음, Java 사용자들을 위한 실용화된 새로운 기능을 표준화한다. 이식성이 높은 언.. 2021. 1. 15.
[Effective Java 3/E] Item 5. 의존 객체 주입 사용하는 자원에 따라 동작이 달라지는 클래스는 정적 유틸리티 클래스나 싱글턴 방식은 적합하지 않다. * 정적 유틸리티를 잘못 사용한 예 public class SpellChecker { private static final Lexicon dictionary = ...; private SpellChecker(...) {} public static boolean isValid(String word) { ... } public static List suggestions(String typo) {...} } * 싱글턴을 잘못 사용한 예 public class SpellChecker { private final Lexicon dictionary = ...; private SpellChecker(...) {} pu.. 2021. 1. 10.
[Effective Java 3/E] Item 4. private 생성자 인스턴스화를 막으려면 private 생성자를 사용해야 한다. 추상 클래스로 만드는 것으로는 하위 클래스를 만들어 인스턴스화 하면 되기때문에 인스턴스화를 막을 수 없다. public class UtilityClass { private UtilityClass() { throw nes AssertionError(); } } 모든 생성자는 명시적이든 묵시적이든 상위 클래스의 생성자를 호출하게 되는데, 이를 private 으로 선언 했기 때문에 상속을 불가능 하게 한다. 2021. 1. 10.
728x90
반응형