SlideShare a Scribd company logo
주니어 개발자의 배포일지
PlatformChannel & Flavor , Environment
Variables을 알아보고 빌드 세팅을 해보자
Incheon/Songdo
김마로
발표자 소개
자바(Spring) -> Flutter
모비어스
TMS (Transportation Management System) 개발자
LinkedIn
목차
1. Flavor
2. Platform-Channel
3. Environment variables
4. pipeline
5. +@ In-House Deployment
Flavor
Flavor 란?
안드로이드의 Flavor, iOS의 configuration,scheme 과 같은 기능
간단하게 표현을 한다면 하나의 프로젝트 소스를 n개의 앱으로 “분리" 시켜
준다.
앱을 왜 분리해야할까?
제일 큰 이유는
● 동일한 코드 베이스를 유지
● 개발,QA,운영(무료버전,유료버전)과
같은 환경분리(ex. Api EndPoint),
● 효율적인 개발 및 테스트
Flavor가 없었다면…..
DEV QA PROD QA PROD
DEV
APP QA
APP
PROD
APP
DEV
APP
어느게 더 안전해보이는가?
분리하지않았을때 분리했을때
Android
android/app/build.gradle
Android
AndroidManifest.xml
iOS
iOS
iOS
iOS
iOS
iOS
iOS
Platform-Channel 을 이
용하여 가지고 올 예정
iOS
+@Firebase
+@Firebase
Script
if [ "${CONFIGURATION}" == "Debug-prod" ] || [ "${CONFIGURATION}" == "Release-prod" ] ||
[ "${CONFIGURATION}" == "Profile-prod" ];
then
cp -r "${PROJECT_DIR}/Runner/firebase/prod/GoogleService-Info.plist"
"${PROJECT_DIR}/Runner/GoogleService-Info.plist"
elif [ "${CONFIGURATION}" == "Debug-qa" ] || [ "${CONFIGURATION}" == "Release-qa" ] ||
[ "${CONFIGURATION}" == "Profile-qa" ];
then
cp -r "${PROJECT_DIR}/Runner/firebase/qa/GoogleService-Info.plist"
"${PROJECT_DIR}/Runner/GoogleService-Info.plist"
elif [ "${CONFIGURATION}" == "Debug-dev" ] || [ "${CONFIGURATION}" == "Release-dev" ] ||
[ "${CONFIGURATION}" == "Profile-dev" ];
then
cp -r "${PROJECT_DIR}/Runner/firebase/dev/GoogleService-Info.plist"
"${PROJECT_DIR}/Runner/GoogleService-Info.plist"
fi
+@Firebase
Flavor 에 맞게끔
FirebaseOptions를 넣어주면 끝.
Tip
Flavor를 세팅을 하고 나면 실행시 마다 flavor를
지정해주어야 하기 때문에 main의 실행버튼을
쓸 수 없기에 터미널에서 직접 입력을 필요.
Vscode나 AndroidStudio에서 해당 부분을 간편
하게 할수 있게 세팅시 편하게 실행 가능
Platform-Channel
어…. 이건 Dart가 아닌데..?
Language doesn’t matter!
JNI
Bridging
Header
Platform
Channel
Platform-Channel 이란?
Platform-Channel
● (Binary Messaging)
● BasicMessageChannel
● MethodChannel
● EventChannel
Flutter <-> Native 통신 기능
Binary messaging
BasicMessageChannel
BasicMessageChannel
● Binary Messaging + Codec
● 비동기
MethodChannel
MethodChannel
● Method 호출/응답
● Argument 전달
● 기본 코덱설정
● 비동기
EventChannel
PubDev 의 Libraries
1. Geolocator
2. Camera
3. AudioPlayers
4. In_App_purchase
5. Battery_plus
6. …
7. …
8. …
9. …
왜 Channel 인가?
수많은 네이티브 기능들..
알림, 딥링크, 센서, 카메라, 배터리, 위치, 사운드, 커넥션, 다
른앱과 정보공유, 다른앱 실행,로컬 스토리지 등등…
플랫폼이 시간이 지날수록 추가되는
각종 신규 기능들을 어떻게 다 빠르게
지원할 수 있을까?
플랫폼 채널 데이터 유형
Flutter
● Method-Channel 로
Flavor 가져오기
● Flavor에 맞게끔 서비스환경
세팅
Android
MainActivity.kt
● getFlavor
Android
MainActivity.kt
● +@isDebuggerAttached
iOS
AppDelegate.swift
● getFlavor
iOS
AppDelegate.swift
● +@isDebuggerAttached
Flutter
● Method-Channel 로
Flavor 가져오기
● Flavor에 맞게끔 서비스환경
세팅
Flutter
1. ServiceConfig (Singleton)
Flutter
1. ServiceConfig (Singleton)
만약 더 제대로 써보고싶다면..?
- 나는 플랫폼의 네이티브 기능들을 많이 사용해야 한다.
- 모든 플랫폼에 각각 채널코드를 일일히 짜기가 너무 힘들다.
- 뭔가 편한 방법이 없을까?
비둘기
- 역사적으로 검증된 가장 오래된 통신
수단 (a.k.a 전서구)
- 우리들에게 매우 친숙함
- 수명도 긴편 (10년~20년)
Pigeon
Flutter Seoul 의 박제창님 비둘
Pigeon
Pigeon is a code generator tool to make communication between Flutter and the host platform type-
safe, easier, and faster.
Pigeon removes the necessity to manage strings across multiple platforms and languages. It also
improves efficiency over common method channel patterns. Most importantly though, it removes the
need to write custom platform channel code, since pigeon generates it for you.
Supported Platforms
Currently pigeon supports generating:
● Kotlin and Java code for Android
● Swift and Objective-C code for
iOS and macOS
● C++ code for Windows
Flutter Seoul 의 박제창님 비둘
@FlutterApi
@FlutterApi
@HostApi
Pigeon
@HostApi
- Flutter 에서 Native 호출
@FlutterApi
- Native 에서 Flutter 호출
이걸로는 부족하다
FFIgen(Foreign Function Interface generator)
(Foreign Function Interface generator)
JNIgen (Java Native Interface generator )
How it works?
+@
- method overLoading
Dart Interoperability tools
Dart Interoperability DeepDive
Environment Variable
Way to set Flutter environment variables
- .env (feat. flutter_dotenv)
- --dart-define
- --dart-define-from-file
--Dart-Define
- Dart 에서 제공하는 환경변수를 설정해주는 커맨드라인 옵션
(Compilation environment declarations)
- 예.) API end-point, logging level 등등
How to use?
- command-line 에 빌드시
--dart-define=<NAME>=<VALUE> 추가
- fromEnvironment
- hasEnvironment
Flutter 3.7.0 update
- 3.7.0 부터는 json file로 여러 값들을 넣어서
호출할수 있도록 기능을 추가
- --dart-define-from-file = <filepath>
how to use
set up your pipeline
CI/CD
- CI (Continuous Integration)
- Build, Test
- CD (Continuous Deployment)
- Deploy
다 알아야 할까?
Trigger
Stage pool job task
Android
End
task * n
ubuntu
Pipeline Flow
task
task
N * task
main-branch
pool job task
task
task
N * task
iOS
macOS task * n
Prod,Qa,Dev
Prod,Qa,Dev
.apk
.aab
.ipa
Task
- task: FlutterBuild@0
displayName: Build dev-fest-main
inputs:
target: apk
projectDirectory:
$(Build.SourcesDirectory)/dev-fest-main
buildFlavour : prod
extraArgs: >-
--release
--dart-define=SAFETY_CHECK=true
- task: FlutterBuild@0
displayName: Build dev-fest-main
inputs:
target: ipa
projectDirectory:
$(Build.SourcesDirectory)/dev-fest-main
extraArgs: >-
--release
--flavor=prod
--dart-define=SAFETY_CHECK=true
exportOptionsPlist: $(exportOptionsPlistPath)
정리
1. 앱을 분리 한다 -> Flavor
1. 네이티브 코드를 적용해야한다 -> Plaform-Channel
1. 환경변수를 세팅해야한다 -> Dart-define
1. 빌드시 extraArg 에 Flavor, dart-define 을 넣어 주고 세팅완료
Thank you
In-House Deployment
iOS In-House Distribution
- TestFlight
- Ad-Hoc
- Firebase App Distribution
- 웹을 이용한 IPA 배포 (feat.Apple Developer Enterprise Program)
App Developer Enterprise Development
- Have 100 or more employees.
- Be a legal entity. We do not accept DBAs, fictitious businesses, trade names, or
branches.
- Use the program only to create proprietary, in-house apps for internal use, and to
distribute these apps privately and securely to employees within the organization.
- Have systems in place to ensure only employees can download your internal-use
apps, and to protect membership credentials and assets.
- Participate in and pass Apple’s verification interview and continuous evaluation
process.
Unlisted App Distribution
- 2022년 부터 제공한 비공개 AppStore 배포
- 엔터프라이즈 계정이 아닌 일반 개발자 계정으로도 배포가 가능
- 배포방식은 일반 스토어 배포와 동일하게 AppStoreConnect 에 심사
를 맡기지만 추가로 Unlisted App Distribution 이라는 배포 방식을 하
겠다고 description 란에 적어줘야함
- 또 별도의 Unlisted App Distribution 신청서를 작성
Unlisted App Distribution
Thank you

More Related Content

What's hot

AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
Changje Jeong
 
Distributed tracing using open tracing &amp; jaeger 2
Distributed tracing using open tracing &amp; jaeger 2Distributed tracing using open tracing &amp; jaeger 2
Distributed tracing using open tracing &amp; jaeger 2
Chandresh Pancholi
 
FIDO Authentication: Unphishable MFA for All
FIDO Authentication: Unphishable MFA for AllFIDO Authentication: Unphishable MFA for All
FIDO Authentication: Unphishable MFA for All
FIDO Alliance
 
Identity management and single sign on - how much flexibility
Identity management and single sign on - how much flexibilityIdentity management and single sign on - how much flexibility
Identity management and single sign on - how much flexibility
Ryan Dawson
 
Secure Your Kubernetes Apps from Attacks with NGINX
Secure Your Kubernetes Apps from Attacks with NGINXSecure Your Kubernetes Apps from Attacks with NGINX
Secure Your Kubernetes Apps from Attacks with NGINX
NGINX, Inc.
 
The spring ecosystem in 50 min
The spring ecosystem in 50 minThe spring ecosystem in 50 min
The spring ecosystem in 50 min
Jeroen Sterken
 
Integrating Splunk into your Spring Applications
Integrating Splunk into your Spring ApplicationsIntegrating Splunk into your Spring Applications
Integrating Splunk into your Spring Applications
Damien Dallimore
 
Microsoft Defender for Endpoint
Microsoft Defender for EndpointMicrosoft Defender for Endpoint
Microsoft Defender for Endpoint
Cheah Eng Soon
 
The Distributed & Decentralized Cloud
The Distributed & Decentralized CloudThe Distributed & Decentralized Cloud
The Distributed & Decentralized Cloud
Margaret Dawson
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Lucas Jellema
 
Introducing the Apache Unomi Project
Introducing the Apache Unomi ProjectIntroducing the Apache Unomi Project
Introducing the Apache Unomi Project
Jahia Solutions Group
 
Schemas Beyond The Edge
Schemas Beyond The EdgeSchemas Beyond The Edge
Schemas Beyond The Edge
confluent
 
Deploying Flowable at scale in AWS
Deploying Flowable at scale in AWSDeploying Flowable at scale in AWS
Deploying Flowable at scale in AWS
Flowable
 
File systems virtualization in windows using mini filter drivers
File systems virtualization in windows using mini filter driversFile systems virtualization in windows using mini filter drivers
File systems virtualization in windows using mini filter driversMPNIKHIL
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
Hyojun Jeon
 
Siebel crm strategy and roadmap ()
Siebel crm strategy and roadmap ()Siebel crm strategy and roadmap ()
Siebel crm strategy and roadmap ()
crm2life
 
법령 온톨로지의 구축 및 검색
법령 온톨로지의 구축 및 검색법령 온톨로지의 구축 및 검색
법령 온톨로지의 구축 및 검색
Myungjin Lee
 
Real-time Analytics with Presto and Apache Pinot
Real-time Analytics with Presto and Apache PinotReal-time Analytics with Presto and Apache Pinot
Real-time Analytics with Presto and Apache Pinot
Xiang Fu
 
Akamai as Code
Akamai as CodeAkamai as Code
Time series Analytics - a deep dive into ADX Azure Data Explorer @Data Saturd...
Time series Analytics - a deep dive into ADX Azure Data Explorer @Data Saturd...Time series Analytics - a deep dive into ADX Azure Data Explorer @Data Saturd...
Time series Analytics - a deep dive into ADX Azure Data Explorer @Data Saturd...
Riccardo Zamana
 

What's hot (20)

AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
 
Distributed tracing using open tracing &amp; jaeger 2
Distributed tracing using open tracing &amp; jaeger 2Distributed tracing using open tracing &amp; jaeger 2
Distributed tracing using open tracing &amp; jaeger 2
 
FIDO Authentication: Unphishable MFA for All
FIDO Authentication: Unphishable MFA for AllFIDO Authentication: Unphishable MFA for All
FIDO Authentication: Unphishable MFA for All
 
Identity management and single sign on - how much flexibility
Identity management and single sign on - how much flexibilityIdentity management and single sign on - how much flexibility
Identity management and single sign on - how much flexibility
 
Secure Your Kubernetes Apps from Attacks with NGINX
Secure Your Kubernetes Apps from Attacks with NGINXSecure Your Kubernetes Apps from Attacks with NGINX
Secure Your Kubernetes Apps from Attacks with NGINX
 
The spring ecosystem in 50 min
The spring ecosystem in 50 minThe spring ecosystem in 50 min
The spring ecosystem in 50 min
 
Integrating Splunk into your Spring Applications
Integrating Splunk into your Spring ApplicationsIntegrating Splunk into your Spring Applications
Integrating Splunk into your Spring Applications
 
Microsoft Defender for Endpoint
Microsoft Defender for EndpointMicrosoft Defender for Endpoint
Microsoft Defender for Endpoint
 
The Distributed & Decentralized Cloud
The Distributed & Decentralized CloudThe Distributed & Decentralized Cloud
The Distributed & Decentralized Cloud
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
 
Introducing the Apache Unomi Project
Introducing the Apache Unomi ProjectIntroducing the Apache Unomi Project
Introducing the Apache Unomi Project
 
Schemas Beyond The Edge
Schemas Beyond The EdgeSchemas Beyond The Edge
Schemas Beyond The Edge
 
Deploying Flowable at scale in AWS
Deploying Flowable at scale in AWSDeploying Flowable at scale in AWS
Deploying Flowable at scale in AWS
 
File systems virtualization in windows using mini filter drivers
File systems virtualization in windows using mini filter driversFile systems virtualization in windows using mini filter drivers
File systems virtualization in windows using mini filter drivers
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
 
Siebel crm strategy and roadmap ()
Siebel crm strategy and roadmap ()Siebel crm strategy and roadmap ()
Siebel crm strategy and roadmap ()
 
법령 온톨로지의 구축 및 검색
법령 온톨로지의 구축 및 검색법령 온톨로지의 구축 및 검색
법령 온톨로지의 구축 및 검색
 
Real-time Analytics with Presto and Apache Pinot
Real-time Analytics with Presto and Apache PinotReal-time Analytics with Presto and Apache Pinot
Real-time Analytics with Presto and Apache Pinot
 
Akamai as Code
Akamai as CodeAkamai as Code
Akamai as Code
 
Time series Analytics - a deep dive into ADX Azure Data Explorer @Data Saturd...
Time series Analytics - a deep dive into ADX Azure Data Explorer @Data Saturd...Time series Analytics - a deep dive into ADX Azure Data Explorer @Data Saturd...
Time series Analytics - a deep dive into ADX Azure Data Explorer @Data Saturd...
 

Similar to 2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variable .pptx

20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging
Jongwon Han
 
Modern PHP
Modern PHPModern PHP
Modern PHP
Changwan Jun
 
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
Jaeseung Ha
 
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Nanha Park
 
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST_NHNent
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기
SeungYong Baek
 
Meetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsMeetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vs
minseok kim
 
라즈베리파이로 슬랙 봇 개발하기
라즈베리파이로 슬랙 봇 개발하기라즈베리파이로 슬랙 봇 개발하기
라즈베리파이로 슬랙 봇 개발하기
YunSeop Song
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅
NAVER D2
 
PHP Slim Framework with Angular
PHP Slim Framework with AngularPHP Slim Framework with Angular
PHP Slim Framework with Angular
JT Jintae Jung
 
LetsSwift(강민규스피커,안정민서포터).pptx
LetsSwift(강민규스피커,안정민서포터).pptxLetsSwift(강민규스피커,안정민서포터).pptx
LetsSwift(강민규스피커,안정민서포터).pptx
ssuser2601f7
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발Jinuk Kim
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
iFunFactory Inc.
 
안드로이드 플랫폼 설명
안드로이드 플랫폼 설명안드로이드 플랫폼 설명
안드로이드 플랫폼 설명
Peter YoungSik Yun
 
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
정민 안
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XpressEngine
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨
KwangSeob Jeong
 
피니엔진
피니엔진피니엔진
피니엔진
승우 백
 
[213]monitoringwithscouter 이건희
[213]monitoringwithscouter 이건희[213]monitoringwithscouter 이건희
[213]monitoringwithscouter 이건희
NAVER D2
 
[AWS Dev Day] 실습워크샵 | Amplify 와 AI 서비스를 활용한 서버리스 기반 소셜 안드로이드 앱 만들기
 [AWS Dev Day] 실습워크샵 | Amplify 와 AI 서비스를 활용한 서버리스 기반 소셜 안드로이드 앱 만들기 [AWS Dev Day] 실습워크샵 | Amplify 와 AI 서비스를 활용한 서버리스 기반 소셜 안드로이드 앱 만들기
[AWS Dev Day] 실습워크샵 | Amplify 와 AI 서비스를 활용한 서버리스 기반 소셜 안드로이드 앱 만들기
Amazon Web Services Korea
 

Similar to 2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variable .pptx (20)

20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging
 
Modern PHP
Modern PHPModern PHP
Modern PHP
 
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
 
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
 
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기
 
Meetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsMeetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vs
 
라즈베리파이로 슬랙 봇 개발하기
라즈베리파이로 슬랙 봇 개발하기라즈베리파이로 슬랙 봇 개발하기
라즈베리파이로 슬랙 봇 개발하기
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅
 
PHP Slim Framework with Angular
PHP Slim Framework with AngularPHP Slim Framework with Angular
PHP Slim Framework with Angular
 
LetsSwift(강민규스피커,안정민서포터).pptx
LetsSwift(강민규스피커,안정민서포터).pptxLetsSwift(강민규스피커,안정민서포터).pptx
LetsSwift(강민규스피커,안정민서포터).pptx
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
 
안드로이드 플랫폼 설명
안드로이드 플랫폼 설명안드로이드 플랫폼 설명
안드로이드 플랫폼 설명
 
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
20221131_레츠스위프트_2022_iOS개발에서_알아두면_좋은것들.pdf
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨
 
피니엔진
피니엔진피니엔진
피니엔진
 
[213]monitoringwithscouter 이건희
[213]monitoringwithscouter 이건희[213]monitoringwithscouter 이건희
[213]monitoringwithscouter 이건희
 
[AWS Dev Day] 실습워크샵 | Amplify 와 AI 서비스를 활용한 서버리스 기반 소셜 안드로이드 앱 만들기
 [AWS Dev Day] 실습워크샵 | Amplify 와 AI 서비스를 활용한 서버리스 기반 소셜 안드로이드 앱 만들기 [AWS Dev Day] 실습워크샵 | Amplify 와 AI 서비스를 활용한 서버리스 기반 소셜 안드로이드 앱 만들기
[AWS Dev Day] 실습워크샵 | Amplify 와 AI 서비스를 활용한 서버리스 기반 소셜 안드로이드 앱 만들기
 

2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variable .pptx