분류 전체보기

JAVA

Java Stream

스트림은 람다에 대한 기본 지식이 없으면 이해가 힘들다! 스트림 메소드의 인자로 들어가는 함수형 인터페이스에 대한 기본 배경지식이 깔려있어야 한다. 1. Stream? stream이란, iterable한 객체의 각 element에 parallel한 연산을 수행할 수 있도록 도와주는 API를 말한다. Java 8에서 람다식과 함께 추가된 기능으로, 람다식을 이용해서 array나 collection 자료구조의 데이터 '흐름'을 가독성 높고 간결하게 작성할 수 있도록 도와준다. stream의 구조는 일반적으로 '스트림 생성 -> 중개 연산(intermediate operation) -> 종단 연산(terminate operation)'으로 이루어진다. 스트림을 생성하고, 일정 로직을 수행하고, 그 결과값을 받..

JAVA

Java Lambda

1. 람다 표현식 : 익명 함수 Java 8부터 람다(lambda)식을 지원한다. 자바에서 람다식이란, '익명 함수'이다. 익명이란 이름을 특정하지 않음 내지는 이름없음을 뜻하는데, 정확히 무슨 의미일까? 일단 다음과 같은 AddCalculator 인터페이스를 보자. 두 정수를 인자로 받아 특정 계산을 수행하는 operate() 메소드를 가지고 있다. 메소드 body는 없으므로 어떤 로직을 수행할지는 구현체가 결정한다. public interface Calculator { public int operate(int x, int y); } 이제 Calculator 인터페이스를 익명 클래스로 구현한 뒤, 덧셈 연산을 수행하도록 operate() 메소드를 구현하자. 그 뒤 1+2 연산을 수행해보자! public..

공부!/Network

TCP UDP

# 면접 단골 질문 : TCP와 UDP를 비교해봐라 ! TCP와 UDP의 차이점은 개발자라면 알아야 하는 상식이며 면접에서도 자주 나온다. 때문에 나도 이 질문을 들으면 자동적으로 "둘은 트랜스포트 계층에서 사용하는 프로토콜로, TCP는 연결 지향형이고 신뢰성있는 연결을 보장하고 혼잡 제어를 하고 어쩌구저쩌구..." 대답을 하는 편이긴 한데, 기계적으로 답하는 것보단 각각이 정확히 무엇인지 신입 수준에서 조금 더 자세히 살펴보고자 한다. 1. Transport Layer : Application과 Internet 계층 사이 TCP/IP 4계층에서 트랜스포트 계층은 어플리케이션 계층과 인터넷 계층의 사이에 위치한다. 응용 프로그램에서 네트워크에 이용할 데이터를 받아서, IP 주소를 통해 목적지로 향하는 인..

JAVA

Synchronized

1. 멀티스레드 환경에서의 장점과 문제점 자바는 멀티스레드 프로그래밍을 지원하는 언어이다. 스레드란 프로세스 내의 작은 실행 단위를 말한다. 고유한 pid, 메모리 영역(여기서 말하는 메모리란 코드, 데이터, 힙과 스택 영역을 모두 아우른다), 파일 시스템과 레지스터 값들을 가지는 프로세스와 다르게 스레드는 자신의 스택 영역과 sp 및 pc만을 가진다. 같은 프로세스의 스레드는 프로세스의 대부분을 공유하기 때문에 컨텍스트 스위칭이 일어났을 때 그 비용이 프로세스간 컨텍스트 스위칭보다 훨씬 덜하다는 장점이 있다. 멀티스레딩을 활용하면 프로세스의 여러 부분을 동시에 실행할 수 있기 때문에 빠른 동작이 가능하지만, 여기엔 매우 커다란 문제점이 있다. 여러 스레드가 공유하는 프로세스 자원에 대한 race con..

김부추
'분류 전체보기' 카테고리의 글 목록 (13 Page)