Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Kotlin과 AWS와 함께라면 육군훈련소도 외롭지 않아::강성훈::AWS Summit Seoul 2018

1,694 views

Published on

Kotlin과 AWS와 함께라면 육군훈련소도 외롭지 않아::강성훈::AWS Summit Seoul 2018

Published in: Technology
  • Login to see the comments

Kotlin과 AWS와 함께라면 육군훈련소도 외롭지 않아::강성훈::AWS Summit Seoul 2018

  1. 1. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. 강성훈 DevOps / Rainist Kotlin과 AWS와 함께라면 육군훈련소도 외롭지 않아
  2. 2. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. , 6 6
  3. 3. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  4. 4. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. 국방의 의무 납세의 의무 교육의 의무 근로의 의무
  5. 5. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  6. 6. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  7. 7. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. 4주동안 못하는 것 1. 회사 소식 듣기 2. 사회 소식 듣기 3. 개발..?
  8. 8. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. 를 하려 했으나
  9. 9. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  10. 10. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. )( ) ( C ((
  11. 11. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  12. 12. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  13. 13. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. Statically typed programming language for modern multiplatform applications 100% interoperable with Java™ and Android™ Statically typed programming language for modern multiplatform applications 100% interoperable with Java™ and Android™
  14. 14. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  15. 15. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html
  16. 16. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  17. 17. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  18. 18. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  19. 19. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  20. 20. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. data class Recipient( val birthday: LocalDate, val enterDate: LocalDate, val name: String, val regiment: Int, val company: Int, val platoon: Int )
  21. 21. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. interface KATCRepository { fun getRecipients( name: String, birthday: LocalDate, enterDate: LocalDate ): Single<List<Recipient>> } interface KATCRepository { fun getRecipients( name: String, birthday: LocalDate, enterDate: LocalDate ): Single<List<Recipient>> }
  22. 22. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. class SendRecipientDataIfExists( private val katcRepository: KATCRepository, private val messageRepository: MessageRepository, private val naverNewsRepository: NaverNewsRepository, private val slackRepository: SlackRepository ) : RequestHandler<InputStream, Unit> { override fun handleRequest(input: InputStream, context: Context) = katcRepository.getRecipients(...) class SendRecipientDataIfExists( private val katcRepository: KATCRepository, private val messageRepository: MessageRepository, private val naverNewsRepository: NaverNewsRepository, private val slackRepository: SlackRepository ) : RequestHandler<InputStream, Unit> { override fun handleRequest(input: InputStream, context: Context) = katcRepository.getRecipients(...)
  23. 23. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. override fun getRecipients( name: String, birthday: LocalDate, enterDate: LocalDate ): Single<List<Recipient>> = Single.fromCallable { Network.client .newCall( Request.Builder() .url(recipientQueryUrl) .post(buildRecipientQuery(name, birthday, enterDate)) .build() ).execute() }... override fun getRecipients( name: String, birthday: LocalDate, enterDate: LocalDate ): Single<List<Recipient>> = Single.fromCallable { Network.client .newCall( Request.Builder() .url(recipientQueryUrl) .post(buildRecipientQuery(name, birthday, enterDate)) .build() ).execute() }...
  24. 24. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  25. 25. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  26. 26. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  27. 27. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  28. 28. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  29. 29. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  30. 30. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  31. 31. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  32. 32. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. build.gradle ext { mainClassName = 'io.devholic.epilogue.App' } jar { manifest { attributes 'Main-Class': "$mainClassName" } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } }
  33. 33. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. travis.yml language: java jdk: - oraclejdk8 install: - pip install --user awscli - gradle jar after_success: - make upload
  34. 34. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  35. 35. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. deploy.sh #!/usr/bin/env bash set -e if [ "$TRAVIS_BRANCH" == "master" ]; then aws lambda update-function-code --zip-file=fileb://build/libs/epilogue.jar --region=$LAMBDA_REGION --function-name=$LAMBDA_FUNCTION_NAME --query 'LastModified' fi
  36. 36. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  37. 37. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
  38. 38. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. , / , / / /
  39. 39. Q&A

×