SlideShare ist ein Scribd-Unternehmen logo
1 von 91
Downloaden Sie, um offline zu lesen
0
2
4
6
8
10
12
14
16
2016-04
2016-08
2016-12
2017-04
2017-08
2017-12
2018-04
2018-08
2018-12
Android Projects
0
2
4
6
8
10
12
14
16
2016-04
2016-08
2016-12
2017-04
2017-08
2017-12
2018-04
2018-08
2018-12
Android Projects Others
0
2
4
6
8
10
12
14
16
2016-04
2016-08
2016-12
2017-04
2017-08
2017-12
2018-04
2018-08
2018-12
Android Projects Others
//	Java
public	class Article	{
private	Integer	articleId;
private	int viewCount;
private String	title;
...
public String	getTitle()	{
return	this.title;
}
public void setTitle(String	title)	{
this.title =	title;
}
@Override
public String	toString()	{	...	}
...	
}
//	Kotlin
data	class Aritcle(
var articleId:	Int?	=	null,	
var viewCount:	Int =	0,	
var title:	String	=	“”
...
)
//	Java
public	class Article	{
private	Integer	articleId;
private	int viewCount;
private String	title;
...
public String	getTitle()	{
return	this.title;
}
public void setTitle(String	title)	{
this.title =	title;
}
@Override
public String	toString()	{	...	}
...	
}
//	Kotlin
data	class Aritcle(
var articleId:	Int?	=	null,	
var viewCount:	Int =	0,	
var title:	String	=	“”
...
)
//	Java
public	class Article	{
private	Integer	articleId;
private	int viewCount;
private String	title;
...
public String	getTitle()	{
return	this.title;
}
public void setTitle(String	title)	{
this.title =	title;
}
@Override
public String	toString()	{	...	}
...	
}
getter()
setter()
//	Kotlin
data	class Aritcle(
var articleId:	Int?	=	null,	
var viewCount:	Int =	0,	
var title:	String	=	“”
...
)
//	Java
public	class Article	{
private	Integer	articleId;
private	int viewCount;
private String	title;
...
public String	getTitle()	{
return	this.title;
}
public void setTitle(String	title)	{
this.title =	title;
}
@Override
public String	toString()	{	...	}
...	
}
equals()
hashCode()
copy()
toString()
componentsN()
//	Kotlin
data	class Aritcle(
var articleId:	Int?	=	null,	
var viewCount:	Int =	0,	
var title:	String	=	“”
...
)
//	Java
public	class Article	{
private	Integer	articleId;
private	int viewCount;
private String	title;
...
public String	getTitle()	{
return	this.title;
}
public void setTitle(String	title)	{
this.title =	title;
}
@Override
public String	toString()	{	...	}
...	
}
//	Kotlin
data	class Aritcle(
var articleId:	Int?	=	null,	
var viewCount:	Int =	0,	
var title:	String	=	“”
...
)
//	Java
public	class Article	{
private	Integer	articleId;
private	int viewCount;
private String	title;
...
public String	getTitle()	{
return	this.title;
}
public void setTitle(String	title)	{
this.title =	title;
}
@Override
public String	toString()	{	...	}
...	
}
//	Java
public	class Article	{
private	Integer	articleId;
private	int viewCount;
private String	title;
...
public void setViewCount(int viewCount)	{
this.viewCount =	viewCount;
}
}
//	use	case
Integer	nullableNum =	null;
article.setViewCount(nullableNum);
//	Java
public	class Member	{
private	Integer	memberId;
private	int age;
private String	name;
public void setMemberId(Integer	memberId)	{
if(memberId ==	null)	{
//	do	something
}
this.memberId =	memberId;
}
...	
}
Integer	nullableNumber =	null;
member.setAge(nullableNumber);
//	runtime	error!!
//	Kotlin
data	class Aritcle(
var articleId:	Int?	=	null,	
var viewCount:	Int =	0,	
var title:	String	=	“”
...
)
//	use	case
var nullableNum:	Int?	=	null
article.viewcount =	nullableNum
//	Java
public	class Article	{
private	Integer	articleId;
private	int viewCount;
private String	title;
...
public void setViewCount(int viewCount)	{
this.viewCount =	viewCount;
}
}
//	use	case
Integer	nullableNum =	null;
article.setViewCount(nullableNum);
//	Java
public	class Member	{
private	Integer	memberId;
private	int age;
private String	name;
public void setMemberId(Integer	memberId)	{
if(memberId ==	null)	{
//	do	something
}
this.memberId =	memberId;
}
...	
}
Integer	nullableNumber =	null;
member.setAge(nullableNumber);
//	runtime	error!!
//	Kotlin
data	class Aritcle(
var articleId:	Int?	=	null,	
var viewCount:	Int =	0,	
var title:	String	=	“”
...
)
//	use	case
var nullableNumber:	Int?	=	null
article.viewcount =	nullableNumber
//	Java
public	class Article	{
private	Integer	articleId;
private	int viewCount;
private String	title;
...
public void setViewCount(int viewCount)	{
this.viewCount =	viewCount;
}
}
//	use	case
Integer	nullableNum =	null;
article.setViewCount(nullableNum);
//	Java
public	class Article	{
private	Integer	articleId;
private	int viewCount;
private String	title;
...
public void setViewCount(int viewCount)	{
this.viewCount =	viewCount;
}
}
Integer	nullableNum =	null;
article.setViewCount(nullableNum);
//	Kotlin
data	class Aritcle(
var articleId:	Int?	=	null,	
var viewCount:	Int =	0,	
var title:	String	=	“”
...
)
//	use	case
var nullableNum:	Int?	=	null
article.viewcount =	nullableNum
//	Java
@Getter
@Setter
public class Article	{
private	Integer	articleId;
private	int viewCount;
private String	title;
}	
//	auto-converted	kotlin
@Getter
@Setter
class Article	{
private val articleId : Int?	=	null
private val viewCount : Int =	0
private val title : String?	=	null
}
//	Java
@Getter
@Setter
public class Article	{
private	Integer	articleId;
private	int viewCount;
private String	title;
}	
//	auto-converted	kotlin
@Getter
@Setter
class Article	{
private val articleId : Int?	=	null
private val viewCount : Int =	0
private val title : String?	=	null
}	
public	getter()
public	setter()
//	Java
@Getter
@Setter
public class Article	{
private	Integer	articleId;
private	int viewCount;
private String	title;
}	
//	auto-converted	kotlin
@Getter
@Setter
class Article	{
private val articleId : Int?	=	null
private val viewCount : Int =	0
private val title : String?	=	null
}	
동작하지 않는 Annotation
//	Java
@Getter
@Setter
public class Article	{
private	Integer	articleId;
private	int viewCount;
private String	title;
}	
//	auto-converted	kotlin
@Getter
@Setter
class Article	{
private val articleId : Int?	=	null
private val viewCount : Int =	0
private val title : String?	=	null
}	
외부에서 참조 불가능한 properties
//	Java	without	Lombok
public class Article	{	
private	Integer	articleId;
private	int viewCount;
private String	title;
public Integer	getMemberId()	{	
return this.memberId;	
}	
...
}
//	Java	with	Lombok
@Data
public class Article	{
private	Integer	articleId;
private	int viewCount;
private String	title;
}
//	auto-converted	Kotlin
class Article	{	
var articleId:	Int?	=	null
var viewCount:	Int =	0
var title:	String?	=	null
override	fun	toString():	String	{
return	“Article{”
+	“articleId=“ + articleId
+	“,	viewCount=”	+ viewCount
+	“,	title=‘”	+ title
+ ‘’’.toString()	+	‘}’.toString()
}	...
}
//	Java	without	Lombok
public class Article	{	
private	Integer	articleId;
private	int viewCount;
private String	title;
public Integer	getMemberId()	{	
return this.memberId;	
}	
...
}
//	refactored	Kotlin
data	class Article	(	
var articleId:	Int?	=	null
var viewCount:	Int =	0
var title:	String	=	“”
)
//	auto-converted	Kotlin
class Article	{	
var articleId:	Int?	=	null
var viewCount:	Int =	0
var title:	String?	=	null
override	fun	toString():	String	{
return	“Article{”
+	“articleId=“ + articleId
+	“,	viewCount=”	+ viewCount
+	“,	title=‘”	+ title
+	‘’’.toString()	+	‘}’.toString()
}	...
}
@Slf4j
public	class	LogExaple {
}
//	Java
@Controller
public	class ArticleController {
@Autowired
private	ArticleService articleService;
@Autowired
private	TagService tagService;
}
@Slf4j
public	class	LogExaple {
}
//	Kotlin
@Controller
class ArticleController {
@Autowired
private	var articleService :	ArticleService
@Autowired
private	var tagService :	TagService
}
동작하지 않는 필드 주입
@Slf4j
public	class	LogExaple {
}
//	Java
@Controller
public	class ArticleController {
@Autowired
private	ArticleService articleService;
@Autowired
private	TagService tagService;
}
@Slf4j
public	class	LogExaple {
}
//	Kotlin
@Controller
class ArticleController {
@Autowired
private	var articleService :	ArticleService?	
=	null
@Autowired
private	var tagService :	TagService?	
=	null
}
@Slf4j
public	class	LogExaple {
}
//	Java
@Controller
public	class ArticleController {
@Autowired
private	ArticleService articleService;
@Autowired
private	TagService tagService;
}
@Slf4j
public	class	LogExaple {
}
//	Kotlin
@Controller
class ArticleController {
@Autowired
private	lateinit var articleService :	
ArticleService
@Autowired
private	lateinit var tagService :	TagService
}
@Slf4j
public	class	LogExaple {
}
//	Java
@Controller
public	class ArticleController {
private	final ArticleService articleService;
private	final TagService tagService;
public ArticleController(
final ArticleService articleService,
final TagService tagService)	{
this.articleService =	articleService;
this.tagService =	tagService;
}
}
@Slf4j
public	class	LogExaple {
}
//	Kotlin
@Controller
class ArticleController(
private	val articleService :	ArticleService,
private	val tagService :	TagService)	{
}
@Slf4j
public	class	LogExaple {
}
@RequestMapping(“/”)
@Controller
class SearchController {
@GetMapping
fun search(@RequestParam(required	=	true)	keyword	:	String?)	{ //	Java와 동일하게 사용
return “/result”
}
}
필수로 명시하였지만 Optional로 동작
@Slf4j
public	class	LogExaple {
}
@RequestMapping(“/”)
@Controller
class SearchController {
@GetMapping
fun search(@RequestParam keyword	:	String)	{
return “/result”
}
}
@Slf4j
public	class	LogExaple {
}
//	Java
public	class Article	{
public	static	final String	DEFAULT_THUMBNAIL
=	“..”;
...
public	static	String	thumbnail()	{
...
}
...
}
//	Kotlin
class Article	{
companion	object {
val DEFAULT_THUMBNAIL =	“..”
fun thumbnail():	String	{
...
}
}
...
}
@Slf4j
public	class	LogExaple {
}
//	Java
public	class Article	{
public	static	final String	DEFAULT_THUMBNAIL
=	“..”;
...
public	static	String	thumbnail()	{
...
}
...
}
//	Kotlin
class Article	{
companion	object {
const val DEFAULT_THUMBNAIL =	“..”
@JvmStatic
fun thumbnail():	String	{
...
}
}
...
}
@Slf4j
public	class	LogExaple {
} when (x)	{
0, 1	->	print("x	==	0	or	x	==	1")			
parseInt(s)	->	print("s	encodes	x")
isEven()	->	print("x	is	even")
in 1..10 ->	print("x	is	in	the	range")
in validNumbers ->	print("x	is	valid")
is String	->	x.startsWith("prefix")
else ->	print("otherwise")
}
@Slf4j
public	class	LogExaple {
}
//Java
if (isFromRobot(userAgent))	{
return	false;
}	else	if (isValidUser(cookie))	{
return	false;
}	else {
return	true;
}
//Kotlin
return when {
isFromRobot(userAgent)	->	false
isValidUser(cookie)	->	false
else ->	ture
}
@Slf4j
public	class	LogExaple {
}
//Kotlin
@Controller
class ArticleController {
…
@GetMapping(“/article/{articleId}”)
fun blog(model:	Model,	@PathVariable articleId :	String):	String	{
Article	article =	articleRepository.find(articleId)
model["title"]	=	article.title //model.addAttribute("title",	article.title)
return “article"
}
}
2375
2272 2259 2239
102060
96183
93578
92208
//Java
@Service
public class JavaController {
@Autowired
private JavaService javaService;
..
}
//Kotlin
@Service
class KotlinController(private val kotlinService:	KotlinService)	
{
..	
}
462 454
438
402
//Java
var imgUrl:	String	=	DEFAILT_IMG_URL
if (isMediaType())	{
imgUrl =	media.getThumbnail()
}	else if (hasMediaHolder())	{
imgUrl =	getHolder()
}	else if {
…
}
//Kotlin
val imgUrl =	when {
isMediaType()	->	media.thumbnail
hasMediaHolder()	->	getHolder()
…
else ->	DEFAILT_IMG_URL
}
232
217
205 205
//Java
List<Menu> displayedMainMenus =	MainMenus.stream()
.filter(e	->	e.getDisplayed())
.collect(Collectors.toList());
//Kotlin
val displayedMainMenus:	List<Menu>	
=	mainMenus.filter {	it.displayed }
[2019] PAYCO 매거진 서버 Kotlin 적용기
[2019] PAYCO 매거진 서버 Kotlin 적용기
[2019] PAYCO 매거진 서버 Kotlin 적용기
[2019] PAYCO 매거진 서버 Kotlin 적용기
[2019] PAYCO 매거진 서버 Kotlin 적용기
[2019] PAYCO 매거진 서버 Kotlin 적용기
[2019] PAYCO 매거진 서버 Kotlin 적용기
[2019] PAYCO 매거진 서버 Kotlin 적용기

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (19)

Singleton Pattern
Singleton PatternSingleton Pattern
Singleton Pattern
 
Singleton Pattern (Sole Object with Global Access)
Singleton Pattern (Sole Object with Global Access)Singleton Pattern (Sole Object with Global Access)
Singleton Pattern (Sole Object with Global Access)
 
안드로이드 데이터 바인딩
안드로이드 데이터 바인딩안드로이드 데이터 바인딩
안드로이드 데이터 바인딩
 
Android Architecture Components - Guy Bar on, Vonage
Android Architecture Components - Guy Bar on, VonageAndroid Architecture Components - Guy Bar on, Vonage
Android Architecture Components - Guy Bar on, Vonage
 
Design Pattern - Singleton Pattern
Design Pattern - Singleton PatternDesign Pattern - Singleton Pattern
Design Pattern - Singleton Pattern
 
Annotation Processing in Android
Annotation Processing in AndroidAnnotation Processing in Android
Annotation Processing in Android
 
Java 9
Java 9Java 9
Java 9
 
Ecom lec4 fall16_jpa
Ecom lec4 fall16_jpaEcom lec4 fall16_jpa
Ecom lec4 fall16_jpa
 
iOS Development Methodology
iOS Development MethodologyiOS Development Methodology
iOS Development Methodology
 
Data binding в массы! (1.2)
Data binding в массы! (1.2)Data binding в массы! (1.2)
Data binding в массы! (1.2)
 
Reproducible component tests using docker
Reproducible component tests using dockerReproducible component tests using docker
Reproducible component tests using docker
 
Code generation for alternative languages
Code generation for alternative languagesCode generation for alternative languages
Code generation for alternative languages
 
#살아있다 #자프링외길12년차 #코프링2개월생존기
#살아있다 #자프링외길12년차 #코프링2개월생존기#살아있다 #자프링외길12년차 #코프링2개월생존기
#살아있다 #자프링외길12년차 #코프링2개월생존기
 
Don't Make Android Bad... Again
Don't Make Android Bad... AgainDon't Make Android Bad... Again
Don't Make Android Bad... Again
 
Functional Dependency Injection in C#
Functional Dependency Injection in C#Functional Dependency Injection in C#
Functional Dependency Injection in C#
 
Anton Minashkin Dagger 2 light
Anton Minashkin Dagger 2 lightAnton Minashkin Dagger 2 light
Anton Minashkin Dagger 2 light
 
Teste de Integração com DbUnit e jIntegrity
Teste de Integração com DbUnit e jIntegrityTeste de Integração com DbUnit e jIntegrity
Teste de Integração com DbUnit e jIntegrity
 
JSUG - Google Guice by Jan Zarnikov
JSUG - Google Guice by Jan ZarnikovJSUG - Google Guice by Jan Zarnikov
JSUG - Google Guice by Jan Zarnikov
 
Patterns in Eclipse
Patterns in EclipsePatterns in Eclipse
Patterns in Eclipse
 

Ähnlich wie [2019] PAYCO 매거진 서버 Kotlin 적용기

Overview of Android Infrastructure
Overview of Android InfrastructureOverview of Android Infrastructure
Overview of Android Infrastructure
Alexey Buzdin
 
Overview of Android Infrastructure
Overview of Android InfrastructureOverview of Android Infrastructure
Overview of Android Infrastructure
C.T.Co
 

Ähnlich wie [2019] PAYCO 매거진 서버 Kotlin 적용기 (20)

Android & Kotlin - The code awakens #01
Android & Kotlin - The code awakens #01Android & Kotlin - The code awakens #01
Android & Kotlin - The code awakens #01
 
Architecure components by Paulina Szklarska
Architecure components by Paulina SzklarskaArchitecure components by Paulina Szklarska
Architecure components by Paulina Szklarska
 
3. Объекты, классы и пакеты в Java
3. Объекты, классы и пакеты в Java3. Объекты, классы и пакеты в Java
3. Объекты, классы и пакеты в Java
 
Lombokの紹介
Lombokの紹介Lombokの紹介
Lombokの紹介
 
Having Fun with Kotlin Android - DILo Surabaya
Having Fun with Kotlin Android - DILo SurabayaHaving Fun with Kotlin Android - DILo Surabaya
Having Fun with Kotlin Android - DILo Surabaya
 
CDI e as ideias pro futuro do VRaptor
CDI e as ideias pro futuro do VRaptorCDI e as ideias pro futuro do VRaptor
CDI e as ideias pro futuro do VRaptor
 
Architecture components - IT Talk
Architecture components - IT TalkArchitecture components - IT Talk
Architecture components - IT Talk
 
Architecture Components
Architecture Components Architecture Components
Architecture Components
 
Kotlin for Android - Vali Iorgu - mRready
Kotlin for Android - Vali Iorgu - mRreadyKotlin for Android - Vali Iorgu - mRready
Kotlin for Android - Vali Iorgu - mRready
 
Android Architecure Components - introduction
Android Architecure Components - introductionAndroid Architecure Components - introduction
Android Architecure Components - introduction
 
Code Generation with Groovy, Lombok, AutoValue and Immutables - Ted's Tool Time
Code Generation with Groovy, Lombok, AutoValue and Immutables - Ted's Tool TimeCode Generation with Groovy, Lombok, AutoValue and Immutables - Ted's Tool Time
Code Generation with Groovy, Lombok, AutoValue and Immutables - Ted's Tool Time
 
Why Spring <3 Kotlin
Why Spring <3 KotlinWhy Spring <3 Kotlin
Why Spring <3 Kotlin
 
Overview of Android Infrastructure
Overview of Android InfrastructureOverview of Android Infrastructure
Overview of Android Infrastructure
 
Overview of Android Infrastructure
Overview of Android InfrastructureOverview of Android Infrastructure
Overview of Android Infrastructure
 
Fall in love with Kotlin
Fall in love with KotlinFall in love with Kotlin
Fall in love with Kotlin
 
Creating a Facebook Clone - Part XIX - Transcript.pdf
Creating a Facebook Clone - Part XIX - Transcript.pdfCreating a Facebook Clone - Part XIX - Transcript.pdf
Creating a Facebook Clone - Part XIX - Transcript.pdf
 
Programming with Kotlin
Programming with KotlinProgramming with Kotlin
Programming with Kotlin
 
Как приготовить std::system_error. Юрий Ефимочев. CoreHard Spring 2019
Как приготовить std::system_error. Юрий Ефимочев. CoreHard Spring 2019Как приготовить std::system_error. Юрий Ефимочев. CoreHard Spring 2019
Как приготовить std::system_error. Юрий Ефимочев. CoreHard Spring 2019
 
Effective Java. By materials of Josch Bloch's book
Effective Java. By materials of Josch Bloch's bookEffective Java. By materials of Josch Bloch's book
Effective Java. By materials of Josch Bloch's book
 
Building Mobile Apps with Android
Building Mobile Apps with AndroidBuilding Mobile Apps with Android
Building Mobile Apps with Android
 

Mehr von NHN FORWARD

Mehr von NHN FORWARD (20)

[2019] 패션 시소러스 기반 상품 특징 분석 시스템
[2019] 패션 시소러스 기반 상품 특징 분석 시스템[2019] 패션 시소러스 기반 상품 특징 분석 시스템
[2019] 패션 시소러스 기반 상품 특징 분석 시스템
 
[2019] 스몰 스텝: Android 렛츠기릿!
[2019] 스몰 스텝: Android 렛츠기릿![2019] 스몰 스텝: Android 렛츠기릿!
[2019] 스몰 스텝: Android 렛츠기릿!
 
딥러닝, 야 너도 할 수 있어(feat. PyTorch)
딥러닝, 야 너도 할 수 있어(feat. PyTorch)딥러닝, 야 너도 할 수 있어(feat. PyTorch)
딥러닝, 야 너도 할 수 있어(feat. PyTorch)
 
NHN 베이스캠프: 신입사원들은 무엇을 배우나요?
NHN 베이스캠프: 신입사원들은 무엇을 배우나요?NHN 베이스캠프: 신입사원들은 무엇을 배우나요?
NHN 베이스캠프: 신입사원들은 무엇을 배우나요?
 
[2019] GIF 스티커 만들기: 스파인 2D를 이용한 움직이는 스티커 만들기
[2019] GIF 스티커 만들기: 스파인 2D를 이용한 움직이는 스티커 만들기[2019] GIF 스티커 만들기: 스파인 2D를 이용한 움직이는 스티커 만들기
[2019] GIF 스티커 만들기: 스파인 2D를 이용한 움직이는 스티커 만들기
 
[2019] 전기 먹는 하마의 다이어트 성공기 클라우드 데이터 센터의 에너지 절감 노력과 사례
[2019] 전기 먹는 하마의 다이어트 성공기   클라우드 데이터 센터의 에너지 절감 노력과 사례[2019] 전기 먹는 하마의 다이어트 성공기   클라우드 데이터 센터의 에너지 절감 노력과 사례
[2019] 전기 먹는 하마의 다이어트 성공기 클라우드 데이터 센터의 에너지 절감 노력과 사례
 
[2019] 스몰 스텝: Dooray!를 이용한 업무 효율화/자동화(고객문의 시스템 구축)
[2019] 스몰 스텝: Dooray!를 이용한 업무 효율화/자동화(고객문의 시스템 구축)[2019] 스몰 스텝: Dooray!를 이용한 업무 효율화/자동화(고객문의 시스템 구축)
[2019] 스몰 스텝: Dooray!를 이용한 업무 효율화/자동화(고객문의 시스템 구축)
 
[2019] 아직도 돈 주고 DB 쓰나요? for Developer
[2019] 아직도 돈 주고 DB 쓰나요? for Developer[2019] 아직도 돈 주고 DB 쓰나요? for Developer
[2019] 아직도 돈 주고 DB 쓰나요? for Developer
 
[2019] 아직도 돈 주고 DB 쓰나요 for DBA
[2019] 아직도 돈 주고 DB 쓰나요 for DBA[2019] 아직도 돈 주고 DB 쓰나요 for DBA
[2019] 아직도 돈 주고 DB 쓰나요 for DBA
 
[2019] 비주얼 브랜딩: Basic system
[2019] 비주얼 브랜딩: Basic system[2019] 비주얼 브랜딩: Basic system
[2019] 비주얼 브랜딩: Basic system
 
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
 
[2019] Java에서 Fiber를 이용하여 동시성concurrency 프로그래밍 쉽게 하기
[2019] Java에서 Fiber를 이용하여 동시성concurrency 프로그래밍 쉽게 하기[2019] Java에서 Fiber를 이용하여 동시성concurrency 프로그래밍 쉽게 하기
[2019] Java에서 Fiber를 이용하여 동시성concurrency 프로그래밍 쉽게 하기
 
[2019] 비식별 데이터로부터의 가치 창출과 수익화 사례
[2019] 비식별 데이터로부터의 가치 창출과 수익화 사례[2019] 비식별 데이터로부터의 가치 창출과 수익화 사례
[2019] 비식별 데이터로부터의 가치 창출과 수익화 사례
 
[2019] 게임 서버 대규모 부하 테스트와 모니터링 이렇게 해보자
[2019] 게임 서버 대규모 부하 테스트와 모니터링 이렇게 해보자[2019] 게임 서버 대규모 부하 테스트와 모니터링 이렇게 해보자
[2019] 게임 서버 대규모 부하 테스트와 모니터링 이렇게 해보자
 
[2019] 200만 동접 게임을 위한 MySQL 샤딩
[2019] 200만 동접 게임을 위한 MySQL 샤딩[2019] 200만 동접 게임을 위한 MySQL 샤딩
[2019] 200만 동접 게임을 위한 MySQL 샤딩
 
[2019] 언리얼 엔진을 통해 살펴보는 리플렉션과 가비지 컬렉션
[2019] 언리얼 엔진을 통해 살펴보는 리플렉션과 가비지 컬렉션[2019] 언리얼 엔진을 통해 살펴보는 리플렉션과 가비지 컬렉션
[2019] 언리얼 엔진을 통해 살펴보는 리플렉션과 가비지 컬렉션
 
[2019] 글로벌 게임 서비스 노하우
[2019] 글로벌 게임 서비스 노하우[2019] 글로벌 게임 서비스 노하우
[2019] 글로벌 게임 서비스 노하우
 
[2019] 배틀로얄 전장(map) 제작으로 알아보는 슈팅 게임 레벨 디자인
[2019] 배틀로얄 전장(map) 제작으로 알아보는 슈팅 게임 레벨 디자인[2019] 배틀로얄 전장(map) 제작으로 알아보는 슈팅 게임 레벨 디자인
[2019] 배틀로얄 전장(map) 제작으로 알아보는 슈팅 게임 레벨 디자인
 
[2019] 위치 기반 빅 데이터의 시각화와 지도
[2019] 위치 기반 빅 데이터의 시각화와 지도[2019] 위치 기반 빅 데이터의 시각화와 지도
[2019] 위치 기반 빅 데이터의 시각화와 지도
 
[2019] 웹 프레젠테이션 개발기: Dooray! 발표 모드 해부하기
[2019] 웹 프레젠테이션 개발기: Dooray! 발표 모드 해부하기[2019] 웹 프레젠테이션 개발기: Dooray! 발표 모드 해부하기
[2019] 웹 프레젠테이션 개발기: Dooray! 발표 모드 해부하기
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Kürzlich hochgeladen (20)

[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

[2019] PAYCO 매거진 서버 Kotlin 적용기