SlideShare una empresa de Scribd logo
1 de 75
Descargar para leer sin conexión
Spring Scala

스프링이
스칼라를

만났을 때
Outsider
2013.10.13 at SpringCamp 2013 with Scala
Outsider
@Outsider
outsideris@gmail.com

코딩을 좋아하는 프로그래머
봄싹, 라 스칼라 코딩단, FRENDS 등에서 활동
다양한 기술에 관심 많음
http://blog.outsider.ne.kr/ 블로그 운영
이 발표에서는

스칼라로
스프링 프레임워크를
사용할 수 있는가?
이 발표에서는

- 스프링 스칼라가 어떤 기능을 지원하는가?
- 실제로 스칼라에서 스프링을 사용할 때는
어떤 이슈가 있는가?
킬러
웹프레임워크는 없다
http://www.flickr.com/photos/familymwr/4393710839/
스프링을 사용할 수 없을까?
Spring

=
v1.0.0 M2

스프링 스칼라

https://github.com/spring-projects/spring-scala

스칼라로 스프링 프레임워크를 쉽게 사용하도록...
스프링 스칼라
스칼라 클래스를 스프링 빈으로 연결
스프링 템플릿을 함수형식으로 사용
스칼라의 컬렉션을 의존성 주입
JavaConfig를 ScalaConfig
스프링 빈 연동 문제
1 public class Person {
2
private String name;
3
4
public String getName() {
5
return this.name;
6
}
7
8
public void setName(String name) {
9
this.name = name;
10
}
11 }
스칼라는

자바 빈 규약을
따르지 않는다
1 class Person {
2
var name:String = _
3 }
1 class Person {
2
var name:String = _
3
4
def name():String = name
5
def name_=(n:String) = name = n
6 }
1 public class Person {
2
private String name;
3
4
public String name() {
5
return this.name;
6
}
7
8
public void name_$eq(String name) {
9
this.name = name;
10
}
11 }
해결책 1

@BeanProperty
1 import scala.beans.BeanProperty
2
3 class Person {
4
5
@BeanProperty
6
var name:String = _
7 }
해결책 2

Spring Scala
스프링 3.2+
BeanInfoFactory 전략 인터페이스 사용
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

<repositories>
<repository>
<id>repository.springsource.milestone</id>
<name>SpringSource Milestone Repository</name>
<url>http://repo.springsource.org/milestone</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.springframework.scala</groupId>
<artifactId>spring-scala</artifactId>
<version>1.0.0.M2</version>
</dependency>
</dependencies>
스프링 템플릿
스프링 스칼라의 템플릿
콜백 인터페이스

함수

null 반환

Option 반환

클래스 파라미터

클래스 매니패스트
SimpleJdbcTemplate
JmsTemplate
RestTemplate
TransactionTemplate
1 template.send("queue",
2
new MessageCreator() {
3
public Message createMessage(Session session)
4
throws JMSException {
5
return session
6
.createTextMessage("Hello World");
7
}
8 });
1 template.send("queue") {
2
session: Session =>
3
session.createTextMessage("Hello World")
4 }
1 RestTemplate restTemplate = new RestTemplate();
2
3 String result = restTemplate
4
.getForObject(
5
"http://example.com",
6
String.class);
1 val restTemplate = new RestTemplate()
2
3 val result = restTemplate
4
.getForAny[String]
5
("http://example.com")
ScalaConfig
XML
JavaConfig
XML
JavaConfig
ScalaConfig
FunctionalConfiguration
1 import org.springframework.scala.
2
context.function.FunctionalConfiguration
3
4 class ScalaExampleConfiguration
5
extends FunctionalConfiguration {
6
7
bean("foo") {
8
"Foo"
9
}
10 }
1 class ScalaExampleConfiguration
2
extends FunctionalConfiguration {
3
4
bean(
5
"foo",
6
aliases = Seq("bar")
7
scope = BeanDefinition.SCOPE_PROTOTYPE) {
8
"Foo"
9
}
10 }
1 class ScalaExampleConfiguration
2
extends FunctionalConfiguration {
3
4
prototype("foo") {
5
"Foo"
6
}
7
8
singleton("bar") {
9
"Bar"
10
}
11 }
1 class ScalaExampleConfiguration
2
extends FunctionalConfiguration {
3
4
val conference = bean() {
5
val c = new Conference("SpringCamp")
6
c.when = "2013-10-13"
7
c.where = "코엑스"
8
c
9
}
10
11
bean("helloService") {
12
new HelloService(conference())
13
}
14 }
FunctionalConfigApplicationContext
1 import org.springframework.scala.context.
2!
function.FunctionalConfigApplicationContext
3
4 object HelloApp extends App {
5
val context =
6
FunctionalConfigApplicationContext[ScalaExampleConfiguration]
7
val helloService = context.getBean(classOf[HelloService])
8 }
스프링 스칼라가
있으면
스칼라로 스프링을
쓸 수 있는가?
http://www.flickr.com/photos/chicagoartdepartment/2919452629/
스칼라로
스프링 프로젝트를
연동하려면
많은 작업이 필요하다
http://www.flickr.com/photos/joeshlabotnik/4729507364/
스프링 스칼라가 해주는 일은 극히 일부다

http://www.flickr.com/photos/lenore-m/459508939/
Spring
PetClinic
http://docs.spring.io/docs/petclinic.html
https://github.com/spring-projects/spring-petclinic/

http://www.flickr.com/photos/dugspr/6810252887/
Maven
스칼라 라이브러리 추가
1 <dependencies>
2 <dependency>
3
<groupId>org.scala-lang</groupId>
4
<artifactId>scala-library</artifactId>
5
<version>2.10.1</version>
6 </dependency>
7 </dependencies>
v3.1.6 with scala v2.10.1

scala-maven-plugin
메이븐에서 스칼라 컴파일 및 테스트
1 <plugin>
2
<groupId>net.alchim31.maven</groupId>
3
<artifactId>scala-maven-plugin</artifactId>
4
<version>3.1.6</version>
5
<executions>
6
<execution>
7
<id>scala-compile-first</id>
8
<phase>process-resources</phase>
9
<goals>
10
<goal>add-source</goal>
11
<goal>compile</goal>
12
</goals>
13
</execution>
14
<execution>
15
<id>scala-test-compile</id>
16
<phase>process-test-resources</phase>
17
<goals>
18
<goal>testCompile</goal>
19
</goals>
20
</execution>
21
<execution>
22
<phase>process-resources</phase>
23
<goals>
24
<goal>compile</goal>
25
</goals>
26
</execution>
27
</executions>
28 </plugin>
프로젝트 구조
src
main
java
test
java

src
main
java
scala
test
java
scala
스칼라 클래스
1 class Pet {
2
private var name:String = _
3
4
def name():String = name
5
def name_=(n:String) = name = n
6 }
1 Pet pet = new Pet();
2 pet.name_$eq(“Dog”);
3 String n = pet.name();
어노테이션
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

@Controller
@SessionAttributes("visit")
public class OwnerController {
@RequestMapping("/owners/{ownerId}")
public ModelAndView showOwner(
@PathVariable("ownerId") int ownerId) {
// ..
}
@RequestMapping(
value = "visits/new",
method = RequestMethod.GET)
public String initNewVisitForm() {
// ..
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

@Controller
@SessionAttributes(Array("visit"))
class OwnerController {
@RequestMapping(Array("/owners/{ownerId}"))
def showOwner(
@PathVariable("ownerId") ownerId:Int) = {
//..
}
@RequestMapping(
value = Array("/visits/new"),
method = Array(RequestMethod.GET))
def initNewVisitForm = {
// ...
}
}
1 @Controller
2 public class VisitController {
3
4
private final ClinicService cs;
5
6
@Autowired
7
public VisitController(ClinicService cs) {
8
this.cs = cs;
9
}
10 }
1 @Controller
2 class VisitController @Autowired() (cs: ClinicService) {
3 }
어노테이션 의존성 오류
컴파일시
어노테이션에 대한
의존성이 필요하다

Scala 2.11에서는 해결됨
[WARNING] warning: Class
org.joda.convert.FromString not found continuing with a stub.
[WARNING] warning: Caught:
java.lang.NullPointerException
while parsing annotations in joda-time-2.3.jar
(org/joda/time/DateTime.class)
[ERROR] error: error while loading DateTime,
class file 'joda-time-2.3.jar
(org/joda/time/DateTime.class)' is broken
1 org.joda.time.DateTime
2
3 @org.joda.convert.FromString
4 public static DateTime parse(String s) {}
1 <dependency>
2
<groupId>org.joda</groupId>
3
<artifactId>joda-convert</artifactId>
4
<version>1.5</version>
5 </dependency>
joda-time
1 object Joda {
2
implicit
3
def dateTimeOrdering: Ordering[DateTime] =
4
Ordering.fromLessThan(_ isBefore _)
5 }

1 import Joda._
2 dateTimes.sorted
Collections
스칼라의 컬랙션과

자바의 컬랙션은

다르다
java.util.

Collection
List
Map
Set

scala.collection.immutable.

Iterable
List
Map
Set
scala.collection.mutable.

Iterable
Map
Set
1 import scala.collection.JavaConversions._

asJavaCollection
asJavaDictionary
asJavaEnumeration
asJavaIterable
asJavaIterator
asScalaBuffer
...
때로는

자바 클래스를
사용
error:
overloaded method value query with alternatives
오버라이드하는 경우
오버로딩된 메서드를 호출하는 경우
타입이 상속구조를 가진 경우
ModelAndView
1 def initFindForm(
2
model: Map[String, Object]
3 ) = {}

error:
org.springframework.beans.BeanInstantiationException:
Could not instantiate bean class
[scala.collection.immutable.Map]:
Specified class is an interface
뷰
https://github.com/outsideris/spring-petclinic
- 스칼라로 스프링을 사용할 수 있다
- 스프링는 검증된 프레임워크이므로
통합하고 나면 쓸만해 보인다
- 이슈는 있지만 타입오류나 자바와
스칼라의 모양이 다른 작은 이슈들이다
- 레퍼런스는 거의 없으므로 이슈는
직접 해결해야 한다
Questions?
http://www.flickr.com/photos/olivander/68140297/

Más contenido relacionado

La actualidad más candente

Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Javajigi Jaesung
 
자바프로그래머를 위한 스칼라
자바프로그래머를 위한 스칼라자바프로그래머를 위한 스칼라
자바프로그래머를 위한 스칼라Jong Gook Bae
 
Effective Scala (SpringCamp 2013)
Effective Scala (SpringCamp 2013)Effective Scala (SpringCamp 2013)
Effective Scala (SpringCamp 2013)ihji
 
Zeppelin notebook 만들기
Zeppelin notebook 만들기Zeppelin notebook 만들기
Zeppelin notebook 만들기Soo-Kyung Choi
 
[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영NAVER D2
 
[211]대규모 시스템 시각화 현동석김광림
[211]대규모 시스템 시각화 현동석김광림[211]대규모 시스템 시각화 현동석김광림
[211]대규모 시스템 시각화 현동석김광림NAVER D2
 
[115] clean fe development_윤지수
[115] clean fe development_윤지수[115] clean fe development_윤지수
[115] clean fe development_윤지수NAVER D2
 
Hibernate start (하이버네이트 시작하기)
Hibernate start (하이버네이트 시작하기)Hibernate start (하이버네이트 시작하기)
Hibernate start (하이버네이트 시작하기)visual khh
 
Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례Hyoungjun Kim
 
The platform 2011
The platform 2011The platform 2011
The platform 2011NAVER D2
 
파크히어 Realm 사용 사례
파크히어 Realm 사용 사례파크히어 Realm 사용 사례
파크히어 Realm 사용 사례선협 이
 
SpringDataJPA - 스프링 캠프
SpringDataJPA - 스프링 캠프SpringDataJPA - 스프링 캠프
SpringDataJPA - 스프링 캠프Younghan Kim
 
Ksug2015 - JPA2, JPA 기초와매핑
Ksug2015 - JPA2, JPA 기초와매핑Ksug2015 - JPA2, JPA 기초와매핑
Ksug2015 - JPA2, JPA 기초와매핑Younghan Kim
 
Java9 특징 훑어보기
Java9 특징 훑어보기Java9 특징 훑어보기
Java9 특징 훑어보기duriepark 유현석
 
Ahea Study reactive programming
Ahea Study reactive programming Ahea Study reactive programming
Ahea Study reactive programming Sunghyun Roh
 
spring.io를 통해 배우는 spring 개발사례
spring.io를 통해 배우는 spring 개발사례spring.io를 통해 배우는 spring 개발사례
spring.io를 통해 배우는 spring 개발사례Daehwan Lee
 
1. introduction to java8
1. introduction to java81. introduction to java8
1. introduction to java8흥래 김
 
영속성 컨텍스트로 보는 JPA
영속성 컨텍스트로 보는 JPA영속성 컨텍스트로 보는 JPA
영속성 컨텍스트로 보는 JPA경원 이
 

La actualidad más candente (20)

Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
 
자바프로그래머를 위한 스칼라
자바프로그래머를 위한 스칼라자바프로그래머를 위한 스칼라
자바프로그래머를 위한 스칼라
 
Effective Scala (SpringCamp 2013)
Effective Scala (SpringCamp 2013)Effective Scala (SpringCamp 2013)
Effective Scala (SpringCamp 2013)
 
Zeppelin notebook 만들기
Zeppelin notebook 만들기Zeppelin notebook 만들기
Zeppelin notebook 만들기
 
[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영
 
[211]대규모 시스템 시각화 현동석김광림
[211]대규모 시스템 시각화 현동석김광림[211]대규모 시스템 시각화 현동석김광림
[211]대규모 시스템 시각화 현동석김광림
 
Cluster - spark
Cluster - sparkCluster - spark
Cluster - spark
 
[115] clean fe development_윤지수
[115] clean fe development_윤지수[115] clean fe development_윤지수
[115] clean fe development_윤지수
 
Hibernate start (하이버네이트 시작하기)
Hibernate start (하이버네이트 시작하기)Hibernate start (하이버네이트 시작하기)
Hibernate start (하이버네이트 시작하기)
 
Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례
 
The platform 2011
The platform 2011The platform 2011
The platform 2011
 
파크히어 Realm 사용 사례
파크히어 Realm 사용 사례파크히어 Realm 사용 사례
파크히어 Realm 사용 사례
 
SpringDataJPA - 스프링 캠프
SpringDataJPA - 스프링 캠프SpringDataJPA - 스프링 캠프
SpringDataJPA - 스프링 캠프
 
Ksug2015 - JPA2, JPA 기초와매핑
Ksug2015 - JPA2, JPA 기초와매핑Ksug2015 - JPA2, JPA 기초와매핑
Ksug2015 - JPA2, JPA 기초와매핑
 
Java9 특징 훑어보기
Java9 특징 훑어보기Java9 특징 훑어보기
Java9 특징 훑어보기
 
Ahea Study reactive programming
Ahea Study reactive programming Ahea Study reactive programming
Ahea Study reactive programming
 
spring.io를 통해 배우는 spring 개발사례
spring.io를 통해 배우는 spring 개발사례spring.io를 통해 배우는 spring 개발사례
spring.io를 통해 배우는 spring 개발사례
 
1. introduction to java8
1. introduction to java81. introduction to java8
1. introduction to java8
 
영속성 컨텍스트로 보는 JPA
영속성 컨텍스트로 보는 JPA영속성 컨텍스트로 보는 JPA
영속성 컨텍스트로 보는 JPA
 
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
 

Destacado

함수형 프로그래밍 언어 스칼라(Scala) 소개
함수형 프로그래밍 언어 스칼라(Scala) 소개함수형 프로그래밍 언어 스칼라(Scala) 소개
함수형 프로그래밍 언어 스칼라(Scala) 소개DongHee Kim
 
맛만 보자 액터 모델이란
맛만 보자 액터 모델이란 맛만 보자 액터 모델이란
맛만 보자 액터 모델이란 jbugkorea
 
자바와 사용하기2
자바와 사용하기2자바와 사용하기2
자바와 사용하기2destinycs
 
[A4]de view2012 scala-michinisougu
[A4]de view2012 scala-michinisougu[A4]de view2012 scala-michinisougu
[A4]de view2012 scala-michinisouguNAVER D2
 
Scala For Java Programmers
Scala For Java ProgrammersScala For Java Programmers
Scala For Java ProgrammersEnno Runne
 
Your First Scala Web Application using Play 2.1
Your First Scala Web Application using Play 2.1Your First Scala Web Application using Play 2.1
Your First Scala Web Application using Play 2.1Matthew Barlocker
 
CS152 Programming Paradigm
CS152 Programming Paradigm CS152 Programming Paradigm
CS152 Programming Paradigm Kaya Ota
 
track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...
track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...
track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...양 한빛
 
Oscon keynote: Working hard to keep it simple
Oscon keynote: Working hard to keep it simpleOscon keynote: Working hard to keep it simple
Oscon keynote: Working hard to keep it simpleMartin Odersky
 
기술용어 선호도 조사 결과
기술용어 선호도 조사 결과기술용어 선호도 조사 결과
기술용어 선호도 조사 결과장현 한
 
Hot Trend Lambda Expressions, Compare C# With Java
Hot Trend Lambda Expressions, Compare C# With JavaHot Trend Lambda Expressions, Compare C# With Java
Hot Trend Lambda Expressions, Compare C# With JavaDexter Jung
 
Programming Paradigm
Programming ParadigmProgramming Paradigm
Programming ParadigmSabahtHussein
 
자바 전문가를 위한 스칼라 프로그래밍 언어
자바 전문가를 위한 스칼라 프로그래밍 언어자바 전문가를 위한 스칼라 프로그래밍 언어
자바 전문가를 위한 스칼라 프로그래밍 언어Jong Wook Kim
 
맛만 보자 Finagle이란
맛만 보자 Finagle이란 맛만 보자 Finagle이란
맛만 보자 Finagle이란 jbugkorea
 
격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it goChris Ohk
 
주니어 개발자의 개인프로젝트 개발기
주니어 개발자의 개인프로젝트 개발기주니어 개발자의 개인프로젝트 개발기
주니어 개발자의 개인프로젝트 개발기sung yong jung
 

Destacado (20)

함수형 프로그래밍 언어 스칼라(Scala) 소개
함수형 프로그래밍 언어 스칼라(Scala) 소개함수형 프로그래밍 언어 스칼라(Scala) 소개
함수형 프로그래밍 언어 스칼라(Scala) 소개
 
맛만 보자 액터 모델이란
맛만 보자 액터 모델이란 맛만 보자 액터 모델이란
맛만 보자 액터 모델이란
 
자바와 사용하기2
자바와 사용하기2자바와 사용하기2
자바와 사용하기2
 
[A4]de view2012 scala-michinisougu
[A4]de view2012 scala-michinisougu[A4]de view2012 scala-michinisougu
[A4]de view2012 scala-michinisougu
 
Java8 람다
Java8 람다Java8 람다
Java8 람다
 
Scala For Java Programmers
Scala For Java ProgrammersScala For Java Programmers
Scala For Java Programmers
 
Scala for play
Scala for playScala for play
Scala for play
 
함수형 사고
함수형 사고함수형 사고
함수형 사고
 
Your First Scala Web Application using Play 2.1
Your First Scala Web Application using Play 2.1Your First Scala Web Application using Play 2.1
Your First Scala Web Application using Play 2.1
 
CS152 Programming Paradigm
CS152 Programming Paradigm CS152 Programming Paradigm
CS152 Programming Paradigm
 
track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...
track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...
track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...
 
Oscon keynote: Working hard to keep it simple
Oscon keynote: Working hard to keep it simpleOscon keynote: Working hard to keep it simple
Oscon keynote: Working hard to keep it simple
 
기술용어 선호도 조사 결과
기술용어 선호도 조사 결과기술용어 선호도 조사 결과
기술용어 선호도 조사 결과
 
Hot Trend Lambda Expressions, Compare C# With Java
Hot Trend Lambda Expressions, Compare C# With JavaHot Trend Lambda Expressions, Compare C# With Java
Hot Trend Lambda Expressions, Compare C# With Java
 
Programming Paradigm
Programming ParadigmProgramming Paradigm
Programming Paradigm
 
자바 전문가를 위한 스칼라 프로그래밍 언어
자바 전문가를 위한 스칼라 프로그래밍 언어자바 전문가를 위한 스칼라 프로그래밍 언어
자바 전문가를 위한 스칼라 프로그래밍 언어
 
Standard Algorithms
Standard AlgorithmsStandard Algorithms
Standard Algorithms
 
맛만 보자 Finagle이란
맛만 보자 Finagle이란 맛만 보자 Finagle이란
맛만 보자 Finagle이란
 
격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go
 
주니어 개발자의 개인프로젝트 개발기
주니어 개발자의 개인프로젝트 개발기주니어 개발자의 개인프로젝트 개발기
주니어 개발자의 개인프로젝트 개발기
 

Similar a Spring Scala : 스프링이 스칼라를 만났을 때

Apache Spark 입문에서 머신러닝까지
Apache Spark 입문에서 머신러닝까지Apache Spark 입문에서 머신러닝까지
Apache Spark 입문에서 머신러닝까지Donam Kim
 
Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015sung yong jung
 
Let'Swift 2023 Swift Macro, 어디다 쓰죠?
Let'Swift 2023 Swift Macro, 어디다 쓰죠?Let'Swift 2023 Swift Macro, 어디다 쓰죠?
Let'Swift 2023 Swift Macro, 어디다 쓰죠?williciousk
 
자바스크립트의 또다른 발전, Backbone.js
자바스크립트의 또다른 발전, Backbone.js자바스크립트의 또다른 발전, Backbone.js
자바스크립트의 또다른 발전, Backbone.jsJinKwon Lee
 
Spring boot와 docker를 이용한 msa
Spring boot와 docker를 이용한 msaSpring boot와 docker를 이용한 msa
Spring boot와 docker를 이용한 msa흥래 김
 
Implementing_AOP_in_Spring_SYS4U
Implementing_AOP_in_Spring_SYS4UImplementing_AOP_in_Spring_SYS4U
Implementing_AOP_in_Spring_SYS4Usys4u
 
Spring boot-summary(part2-part3)
Spring boot-summary(part2-part3)Spring boot-summary(part2-part3)
Spring boot-summary(part2-part3)Jaesup Kwak
 
Catalyst Framework 살펴보기
Catalyst Framework 살펴보기Catalyst Framework 살펴보기
Catalyst Framework 살펴보기corund
 
How_to_choose_the_right_framework
How_to_choose_the_right_frameworkHow_to_choose_the_right_framework
How_to_choose_the_right_frameworkJT Jintae Jung
 
XECon2015 :: [1-2] 이현석 - Learning Laravel
XECon2015 :: [1-2] 이현석 - Learning LaravelXECon2015 :: [1-2] 이현석 - Learning Laravel
XECon2015 :: [1-2] 이현석 - Learning LaravelXpressEngine
 
올챙이 현재와 미래
올챙이 현재와 미래올챙이 현재와 미래
올챙이 현재와 미래cho hyun jong
 
Angular CodeLab 두번째
Angular CodeLab 두번째Angular CodeLab 두번째
Angular CodeLab 두번째SangHun Lee
 
앵귤러 첫걸음(Angular for beginers)
앵귤러 첫걸음(Angular for beginers)앵귤러 첫걸음(Angular for beginers)
앵귤러 첫걸음(Angular for beginers)양 한빛
 
Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]Woojin Joe
 
​『9가지 사례로 익히는 고급 스파크 분석(2판) 』 맛보기
​『9가지 사례로 익히는 고급 스파크 분석(2판) 』 맛보기​『9가지 사례로 익히는 고급 스파크 분석(2판) 』 맛보기
​『9가지 사례로 익히는 고급 스파크 분석(2판) 』 맛보기복연 이
 
How to use apache spark (based on the java example)
How to use apache spark (based on the java example)How to use apache spark (based on the java example)
How to use apache spark (based on the java example)월간 IT 슬라이드
 
Collaboration with Eclipse final
Collaboration with Eclipse finalCollaboration with Eclipse final
Collaboration with Eclipse finalKenu, GwangNam Heo
 
Service Worker 를 이용한 
Offline Web Application 구현
Service Worker 를 이용한 
Offline Web Application 구현Service Worker 를 이용한 
Offline Web Application 구현
Service Worker 를 이용한 
Offline Web Application 구현병태 정
 

Similar a Spring Scala : 스프링이 스칼라를 만났을 때 (20)

Apache Spark 입문에서 머신러닝까지
Apache Spark 입문에서 머신러닝까지Apache Spark 입문에서 머신러닝까지
Apache Spark 입문에서 머신러닝까지
 
Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015
 
Let'Swift 2023 Swift Macro, 어디다 쓰죠?
Let'Swift 2023 Swift Macro, 어디다 쓰죠?Let'Swift 2023 Swift Macro, 어디다 쓰죠?
Let'Swift 2023 Swift Macro, 어디다 쓰죠?
 
자바스크립트의 또다른 발전, Backbone.js
자바스크립트의 또다른 발전, Backbone.js자바스크립트의 또다른 발전, Backbone.js
자바스크립트의 또다른 발전, Backbone.js
 
Eclipse web
Eclipse webEclipse web
Eclipse web
 
Spring boot와 docker를 이용한 msa
Spring boot와 docker를 이용한 msaSpring boot와 docker를 이용한 msa
Spring boot와 docker를 이용한 msa
 
Implementing_AOP_in_Spring_SYS4U
Implementing_AOP_in_Spring_SYS4UImplementing_AOP_in_Spring_SYS4U
Implementing_AOP_in_Spring_SYS4U
 
Spring boot-summary(part2-part3)
Spring boot-summary(part2-part3)Spring boot-summary(part2-part3)
Spring boot-summary(part2-part3)
 
Catalyst Framework 살펴보기
Catalyst Framework 살펴보기Catalyst Framework 살펴보기
Catalyst Framework 살펴보기
 
How_to_choose_the_right_framework
How_to_choose_the_right_frameworkHow_to_choose_the_right_framework
How_to_choose_the_right_framework
 
XECon2015 :: [1-2] 이현석 - Learning Laravel
XECon2015 :: [1-2] 이현석 - Learning LaravelXECon2015 :: [1-2] 이현석 - Learning Laravel
XECon2015 :: [1-2] 이현석 - Learning Laravel
 
Learning Laravel
Learning LaravelLearning Laravel
Learning Laravel
 
올챙이 현재와 미래
올챙이 현재와 미래올챙이 현재와 미래
올챙이 현재와 미래
 
Angular CodeLab 두번째
Angular CodeLab 두번째Angular CodeLab 두번째
Angular CodeLab 두번째
 
앵귤러 첫걸음(Angular for beginers)
앵귤러 첫걸음(Angular for beginers)앵귤러 첫걸음(Angular for beginers)
앵귤러 첫걸음(Angular for beginers)
 
Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]
 
​『9가지 사례로 익히는 고급 스파크 분석(2판) 』 맛보기
​『9가지 사례로 익히는 고급 스파크 분석(2판) 』 맛보기​『9가지 사례로 익히는 고급 스파크 분석(2판) 』 맛보기
​『9가지 사례로 익히는 고급 스파크 분석(2판) 』 맛보기
 
How to use apache spark (based on the java example)
How to use apache spark (based on the java example)How to use apache spark (based on the java example)
How to use apache spark (based on the java example)
 
Collaboration with Eclipse final
Collaboration with Eclipse finalCollaboration with Eclipse final
Collaboration with Eclipse final
 
Service Worker 를 이용한 
Offline Web Application 구현
Service Worker 를 이용한 
Offline Web Application 구현Service Worker 를 이용한 
Offline Web Application 구현
Service Worker 를 이용한 
Offline Web Application 구현
 

Más de JeongHun Byeon

당근 개발자 플랫폼은 어떤 문제를 해결하고 있는가?
당근 개발자 플랫폼은 어떤 문제를 해결하고 있는가?당근 개발자 플랫폼은 어떤 문제를 해결하고 있는가?
당근 개발자 플랫폼은 어떤 문제를 해결하고 있는가?JeongHun Byeon
 
오픈소스에 기여할 때 알면 좋을 개발 프로세스
오픈소스에 기여할 때 알면 좋을 개발 프로세스오픈소스에 기여할 때 알면 좋을 개발 프로세스
오픈소스에 기여할 때 알면 좋을 개발 프로세스JeongHun Byeon
 
DevOps를 가속화하는 플랫폼 엔지니어링
DevOps를 가속화하는 플랫폼 엔지니어링DevOps를 가속화하는 플랫폼 엔지니어링
DevOps를 가속화하는 플랫폼 엔지니어링JeongHun Byeon
 
클라우드 시대에 맞는 사이트 신뢰성 엔지니어
클라우드 시대에 맞는 사이트 신뢰성 엔지니어클라우드 시대에 맞는 사이트 신뢰성 엔지니어
클라우드 시대에 맞는 사이트 신뢰성 엔지니어JeongHun Byeon
 
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요 디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요 JeongHun Byeon
 
오픈소스 뒤에 메인테이너 있어요
오픈소스 뒤에 메인테이너 있어요오픈소스 뒤에 메인테이너 있어요
오픈소스 뒤에 메인테이너 있어요JeongHun Byeon
 
오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일
오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일
오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일JeongHun Byeon
 
Lessons from maintaining Mocha, an open source project
Lessons from maintaining Mocha, an open source projectLessons from maintaining Mocha, an open source project
Lessons from maintaining Mocha, an open source projectJeongHun Byeon
 
개발 관련 기술 블로그 운영하기
개발 관련 기술 블로그 운영하기개발 관련 기술 블로그 운영하기
개발 관련 기술 블로그 운영하기JeongHun Byeon
 
Terraform을 이용한 Infrastructure as Code 실전 구성하기
Terraform을 이용한 Infrastructure as Code 실전 구성하기Terraform을 이용한 Infrastructure as Code 실전 구성하기
Terraform을 이용한 Infrastructure as Code 실전 구성하기JeongHun Byeon
 
오픈소스 생태계 일원으로서의 개발자(자막 버전)
오픈소스 생태계 일원으로서의 개발자(자막 버전)오픈소스 생태계 일원으로서의 개발자(자막 버전)
오픈소스 생태계 일원으로서의 개발자(자막 버전)JeongHun Byeon
 
오픈소스 생태계 일원으로서의 개발자
오픈소스 생태계 일원으로서의 개발자오픈소스 생태계 일원으로서의 개발자
오픈소스 생태계 일원으로서의 개발자JeongHun Byeon
 
Node.js API 서버 성능 개선기
Node.js API 서버 성능 개선기Node.js API 서버 성능 개선기
Node.js API 서버 성능 개선기JeongHun Byeon
 
더 나은 개발자 되기
더 나은 개발자 되기더 나은 개발자 되기
더 나은 개발자 되기JeongHun Byeon
 
블로그 주도 개발
블로그 주도 개발블로그 주도 개발
블로그 주도 개발JeongHun Byeon
 
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나JeongHun Byeon
 
Node.js 현재와 미래
Node.js 현재와 미래Node.js 현재와 미래
Node.js 현재와 미래JeongHun Byeon
 
Nodejs Production 적용기
Nodejs Production 적용기Nodejs Production 적용기
Nodejs Production 적용기JeongHun Byeon
 
Sublime Text tips & trikcs
Sublime Text tips & trikcsSublime Text tips & trikcs
Sublime Text tips & trikcsJeongHun Byeon
 

Más de JeongHun Byeon (20)

당근 개발자 플랫폼은 어떤 문제를 해결하고 있는가?
당근 개발자 플랫폼은 어떤 문제를 해결하고 있는가?당근 개발자 플랫폼은 어떤 문제를 해결하고 있는가?
당근 개발자 플랫폼은 어떤 문제를 해결하고 있는가?
 
오픈소스에 기여할 때 알면 좋을 개발 프로세스
오픈소스에 기여할 때 알면 좋을 개발 프로세스오픈소스에 기여할 때 알면 좋을 개발 프로세스
오픈소스에 기여할 때 알면 좋을 개발 프로세스
 
DevOps를 가속화하는 플랫폼 엔지니어링
DevOps를 가속화하는 플랫폼 엔지니어링DevOps를 가속화하는 플랫폼 엔지니어링
DevOps를 가속화하는 플랫폼 엔지니어링
 
클라우드 시대에 맞는 사이트 신뢰성 엔지니어
클라우드 시대에 맞는 사이트 신뢰성 엔지니어클라우드 시대에 맞는 사이트 신뢰성 엔지니어
클라우드 시대에 맞는 사이트 신뢰성 엔지니어
 
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요 디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척? : GitHub Copilot, 어디까지 알아보셨나요
 
Citizen 개발기
Citizen 개발기Citizen 개발기
Citizen 개발기
 
오픈소스 뒤에 메인테이너 있어요
오픈소스 뒤에 메인테이너 있어요오픈소스 뒤에 메인테이너 있어요
오픈소스 뒤에 메인테이너 있어요
 
오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일
오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일
오픈소스에 기여할 때 해도 되는 일과 하면 안되는 일
 
Lessons from maintaining Mocha, an open source project
Lessons from maintaining Mocha, an open source projectLessons from maintaining Mocha, an open source project
Lessons from maintaining Mocha, an open source project
 
개발 관련 기술 블로그 운영하기
개발 관련 기술 블로그 운영하기개발 관련 기술 블로그 운영하기
개발 관련 기술 블로그 운영하기
 
Terraform을 이용한 Infrastructure as Code 실전 구성하기
Terraform을 이용한 Infrastructure as Code 실전 구성하기Terraform을 이용한 Infrastructure as Code 실전 구성하기
Terraform을 이용한 Infrastructure as Code 실전 구성하기
 
오픈소스 생태계 일원으로서의 개발자(자막 버전)
오픈소스 생태계 일원으로서의 개발자(자막 버전)오픈소스 생태계 일원으로서의 개발자(자막 버전)
오픈소스 생태계 일원으로서의 개발자(자막 버전)
 
오픈소스 생태계 일원으로서의 개발자
오픈소스 생태계 일원으로서의 개발자오픈소스 생태계 일원으로서의 개발자
오픈소스 생태계 일원으로서의 개발자
 
Node.js API 서버 성능 개선기
Node.js API 서버 성능 개선기Node.js API 서버 성능 개선기
Node.js API 서버 성능 개선기
 
더 나은 개발자 되기
더 나은 개발자 되기더 나은 개발자 되기
더 나은 개발자 되기
 
블로그 주도 개발
블로그 주도 개발블로그 주도 개발
블로그 주도 개발
 
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나
 
Node.js 현재와 미래
Node.js 현재와 미래Node.js 현재와 미래
Node.js 현재와 미래
 
Nodejs Production 적용기
Nodejs Production 적용기Nodejs Production 적용기
Nodejs Production 적용기
 
Sublime Text tips & trikcs
Sublime Text tips & trikcsSublime Text tips & trikcs
Sublime Text tips & trikcs
 

Spring Scala : 스프링이 스칼라를 만났을 때