
멀티스레드란?
멀티 스레드로 작업을 하다보면, 하나의 객체를 공유해서 작업하는 경우가 생긴다. 이 경우, 다른 스레드에 의해 객체 내부 데이터가 쉽게 변경될 수 있기 때문에 의도했던 것과는 다른 결과가 나올 수 있다. 이를 방지하기 위해 필요한 것이 스레드 동기화이다. 스레드 동기화 동기화 메소드 및 블록 선언 동기화 메소드는 synchronized 키워드를 붙여 선...
람다식이란? 함수형 프로그래밍(functional programming) : 함수를 정의하고 이 함수를 데이터 처리부로 보내 데이터를 처리하는 기법 데이터 처리부는 데이터만 가지고 있고, 처리 방법이 정해져 있지 않아 외부에서 제공된 함수에 의존한다. 제공된 함수의 입력값으로 데이터를 넣고 함수에 정의된 처리 내용을 실행한다. 동일한 데이터라도 함수A를 ...
자동 타입 변환, Promotion 자동 타입 변환은 값의 허용 범위가 작은 타입이 허용 범위가 큰 타입으로 대입될 때 발생한다. > 큰 허용 범위 타입 = 작은 허용 범위 타입 > 기본 타입을 허용 범위 순으로 나열해보자 💡 byte char 타입의 경우 int 타입으로 자동 변환되면 유니코드 값이 int 타입에 대입된다. 예외 → char 타...
상속 상속이란? 상속(Inheritance) : 부모가 자식에게 물려주는 행위 → 객체 지향 프로그램에서도 자식 클래스는 부모 클래스의 필드와 메소드를 상속 받을 수 있다. 상속은 중복되는 코드를 줄여 개발 시간을 단축 시킨다. (이미 잘 개발된 클래스를 재사용하기 때문) 유지 보수 측면에서도 좋다! 클래스 상속 프로그램에서는 자식이 부모를 선...
다형성 다형성 다형성 : 사용 방법은 동일하지만 실행 결과가 다양하게 나오는 성질 다형성은, 반드시 부모-자식 개념이 있어야 가능하다. > 객체 사용 방법이 동일하다? == 동일한 메소드를 가지고 있다. Example) 금호 타이어와 한국 타이어가 타이어라는 클래스를 상속 받고 있다고 하자. 만약 한국 타이어와 금호 타이어가 ‘타이어’의 메소드를 오...
인터페이스 인터페이스 역할 인터페이스(Interface)는 사전적인 의미로 두 장치를 연결하는 접속기를 말한다. 다형성 구현의 주된 기술 객체 A는 인터페이스를 통해 객체 B를 사용할 수 있다. → 객체 A가 객체 B의 메소드를 직접 호출하면 간단할텐데 왜 중간 인터페이스를 거치도록 하는 걸까? 객체 A는 인터페이스의 메소드만 사용하므로 객체 B...
클래스가 여러 클래스와 관계를 맺는 경우에는 독립적으로 선언하는 것이 좋으나, 특정 클래스만 관계를 맺을 경우에는 중첩 클래스로 선언하는 것이 유지보수에 도움이 되는 경우가 많다. 중첩 클래스 > 클래스 내부에 선언한 클래스 > | 선언 위치에 따른 분류 | | 선언 위치 | 객체 생성 조건 | | --- | --- | --- | --- | | 멤버...
스트림이란? 요소들이 하나씩 흘러가면서 처리된다는 의미를 가지고 있다. 컬렉션 및 배열의 요소를 반복처리하기 위해 사용한다. Stream은 Iterator와 비슷한 반복자이지만, 차이점을 가지고 있다. 내부 반복자이므로 처리 속도가 빠르고 병렬 처리에 효율적 람다식으로 다양한 요소를 정의 가능 중간 처리와 최종 처리를 수행하도록 파이프라인 형성 가능 내...
네트워크 기초 네트워크(Network) : 여러 컴퓨터들을 통신 회선으로 연결한 것 LAN (Local Area Network) : 가정, 회사, 건물, 특정 영역에 존재하는 컴퓨터를 연결한 것 WAN (Wide Area Network) : LAN을 연결한 것. 흔히 말하는 인터넷이다. 서버와 클라이언트 서버 : 서비스를 제공하는 프로그램 클라이언트 :...
UDP(User Datagram Protocol)은 발신자가 일방적으로 수신자에게 데이터를 보내는 방식으로, TCP처럼 연결 요청 및 수락 과정이 없기 때문에 TCP보다 데이터 전송 속도가 상대적으로 빠르다. > UDP는 TCP처럼 고정 회선이 아니라 여러 회선을 통해 데이터가 전송되기 때문에 특정 회선의 속도에 따라 데이터가 순서대로 전달되지 않거나, 데...
디자인 패턴 자주 사용하는 설계 패턴을 정형화 유용/최적화된 기법 GoF 디자인패턴 23개 개발자간 소통 어플리케이션 구조 파악 재사용성 설계 변경 패턴의 종류 생성 패턴 (Creational Pattern) 객체의 생성과 관련된 패턴 Singleton, Factor, Builder ... 구조 패턴 (Structural Pattern) ...