본문 바로가기

프로그래밍(TA, AA)/JVM 언어

(117)
[자바] 자바8 스트림이란? 거의 모든 자바 애플리케이션은 컬렉션을 만들고 처리하는 과정을 포함한다. 컬렉션으로 데이터를 그룹화하고 처리할 수있다. 컬렉션은 대부분의 프로그래밍 작업에 필수적인 요소다. 많은 요소를 포함하는 커다란 컬렉션은 어떻게 처리를 해야할까? 성능을 높이려면 멀티코어 아키텍처를 활용해서 병렬로 컬렉션의 요소를 처리해야 한다. 람다 표현식은 메서드로 전달할 수 있는 익명함수를 단순화한 것이다. 람다 표현식에는 이름은 없지만, 파라미터 리스트/바디/반환형식/발생할수 있는 예외 리스트는 가질 수 있다. 파라미터: 메서드의 파라미터화살표: ->는 람다의 파라미터 리스트와 바디를 구분람다의 바디: 람다의 반환값에 해당하는 표현식 스트림이란 무엇인가? 스트림을 이용하면 선언형(즉, 데이터를 처리하는 임시 구현 코드 대신 ..
[스프링] 스프링 프레임워크 5.0 (2) - 스프링부트 스프링 부트의 목표는 새로운 컴포넌트로 문제를 빠르게 해결하는 것이다. - 왜 스프링 부트인가? - 스프링 부트가 제공하는 기능은 무엇인가? - 자동 설정이란 무엇인가? - 스프링 부트란 무엇인가? - 스프링 부트를 사용할때 백그라운드에서는 어떤 일이 발생할까? - 스프링 Initializer를 사용해 새로운 스프링 부트를 어떻게 만들까? - 스프링 부트로 기본적인 RESTful 서비스를 어떻게 만들까? 스프링 부트는 무엇인가? 스프링 부트는 코드 생성 프레임워크가 아니기 때문에 코드를 생성하지 않는다. 스프링 부트는 애플리케이션 섭도, 웹서버도 아니다. 다양한 애플리케이션, 웹서버와의 통합을 제공한다. 스프링 부트는 특정 프레임워크나 스펙을 구현하지 않는다. 스프링부트란 무엇이며, 지난 2년동안 왜 인..
[스프링] 스프링 프레임워크 5.0 (1) 스프링 프레임워크"스프링 프레임워크는 최신 자바-기반 엔터프라이즈 애플리케이션을 위한 포괄적인 프로그래밍 및 구성 모델을 제공한다." 스프링 프레임워크는 엔터프라이즈 자바 애플리케이션을 연결하는데 사용된다. 스프링 프레임워크의 주요 목표는 애플리케이션의 여러 부분을 연결하는데 필요한 모든 기술을 제공하고 전담 처리하는 것이다. 스프링 프레임워크가 중요한 이유는 "단순화된 단위 테스팅 / 복잡한 코드 감소 / 아키텍처의 유연성" 등이 있다. 단순화된 단위 테스팅스프링 프레임워크의 의존성 주입은 의존성을 자신의 mock로 쉽게 대체함으로써 단위 테스팅을 가능하게 한다. 단위 테스트를 위해 전체 애플리케이션을 배포할 필요가 없다. 복잡한 코드 감소스프링 프레임워크 이전의 일반적인 J2EE 애플리케이션에는 복잡..
[SCALA] object, case class, trait [object: 객체]object는 하나 이상의 인스턴스를 가질 수 없는 형태의 클래스로, 객체 지향 설계에서는 singleton이라 한다. new 키워드로 인스턴스를 생성하는 대신 이름으로 직접 해당 객체에 접근한다. 객체는 실행 중인 JVM에서 최초로 접근할 때 자동으로 인스턴스화된다. 객체에 처음 접근하기 전까지는 인스턴스화되지 않는다. 스칼라는 객체에 'main' 메소드를 사용하여 애플리케이션의 진입점으로 셸에서 실행될 수 있는 명령줄 애플리케이션을 생성할 수 있다. 명령줄 애플리케이션을 스칼라에서 생성하려면 입력 인수로 문자열 배열을 취하는 main 메소드를 추가하면 된다. 코드를 컴파일한 이후에 객체 이름을 scala 명령어와 함께 실행하면 된다. [case class: 케이스 클래스]case..
[SPARK] 스파크 SUBMIT [yarn-cluster spark-submit] [yarn-client spark-submit] 스파크는 spark-submit이라는 모든 클러스터 매니저 간에 작업을 제출해 주는 단일 툴을 제공한다. spark-submit이 옵션 없이 스크립트 이름 혹은 jar 파일 이름만으로 호출된다면 단순히 로컬로 스파크 프로그램을 실행한다. 이 프로그램을 스파크 단독 클러스터 매니저에게 제출하기 위해서는 단독 클러스터의 주소 및 실행을 원하는 익스큐터 프로세스의 크기 등 추가 정보를 제공해 주어야 한다. bin/spark-submit --master spark://host:7077 --executor-memory 10g my_script.py --master 플래그는 접속할 클러스터의 주소를 지정해 주는데, 여..