2020년 1월 11일 토요일

iOS 13.*에 추가된 SwiftUI의 리스트와 네비게이션 사용입니다 .#2

두번째로 리스트와 네비게이션 사용하기 입니다.
아래의 예제가 상당히 재미있습니다.
기존에 스토리보드를 많이 사용하던 개발자라면 한번 테스트해 보세요.
아래의 링크에서 샘플을 받아서 StartingPoint폴더에 있는 프로젝트를 오픈 해야 합니다.
새로운 파일들이 많이 추가되어 있다. 새로 제공된 시작 프로젝트를 오픈 합니다.
Section 2: Row View 생성하기
스크린샷 2019-10-07 오후 3.08.41.png
각 랜드마크의 상세를 표시하는 row를 생성합니다.
SwiftUI템플릿을 선택해서 LandmarkRow.swift를 추가합니다.
아래와 같이 입력합니다.
import SwiftUI
struct LandmarkRow: View {
var body: some View {
HStack {
landmark.image
.resizable()
.frame(width: 50, height: 50)
Text(landmark.name)
}
}
}
struct LandmarkRow_Previews: PreviewProvider {
static var previews: some View {
LandmarkRow(landmark: landmarkData[0])
}
}
Section 3: Row Preview를 커스터마이징하기
Xcode의 canvas는 자동으로 현재 에디터의 어떤 형식도 감지하고 표시합니다.
Preview provider는 하나 또는 그 이상의 뷰들을 리턴합니다. 사이즈와 디바이스로 셋팅된 옵션과 함께 합니다.
import SwiftUI
struct LandmarkRow: View {
var body: some View {
HStack {
landmark.image
.resizable()
.frame(width: 50, height: 50)
Text(landmark.name)
}
}
}
struct LandmarkRow_Previews: PreviewProvider {
static var previews: some View {
Group {
LandmarkRow(landmark: landmarkData[0])
.previewLayout(.fixed(width:300, height: 70))
LandmarkRow(landmark: landmarkData[1])
.previewLayout(.fixed(width:300, height: 70))
}
.previewLayout(.fixed(width:300, height: 70))
}
}
LandmarkList라는 SwiftUI템플릿을 사용한 파일을 추가합니다. 아래와 같이 수정합니다.
import SwiftUI
struct LandmarkList: View {
var body: some View {
List {
LandmarkRow(landmarK: landmarkData[0])
LandmarkRow(landmarK: landmarkData[1])
}
}
}
struct LandmarkList_Previews: PreviewProvider {
static var previews: some View {
LandmarkList()
}
}
Section 5: 동적인 리스트 만들기
컬렉션에서 직접 로우를 생성할 수 있습니다.
아래와 같이 LandmarkList를 수정합니다.
import SwiftUI
struct LandmarkList: View {
var body: some View {
List(landmarkData, id: .id) { landmark in
LandmarkRow(landmark: landmark)
}
}
}
struct LandmarkList_Previews: PreviewProvider {
static var previews: some View {
LandmarkList()
}
}
Models폴더에 있는 Landmark.swift를 살펴봅니다.
아래와 같이 id:을 삭제하고 코드를 수정합니다.
import SwiftUI
struct LandmarkList: View {
var body: some View {
List(landmarkData) { landmark in
LandmarkRow(landmark: landmark)
}
}
}
struct LandmarkList_Previews: PreviewProvider {
static var previews: some View {
LandmarkList()
}
}
실행하면 아직은 상세화면만 출력됩니다.
스크린샷 2019-10-07 오전 11.52.40.png
Section 6: 리스트와 상세 사이에 네비게이션
import SwiftUI
struct LandmarkList: View {
var body: some View {
NavigationView {
List(landmarkData) { landmark in
NavigationLink(destination: LandmarkDetail()) {
LandmarkRow(landmark: landmark)
}
}
.navigationBarTitle(Text("Landmarks"))
}
}
}
struct LandmarkList_Previews: PreviewProvider {
static var previews: some View {
LandmarkList()
}
}
Section 7: Child View로 데이터 전달하기
LandmarkDetail 뷰는 상세 정보가 하드 코딩되어 있습니다.
데이터를 넘겨받도록 합니다.
LandMarkDetail을 아래와 같이 수정합니다.
import SwiftUI
struct LandmarkDetail: View {
var landmark: Landmark
var body: some View {
    VStack {
        MapView(coordinate: landmark.locationCoordinate)
            .frame(height: 300)

        CircleImage(image: landmark.image)
            .offset(x: 0, y: -130)
            .padding(.bottom, -130)

        VStack(alignment: .leading) {
            Text(landmark.name)
                .font(.title)

            HStack(alignment: .top) {
                Text(landmark.park)
                    .font(.subheadline)
                Spacer()
                Text(landmark.state)
                    .font(.subheadline)
            }
        }
        .padding()

        Spacer()
    }
    .navigationBarTitle(Text(verbatim: landmark.name), displayMode: .inline)
}
}
struct LandmarkDetail_Previews: PreviewProvider {
static var previews: some View {
LandmarkDetail(landmark: landmarkData[0])
}
}
LandmarkRow는 아래와 같이 수정합니다.
import SwiftUI
struct LandmarkRow: View {
var landmark: Landmark
var body: some View {
    HStack {
        landmark.image
            .resizable()
            .frame(width: 50, height: 50)
        Text(verbatim: landmark.name)
        Spacer()
    }
}
}
struct LandmarkRow_Previews: PreviewProvider {
static var previews: some View {
Group {
LandmarkRow(landmark: landmarkData[0])
LandmarkRow(landmark: landmarkData[1])
}
.previewLayout(.fixed(width: 300, height: 70))
}
}
Models폴더에 있는 Landmark는 프로토콜만 추가합니다.
import SwiftUI
import CoreLocation
struct Landmark: Hashable, Codable, Identifiable {
var id: Int
var name: String
fileprivate var imageName: String
fileprivate var coordinates: Coordinates
var state: String
var park: String
var category: Category
LandmarkList는 아래와 같이 수정합니다.
import SwiftUI
struct LandmarkList: View {
var body: some View {
NavigationView {
List(landmarkData) { landmark in
NavigationLink(destination: LandmarkDetail(landmark: landmark)) {
LandmarkRow(landmark: landmark)
}
}
.navigationBarTitle(Text("Landmarks"))
}
}
}
struct LandmarkList_Previews: PreviewProvider {
static var previews: some View {
ForEach(["iPhone SE", "iPhone XS Max"], id: .self) { deviceName in
LandmarkList()
.previewDevice(PreviewDevice(rawValue: deviceName))
.previewDisplayName(deviceName)
}
}
}
진입점 역할을 수행하는 코드는 SceneDelegate에 있습니다.
import UIKit
import SwiftUI
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
    // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
    // If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
    // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).

    // Use a UIHostingController as window root view controller
    if let windowScene = scene as? UIWindowScene {
        let window = UIWindow(windowScene: windowScene)
        window.rootViewController = UIHostingController(rootView: LandmarkList())
        self.window = window
        window.makeKeyAndVisible()
    }
}
실행하면 다음과 같이 네비게이션이 되고 상세 화면으로 전환할 수 있습니다.

스크린샷 2019-10-07 오후 3.00.29.png
스크린샷 2019-10-07 오후 3.00.36.png

iOS 13.*에 추가된 SwiftUI 연습입니다. #1

다른 코드들은 큰 변화가 없는데 SwiftUI가 상당히 좋아 보입니다. 아직은 사용하려면 연습이 필요하고 익숙해지는 시간이 필요하지만 꽤 잘 만들어져있습니다.
선언적인 UI구성과 미리보기등이 가능합니다.
스크린샷 2019-10-07 오전 11.09.13.png
스크린샷 2019-10-07 오전 11.10.59.png
이런 앱을 직접 만들어볼 수 있는 튜토리얼 사이트가 무척 재미있게 제공됩니다.
Landmarks라는 싱글뷰 앱을 SwiftUI기반으로 만든다. 미리 리소스를 다운로드하면 됩니다.
기본적으로 추가된 ContentView에는 2개의 구조체가 있습니다. 미리보기는 macOS 10.15에서 지원됩니다.
import SwiftUI
struct ContentView: View {
var body: some View {
Text("Hello World")
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
그냥 실행해서 결과를 보면 Hello World가 출력됩니다.
아래와 같이 추가해서 텍스트뷰를 커스터마이징합니다.
import SwiftUI
struct ContentView: View {
var body: some View {
Text("Turtle Rock")
.font(.title)
.foregroundColor(.green)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
스택뷰를 통해 쌓기를 합니다.
struct ContentView: View {
var body: some View {
VStack {
Text("Turtle Rock")
.font(.title)
Text("Joshua Tree National Park")
}
}
}
스크린샷 2019-10-07 오전 11.26.01.png
struct ContentView: View {
var body: some View {
VStack(alignment: .leading) {
Text("Turtle Rock")
.font(.title)
HStack {
Text("Joshua Tree National Park")
.font(.subheadline)
Spacer()
Text("California")
}
    }
        
}
}
스크린샷 2019-10-07 오전 11.31.49.png
struct ContentView: View {
var body: some View {
VStack(alignment: .leading) {
Text("Turtle Rock")
.font(.title)
HStack {
Text("Joshua Tree National Park")
.font(.subheadline)
Spacer()
Text("California")
}
    }
    .padding()       //약간의 여유를 위해 추가합니다. 
}
}
이미지 커스터마이징하기
다운로드 받은 turtlerock.jpg를 에셋에 추가합니다.
프로젝트에 새로운 파일을 추가하면서 Swift UI템플릿을 사용합니다. CircleImage라는 이름으로 추가합니다.
스크린샷 2019-10-07 오전 11.38.30.png
아래와 같이 코드를 수정합니다.
import SwiftUI
struct CircleImage: View {
var body: some View {
Image("turtlerock")
.clipShape(Circle())
.overlay(
Circle().stroke(Color.gray, lineWidth: 4))
.shadow(radius: 10)
}
}
struct CircleImage_Previews: PreviewProvider {
static var previews: some View {
CircleImage()
}
}
UIKit과 SwiftUI를 같이 사용할 수 있습니다.
새로운 파일을 추가하면서 Swift UI템플릿을 선택합니다. MapView라는 이름을 입력합니다.
아래와 같이 코드가 추가됩니다. 생성된 코드를 아래와 같이 수정합니다.
import MapKit
struct MapView: UIViewRepresentable {
func makeUIView(context: Context) -> MKMapView {
MKMapView(frame: .zero)
}
func updateUIView(_ view: MKMapView, context: Context) {
    let coordinate = CLLocationCoordinate2D(
        latitude: 34.011286, longitude: -116.166868)
    let span = MKCoordinateSpan(latitudeDelta: 2.0, longitudeDelta: 2.0)
    let region = MKCoordinateRegion(center: coordinate, span: span)
    view.setRegion(region, animated: true)
}
}
struct MapView_Previews: PreviewProvider {
static var previews: some View {
MapView()
}
}
Section 6: 상세뷰를 조합하기
ContentView파일을 아래와 같이 수정하면 병합된 뷰를 볼 수 있습니다.
//
// ContentView.swift
// Landmarks
//
// Created by JONG DEOK KIM on 07/10/2019.
// Copyright © 2019 multicampus. All rights reserved.
//
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
MapView()
.frame(height:300)
        CircleImage()
            .offset(y: -130)
            .padding(.bottom, -130)
        
        VStack(alignment: .leading) {
            Text("Turtle Rock")
                .font(.title)
            HStack {
                Text("Joshua Tree National Park")
                    .font(.subheadline)
                Spacer()
                Text("California")
                    .font(.subheadline)
            }
        }
        .padding()
            
        Spacer()
    }
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
스크린샷 2019-10-07 오전 11.52.40.png
아직은 저도 연습을 하고 있는데 재미있는 기술입니다. ^^

걷는 사람 하정우 독서 후기입니다.

저도 가능하면 하루에 1만2천보를 걸으려고 합니다. 작년에 다이어트를 한 이후에 1년 평균을 내보니 약 1만3천보를 걸었습니다. 요요현상이 나타나지 않는 것을 보니 현미와 채식도 중요하지만 걷는 행위도 매우 중요한 것 같습니다. 몸무게 84키로에서 73키로까지 줄이고 1년동안 유지하고 있습니다.
작년 9월에 애플와치3를 구매해서 1년을 사용하고 있습니다. 애플와치에서 평균을 내보니 하루 평균 1만3천보 달성한 것을 확인할 수 있습니다. 운동을 해야겠다는 결심이 했다면 하정우가 핏빗을 사용한 것 처럼 저는 애플와치를 착용해서 측정을 해 보시길 권하고 싶습니다. 측정하고 기록해야 개선할 수 있습니다. ^^ 아래가 제가 달성한 걷기 통계 입니다.
IMG_0498.png
목차는 다음과 같습니다.
1부 하루 3만보, 가끔은 10만보
2부 먹다 걷다 웃다
3부 사람, 걸으면서 방황하는 존재
마포에서 강남까지 편도로 하루 3만보를 걷는다는 것을 읽고 무척 놀랐습니다. 저도 많이 걷는다고 생각했는데 거의 3배를 걸어다니고 하와이를 가면 최소 4만보에서 10만보를 걸었다고 하니 사람의 한계에 대해 깊이 생각하게 됩니다. ㅎㅎ
눈에 띄는 문구들을 필사해 봅니다.
내 갈 길을 스스로 선택해서 걷는 것, 내 보폭을 알고 무리하지 않는 것, 내 숨으로 걷는 것, 걷기에서 잊지 말아야 할 것은 묘하게도 인생과 이토록 닮았다.
나는 촬영을 앞두고 "급다이어트"를 해야 하는 경우, 절대 먹지 말아야 할 금지식만 몇 개 정해놓고 평소처럼 먹고 계속 걷는다. 햄버거, 탄산음료, 설탕과 소금이 과하게 들어간 음식 - 장담하는데 딱 이 메뉴만 식단에서 걷어내고 꾸준히 걷기만 해도 확실히 살이 빠진다. ==> 저는 맥주가 문제 입니다. ㅎㅎ 맥주와 과자만 줄여도 될 것 같습니다.
"도대체 누가 텔리비젼을 앉아서 봐?"
당연히 "제뛰"를 하며 보는 게 원칙이다. 이 역시 우리 걷기 모임 멤버들이 쓰는 용어로, "제자리뛰기"를 말한다. 우리의 구호는 또 있다. "비상구만이 살 길이다"
도저히 나가서 걸을 수 없을 것만 같은 날, 혹은 걷다가 체력이 달려서 집으로 당장 돌아가고 싶었던 날, 그런 순간들을 견디게 만든 것은 결국 걷기를 다 마치고 돌아올 때의 성취감이었다는 것을 기억해 낸다.
하와이에서 아직 해가 남아 있을 때 걸으면 노을이 내 머리 위로 가만히 흘러간다.
걷기의 매력 중 하나는 날씨와 계절의 변화를 피부로 느낄 수 있다는 점이다. 햇빛의 양이 적당해서 아주 아름답고 부드러운 매직 아워의 하늘 ==> 이 책의 단점은 다 읽고 나면 하와이를 가보고 싶다는 생각이 너무 많이 든다는 겁니다. ㅎㅎ
내가 지키는 루틴은 다음과 같다.
아침에 일어나자마자 일단 러닝머신 위에 올라가 걸으며 몸을 푼다.
아침식사는 반드시 챙겨먹는다.
작업실이나 영화사로 출근하는 길엔 별일이 없는 한 걷는다. ==> 저도 아침에 일어나면 무조건 스트레칭을 20분 합니다. 강의가 있어서 출근하는 날에는 삼성역에서 내려서 천천히 선릉역까지 걸어갑니다. 약 15분 정도 걸어서 도착하면 아침이 무척 상쾌합니다. 저녁에도 별일 없으면 커뮤니티에 있는 헬쓰장에서 걷고, 자전거를 타고 합니다. 루틴이 생기면 삶이 좀 더 단순해지고 건강해 집니다.
우리들만의 독서 모임에서 그간 읽은 책들의 리스트는 다음과 같다. 다비드 르 보르통의 "걷기 예찬", 구가야 아키라의 "최고의 휴식", 일자 샌트의 "센서티브", 마이클 해리스의 "잠시 혼자 있겠습니다.", 토니 포터의 "맨박스", 조훈현의 "조훈현, 고수의 생각법", 다다 후미아키의 "말의 한수", 이기주의 "말의 품격"등이다.
책을 보니 레오나르도 다빈치, 아인슈타인, 스필버그 등도 ADHD성향이 있었다고 한다.
그러나 한편으로 우리는 누구나 ADHD 성향을 갖고 있는지도 모른다는 생각도 들었다. 가만있기보다는 자꾸만 움직이고 싶고, 자신의 감정을 상대가 알아채지 못할까봐 넘치게 표현하고, 한 가지에만 진득하게 집중하지 못하는 성질, 이것은 가장 어린아이 다운 본능이기도 하다.
새로운 도시에 갔을 때 내 두 다리로 지도를 만들어나가는 이 작업은 내게 꽤 중요하다. "베를린"을 촬영할 때도 나는 일부러 숙소를 호텔이 아닌 브란덴부르크 광장 옆의 일반 주택으로 정해달라고 부탁했다. ==> 저도 여행을 가면 시내 중심지에서 걷기 좋은 것을 얻어서 많이 걸어다닙니다. 평균 하루에 3만보 정도는 걸었던 것 같습니다. 그래야 밤에 더 곤하게 잠을 잘 수 있습니다.
티베트어로 "인간"은 "걷는 존재" 혹은 "걸으면서 방황하는 존재"라는 의미라고 한다. 나는 기도한다. 내가 앞으로도 계속 걸어나가는 사람이기를. 어떤 상황에서도 한 발 더 내딘는 것을 포기하지 않는 사람이기를.
이 책을 다 읽고 나면 하와이로 날아가서 걸어보고 싶다는 생각이 많이 듭니다. 한번 도전해 보고 싶어졌습니다. 내 두 다리가 멀쩡하다면 끊임 없이 걷고 내 삶을 쇄신 했으면 좋겠습니다.

IMG_0635.jpeg

IMG_0636.jpeg

IMG_0637.jpeg

IMG_0638.jpeg

IMG_0639.jpeg

IMG_0640.jpeg

IMG_0641.jpeg

IMG_0642.jpeg

IMG_0643.jpeg

IMG_0644.jpeg

IMG_0645.jpeg

IMG_0646.jpeg
IMG_0647.jpeg

파이썬 기반의 머신러닝, 딥러닝을 공부할 때 보시면 좋은 책들과 순서입니다.

연초에 시간에 많아서 조금씩 자료를 수집하고 공부하고 있습니다. 매년 설날과 추석을 전후로 2주에서 3주정도 시간이 되어서 조금씩 공부를 하고 있습니다. 목표는 2년정도(작년와 올해)를 잡아서 꾸준히 공부하는 것입니다. 아무래도 우리의 일상생활 전반에 인공지능이 성큼 다가오는 것 같습니다. 개발자라면 미리 준비하고 있어야겠죠!
저도 여러번 시행착오를 겪고 있어서 아래와 같은 순서로 접근해 보시면 좋을 것 같습니다.
첫번째: 파이썬 문법을 알고 있어야 합니다. 책이 없다면 점프투파이썬같은 온라인 컨텐츠를 참고하면 됩니다.
두번째: 두잇 판다스 입문과 같은 책이 필요합니다. 판다스는 파이썬에 있어서 엑셀과 같은 도구입니다. 데이터를 로딩, 가공, 결측치 변경과 같은 다양한 처리들을 모두 수행할 수 있습니다.
스크린샷 2019-02-01 오전 10.48.13.png
세번째: 가볍게 딥러닝을 살펴볼 수 있는 텐서플로로 시작하는 딥러닝 입문 책이 있습니다. 최근에 본 책인데 CNN, DNN, RNN등을 무척 쉬운 그림과 수식없이 파이썬 코드로 보여줍니다.
스크린샷 2019-01-31 오전 10.38.24.png
네번째: 조금 더 심도 있게 공부할 때 "밑바닥부터 시작하는 딥러닝"책이 있습니다. 넘파이를 사용한 연산과 브로드캐스트, AND, NAND, OR, XOR게이트 구현, 시그모이드 함수 구현부터 시작을 합니다. 정말 쉽게 되어 있는 책입니다. 강력하게 추쳔하는 책입니다.
스크린샷 2019-02-01 오후 3.21.13.png
다섯번째: 좀 더 실무적인 예제들이 필요하시면 정말 번역이 잘되어 있는 핸즈온 머신러닝 책을 보시면 됩니다. 한권으로 머신러닝과 딥러닝을 끝낼 수 있는 끝판왕 격의 책입니다. ^^
스크린샷 2019-02-01 오후 3.21.39.png

아마존의 알렉사 인공지능 스피커 소개하는 자료와 영상입니다.

알렉사를 강의하는 강사가 있어서 몇번 옆에서 보고 테스트만 해 보았는데 무척 재미있네요. 개발 생태계가 잘 되어 있고 8만 스킬셋에 1억대가 배포되어 있네요. 애플의 시리를 참 좋아하는데 개발 생태계나 환경을 보면 시리가 참 처참해 집니다.
글로벌 기업들이 엄청난 전쟁을 하고 있다는 느낌입니다. 소비자로써 또 개발자 강사로써 각 업체들이 그리는 빅피쳐가 무척 재미었어 지고 있습니다. 공부할 꺼리는 엄청나게 늘어나네요. 선택과 집중을 할 시기입니다.
실제 가정에서 활용되는 알렉사 영상 데모입니다.
2018년 1월에 일반에게 실제 오픈된 아마존 고 영상입니다.
모두를 위한 AI 과정 영상도 있네요.
인공지능 스피커의 전세계 점유율 기사가 있어서 그림 추가합니다.
2019-04-22_13-23-16.png
DSC00107.JPG
알렉사 닷컴 파이오니어 사이트 있음
트위치 코리아
아마존이 컨텐츠 사업에 뛰어듬
어떻게 책을 읽는 방법을 바꿀수 있을까?
2007년 킨들이 나옴
고객이 쉽게 읽도록 접근
60초 만에 다운로드해서 한권 사용
4년동안 개발함
월 일정금액 내면 제한없이 읽기 가능
2016년 오아시스 나옴
2018 화이트페이퍼 4가 나옴
실패사례가 많다 fire phone
고객이 원하지 않은 스마트폰
실패를 통해서 배운다
실패와 발명은 분리할 수 없는 쌍둥이 이다
똑같은 시기에 개발된 디바이스가 에코
DSC00108.JPG
아마존 알렉사와 컨텐츠 개발
문성찬
Golden age of ai
비약적인 발전
엄청난 양의 데이터가 모였다
오픈소스 라이브러리 하드웨어가 발전
DSC00109.JPG
Amazon go
Prime Aiaws ai
DSC00111.JPG
Ambient Computing
Amazon alexa
스타트랙 영화에서 나온 아이디어임
DSC00112.JPG
사람의 대화를 통해서 즐거움을 준다
15만개의 리뷰 100만번의 청혼을 받고 있음
80개 국가
수백만 고객이 사용
DSC00114.JPG
날씨 교통 스마트홈 음악 지식검색
알렉사가 그만큼의 가치를 제공하고 있다
DSC00115.JPG
원하는 음악을 듣는 단계가 정말 복잡
알렉사 케이팝 간단하다
접근성을 높이고 비용을 낮추었다
DSC00116.JPG
지금은 VUI 시대이다
작은 스크린의 한계가 있다
두피자팀에서 알렉사 에코를 만듬
Wake Word인식
음성인식
음성합성
자연어인식
데이터 처리를 클라우드에서 하면 잇점이 있다
서비스만 업데이트하면 계속 스피커가 똑똑해진다
Always Getting Smarter
빌딩 블럭 기술들을 오픈하자
Alexa skills kit
Alexa voice service
개발자 커뮤니티
스마트홈 서비스 프로바이더들이 있다
플라이휠 마술같은 경험을 주고 있다
개발자들의 투자와 피드백으로 더 커지고 있다
알렉사스킬 킷은 8만개가 됨 놀랍다 ㅋㅋ
Alexa for bisiness
가트너에서 생산성을 위해 70프로 이상의 기업이 ai를 사용할 것이다 2021년까지
Alexa Voice device출시됨
150개 이상의 디바이스 1억개가 사용됨
Alexa smarthome
2만개 이상이 되었다
한국 고객 사례
웅진 영업 이익율이 20프로
Airmega를 제작함
실내와 외부공기를 같이 보여줌 화면 있음
필터 자동 배송 시스템 구축
단순제어늦 알렉사 복잡하는 것음 앱을 이용
리모컨 대용으로 알렉사를 사용
백본은 aws의 파스를 사용
잘하는 분야에만 집중 함
Amazon dash replenishment
3세대 drs서비스 사용
프라임 회원은 자동 배송을 받게 된다
알렉사 연동후 200프로 성장함
Alexa Connect Kit
전문 개발자가 없어서 고생을 함
쉽게 붙이는 좋은 기능을 제공함
완성된 제품이여서 쉽게 연동 가능하다
8만개 스킬 1억개 사용
낮은 에러율을 달성
Active Learning
레이블링 된 데이터
점점 퀄리티를 높여간다
Transfer Learing
사람은 쉬운데 머신러닝에도 적용하고 있다
음식점 요리 ㄷㅇ터에서 요리 렛피 데이터
비오는 날은 칼국수를 추천해준다
Context 인지
방송내의 alexa 명령 처리
Tv 가까이에 있는 알렉사가 음성을 인지함
핑거프린트를 통해 오디오 인지를 감지하도록 함
방송을 통한 음성인지를 인지함다 알렉사 광고도 미리 필거프린트를 따 놓는다
Context Carryover
내일 설악산 날씨 어때?
다음날은?
이런 대화의 히스토리를 유추해서 인지한다
가는 길은?
역시 유추해야 한다
사람에게는 쉬운데 맥락유지가 어렵다
Whisper Mode
기계에게 속삭임은 당연한 기능이 아닌데 요즘은 반영된다 아이들이 자면 속삭임을 먼저 분류해서
알렉사가 속삭임으로 반응한다
Acoustic EventvDetection
Hunches 의도 예측 기능
자러 가는 것을 유추해서 불을 끄는 것을 인지한다
Self-learning 자기 주도 학습
Automatic Equivalence Class Learning 자동 동치류 학습
스스로 학습을 해서 해결하는 능력
Natural 자연스러움
사람의 자연스러움
기계의 자연스러움 엄청난 효율과 속도를 기대
이 두가지를 섞어야 한다
Multiple Requests in One shot 복합 의도 처리 피넛버터를 한가지 아이템인지를 처리함
Play k pop and my bedroom lights
두가지 의도를 유추한다
Natural skill Interaction 자동 스킬 유추
뎅터와 시그널을 분석해서 적용한다
Alexa Prize 학계와도 많이 협업을 시도
20분의 자연스러움 대화를 할 수 있도록 참여
이것은 화성에 가는 것과 같은 도전이
좀 더 깊은 경험들이 앞으로 만들어질 것 이다
레시피를 추천하고 냉장고에 부족한 재료를 딜리버리한다 당연히 요리를 가이드해 준다
코엑스 데이트를 가이드해 준다
지동으로 예약을 해 준다
2025년까지 약 750억개의 디바이스들이 생겨난다 사람에게 가치를 주려면 계속적인 ai ml의 발전이 필요하다
트위치 코리아 이학용대표
세계 최대 라이브 스트리밍 서비스
1초에 7테라 데이터가 생성된다
포포티파이 유튜브 냇플릭스
기하급수로 늘어난다
지금은 8초만 집중한다
컨텐츠의 생애주기도 짦아짐
전세계 사람들은 매주 30억 시간을 게임에 참여
한국은 탑5에 든다
넷플렉스 다음
200만 동접
일인 크리엥터로 불리는 15만명 스트리머들이 있다
블리자드
오버워치 부신맵을 제공함
동접 6만명
스트리머들이 직접 방송
트위치 화폐 비트 지원

Azure IoT 소개 문서와 영상들입니다.

올해 5월에 참석했던 AWS 2019 서밋에서 앞으로 5년정도 지나면 개인이 약 200개의 사물 인터넷 장비를 사용할 수 있다는 발표를 들은 적이 있습니다. 지금도 개인적으로 10개 내외의 장비를 가지고 다니기 때문에 충분히 가능성이 있다고 봅니다. ^^
Azure가 지원하는 사물 인터넷에 대한 소개 자료입니다. 정리가 무척 잘 되어 있습니다.
2019-06-12_10-37-56.png
IoT란?
IoT(사물 인터넷)는 중앙 집중식 처리를 위해 내장 센서 데이터를 클라우드에 전달하는 인터넷 연결 디바이스 네트워크입니다. 이러한 센서는 휴대폰, 세탁기, 차량 또는 착용식 디바이스와 같은 일상용품에 내장될 수 있으며, 비행기, 엔진 또는 석유 굴착 장치와 같은 대형 기계와 시스템의 구성품일 수도 있습니다.
IoT가 유용한 이유는?
IoT를 사용하면 기업에서 연결된 디바이스를 통해 운영, 제품 및 고객 경험을 발전시켜 새로운 수익원을 창출하고 비용을 최소화할 수 있습니다. 일단 데이터가 수집되면 의미 있고 실행 가능한 인사이트를 얻기 위해 데이터를 분석할 수 있습니다. 제조, 운송, 소매에 이르기까지 Azure는 업계 요구에 맞게 설계된 IoT 솔루션을 통해 새로운 비즈니스 기회를 창출할 수 있습니다.
이 모듈에서 학습할 내용은 다음과 같습니다.
Azure IoT에 대한 Microsoft의 비전에 대해 알아봅니다.
Azure IoT의 정의, 작동 방법 및 빌드 방법을 살펴봅니다.
Azure IoT를 사용할 수 있는 방법을 확인합니다.
Azure IoT를 통해 디지털 전환에서 비즈니스 과제를 처리하는 방법을 알아봅니다.
IoT 솔루션
IoT(사물 인터넷) 솔루션을 사용하면 사무실 건물, 가전 제품, 차량, 엘리베이터 또는 자동 판매기와 같은 일상적인 사물에 IoT를 지원할 수 있습니다. 향상된 이러한 기술을 통해 조직에서 운영 효율성을 높이고, 더 나은 고객 경험을 제공하며, 데이터로 수익을 창출할 수 있는 기회를 개발할 수 있습니다.
IoT는 다음 세 가지 주요 영역에 걸쳐 연결된 일단의 기술로 쉽게 이해할 수 있습니다.
사물: 인터넷에 연결된 산업 장비, 디바이스 또는 센서를 포함한 물리적 "사물"입니다.
인사이트: 연결된 디바이스의 데이터 및 해당 정보를 정규화, 변환 및 분석하여 인사이트를 얻는 프로세스입니다.
작업: 사람과 머신이 데이터를 기반으로 하여 자동 또는 예측 방식으로 작업을 수행할 수 있게 하는 시스템 및 도구입니다.
IoT를 사용하여 혁신할 수 있는 산업 분야는 다음과 같습니다.
제조
운송 및 물류
에너지 및 천연 자원
농업
소매
정부
의료
금융 서비스
스마트 공간
Azure IoT 산업 솔루션으로 혁신
https://docs.microsoft.com/ko-kr/learn/modules/azure-iot-strategy-and-solutions/3-innovate-with-azure-iot-industry-solutions
(위의 링크에 Rolls-Royce에서 Azure IoT 솔루션사례가 나옵니다. 알레스카 교통국의 사례도 나옵니다.)
2019-06-12_10-43-56.png

Azure AI와 소개하는 문서와 영상입니다.

알파고 사건 이후에 AI가 우리 삶이 조금씩 영향을 끼치고 있습니다. 개발자들이 가장 싫어하는 단어가 4차 산업혁명이라는 말도 있지만 알게 모르게 성큼 우리 곁으로 인공지능이 다가오고 있습니다.
애플과 마이크로소프트같은 회사들이 장애인들에 대한 다양한 지원과 투자를 아끼지 않고 있습니다. 기업의 이런 부분은 칭찬받아 마땅한 것 같습니다. 사회적인 책임을 지는 회사들이 되어야합니다. 요즘은 개인적으로 이런 기술 기업들의 주식도 조금씩 매수를 하고 있습니다. MAGA라는 회사들이 역시 IT기술을 선도하고 있으며 향후에도 매우 유망하다고 생각합니다.
스크린샷 2019-06-11 오후 6.56.08.png
스크린샷 2019-06-11 오후 6.57.50.png
스크린샷 2019-06-11 오후 6.58.27.png
이미 전세계적으로 인지 서비스를 도입한 개발자가 120만명이 넘어가는 군요. ^^
스크린샷 2019-06-11 오후 6.59.05.png
스크린샷 2019-06-11 오후 6.59.40.png
오피스 365에 도입된 AI기능에 대한 소개입니다. 파워포인트의 화면을 제안하고 엑셀에 있는 데이터를 스스로 분석하는 기능들이 추가되고 있습니다. 엑셀이 참 대단한 플랫폼이긴 합니다. ㅋㅋ
그 다음으로 보실 수 있는 지식 마이닝 링크 입니다.
https://docs.microsoft.com/ko-kr/learn/modules/azure-artificial-intelligence/2-knowledge-mining
위의 링크에는 500만건의 계약서를 스캔해서 OCR기능을 통해 문서를 읽어들이고 200만명이 Azure Search를 사용해서 검색을 실행하도록 만든 사례를 볼 수 있습니다. 대단하네요. ㅋㅋ
스크린샷 2019-06-11 오후 7.11.16.png

보스턴 다이나믹스사의 다양한 로봇들 영상입니다.

https://www.youtube.com/watch?v=HguesVVnYk4&t=43s


다양한 영상들입니다.

작년에 방송된 신과 함께에 나온 로봇시대 어디까지 왔는가? 영상입니다.

출근과 퇴근을 할 때 매일 듣고 있는 팟빵 방송에 로봇 특집이 나와서 영상 링크를 걸어 봅니다. 기술이 하루가 다르게 발전하고 있는 것을 볼 수 있습니다. 8분과 40분에 영상들이 나옵니다.

https://www.youtube.com/watch?v=t4VoR1HQE-o&list=PLQvqXcm97CTC37Ky0BSEbXR2NDBal4Vwl&index=38&t=4589s



스크린샷 2019-07-08 오후 8.20.01.png
스크린샷 2019-07-08 오후 8.20.21.png
스크린샷 2019-07-08 오후 8.19.14.png
포드사에서 만든 마더쉽에서 내려서 배송을 하를 로봇의 홍보 영상입니다.

제 AI는 스스로 생각하고 학습한다.. 난리난 AI 에이전트 직접 확인해보니 - 영상정리해 봅니다.

  ChatGPT가 나온지 3년이 넘었습니다. ㅎㅎ 처음에는 생성형AI에서 LLM으로 시장이 변화되었습니다. 작년말부터는 에이전트의 시대라고 하고 있습니다. 저도 관련 강의를 하고 일을 하고 있지만 따라가기가 벅찰정도로 매주 새로운 소식들이 올라옵니다...