'{3D} 가상 세계' 카테고리의 다른 글

유니콘 오픈소스  (0) 2022.10.22
main.c -> main.swift  (0) 2022.05.30
File System Basics  (0) 2022.05.26
Package Dependencies  (0) 2022.04.25
Xcode shortcuts for VS code  (0) 2022.03.07

Libraries We Use

The following sets forth attribution notices for third party software that may be contained in portions of the Unicorn product. We thank the open source community for all of their contributions.

AFNetworking

                
The following software may be included in this product: AFNetworking. This software contains the following license and notice below:

Copyright (c) 2011-2016 Alamofire Software Foundation (http://alamofire.org/)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
                
            

UICKeyChainStore

                
The following software may be included in this product: UICKeyChainStore. This software contains the following license and notice below:

The MIT License

Copyright (c) 2011 kishikawa katsumi

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
                
            

Toast

                
The following software may be included in this product: Toast. This software contains the following license and notice below:

Copyright (c) 2011-2017 Charles Scalesse.

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
                
            

Reachability

                
The following software may be included in this product: Reachability. This software contains the following license and notice below:

Copyright (c) 2011-2013, Tony Million.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
                
            

GetRated

                
The following software may be included in this product: GetRated. This software contains the following license and notice below:

Copyright © 2017 Neil Morton. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.


Copyright © for portions of GetRated are held by Charcoal Design, 2011
as part of iRate.

This software is provided 'as-is', without any express or implied
warranty.  In no event will the authors be held liable for any damages
arising from the use of this software.

Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.

2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.

3. This notice may not be removed or altered from any source distribution.
                
            

MMPulseView

                
The following software may be included in this product: MMPulseView. This software contains the following license and notice below:

The MIT License (MIT)

Copyright (c) 2015 ralph li

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
                
            

firebase-ios-sdk

                
The following software may be included in this product: firebase-ios-sdk. This software contains the following license and notice below:


Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!)  The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
                
            

'{3D} 가상 세계' 카테고리의 다른 글

클레이튼 핀시아 통합  (0) 2024.01.16
main.c -> main.swift  (0) 2022.05.30
File System Basics  (0) 2022.05.26
Package Dependencies  (0) 2022.04.25
Xcode shortcuts for VS code  (0) 2022.03.07

#import <UIKit/UIKit.h>

 

#import "AppDelegate.h"

 

int main(int argc, char *argv[])

{

    @autoreleasepool {

         return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

    }

}

 

 

import UIKit

 

autoreleasepool {

    UIApplicationMain(Process.argc, Process.unsafeArgv, nil, NSStringFromClass(AppDelegate.self))

}

 

 

UIApplicationMain(CommandLine.argc,

    UnsafeMutableRawPointer(CommandLine.unsafeArgv).bindMemory(to: UnsafeMutablePointer<Int8>.self, capacity: Int(CommandLine.argc)), nil, NSStringFromClass(AppDelegate.self))

 

 

MAKING bridging header file

#import "AppDelegate.h"

 

//:configuration = Debug
SWIFT_OBJC_BRIDGING_HEADER = migrating/-Bridging-Header.h

//:configuration = Distribution
SWIFT_OBJC_BRIDGING_HEADER = migrating/-Bridging-Header.h

//:configuration = Release
SWIFT_OBJC_BRIDGING_HEADER = migrating/-Bridging-Header.h

//:completeSettings = some
SWIFT_OBJC_BRIDGING_HEADER

error: using bridging headers with module interfaces is unsupported

//:configuration = Debug
BUILD_LIBRARY_FOR_DISTRIBUTION = NO

//:configuration = Distribution
BUILD_LIBRARY_FOR_DISTRIBUTION = NO

//:configuration = Release
BUILD_LIBRARY_FOR_DISTRIBUTION = NO

//:completeSettings = some
BUILD_LIBRARY_FOR_DISTRIBUTION

 

'{3D} 가상 세계' 카테고리의 다른 글

클레이튼 핀시아 통합  (0) 2024.01.16
유니콘 오픈소스  (0) 2022.10.22
File System Basics  (0) 2022.05.26
Package Dependencies  (0) 2022.04.25
Xcode shortcuts for VS code  (0) 2022.03.07

https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html

 

File System Basics

File System Basics A file system handles the persistent storage of data files, apps, and the files associated with the operating system itself. Therefore, the file system is one of the fundamental resources used by all processes. APFS is the default file s

developer.apple.com

 

A file system handles the persistent storage of data files, apps, and the files associated with the operating system itself. Therefore, the file system is one of the fundamental resources used by all processes.

APFS is the default file system in macOS, iOS, watchOS, and tvOS. APFS replaces HFS+ as the default file system for iOS 10.3 and later, and macOS High Sierra and later. macOS additionally supports a variety of other formats, as described in Supported File Systems.

Regardless of the underlying format, all of the disks attached to the device—whether they are physically plugged in or are connected indirectly through the network—contribute space to create a single collection of files. Because the number of files can easily be many millions, the file system uses directories to create a hierarchical organization. Although the basic directory structures are similar for iOS and macOS, there are differences in the way each system organizes apps and user data.

Before you begin writing code that interacts with the file system, you should first understand a little about the organization of file system and the rules that apply to your code. Aside from the basic tenet that you cannot write files to directories for which you do not have appropriate security privileges, apps are also expected to be good citizens and put files in appropriate places. Precisely where you put files depends on the platform, but the overarching goal is to make sure that the user’s files remain easily discoverable and that the files your code uses internally are kept out of the user’s way.

About the iOS File System

The iOS file system is geared toward apps running on their own. To keep the system simple, users of iOS devices do not have direct access to the file system and apps are expected to follow this convention.

iOS Standard Directories: Where Files Reside

For security purposes, an iOS app’s interactions with the file system are limited to the directories inside the app’s sandbox directory. During installation of a new app, the installer creates a number of container directories for the app inside the sandbox directory. Each container directory has a specific role. The bundle container directory holds the app’s bundle, whereas the data container directory holds data for both the app and the user. The data container directory is further divided into a number of subdirectories that the app can use to sort and organize its data. The app may also request access to additional container directories—for example, the iCloud container—at runtime.

These container directories constitute the app’s primary view of the file system. Figure 1-1 shows a representation of the sandbox directory for an app.

Figure 1-1  An iOS app operating within its own sandbox directory

An app is generally prohibited from accessing or creating files outside its container directories. One exception to this rule is when an app uses public system interfaces to access things such as the user’s contacts or music. In those cases, the system frameworks use helper apps to handle any file-related operations needed to read from or modify the appropriate data stores.

Table 1-1 lists some of the more important subdirectories inside the sandbox directory and describes their intended usage. This table also describes any additional access restrictions for each subdirectory and points out whether the directory’s contents are backed up by iTunes and iCloud.

Table 1-1  Commonly used directories of an iOS appDirectoryDescription
AppName.app This is the app’s bundle. This directory contains the app and all of its resources.
You cannot write to this directory. To prevent tampering, the bundle directory is signed at installation time. Writing to this directory changes the signature and prevents your app from launching. You can, however, gain read-only access to any resources stored in the apps bundle. For more information, see the Resource Programming Guide
https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/LoadingResources/Introduction/Introduction.html

The contents of this directory are not backed up by iTunes or iCloud. However, iTunes does perform an initial sync of any apps purchased from the App Store.
Documents/ Use this directory to store user-generated content. The contents of this directory can be made available to the user through file sharing; therefore, this directory should only contain files that you may wish to expose to the user.
The contents of this directory are backed up by iTunes and iCloud.
Documents/Inbox Use this directory to access files that your app was asked to open by outside entities. Specifically, the Mail program places email attachments associated with your app in this directory. Document interaction controllers may also place files in it.
Your app can read and delete files in this directory but cannot create new files or write to existing files. If the user tries to edit a file in this directory, your app must silently move it out of the directory before making any changes.
The contents of this directory are backed up by iTunes and iCloud.
Library/ This is the top-level directory for any files that are not user data files. You typically put files in one of several standard subdirectories. iOS apps commonly use the Application Support and Caches subdirectories; however, you can create custom subdirectories.
Use the Library subdirectories for any files you don’t want exposed to the user. Your app should not use these directories for user data files.
The contents of the Library directory (with the exception of the Caches subdirectory) are backed up by iTunes and iCloud.
For additional information about the Library directory and its commonly used subdirectories, see The Library Directory Stores App-Specific Files.
tmp/ Use this directory to write temporary files that do not need to persist between launches of your app. Your app should remove files from this directory when they are no longer needed; however, the system may purge this directory when your app is not running.
The contents of this directory are not backed up by iTunes or iCloud.

An iOS app may create additional directories in the Documents, Library, and tmp directories. You might do this to better organize the files in those locations.

For information about how to get references to the preceding directories from your iOS app, see Locating Items in the Standard Directories. For tips on where to put files, see Where You Should Put Your App’s Files.

Where You Should Put Your App’s Files

To prevent the syncing and backup processes on iOS devices from taking a long time, be selective about where you place files. Apps that store large files can slow down the process of backing up to iTunes or iCloud. These apps can also consume a large amount of a user's available storage, which may encourage the user to delete the app or disable backup of that app's data to iCloud. With this in mind, you should store app data according to the following guidelines:

  • Put user data in Documents/. User data generally includes any files you might want to expose to the user—anything you might want the user to create, import, delete or edit. For a drawing app, user data includes any graphic files the user might create. For a text editor, it includes the text files. Video and audio apps may even include files that the user has downloaded to watch or listen to later.
  • Put app-created support files in the Library/Application support/ directory. In general, this directory includes files that the app uses to run but that should remain hidden from the user. This directory can also include data files, configuration files, templates and modified versions of resources loaded from the app bundle.
  • Remember that files in Documents/ and Application Support/ are backed up by default. You can exclude files from the backup by calling -[NSURL setResourceValue:forKey:error:] using the NSURLIsExcludedFromBackupKey key. Any file that can be re-created or downloaded must be excluded from the backup. This is particularly important for large media files. If your application downloads video or audio files, make sure they are not included in the backup.
  • Put temporary data in the tmp/ directory. Temporary data comprises any data that you do not need to persist for an extended period of time. Remember to delete those files when you are done with them so that they do not continue to consume space on the user’s device. The system will periodically purge these files when your app is not running; therefore, you cannot rely on these files persisting after your app terminates.
  • Put data cache files in the Library/Caches/ directory. Cache data can be used for any data that needs to persist longer than temporary data, but not as long as a support file. Generally speaking, the application does not require cache data to operate properly, but it can use cache data to improve performance. Examples of cache data include (but are not limited to) database cache files and transient, downloadable content. Note that the system may delete the Caches/ directory to free up disk space, so your app must be able to re-create or download these files as needed.

About the macOS File System

The macOS file system is designed for Mac computers, where both users and software have access to the file system. Users access the file system directly through the Finder, which presents a user-oriented view of the file system by hiding or renaming some files and directories. Apps access the file system using the system interfaces, which show the complete file system precisely as it appears on disk.

Domains Determine the Placement of Files

In macOS, the file system is divided into multiple domains, which separate files and resources based on their intended usage. This separation provides simplicity for the user, who only needs to worry about a specific subset of files. Arranging files by domain also lets the system apply blanket access privileges to files in that domain, preventing unauthorized users from changing files intentionally or inadvertently.

  • The user domain contains resources specific to the users who log in to the system. Although it technically encompasses all users, this domain reflects only the home directory of the current user at runtime. User home directories can reside on the computer’s boot volume (in the /Users directory) or on a network volume. Each user (regardless of privileges) has access to and control over the files in their own home directory.
  • The local domain contains resources such as apps that are local to the current computer and shared among all users of that computer. The local domain does not correspond to a single physical directory, but instead consists of several directories on the local boot (and root) volume. This domain is typically managed by the system, but users with administrative privileges may add, remove, or modify items in this domain.
  • The network domain contains resources such as apps and documents that are shared among all users of a local area network. Items in this domain are typically located on network file servers and are under the control of a network administrator.
  • The system domain contains the system software installed by Apple. The resources in the system domain are required by the system to run. Users cannot add, remove, or alter items in this domain.

Figure 1-2 shows how the local, system, and user domains map to the local file system of a macOS installation. (The network domain is not shown but is similar in many ways to the local domain.) This figure shows the visible directories that the user might see. Depending on the user’s system, other directories may be visible or some of the ones shown here may be hidden.

Figure 1-2  The local macOS file system

For information about the contents of the directories in macOS, see macOS Standard Directories: Where Files Reside. For information about the directories that macOS normally hides from the user (and why), see Hidden Files and Directories: Simplifying the User Experience.

macOS Standard Directories: Where Files Reside

Whether provided by the system or created by your app, every file has its place in macOS. Table 1-2 lists some of the top-level directories in a macOS installation and the types of content that each one contains.

Table 1-2  Commonly used directories in macOSDirectoryUsage
/Applications This directory is where you install apps intended for use by all users of a computer. The App Store installs apps purchased by the user in this directory automatically.
The Utilities subdirectory contains a subset of apps that are intended for use in managing the local system.
This directory is part of the local domain.
Library There are multiple Library directories on the system, each one associated with a different domain or specific user. Apps should use the Library directory to store app-specific (or system-specific) resources.
For detailed information about the contents of this directory and how you use it to support your apps, see The Library Directory Stores App-Specific Files.
/Network This directory contains the list of computers in the local area network.
There is no guarantee that files located on network file servers will have the /Network directory at the beginning of their path. Path names vary depending on several factors, including how the network volume was mounted. For example, if the user uses the Connect to Server command to mount a volume, paths begin with the /Volumes directory. When writing code, assume that files on any volume other than the boot volume could be located on a network-based server.
/System This directory contains the system resources required by macOS to run. These resources are provided by Apple and must not be modified.
This directory comprises the contents of the system domain.
/Users This directory contains one or more user home directories. The user home directory is where user-related files are stored. A typical user’s home directory includes the following subdirectories:
  • Applications—Contains user-specific apps.
  • Desktop—Contains the items on the user’s desktop.
  • Documents—Contains user documents and files.
  • Downloads—Contains files downloaded from the Internet.
  • Library—Contains user-specific app files (hidden in macOS 10.7 and later).
  • Movies—Contains the user’s video files.
  • Music—Contains the user’s music files.
  • Pictures—Contains the user’s photos.
  • Public—Contains content the user wants to share.
  • Sites—Contains web pages used by the user’s personal site. (Web Sharing must be enabled to display these pages.)
The preceding directories are for storing user documents and media only. Apps must not write files to the preceding directories unless explicitly directed to do so by the user. The sole exception to this rule is the Library directory, which apps may use to store data files needed to support the current user.
Of the subdirectories, only the Public directory is accessible by other users on the system. Access to the other directories is restricted by default.

Important: The files in the user’s Documents and Desktop directories should reflect only the documents that the user created and works with directly. Similarly, the media directories should contain only the user’s media files. Those directories must never be used to store data files that your app creates and manages automatically. If you need a place to store automatically generated files, use the Library directory, which is designated specifically for that purpose. For information on where to put files in the Library directory, see The Library Directory Stores App-Specific Files.

Although the directories in Table 1-2 are the ones seen by macOS users, they are not the only directories present in the file system. macOS hides many directories to prevent users from accessing files that they don’t need to.

Sandboxed macOS App File Containers

macOS apps that are sandboxed have all their Application Support, Cache, temporary directories and other related documents stored within a directory located at a system-defined path that you can obtain by calling the NSHomeDirectory function.

For more information, see App Sandbox Design Guide.

Hidden Files and Directories: Simplifying the User Experience

To simplify the experience for users, the Finder, and some specific user-facing interfaces (such as the Open and Save panels), hide many files and directories that the user should never have to use. Many of the hidden items are system- or app-specific resources that users cannot (or should not) access directly. Among the files and directories that are hidden are the following:

  • Dot directories and files. Any file or directory whose name starts with a period (.) character is hidden automatically. This convention is taken from UNIX, which used it to hide system scripts and other special types of files and directories. Two special directories in this category are the . and .. directories, which are references to the current and parent directories respectively.
  • UNIX-specific directories. The directories in this category are inherited from traditional UNIX installations. They are an important part of the system’s BSD layer but are more useful to software developers than end users. Some of the more important directories that are hidden include:
    • /bin—Contains essential command-line binaries. Typically, you execute these binaries from command-line scripts.
    • /dev—Contains essential device files, such as mount points for attached hardware.
    • /etc—Contains host-specific configuration files.
    • /sbin—Contains essential system binaries.
    • /tmp—Contains temporary files created by apps and the system.
    • /usr—Contains non-essential command-line binaries, libraries, header files, and other data.
    • /var—Contains log files and other files whose content is variable. (Log files are typically viewed using the Console app.)
  • Explicitly hidden files and directories. The Finder may hide specific files or directories that should not be accessed directly by the user. The most notable example of this is the /Volumes directory, which contains a subdirectory for each mounted disk in the local file system from the command line. (The Finder provides a different user interface for accessing local disks.) In macOS 10.7 and later, the Finder also hides the ~/Library directory—that is, the Library directory located in the user’s home directory.
  • Packages and bundles. Packages and bundles are directories that the Finder presents to the user as if they were files. Bundles hide the internal workings of executables such as apps and just present a single entity that can be moved around the file system easily. Similarly, packages allow apps to implement complex document formats consisting of multiple individual files while still presenting what appears to be a single document to the user.

Although the Finder and other system interfaces hide files and directories from the user, Cocoa interfaces such as NSFileManager do not filter out files or directories that are normally invisible to users. Thus, code that uses these interfaces theoretically has a complete view of the file system and its contents. (Of course, a process really has access to only those files and directories for which it has appropriate permissions.)

Files and Directories Can Have Alternate Names

In some situations, the Finder presents users with file or directory names that do not match the actual names as they appear in the file system. These names are known as display names and are used only by the Finder and specific system components (such as the Open and Save panels) when presenting file and directory information to the user. Display names improve the user experience by presenting the user with content in a more friendly way. For example, macOS uses display names in the following situations:

  • Localized names. The system provides localized names for many system directories, such as Applications, Library, Music, Movies. An app may similarly provide localized names for itself and for any directories it creates.
  • Filename extension hiding. The system hides filename extensions for all files by default. The user may change option, but when filename extension hiding is in effect, the characters after the last period in a filename (and the period itself) are not displayed.

Display names do not affect the actual name of the file in the file system. Code that accesses a file or directory programmatically must specify the item’s actual name when opening or manipulating the item using the file system interfaces. The only time your app should ever use display names is when displaying the name of a file or directory to the user. You can get the display name for any file or directory using the displayNameAtPath: method of NSFileManager.

Important: Your code should not allow users to modify display names directly. When you want the user to specify the name of a file, use a Save panel.

For information on how to localize the directories your app creates, see File System Advanced Programming Topics. For more information about localizing app content, see Internationalization and Localization Guide.

The Library Directory Stores App-Specific Files

The Library directory is where apps and other code modules store their custom data files. Regardless of whether you are writing code for iOS or macOS, understanding the structure of the Library directory is important. You use this directory to store data files, caches, resources, preferences, and even user data in some specific situations.

There are several Library directories throughout the system but only a few that your code should ever need to access:

  • Library in the current home directory—This is the version of the directory you use the most because it is the one that contains all user-specific files. In iOS, Library is placed inside the apps data bundle. In macOS, it is the app’s sandbox directory or the current user’s home directory (if the app is not in a sandbox).
  • /Library (macOS only)—Apps that share resources between users store those resources in this version of the Library directory. Sandboxed apps are not permitted to use this directory.
  • /System/Library (macOS only)—This directory is reserved for use by Apple.

After selecting which version of the Library directory to use, you still need to know where to store your files. The Library directory itself contains several subdirectories that subdivide app-specific content into a few well-known categories. Table 1-3 lists the most common subdirectories that you might use. Although Library directories in macOS contain many more subdirectories than the ones listed, most are used only by the system. If you want a more complete list of subdirectories, though, see macOS Library Directory Details.

Table 1-3  Key subdirectories of the Library directoryDirectoryUsage
Application Support Use this directory to store all app data files except those associated with the user’s documents. For example, you might use this directory to store app-created data files, configuration files, templates, or other fixed or modifiable resources that are managed by the app. An app might use this directory to store a modifiable copy of resources contained initially in the app’s bundle. A game might use this directory to store new levels purchased by the user and downloaded from a server.
All content in this directory should be placed in a custom subdirectory whose name is that of your app’s bundle identifier or your company.
In iOS, the contents of this directory are backed up by iTunes and iCloud.
Caches Use this directory to write any app-specific support files that your app can re-create easily. Your app is generally responsible for managing the contents of this directory and for adding and deleting files as needed.
In iOS 2.2 and later, the contents of this directory are not backed up by iTunes or iCloud. In addition, the system removes files in this directory during a full restoration of the device.
In iOS 5.0 and later, the system may delete the Caches directory on rare occasions when the system is very low on disk space. This will never occur while an app is running. However, be aware that restoring from backup is not necessarily the only condition under which the Caches directory can be erased.
Frameworks In macOS, frameworks that must be shared by multiple apps can be installed in either the local or user domain. The Frameworks directory in the system domain stores the frameworks you use to create your macOS apps.
In iOS, apps cannot install custom frameworks.
Preferences This directory contains app-specific preference files. You should not create files in this directory yourself. Instead, use the NSUserDefaults class or CFPreferences API to get and set preference values for your app.
In iOS, the contents of this directory are backed up by iTunes and iCloud.

The iCloud File Storage Container

iCloud provides a structured system for storing files for apps that make use of iCloud:

  • Apps have a primary iCloud container directory for storing their native files.  They can also access secondary iCloud container directories listed in their app entitlements.
  • Inside each container directory, files are segregated into "documents" and data.  Every file or file package located in the Documents subdirectory (or one of its subdirectories) is presented to the user (via the iCloud UI in macOS and iOS) as a separate document that can be deleted individually.   Anything not in Documents or one of its subdirectories is treated as data and shown as a single entry in the iCloud UI.

Documents that the user creates and sees in an app's user interface—for example the document browsers in Pages, Numbers, and Keynote should be stored in the Documents directory. Another example of files that might go in the Documents directory are saved games, again because they are something that an app could potentially provide some sort of method for selecting.

Anything that the app does not want the user to see or modify directly should be placed outside of the Documents directory.  Apps can create any subdirectories inside the container directory, so they can arrange private files as desired.

Apps create files and directories in iCloud container directories in exactly the same way as they create local files and directories.  And all the file’s attributes are saved, if they add extended attributes to a file, those attributes are copied to iCloud and to the user's other devices too.

iCloud containers also allow the storage of key-value pairs that can be easily accessed without having to create a document format.

How the System Identifies the Type of Content in a File

There are two primary techniques for identifying the type of content in a file:

  • Uniform Type Identifiers (UTIs)
  • Filename extensions

A uniform type identifier is a string that uniquely identifies a class of entities considered to have a “type.” UTIs provide consistent identifiers for data that all apps and services can recognize and rely upon. They are also more flexible than most other techniques because you can use them to represent any type of data, not just files and directories. Examples of UTIs include:

  • public.text—A public type that identifies text data.
  • public.jpeg—A public type that identifies JPEG image data.
  • com.apple.bundle—An Apple type that identifies a bundle directory.
  • com.apple.application-bundle—An Apple type that identifies a bundled app.

Whenever a UTI-based interface is available for specifying file types, you should prefer that interface over any others. Many macOS interfaces allow you to specify UTIs corresponding to the files or directories you want to work with. For example, in the Open panel, you can use UTIs as file filters and limit the types of files the user selects to ones your app can handle. Several AppKit classes, including NSDocument, NSPasteboard, and NSImage, support UTIs. In iOS, UTIs are used to specify pasteboard types only.

One way the system determines the UTI for a given file is by looking at its filename extension. A filename extension is a string of characters appended to the end of a file and separated from the main filename with a period. Each unique string of characters identifies a file of a specific type. For example, the .strings extension identifies a resource file with localizable string data while the .png extension identifies a file with image data in the portable network graphics format.

Note: Because period characters are valid characters in macOS and iOS filenames, only the characters after the last period in a filename are considered part of the filename extension. Everything to the left of the last period is considered part of the filename itself.

If your app defines custom file formats, you should register those formats and any associated filename extensions in your app’s Info.plist file. The CFBundleDocumentTypes key specifies the file formats that your app recognizes and is able to open. Entries for any custom file formats should include both a filename extension and UTI corresponding to the file contents. The system uses that information to direct files with the appropriate type to your app.

For more information about UTIs and how you use them, see Uniform Type Identifiers Overview. For more information about the CFBundleDocumentTypes key, see Information Property List Key Reference.

Security: Protect the Files You Create

Because all user data and system code are stored on disk somewhere, protecting the integrity of files and the file system is an important job. For that reason, there are several ways to secure content and prevent it from being stolen or damaged by other processes.

For general information about secure coding practices when working with files, see Secure Coding Guide.

Sandboxes Limit the Spread of Damage

In iOS and in macOS 10.7 and later, sandboxes prevent apps from writing to parts of the file system that they should not write to. Each sandboxed app receives one or more containers that it can write into. An app cannot write to other apps’ containers or to most directories outside of the sandbox. These restrictions limit the potential damage that can be done in the event that an app’s security is breached.

Developers writing apps for macOS 10.7 and later are encouraged to put their apps in sandboxes to enhance security. Developers of iOS apps do not have to explicitly put their app in a sandbox because the system does it for them automatically at install time.

For more information about sandboxes and the types of restrictions they impose on file system access, see Mac App Programming Guide and App Sandbox Design Guide.

Permissions and Access Control Lists Govern All Access to Files

Access to files and directories is governed by a mixture of access control lists (ACLs) and BSD permissions. Access control lists are a set of fine-grained controls that define exactly what can and cannot be done to a file or directory and by whom. With access control lists, you can grant individual users different levels of access to a given file or directory. By contrast, BSD permissions only allow you to give access to three classes of users: the file’s owner, a single group of users that you specify, and all users. See Security Overview for more information.

Note: For a file on a network server, do not make any assumptions about the ACLs and BSD permissions associated with the file. Some network file systems provide only a summarized version of this information.

Because iOS apps always run in a sandbox, the system assigns specific ACLs and permissions to files created by each app. However, macOS apps can use Identity Services to manage access control lists for files to which they have access. For information about how to use Identity Services (and the Collaboration framework), see Identity Services Programming Guide.

Files Can Be Encrypted On Disk

Both macOS and iOS provide support for encrypting files on disk:

  • iOS. An iOS app can designate files that it wants to be encrypted on disk. When the user unlocks a device containing encrypted files, the system creates a decryption key that allows the app to access its encrypted files. When the user locks the device, though, the decryption key is destroyed to prevent unauthorized access to the files.
  • macOS. Users can encrypt the contents of a volume using the Disk Utility app. (They can also encrypt just the boot volume from the Security & Privacy system preference.) The contents of an encrypted disk are available to apps only while the computer is running. When the user puts the computer to sleep or shuts it down, the decryption keys are destroyed to prevent unauthorized access to the disk’s contents.

In iOS, apps that take advantage of disk-based encryption need to be discontinue the use of encrypted files when the user locks the device. Because locking the device destroys the decryption keys, access to encrypted files is limited to when the device is unlocked. If your iOS app can run in the background while the device is locked, it must do so without access to any of its encrypted files. Because encrypted disks in macOS are always accessible while the computer is running, macOS apps do not need to do anything special to handle disk-level encryption.

For more information about working with encrypted files in iOS, see App Programming Guide for iOS.

Synchronization Ensures Robustness in Your File-Related Code

The file system is a resource shared by third-party apps and system apps. Because multiple apps are able to access files and directories at the same time, the potential arises for one app to make changes that render a second app’s view of the file system obsolete. If the second app is not prepared to handle such changes, it could enter an unknown state or even crash. In cases where your app relies on the presence of specific files, you can use synchronization interfaces to be notified of changes to those files.

File system synchronization is primarily an issue in macOS, where the user can manipulate files directly with the Finder or with any number of other apps at the same time. Fortunately, macOS provides the following interfaces to help with synchronization issues:

Files, Concurrency, and Thread Safety

Because file-related operations involve interacting with the hard disk and are therefore slow compared to most other operations, most of the file-related interfaces in iOS and macOS are designed with concurrency in mind. Several technologies incorporate asynchronous operation into their design and most others can execute safely from a dispatch queue or secondary thread. Table 1-4 lists some of the key technologies discussed in this document and whether they are safe to use from specific threads or any thread. For specific information about the capabilities of any interface, see the reference documentation for that interface.

Table 1-4  Thread safety of key classes and technologiesClass/TechnologyNotes
NSFileManager For most tasks, it is safe to use the default NSFileManager object simultaneously from multiple background threads. The only exception to this rule is tasks that interact with the file manager’s delegate. When using a file manager object with a delegate, it is recommended that you create a unique instance of the NSFileManager class and use your delegate with that instance. You should then use your unique instance from one thread at a time.
Grand Central Dispatch GCD itself is safe to use from any thread. However, you are still responsible for writing your blocks in a way that is thread safe.
NSFileHandle, NSData, Cocoa streams Most of the Foundation objects you use to read and write file data can be used from any single thread but should not be used from multiple threads simultaneously.
Open and Save panels Because they are part of your user interface, you should always present and manipulate the Open and Save panels from your app’s main thread.
POSIX routines The POSIX routines for manipulating files are generally designed to operate safely from any thread. For details, see the corresponding man pages.
NSURL and NSString The immutable objects you use to specify paths are safe to use from any thread. Because they are immutable, you can also refer to them from multiple threads simultaneously. Of course, the mutable versions of these objects should be used from only one thread at a time.
NSEnumerator and its subclasses Enumerator objects are safe to use from any single thread but should not be used from multiple threads simultaneously.

Even if you use an thread-safe interface for manipulating a file, problems can still arise when multiple threads or multiple processes attempt to act on the same file. Although there are safeguards to prevent multiple clients from modifying a file at the same time, those safeguards do not always guarantee exclusive access to the file at all times. (Nor should you attempt to prevent other processes from accessing shared files.) To make sure your code knows about changes made to shared files, use file coordinators to manage access to those files. For more information about file coordinators, see The Role of File Coordinators and Presenters

'{3D} 가상 세계' 카테고리의 다른 글

유니콘 오픈소스  (0) 2022.10.22
main.c -> main.swift  (0) 2022.05.30
Package Dependencies  (0) 2022.04.25
Xcode shortcuts for VS code  (0) 2022.03.07
Security  (0) 2022.03.06

BigInt 5.3.0

CareKit 2.0.2

DateHelper 4.5.3

Kingfisher 7.2.1

PromiseKit 7.0.0-rc1

Realm 10.8.1

RealmDatabase 11.0.3

Signals 6.1.0

SSToastMessage 1.0.0

SwiftGif 5.4.0

 

File - Package - Reset ...Cache 안되어서 Package Manager 신뢰도 하락. 모두 따로 관리하기로 함.

'{3D} 가상 세계' 카테고리의 다른 글

main.c -> main.swift  (0) 2022.05.30
File System Basics  (0) 2022.05.26
Xcode shortcuts for VS code  (0) 2022.03.07
Security  (0) 2022.03.06
fortify  (0) 2022.03.06
workbench.action.nextEditor  
]
 
workbench.action.previousEditor  
[
 
workbench.action.togglePanel  
Y
 
workbench.action.quickOpen  
O
 
workbench.action.navigateBack  
 
workbench.action.navigateForward  
 
workbench.view.explorer  
1
 
workbench.view.search  
2
 
workbench.view.scm  
3
 
workbench.view.debug  
4
 
workbench.view.extensions  
5
 
workbench.action.debug.start  
R
 
workbench.action.debug.restart  
R
 
workbench.action.debug.stop  
.
 
workbench.action.tasks.build  
B
 
workbench.action.tasks.test  
U
 
workbench.action.toggleSidebarVisibility  
0
 
cursorWordPartRight  
 
cursorWordPartRightSelect  
 
cursorWordPartStartLeft  
 
cursorWordPartStartLeftSelect  
 
deleteWordPartLeft  
Backspace
 
deleteWordPartRight  
Backspace
 
editor.fold  
 
editor.unfold  
 
editor.action.moveLinesUpAction  
[
 
editor.action.moveLinesDownAction  
]
 
cursorHome  
 
cursorEnd  
 
editor.action.changeAll  
E
 
acceptSelectedSuggestion  
Enter
 
editor.action.insertCursorAbove  
 
editor.action.insertCursorBelow  
 
workbench.action.gotoLine  
L

 

{
  "name": "xcode-keybindings",
  "displayName": "Xcode Keymap",
  "description": "Popular Xcode keybindings for VS Code.",
  "version": "1.9.0",
  "publisher": "stevemoser",
  "homepage": "https://github.com/stevemoser/vscode-xcode-keybindings/#readme",
  "engines": {
  "vscode": "^1.6.0"
  },
  "categories": [
  "Keymaps"
  ],
  "keywords": [
  "Keymap",
  "Keybinding",
  "Swift",
  "ObjC",
  "Apple",
  "Mac",
  "Xcode"
  ],
  "repository": {
  "type": "git",
  "url": "https://github.com/stevemoser/vscode-xcode-keybindings.git"
  },
  "bugs": {
  "url": "https://github.com/stevemoser/vscode-xcode-keybindings/issues"
  },
  "preview": true,
  "icon": "xcode-keyboard.png",
  "contributes": {
  "keybindings": [
  {
  "key": "cmd+e",
  "command": "editor.action.addSelectionToNextFindMatch"
  },
  {
  "key": "cmd+shift+j",
  "command": "workbench.files.action.showActiveFileInExplorer"
  },
  {
  "key": "cmd+ctrl+up",
  "command": "C_Cpp.SwitchHeaderSource"
  },
  {
  "key": "shift+cmd+]",
  "command": "workbench.action.nextEditor"
  },
  {
  "key": "shift+cmd+[",
  "command": "workbench.action.previousEditor"
  },
  {
  "key": "cmd+shift+y",
  "command": "workbench.action.togglePanel"
  },
  {
  "key": "cmd+shift+o",
  "command": "workbench.action.quickOpen"
  },
  {
  "key": "ctrl+cmd+left",
  "command": "workbench.action.navigateBack"
  },
  {
  "key": "ctrl+cmd+right",
  "command": "workbench.action.navigateForward"
  },
  {
  "key": "cmd+1",
  "command": "workbench.view.explorer"
  },
  {
  "key": "cmd+2",
  "command": "workbench.view.search"
  },
  {
  "key": "cmd+3",
  "command": "workbench.view.scm"
  },
  {
  "key": "cmd+4",
  "command": "workbench.view.debug"
  },
  {
  "key": "cmd+5",
  "command": "workbench.view.extensions"
  },
  {
  "key": "cmd+r",
  "command": "workbench.action.debug.start",
  "when": "!inDebugMode"
  },
  {
  "key": "cmd+r",
  "command": "workbench.action.debug.restart",
  "when": "inDebugMode"
  },
  {
  "key": "cmd+.",
  "command": "workbench.action.debug.stop",
  "when": "inDebugMode"
  },
  {
  "key": "cmd+b",
  "command": "workbench.action.tasks.build"
  },
  {
  "key": "cmd+u",
  "command": "workbench.action.tasks.test"
  },
  {
  "key": "cmd+0",
  "command": "workbench.action.toggleSidebarVisibility"
  },
  {
  "key": "ctrl+right",
  "command": "cursorWordPartRight",
  "when": "textInputFocus"
  },
  {
  "key": "shift+ctrl+right",
  "command": "cursorWordPartRightSelect",
  "when": "textInputFocus"
  },
  {
  "key": "ctrl+left",
  "command": "cursorWordPartStartLeft",
  "when": "textInputFocus"
  },
  {
  "key": "shift+ctrl+left",
  "command": "cursorWordPartStartLeftSelect",
  "when": "textInputFocus"
  },
  {
  "key": "ctrl+backspace",
  "command": "deleteWordPartLeft",
  "when": "textInputFocus && !editorReadonly"
  },
  {
  "key": "shift+ctrl+backspace",
  "command": "deleteWordPartRight",
  "when": "textInputFocus && !editorReadonly"
  },
  {
  "key": "alt+cmd+left",
  "command": "editor.fold"
  },
  {
  "key": "alt+cmd+right",
  "command": "editor.unfold"
  },
  {
  "key": "alt+cmd+[",
  "command": "editor.action.moveLinesUpAction"
  },
  {
  "key": "alt+cmd+]",
  "command": "editor.action.moveLinesDownAction"
  },
  {
  "key": "alt+up",
  "command": "cursorHome",
  "when": "textInputFocus"
  },
  {
  "key": "alt+down",
  "command": "cursorEnd",
  "when": "textInputFocus"
  },
  {
  "key": "ctrl+cmd+e",
  "command": "editor.action.changeAll",
  "when": "editorTextFocus && !editorReadonly"
  },
  {
  "key": "enter",
  "command": "acceptSelectedSuggestion",
  "when": "editorTextFocus && suggestWidgetVisible"
  },
  {
  "key": "ctrl+shift+up",
  "command": "editor.action.insertCursorAbove",
  "when": "editorTextFocus"
  },
  {
  "key": "ctrl+shift+down",
  "command": "editor.action.insertCursorBelow",
  "when": "editorTextFocus"
  },
  {
  "key": "cmd+l",
  "command": "workbench.action.gotoLine",
  "when": "textInputFocus"
  }
  ]
  },
  "scripts": {
  "postinstall": "node ./node_modules/vscode/bin/install"
  },
  "devDependencies": {
  "vscode": "^1.0.0"
  },
  "dependencies": {
  "jsonfile": "^5.0.0"
  }
  }

'{3D} 가상 세계' 카테고리의 다른 글

File System Basics  (0) 2022.05.26
Package Dependencies  (0) 2022.04.25
Security  (0) 2022.03.06
fortify  (0) 2022.03.06
댓글 욕 필터링 예제  (0) 2022.03.06

DEVICE SECURITY COMPROMISED

 

CheckDeviceCoordinator

    private func checkDevice() {

        let deviceChecker = CheckDeviceCoordinator(

                navigationController: navigationController,

                jailbreakChecker: DeviceChecker()

        )

 

        deviceChecker.start()

 

        addCoordinator(deviceChecker)

    }

 

 

 

class DeviceChecker: JailbreakChecker {

    var isJailbroken: Bool {

        if TARGET_IPHONE_SIMULATOR == 1 {

            return false

        }

 

        let list: [String] = [

            "/Applications/Cydia.app",

            "/Library/MobileSubstrate/MobileSubstrate.dylib",

            "/bin/bash",

            "/usr/sbin/sshd",

            "/etc/apt",

            "/private/var/lib/apt/",

        ]

 

        return !list.filter { FileManager.default.fileExists(atPath: $0) }.isEmpty

    }

}

 

 

 

 

emailListPromptMessage

 

receiveEmailSelected

@objc private func

 

 

 

 

    func didFinish(in viewController: CollectUsersEmailViewController, email: String) {

        if email.isEmpty {

            logEmailNewsletterSubscription(isSubscribed: false)

        } else {

            EmailList(listSpecificKey: Constants.Credentials.mailChimpListSpecificKey).subscribe(email: email)

            logEmailNewsletterSubscription(isSubscribed: true)

        }

    }

 

 

 

class EmailList {

    private let listSpecificKey: String

 

    init(listSpecificKey: String) {

        self.listSpecificKey = listSpecificKey

    }

 

    ///We skip email validation since MailChimp does it, and this is low volume

    func subscribe(email: String) {

        guard Features.isPromptForEmailListSubscriptionEnabled else { return }

        do {

            try Mailchimp.initialize(token: listSpecificKey, autoTagContacts: true, debugMode: false)

            var contact: Contact = Contact(emailAddress: email)

            contact.status = .subscribed

            Mailchimp.createOrUpdate(contact: contact)

        } catch {

            //TODO log to remote server

            //no-op

        }

    }

}

 

 

'{3D} 가상 세계' 카테고리의 다른 글

Package Dependencies  (0) 2022.04.25
Xcode shortcuts for VS code  (0) 2022.03.07
fortify  (0) 2022.03.06
댓글 욕 필터링 예제  (0) 2022.03.06
TrueDepth API notice 20220306 backups  (0) 2022.03.06

Command line invocation:

    /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild GCC_PRECOMPILE_PREFIX_HEADER=NO RUN_CLANG_STATIC_ANALYZER=NO SWIFT_COMPILATION_MODE=incremental

 

User defaults from command line:

    IDEPackageSupportUseBuiltinSCM = YES

 

Build settings from command line:

    GCC_PRECOMPILE_PREFIX_HEADER = NO

    RUN_CLANG_STATIC_ANALYZER = NO

    SWIFT_COMPILATION_MODE = in

 

  • sourceanalyzer -b dmfh01t_test_delete xcodebuild

 

 

 sourceanalyzer -scan -f a.fpr -b dmfh01t_test_delete xcodebuild                 

[error]: When running a scan, you cannot specify both a build session and source files as command-line arguments.

┌─(~/Downloads/DLenc_Hybrid)──────(junhoha@

 

 

sourceanalyzer -b dmfh01t_test_delete -verbose -debug -logfile build.log xcodebuild -project DLenc.xcodeproj 

sourceanalyzer -b dmfh01t_test_delete -verbose -debug -logfile build.log xcodebuild -project DLenc.xcodeproj -configuration debug 

sourceanalyzer -b dmfh01t_test_delete -verbose -debug -logfile build.log xcodebuild -project DLenc.xcodeproj -configuration debug clean

 

  • sourceanalyzer -b dmfh01t_test_delete -verbose -debug -logfile build.log xcodebuild -project DLenc.xcodeproj -configuration "debug" CODE_SIGNIDENTITY="" CODE_SIGNING_ALLOW=No CODE_SIGNING_REQUIRED=No

 

 

xcodebuild -showsdks

sourceanalyzer -b dmfh01t_test_delete -verbose -debug -logfile build.log xcodebuild -project DLenc.xcodeproj -scheme dmfh01_dev -configuration "debug" -sdk iphoneos15.2

 

 

 

 

 

 

sourceanalyzer -b dmfh01_dev -export-buildsession a.mbs

 

 

  • sourceanalyzer -b dmfh01_dev -verbose -debug -logfile build.log xcodebuild -project DLenc.xcodeproj -configuration "debug" CODE_SIGNIDENTITY="" CODE_SIGNING_ALLOW=No CODE_SIGNING_REQUIRED=No

 

 

kr.co.dlenc.dmfh01d

 

 

 

  • sourceanalyzer -b dmfh01_dev -verbose -debug -logfile build.log xcodebuild -project DLenc.xcodeproj -scheme dmfh01_dev -configuration "debug" -sdk iphoneos15.2

sourceanalyzer -b dmfh01_dev -verbose -debug -logfile build.log xcodebuild -project DLenc.xcodeproj -scheme dmfh01_dev -configuration "debug" -sdk iphoneos15.2

 

 

┌─(~/Downloads/DLenc_android_20220304)──────(junhoha@Junhos-MacBook-Pro:s001)─┐

└─(17:07:39)──> find ./ -type f -iname "*.java" > list.txt      ──(Fri,Mar04)─┘

┌─(~/Downloads/DLenc_android_20220304)──────(junhoha@Junhos-MacBook-Pro:s001)─┐

└─(17:07:48)──> cat list.txt | xargs sourceanalyzer -scan -f android_20200304.fpr

 

 

 

 

망고보드

미리캠퍼스

 

remove BG

 

 

'{3D} 가상 세계' 카테고리의 다른 글

Xcode shortcuts for VS code  (0) 2022.03.07
Security  (0) 2022.03.06
댓글 욕 필터링 예제  (0) 2022.03.06
TrueDepth API notice 20220306 backups  (0) 2022.03.06
GPL3 license notice  (0) 2022.03.06

회담 중에도 공격은 멈추지 않는 사이코 킬러 푸틴. 러시아군은 수류탄을 들고 우크라이나인은 휴대폰 카메라를 들고 있다.  푸틴 개객기 이런 발전된 시대에 능력 없는 지도자가 있으니 웃기지만, 온갖 만행이 제대로 공개 되는 점은 좋다. 퇴군 하는 하다가 공격한 푸틴도 스스로 부끄러운 것을 것이다. 공격 원자력 발전소나 일반 시민들을 일부러 공격하는 러시아 군인도 스스로 부끄럽다는 것은 것이다. 푸틴 호로객기가 자꾸 떠밀어서 어쩔 없다고 하는 놈들도 많겠지. 푸틴은 인간 쓰레기로 역사에 기록 것은 생각하니 다행이다. 역사를 기록하고 역사를 잊지 말아야 겠다.

 

 

'{3D} 가상 세계' 카테고리의 다른 글

Security  (0) 2022.03.06
fortify  (0) 2022.03.06
TrueDepth API notice 20220306 backups  (0) 2022.03.06
GPL3 license notice  (0) 2022.03.06
20220306 TT's open source license  (0) 2022.03.06

TrueDepth API
The Service also makes use of automatically collected information using the device camera and the TrueDepth API provided by Apple. The only use of this information is to track the user’s head and face so that the user can control the Service by moving their head. None of the information collected by the TrueDepth API ever leaves the user's device nor is it persistently stored on the device.

'{3D} 가상 세계' 카테고리의 다른 글

fortify  (0) 2022.03.06
댓글 욕 필터링 예제  (0) 2022.03.06
GPL3 license notice  (0) 2022.03.06
20220306 TT's open source license  (0) 2022.03.06
https://www.apple.com/privacy/  (0) 2022.03.06

We found a great game titled "hextris" for kids to play. But it is GPL3 protected. Therefore, rather than hiding it in the corner, we put the GPL3 in a prominent place and specify the related licenses. A link to be published when it is revised is also attached. We want many kids to play the game, but we want to remove the link to the game when it becomes a claim to complete source openness. All editorial sources for this game will be disclosed by Github link. In the future, we promise to pay a fair amount agreed upon at the point of revenue generation as FSF donations.


https://www.gnu.org/licenses/
https://github.com/Hextris/hextris/blob/gh-pages/LICENSE.md 
forked to https://github.com/hajunho/hextris/blob/gh-pages/LICENSE.md

GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007

Copyright © 2007 Free Software Foundation, Inc. <http://fsf.org/>

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Preamble
The GNU General Public License is a free, copyleft license for software and other kinds of works.

The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.

To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it.

For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions.

Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users.

Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free.

The precise terms and conditions for copying, distribution and modification follow.

TERMS AND CONDITIONS
0. Definitions.
“This License” refers to version 3 of the GNU General Public License.

“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.

“The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations.

To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work.

A “covered work” means either the unmodified Program or a work based on the Program.

To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.

To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.

An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.

1. Source Code.
The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work.

A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.

The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.

The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.

The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.

The Corresponding Source for a work in source code form is that same work.

2. Basic Permissions.
All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.

You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.

Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.

3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.

When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.

4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.

You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.

5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:

a) The work must carry prominent notices stating that you modified it, and giving a relevant date.
b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”.
c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.
A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.

6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:

a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.
d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.
A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.

A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.

“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.

If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).

The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.

Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.

7. Additional Terms.
“Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.

When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.

Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:

a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or authors of the material; or
e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.
All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.

If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.

Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.

8. Termination.
You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).

However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.

Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.

Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.

9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.

10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.

An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.

You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.

11. Patents.
A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”.

A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.

Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.

In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.

If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.

If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.

A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.

Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.

12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.

13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.

14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.

If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program.

Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.

15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.

<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year>  <name of author>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.

If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode:

<program>  Copyright (C) <year>  <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type 'show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type 'show c' for details.
The hypothetical commands 'show w' and 'show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an “about box”.

You should also get your employer (if you work as a programmer) or school, if any, to sign a “copyright disclaimer” for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see <http://www.gnu.org/licenses/>.

The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read <http://www.gnu.org/philosophy/why-not-lgpl.html>.

Bringing People into AR
https://developer.apple.com/videos/play/wwdc2019/607
Copyright © 2022 Apple Inc. All rights reserved.

Parental Gate
https://github.com/henrytkirk/HTKUltimateParentalGate
Apache License 2.0

Apple Visualizing Faces
https://developer.apple.com/documentation/arkit/content_anchors/tracking_and_visualizing_faces
Copyright © 2021 Apple Inc. All rights reserved.

Raywenderlich.com Xcode Test Plans for iOS by Irina Galata
https://www.raywenderlich.com/u/galata

Crashlytics for iOS
https://fabric.io/kits/ios/crashlytics
Copyright 2016 Twitter Inc.

Kingfisher
https://github.com/onevcat/Kingfisher.git
The MIT License (MIT)
Copyright (c) 2019 Wei Wang

EFCountingLabel
https://github.com/EFPrefix/EFCountingLabel
Copyright (c) 2016 eyrefree <eyrefree@eyrefree.org>
MIT License

Moya
https://github.com/Moya/Moya
Copyright 2014-present Artsy, Ash Furrow
MIT License

RxSwift
https://github.com/ReactiveX/RxSwift
Copyright 2015 Krunoslav Zaher All rights reserved.
MIT License

LocoKit
https://github.com/sobri909/LocoKit
Copyright (C) 2007 Free Software Foundation
LPGL License

SnapKit
https://github.com/SnapKit/SnapKit
Copyright 2011-Present SnapKit Team - https://github.com/SnapKit
MIT License

SwiftySound
https://github.com/adamcichy/SwiftySound
Copyright 2017 Adam Cichy
MIT License

SwiftyUserDefaults
https://github.com/sunshinejr/SwiftyUserDefaults
Copyright 2015-present Radosław Pietruszewski, Łukasz Mróz
MIT License

Swinject
https://github.com/Swinject/Swinject
Copyright 2015 Swinject Contributors
MIT License

SwiftSVG
https://github.com/mchoe/SwiftSVG
Copyright 2015 Michael Choe, Strauss LLC
MIT License

Toast-Swift
https://github.com/scalessec/Toast-Swift
Copyright 2015-2017 Charles Scalesse.
MIT License 

Google ML-Kit for iOS
https://github.com/googlecodelabs/mlkit-ios/blob/master/LICENSE
Apache License 2.0

2048
https://github.com/gabrielecirulli/2048
MIT License

Hextris
https://github.com/Hextris/hextris
Copyright (C) 2018 Logan Engstrom
GPL 3.0
Modified Source Code Link
https://github.com/hajunho/hextris

Marbles
https://github.com/neizod/marbles
MIT License

Buscayasminas
https://github.com/jalbam/buscayasminas
One's License below
This project can be used, reproduced, distributed and modified freely for any non-commercial purposes but always keeping the author's name and copyright clauses.
Other than that, just use this project as you wish but never sell it!


Privacy is a fundamental human right. At Apple, it’s also one of our core values. Your devices are important to so many parts of your life. What you share from those experiences, and who you share it with, should be up to you. We design Apple products to protect your privacy and give you control over your information. It’s not always easy. But that’s the kind of innovation we believe in.

이오스 단톡방 주소 오픈쳇 링크 http://kakao.bullish.love/

 

불리시 글로벌 이오스 존버방(비번:eos999)

Bullish

open.kakao.com

이오스 사용자 모임

이오스 단톡방 주소 오픈쳇 링크 http://kakao.bullish.love/

 

불리시 글로벌 이오스 존버방(비번:eos999)

Bullish

open.kakao.com

이오스 카톡방

 

이오스 텔레그램 은 아님. 단톡방임.

3D planning in orthognathic surgery CADCAM surgical splints and prediction of the soft and hard tissues results.pdf
0.51MB

A novel method for the 3 dimensional simulation of orthognathic surgery by using a multimodal image fusion technique

A novel method for the 3 dimensional simulation of orthognathic surgery by using a multimodal image fusion technique.pdf
3.78MB

 

Orthognathics Three-Dimensional Imaging for Virtual Assessment and Treatment Simulation in Orthognathic Surgery

 

Orthognathics Three-Dimensional Imaging for Virtual Assessment and Treatment Simulation in Orthognathic Surgery.pdf
7.57MB

256

 

'{3D} 가상 세계' 카테고리의 다른 글

icons  (0) 2021.06.01
썬더토큰 백서  (0) 2021.05.30
블랜더 강좌  (0) 2021.05.24
중요한 로그  (0) 2021.05.23
XR, AI, IoT, 블록체인  (0) 2021.03.21

개발자는 디자이너가 없어서 디자인을 배우고... 디자이너는 개발자가 없어서 개발을 배우는 것 같다.

https://www.youtube.com/watch?v=OCUHYvnGPKY&ab_channel=%EA%B9%8C%EB%A7%9D%EA%B3%A0%EB%8B%88%EA%B9%8C%EB%A7%9D%EA%B3%A0%EB%8B%88

 

내 경우는 아는 3D 디자이너들이 다들 바빠서... ㅠㅠ

'{3D} 가상 세계' 카테고리의 다른 글

썬더토큰 백서  (0) 2021.05.30
3D Models License Information  (0) 2021.05.24
중요한 로그  (0) 2021.05.23
XR, AI, IoT, 블록체인  (0) 2021.03.21
https://hajunho.com 컨설팅 취미  (0) 2020.12.27

2021-05-23 19:00:15.547127+0900 Touch[44871:4072399] [Session] ARSession <0x123d5d970>: did fail with error: Error Domain=com.apple.arkit.error Code=102 "Required sensor failed." UserInfo={NSLocalizedFailureReason=A sensor failed to deliver the required input., NSUnderlyingError=0x280670780 {Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed" UserInfo={NSLocalizedFailureReason=An unknown error occurred (-12785), NSLocalizedDescription=The operation could not be completed, NSUnderlyingError=0x28180d290 {Error Domain=NSOSStatusErrorDomain Code=-12785 "(null)"}}}, NSLocalizedRecoverySuggestion=Make sure that the application has the required privacy settings., NSLocalizedDescription=Required sensor failed.}

"applicationDidEnterBackground"

 

unknown error 로그는 항상 소중함.

 

로그 나오는게 어디야 ㅋㅋㅋ

 

'{3D} 가상 세계' 카테고리의 다른 글

3D Models License Information  (0) 2021.05.24
블랜더 강좌  (0) 2021.05.24
XR, AI, IoT, 블록체인  (0) 2021.03.21
https://hajunho.com 컨설팅 취미  (0) 2020.12.27
한 사람의 힘  (0) 2020.10.29

다 조금씩은 알고강의도 하고,

제품도 만들었다.

기술로서 어느 것 하나를 포기하라고 하면 못하겠다. 3D는 국내 최고 기술을 가져서 글로벌에도 상대할 수 있는 회사에 3년을 다녔다. 그 회사의 엔진은 자체 기술로 만드는데 원 기술은 FX엔진의 라이센스를 3년간 사와서 자체 기술로 만들었다. 3D 엔진 자체를 만들 수 있는 기술력이 있는 회사는 사실, 네이버나 카카오도 없다. 그래서 XR은 못 버린다. 친구도 3D 디자인을 하니까.

AI는 대세라 ... 어쩔 수 없이 꾸역꾸역... 학교로 넘어가야 할 학문의 경계로는 넘어가지 않고, 제품을 만드는 쪽에서만 열심히 하고 있었는데. 요즘엔 AI 워크 플로우를 만드는 회사가 워낙 많고. 대부분 그 정도 돈을 쓸 수 있는 능력의 기업은 해당 솔루션을 사서 그것만 만들고 끝이다. 확장성을 고려하지 않은 부분에 대해서는 어차피 책임도 없고 원하지도 않는데. 올 해 안 짤리거나, 계약 연장만 되면 되기 때문이다. 확장성까지 고려하려면 드는 AI 개발 인건비가 사람을 대체한 효율성이나 비용에 메리트가 없기 때문이기도 하다. 그래서 AI는 계속 국가 돈을 필요로 한다. 그렇게 나라 전체가 망해간다. 게임 산업처럼 수 많은 폐인을 양성하는 엔터테인 사업으로 특화시키는 쪽으로 가지 않을까 생각한다.

IoT는 본래 하던거니 당장은 못 버리고 또 제대로 된 커리큘럼이나 워라벨만 외치는 엔지니어들 때문에 꾸준한 것 같다.

블록체인은... 흠... 그 이용 결과물이 대부분 투기라고 해도 사람의 마음을 움직일 만한 수학적, 그리고 기술적 메리트는 확실히 있다. 그리고 사람들이 온갖 구라는 쳐 가며 지켜내는 본인들의 돈 때문에 현실 세계의 인플레이션이 똑같이 반영된다. 신기하게도 다이라는 코인은 부동산, 달러를 따라가게 만들었다고 한데... 내가 초창기부터 이 동네에 참여하고 지켜본 바로는... 오히려 그런거면 망할거라고 생각한다. 왜냐면 사람의 욕망이 반영되지 않았기 때문이다. 내가 보는 시각으로 돈을 번 주변 사람들이 너무 많다. 물론, 너무 앞서간 미래를 공유를 안했는데 그래서 오히려 빨리 나갔던 내가 도박판에서는 진 것이다. 수익이 나도 푼돈. 인생이 바뀔 만큼의 수많은 기회를 차버린 것이다. 아니나 다를까 지금 상황에서 보면 다이는 거래량이 확 줄었다. 코인은 거래량이 줄면 망한다. 중앙화가 아니기 때문에 누군가는 계속 채굴을 하면서 시스템을 유지해줘야 하고, 누군가는 계속 거래를 하면서 해당 코인의 미래를 밝혀줘야 하기 때문이다.

기술이던 미래를 보는 식견이던. 내 주변에 정말 내가 말한 방법으로 20~30억 번 사람들은 많은 것 같다. 그러나 난 처음부터 최소 수백억을 꿈꿨고, 지금은 그 길을 나아가려고 한다. 시에서 물래방아까지 만들어 주던 지역 유지인 삼촌께서 말씀하신 것이 있다. 돈 벌 방법이 확실하면 절대 말하지 말고 니가 그것을 해야 한다고.

내 주변에서 300억씩 벌어 보라는 사람이 생기고 계속 그 말을 들으니 가진 것을 모아 인생의 마지막 도전을 해 봐야 겠다는 생각이 든다.

뭘로 풀 건지도 비밀로 해야 겠다. 다만, 내 주변에 코인 투자 하는 사람이 많이 생겼는데 왜 그것은 안 될 것 같은지에 대해서는 공유를 하는 것이 좋겠다. 내 생각이 틀렸을지는 모르겠지만. 난 아니라고 생각하고. 사실 그 결과는 내가 거의 50이 다 되었을 때 가진 자산으로 증명될 것 같다. 돈에만 매여 살 필요는 없다. 이미 기술적 성과는 거의 이룬 것 같고. 그 성과로 지금 기술 관련 제품의 상황을 정확히 판단할 능력이 생겼다. 또 미래를 위해 단순 텍스트로, 영어로 , 누가 정리해 주지 않아도 알아서 헤쳐나갈 수 있는 기술을 가졌다.

물론, 사업으로 풀 생각은 아니다. 사업은 기술로 하는게 아니라는 생각이 들었기 때문이다. 기술로 사업이 따라오게. 또 돈이 따라오게 할 생각이다. 역시 과학/기술이 최고다.

'{3D} 가상 세계' 카테고리의 다른 글

블랜더 강좌  (0) 2021.05.24
중요한 로그  (0) 2021.05.23
https://hajunho.com 컨설팅 취미  (0) 2020.12.27
한 사람의 힘  (0) 2020.10.29
멤버 모집에 대한 몇 가지 생각  (1) 2020.09.29

이번 글은 조금... 공대스러운 글이다.

 

제품을 많이 만들다 보니, 컴퓨터 시스템 통합 자문 및 구축 서비스업 종목을 걸고 컨설팅을 부업으로 하고 있다. 이에, 개인 페이지를 하나 가지고 있다. SSL 은 좀 싼 것을 쓴다. https://hajunho.com 사이트의 가장 아래에 보면 5만 달러 워런티가 달려 있다.

hajunho.com

hajunho.com

Security Credentials

http://www.hajunho.com/

This website uses a PositiveSSL certificate to secure online transactions for customers.

What does this mean for you?

Any data you submit to this website over a https connection will be securely encrypted with the strongest available algorithms

The SSL certificate used by this website carries a $50,000 warranty to further protect customer purchases

By choosing PositiveSSL, the owners of this website have proven that customer security is their highest priority

http://www.hajunho.com/ has a website warranty of $50,000. This means that you are insured for up to $50,000 when relying on the information provided by IdAuthority on this site.                

US Patent Number 7,603,699

Certificate validity checked at: 20-Dec 2020 04:42:31 GMT

© PositiveSSL.

 

6천만 원짜리 워런티에 가입되어 있다는 말인데. 내가 내는 돈은 일 년에 3만 원 정도다. 그리고 아마 이 회사는 6천만 원을 보상해 주지도 않을 것이다. 왜냐면 비대칭 키 방식에 대해 책임 전가를 해 버리면 그만이기 때문이다. 그럼에도 내가 컨설팅해 주는 회사는 1년에 78 만원 정도 되는 인증서를 사서 쓴다. 물론, 내가 구입을 해 줬다.  3개월마다 갱신할 거면 무료로 쓸 수 도 있고 스크립트도 자동화해서 돈을 안 내도 된다. 그러나 도메인 전체에 인증서를 적용하면 사이트 구축이 쉽고 내가 편해야 대부분의 사이트를 적은 비용으로 구축해 줄 수 있어서 이 정도 비용을 쓰게 만든다. 이것이 공격 포인트가 될 수도 있다만 ㅠㅠ 워런티가 큰 역할을 한다. https를 써야 하는 가장 큰 이유는 스니핑과 피싱 때문이다. 전송하는 내용을 중간에서 누구나가 볼 수 있는 가능성이 있다. 또, 중간에 가로채서 다른 사이트로 유인하고 엉뚱한 결괏값을 리턴할 수 도 있다. 우리가 네이버에 접속하더라도 바로 네이버로 가는 것이 아니라 중간에 많은 장비를 거치게 된다. 그 네트워크 장비는

게이트웨이, 라우터, 허브, 공유기 등

의 이름으로 불리는데, 대부분은 CISCO이며 전용 운영체제가 있고 프로그래밍이 가능하다. 학창 시절에도 스니핑을 통해 네이버 비밀번호를 해킹하는 것을 컴퓨터 동아리 신입 세미나로 수년을 진행했었는데 그 뒤로 네이버에서 보안 로긴 기능이 도입되기까지도 4 년이 걸렸다. 1, 2, 3 단계로 로긴 기능을 넣어 두었었고 1, 2 단계는 해킹이 쉬웠다. 지금은 그 단계도 없앤 상태이다. 학창 시절 호스팅 사업을 했던 경험과 합해 그리 대단치고 않은 인터넷 기업이 대단해지는 과정들을 보고, 그렇게나 오랫동안 허술한 보안으로 지금의 회사가 된 것도 보고 있다. 그리고 이런 류의 기업들이 기술이 없는 것은 해외 무슨 연구소 광고하면서 기술이 있는 것처럼 하고, 나오지도 않은 터쳐블 투명 스크린 기술로 광고하는 것으로 무슨 플랫폼 인양 행세하는 것도 본다. 웃긴 것은 자기네 기술은 오픈 소스화 하지도 못하면서 무슨 오픈 소스나 교육을 지원하는 기업인양 행세하며 탈세를 하는 행위다. 국가에 주기도 아깝고, 임직원에게도 주기 아깝고, 부동산은 살 만큼 샀으니 투자를 하는 것처럼 꾸미는 행위다. 그래도 요즘은 이런 행태에 대해서 크게 뭐라고 안 하는 이유는 그래도 그 과정을 나온 사람들이 취업을 하는 것을 보기 때문이다. 그래... 다들 그렇게 그렇게 살아가는구나... 한다.

 

믓튼, 너무 삼천포(사천시)로 빠졌는데 httpS처럼 ssl 붙으면 중간에 프로그래밍 가능한 곳에서 정보를 탈취하더라도 내용을 알아볼 수 없다. 그 이유는

https://www.youtube.com/watch?v=MR4sCU82tgo&ab_channel=%EC%83%9D%ED%99%9C%EC%BD%94%EB%94%A9

 

을 보면 된다. 국문과 출신 강사가 너무도 자세하게 설명을 해 주는 영상이라 참 좋다. 

 

http에서 S를 하나 더 붙여 https로 하는 데에는 무료 방식도 있고, 유료 방식도 있다. S를 하나 더 붙이는 데에는 수많은 기술적 이유도 있겠으나, 브라우저 세계를 통일한 크롬이 https 사이트는 자물쇠 표시도 없고, 유해 사이트로 취급한다는데 그 이유가 있다. 즉, 이제 인터넷은 https를 쓰라는 권고다. 나 역시 https를 기본으로 컨설팅을 해 주지만, 사실 소규모 사이트의 경우 http 사이트가 크게 문제 있지는 않았다.

http://crn.pw

코로나바이러스감염증-19(COVID-19)

코로나바이러스감염증-19 정식 홈페이지로 발생현황, 국내발생현황, 국외발생현황, 시도별발생현황, 대상별 유의사항, 생활 속 거리 두기, 공적마스크 공급현황, 피해지원정책, 홍보자료, FAQ, 관

ncov.mohw.go.kr

 

 

다만, 의료 쪽 IT 회사라고 하면서 인증서 하나 없이 사이트를 운영하는 것은 심각한 문제라고 생각한다. 내가 컨설팅해주는 시기에는 이미 다른 업체를 통해 사이트가 구축된 경우가 더 많은데 https가 적용 안 된 케이스가 참 많다. 다행히도 크롬이 위험 사이트라는 경고 아이콘을 보여주고 [주의 요함]. 또 위험한 사이트라고 알려주기 때문에 ssl 인증서 적용은 점점 필수가 되어 가고 있다. 사실 이미 3년은 지난 것 같은데 이렇게 설파하고 다닌 지 시간이 좀 흐르고 나니 이제 인증서는 정말 필수가 된 것 같다.

 

이렇게 되면서 가장 큰 문제점은 프락시 서버로 스니핑을 하며, 보안부서라고 불리는 곳에서의 문제다. 자체 솔루션이 아닌 마이크로소프트의 기술을 쓰면서 임직원의 인터넷 감시용으로 잘 사용하던 프락시 서버를 거치면 브라우저에서 경고를 주기 때문이다. 사실, 산업 스파이나 기술 보호 목적으로 임원까지도 감시할 수 있는 강한 힘을 가졌었던 보안 부서가 타격을 받은 것은 오픈소스의 유행이나 포털 서비스의 발달이 아닌 ssl 인증서의 저변화와 재택근무의 활성화다. 물론, SSL/TLS 도 완벽하지 않다. SSL/TLS를 복호화하는 솔루션도 있기 때문이다.

https://www.somansa.com/introduce/newsevent/%EC%86%8C%EB%A7%8C%EC%82%AC-ssl-%EA%B0%80%EC%8B%9C%EC%84%B1-%ED%99%95%EB%B3%B4-%EC%86%94%EB%A3%A8%EC%85%98-100%EA%B3%B3%EC%97%90-%EA%B5%AC%EC%B6%95/

개인정보보호 1위기업 소만사

내부정보유출방지(DLP), 개인정보유출방지, DB접근제어, 유해사이트 차단 솔루션 기업

www.somansa.com

 

VPN으로 패킷을 한번 더 암호화하면 좀 나아진다. 대부분의 국내 회사는 AD(Active Directory)를 쓰고 도메인 이행이 완료된 PC의 경우 사실 모든 내용과 프로그램이 회사에서 볼 수 있다고 보면 되겠다. MDM도 마찬가지다. 참고로 난 삼성전자에서 MDM도 만들었고 SMS, bluetooth까지 모두 제어가 가능한  MDM을 막고, escort라는 보안 툴을 무력화해서 빼낸 증거로 뉴스타파에 제보를 했었다. 웃긴 것은 제보할 때 삼성 사람들에게 어느 정도는 이야기를 해 둔 상태라는 것. 어떤 변화를 나쁜 짓을 하는 기업 스스로도 원하는 경우가 있는데 그런 경우라면 나에게 전혀 피해가 없다고 생각했고, 5년이 지난 지금 완벽히 성공한 프로젝트라고 말할 수 있게 되었다.

 보안을 만드는 방법은 참 많다.  nΠr : n파이 r. Product(곱)을 나타내는 P의 그리스 문자는 Pi고 Π로 쓴다.!(팩토리얼)은 조합을 구할 때 쓰는 것이다. 우리가 PIN 번호를 6자리로 했을 때 경우의 수는 10Π6으로 표현한다. 10의 6승이라는 뜻이고 10*10*10*10*10*10 = 1,000,000 백만이다. 즉, PIN 설정했을 때 백만 가지의 다른 표현이 된다. 백만이라고 하면 꽤 많은 숫자인 것 같다. 백만이라는 숫자를 체감하려면 이런 방법이 있다. 1초에 숫자를 2개를 셀 수 있다고 하자. 그러면 60초에 숫자 120개를 센다. 120 * 60분 은 1시간 셀 수 있는 수 7200이다. 한 시간에 7200까지 밖에 못 샌다. 24 시간 내내 세어도 172,800. 1년 내내 세면 63,072,000이다. 즉, 1년 내내 세어도 1억이라는 숫자를 못 센다. 그래도 왠지 백만이라는 숫자는 가능해 보인다. 왜냐면 그래도 사람이 접근 가능한 숫자 같기도 하고, 컴퓨터로는 화면에 뿌려지는 시간을 빼고 백만을 세도록 프로그래밍을 해 보면 사실, 1초도 안 걸린다. 그래서 은행은... 비밀번호 틀리는 횟수를 정해 두었고, 그 횟수가 초과되면 은행에 방문하도록 해 두었다. 사실, 별 것 아닌 것 같은 이런 보안의 흐름과 단계는 정말 완벽하게 우리 금융 생활을 통제하고 있다. 단순히 delay를 주었다고 할 수 있고, 미지수, variable 혹은 coefficient, parameter, argument, indirection, layer 추가 등의 단어들로 말할 수도 있겠다. 그러나 막상 따져보면 받아들일 수 있고, 우리의 재산을 보호해 주기 위해 나름 신경을 많이 쓴 흔적이 발견되는 발상이라는 것이다.

 

 ActiveX가 사라진 이유는 모두가 다 잘 알 것이다. 정부 돈 받아 먹는 꿀 기업이 개발자는 쥐어짜면서 그렇게 오랜 기간 동안 수천만의 국민을 농락했기 때문이다.(대한민국 국민 수 따져서 계산한 것 아니다.)

- 내가 정보를 모두 입력한다. 

- 사이트는 정보를 다 지우고 Active X를 깔라고 한다.

- 다시 정보를 모두 입력한다. 한다.

- 사이트는 정보를 다 지우고 Active X를 깔았다고 F5를 누르라고 한다.

- 정보를 입력한다.

- 사이트는 처리할 수 없어, 죄송하다며 사이트에 다시 로그인하거나 재부팅하라고 한다.

이 정도 경험이야 모두가 있다. 그래도 정경 유착은 끊기지 않아서 국가 사이트는 여전히 똑같은 기업이 운영하고 다른 기업에게 기회란 전혀 없다.

 

그래도 서울대 의대에서 걸출한 인재가 나와 TOSS로 세상을 변화시키고 카카오 뱅크도 거기 합류를 했다. 다음 때부터 회사에 계시며 카카오 뱅크를 거의 다 만드신 분과 함께 일할 기회가 잠깐 있었는데 정말 일하는 방식이 너무도 달랐다. 연세는 많으셔도 일의 방식은 Z 세대였다. 내가 그분의 노하우를 다 공개하는 것은 말도 안 되는 일이지만 키워드만 하나 던지자면

페르소나

비슷한 방식을 썼던 개그맨을 꼽자면 최효종이다. 언젠가 삼성전자에 강연을 오셔서 강연을 들을 수 있었는데, 버스나 지하철 커피숍에서도 다른 사람들의 이야기를 경청했다고 한다. 그것을 개그로 승화시키니 잘 될 수 밖에...

 

이런 생각들로 AI 기업이 뭘 한다고 해도 별로 대단치 않게 생각한다. 전에도 말했지만 알파고 나왔을 때 IBM 세미나 갔더니 우린 쇼는 이미 오래 전에 다 했다고 했었다. 그런 IBM의 AI 솔루션이 최근 병원에서 퇴출되고 있는 것도 보고 VUNO 같은 기업이 더 잘하는 것도 보고 있다.

 내가 정말 대단하게 생각할 AI 기업이 있다면 빅데이터를 활용해서 개그를 하고 그 개그가 사람들을 웃길 수 있다면 AI는 사실 완성되었다고 보면 될 것 이다. 물론, 그림이나 웃긴 동영상 찾아 주는 식이 아닌 스탠드업 코미디 말이다. 1인 코미디로 괜찮고 우리가 없애버린 개콘 처럼 팀을 짜는 것도 좋다. 그러나 내 생각에 그런 AI는 내가 살아 생전에는 못 만날 것 같다는 판단이다. 물론, 8살 때부터 프로그래밍 하면서 기술의 변화가 얼마나 빠른지는 필드에서 직접 겪었고 그걸로 돈을 벌어 먹고 사는 사람이다. 기술의 변화가 빠르기는 개뿔. 코로나도 AI로 해결하지 못하는 주제에 무슨 5년 전부터 AI, AI 하는지 원. 블랙홀이 우리 지구 근처로 오면 AI로 그 문제를 해결 할 수 있을까? 흠... 너무 술술 써지는데 나도 AI로 돈을 벌어야 하니 이쯤에서 그만두는게 좋을 것 같다.

 

적어도 난 AI 한다는 족속보다는. 싼 가격에 아이스 아메리카노를 파는 가게를 운영하고, 사무실 청소를 해 주시는 아주머니들이 오히려 나에게 직접적 도움이 되고 고맙다. 물론, 이번에 코로나 검사를 해 주셨던 의료진도 그렇고. 그런 정책을 시행하는 사람들도 그렇다. AI 한다고 자랑할게 아니라 AI로 뭘 하는지 자랑해야 하겠다.

 

Adfit 이 티스토리에 도입 되었다.

 

뭔가 큰 변화가 예상된다. 그 변화가 좋은 쪽이면 참 좋을 것 같다. 아래는 약관. 찬찬히 읽어 보려고 가져왔다.

 

로그인정보haju***@kakao.com 펼침선택상자도움말

티스토리 수익센터 연동을 위한 Kakao AdFit 회원 가입 페이지입니다.

회원가입 본문

회원 가입

    1. 현재페이지약관 동의 

 

    1. 계정 확인 

 

  1. 정보 입력

회원유형별 약관 동의 폼Kakao AdFit 회원 가입을 진행합니다.

Kakao AdFit(이하 애드핏)은 운영하는 매체에 카카오가 중계하는 광고를 게재하고, 광고에서 발생한 수익을 얻을 수 있는 서비스입니다.
애드핏에서 제공되는 기능들을 통해 효율적으로 광고 운영 및 수익 관리를 할 수 있습니다.

※ 애드핏 회원 가입 완료와 동시에 개인 유형의 AdFit 계정이 생성됩니다.
AdFit 계정 생성 후 개인 → 사업자 유형 변경은 가능하지만 유형 변경 시 연동이 해제됩니다.

[필수] 만 14세 이상 확인 (만 14세 미만은 회원가입 불가)

Kakao AdFit(애드핏)은 아동(만 14세 미만인 자)인 경우, 개인정보를 보호하기 위하여 회원가입을 제한하고 있습니다. 만 14세 이상만 회원가입이 가능하며, 애드핏은 아동의 개인정보를 수집하지 않습니다.

[필수] Kakao AdFit 이용 약관

제 1 조 목적
본 약관은 주식회사 카카오(이하 “회사“라 합니다)에서 제공하는 AdFit(애드핏) 서비스를 이용함에 있어 “회원“과 “회사“간에 필요한 사항을 규정함을 목적으로 합니다.

제 2 조 정의
본 약관에서 사용하는 용어의 정의는 아래와 같습니다.
① “AdFit(애드핏) 서비스“(이하 “AdFit(애드핏) 서비스“ 또는 “서비스“라 합니다)라 함은 블로그를 포함한 웹사이트 또는 모바일 어플리케이션 등(이하 “매체“라 합니다)을 보유한 “회원“이 자신의 “매체“에 “회사“가 제공하는 광고(이하 “광고“라 합니다)를 노출하고, 노출 성과에 따라 “회사“로부터 일정 수익을 분배 받을 수 있도록 하는 광고 네트워크 관리 서비스 및 이에 부수되는 제반 서비스를 말합니다.
② “회원”이라 함은 본 약관에 따라 “회사”와 이용 계약을 체결하고 “회사”가 제공하는 “서비스”를 이용하는 자를 말하고, 다음 각 호와 같이 구분하며, “마스터회원”, “멤버회원”, 그리고 “일반회원”을 통칭하여 “회원”으로 칭합니다.
가.“마스터회원”: “매체”를 생성하고 노출 성과에 따른 적립금 신청 및 분배 받을 수 있는 권한을 가진 자로 “서비스” 내에서 “AdFit계정”을 직접 생성하거나 “마스터회원” 자격을 이전 받은 자
나.“멤버회원”: “마스터회원”의 “서비스” 이용을 대행 또는 지원하기 위해 “AdFit 계정”에 접속하여 “서비스”를 이용하는 자
다.“일반회원”: “AdFit 계정”의 이용 없이 본 약관에 동의만 한 상태에 있는 자
③ “방문자“라 함은 “회원“의 “매체“에 방문하여 “회사“가 제공하는 광고에 노출되고 반응하는 자를 말합니다.
④ “Adfit(애드핏) 서비스 플랫폼“이란 “회원“이 “Adfit(애드핏) 서비스“를 통하여 “Adfit 계정“을 생성, 관리, 취소하고 수익금 정산 등을 할 수 있도록 “회사“가 제공하는 운영툴을 말합니다.
⑤ “AdFit 계정”이라 함은 “서비스”를 통해 “마스터회원”과 “멤버회원”이 함께 개별 광고 집행을 관리할 수 있도록 “회사”가 설정한 관리영역을 말합니다.
⑥ “광고 단위“이라 함은 “AdFit(애드핏) 서비스“를 통해 “회원“이 광고를 “매체“에 집행할 수 있도록 “회사“가 설정한 최소 단위의 관리 영역을 말합니다.

제 3 조 약관의 효력 및 변경
① “회사“는 본 약관의 내용을 “회원“이 쉽게 알 수 있도록 “AdFit(애드핏) 서비스 플랫폼“ 초기 화면 또는 연결화면을 통하여 게시합니다.
② “회사“는 필요한 경우 관련 법령을 위반하지 않는 범위 내에서 본 약관을 개정할 수 있습니다.
③ “회사“는 본 약관을 개정할 경우 개정 내용과 적용일자를 명시하여 “AdFit(애드핏) 서비스 플랫폼 “에서 적용일자 7일전부터 적용일 이후 상당한 기간 동안 공지합니다. 다만, “회원“에게 불리하게 개정되는 경우 적용일자 30일 전부터 공지합니다.
④ “회사“가 전항에 따라 공지하면서 “회원“에게 개정 약관 시행일까지 거부의사를 표시하지 아니하면 승인한 것으로 본다는 뜻을 명확하게 고지하였음에도 “회원“이 명시적으로 거부의 의사표시를 하지 않은 경우에는 개정 약관을 승인한 것으로 봅니다.
⑤ “회원“은 개정 약관에 동의하지 않는 경우 적용일자 전일까지 “회사“에 거부의사를 표시하고 본 약관 제16조에 따라 이용계약을 해지할 수 있습니다.

제 4 조 약관 외 준칙
① “회사“는 “서비스“의 공정한 운영 및 유지, 관리를 위해 별도의 운영정책을 운영할 수 있으며, “Adfit(애드핏) 서비스 플랫폼“ 공지 게시판에 운영정책에 대한 내용 및 변경사항 등을 확인할 수 있도록 게재합니다.
② “회원“은 “서비스“를 이용함에 있어 “회사“가 정한 운영정책을 반드시 확인하고 준수하여야 합니다.
(운영정책 : kakao AdFit 운영정책 URL)
③ 본 약관 및 운영정책에 규정되지 않은 사항에 대해서는 관련 법령 또는 카카오 통합서비스약관, 카카오 서비스 약관, 카카오 통합 약관 등 카카오 서비스와 관련된 이용약관, 카카오 운영정책 및 규칙 등(이하 총칭하여 “세부 지침“)의 규정에 따릅니다. 또한 본 약관 및 운영정책과 “세부 지침“의 내용이 충돌할 경우 본 약관 및 운영정책이 우선합니다
제 5 조 회원 가입
① “서비스”를 이용하고자 하는 자가 본 약관에 동의한 후 필요한 서류를 제출하여 가입을 신청하고, “회사“가 이를 승낙함으로써 가입이 완료됩니다. 자세한 심사 요건은 운영정책에서 정한 바에 따릅니다.
② “회원” 가입은 “마스터회원”, “멤버회원”, 그리고 “일반회원”에 따라 다음 각 호와 같이 체결됩니다.
1.“마스터회원”으로 “서비스”를 이용하고자 하는 자는 본 약관의 내용에 동의를 한 다음 “회사”가 정한 절차에 따라 “AdFit 계정” 생성을 신청 후 “회사”가 이러한 신청에 대하여 승낙하거나, “멤버회원”이 “마스터회원”의 마스터 이전 요청을 승낙함으로써 가입이 완료됩니다.
2.“멤버회원”으로 “서비스”를 이용하고자 하는 자는 “마스터회원”으로부터 온 멤버 초대를 수락한 다음, 본 약관의 내용에 동의를 함으로써 가입이 완료됩니다.
3.“일반회원”은 “마스터회원” 또는 “멤버회원”으로 가입 완료 후, 연결된 모든 “AdFit 계정”에서 해제된 경우 “일반회원”이 됩니다.
③ “회사“는 제1항에 따른 신청에 대하여 다음 각 호의 사유가 있는 경우에는 승낙을 하지 않을 수 있으며, 가입 이후에도 다음 각 호의 사유가 확인될 경우에는 “회사“는 즉시 “회원“의 “서비스“ 이용을 정지시키거나 이용계약을 해지하는 등 적절한 제한을 할 수 있습니다.
1. 가입신청자가 본 약관과 “서비스“ 운영정책 및 “세부 지침“ 등을 위반하여 제재 조치를 받은 이력이 있거나, 이전에 “회원“ 자격을 상실한 적이 있는 경우
2. 기존 “회원“이 본 약관과 “서비스” 운영정책 및 “세부 지침“ 등을 위반하여 “서비스“ 이용제한 중에 “회원“ 탈퇴 후 재가입 신청을 하는 경우 및 “회사“가 제재 조치를 취하기 전에 자발적으로 “서비스“를 탈퇴한 후 재가입을 신청한 것으로 판명되는 경우
3. 실명이 아닌 허위 명의를 기재하거나 타인의 명의를 도용 또는 사칭한 경우
4. 허위 또는 잘못된 정보를 기재 또는 제공하거나 “회사“가 요청하는 사항을 기재하지 않은 경우
5. 만 14세 미만의 미성년자인 경우
6. “개인 유형”의 “AdFit 계정”을 생성한 “회원”이 “서비스”가입에 이용되지 않은 본인 명의의 다른 카카오 계정으로 “서비스”의 “개인 유형”의 “AdFit 계정” 생성 및 추가 가입을 시도하는 경우
7. 가입신청자의 귀책사유로 인하여 승낙이 불가능하거나 기타 본 약관 및 “서비스” 운영정책에서 규정한 제반 사항을 위반하여 신청하는 경우
③ “회사“는 제1항에 따른 신청에 대하여 전문기관을 통한 실명확인 또는 본인인증을 가입신청자에게 요청할 수 있습니다.
④ “회원“ 가입의 성립 시기는 “회사“가 가입 완료를 신청 절차상에서 표시한 시점으로 합니다.

제 6 조 서비스 계정관리 의무 및 정보의 변경
① “서비스“의 아이디와 비밀번호는 “회원“의 카카오계정을 사용하며, “회원“은 이를 제3자가 이용하도록 하여서는 안됩니다.
② “회원“은 “서비스“에서 사용하는 카카오계정의 아이디 또는 비밀번호가 도용되거나 제3자가 “서비스“에서 자신의 카카오계정을 이용하고 있음을 안 경우, 이를 즉시 “회사“에 통지하고 “회사“의 안내에 따라야 합니다.
③ “회원“은 “서비스“ 회원 가입 신청 및 이용 시 정확한 정보를 기재하여야 하며, 기재 사항이 잘못되었거나 변경된 경우 즉시 이를 수정하여야 합니다. “회사“는 “회원“이 작성하는 정보를 임의로 수정할 수 없으며, “회원“이 잘못된 정보를 기재하거나 기재된 정보가 변경되었음에도 해당 사항을 수정하지 않아 발생한 손해는 “회원“이 부담하며 “회사“는 이에 대하여 책임을 지지 않습니다.
④ “회원“은 “Adfit(애드핏) 서비스 플랫폼“을 이용하여 자신의 정보를 열람하고 변경할 수 있습니다. 단, 사업자 정보의 변경 및 예금주의 변경 등 “회원“이 중요한 정보를 변경하는 경우 “회사“는 별도의 증빙서류의 제출을 요청하거나 추가 심사를 진행하여 승인 여부를 결정할 수 있으며, 자세한 내용은 운영정책에서 정한 바에 따릅니다.
⑤ “회사“는 “회원“이 본 조의 각 항을 준수하지 않아 발생한 불이익에 대하여 책임을 지지 않습니다.

제 7 조 광고 게재 및 심사
①“회원”은 “회사”가 정한 절차와 기준에 따라 “AdFit계정”을 생성할 수 있습니다.
②“AdFit계정”은 속성에 따라 다음 각 호와 같이 구분하며, “회사”가 요구하는 개인 또는 사업자 정보를 제공하여야 합니다.
가.“개인 AdFit 계정” : 개인 명의로 “서비스“를 이용하며 수익 정산 시 원천징수소득세 납부 의무가 발생하는 자
나.“사업자 AdFIt 계정” : 법인 명의로 “서비스“를 이용하며 수익 정산 시 부가가치세 납부 의무가 발생하는 자
③“마스터회원”은 사업자 “AdFit계정”에 연결된 사업자등록이 휴업 또는 폐업 상태가 되었거나 개인 “AdFIt계정”에 연결된 본인 확인 정보가 변경된 경우 "회사"가 정하는 절차에 따라 "회사"에 정보 수정을 요청하여야 합니다.
④"마스터회원"이 제3항을 준수하지 않아 발생한 불이익에 대하여 "회사"는 책임을 지지 않습니다.
⑤ “회원“은 “매체“에 “광고“를 게재하기 위하여 “AdFit(애드핏) 서비스 플랫폼“에서 “회사“가 정한 절차와 기준에 따라 “광고단위“를 생성한 후 “광고“의 게재를 신청할 수 있습니다.
⑥ “회사“는 “회원“의 “광고“ 게재 신청 시 “매체“ 심사를 진행하며, 운영정책에 따른 요건이 충족될 경우 승인합니다.
⑦ “회원“은 제5항 및 제6항의 방법으로 복수의 “광고단위”를 생성할 수 있으며, “AdFit(애드핏) 서비스 플랫폼“에서 생성된 “광고단위“의 운영 및 관리할 수 있습니다.

제 8 조 광고 수익 배분 및 지급
① “회사“는 “서비스“를 통해 발생한 광고 수익을 “회사“가 별도로 정한 기준에 따라 적립금 방식으로 “마스터회원“에게 지급합니다. 단, 이용제한 또는 휴업/폐업 상태에 있는 “AdFit 계정”의 “마스터회원“에게는 광고 수익의 지급이 제한될 수 있습니다.
② 제1항의 적립금은 확정된 누적 금액(이하 “확정 적립금“이라 합니다)이 “회사“가 별도로 정한 최소 지급 기준액에 도달한 경우 지급 가능하며, 지급 방법 및 일정 등은 운영정책에 따릅니다.
③ 광고 수익에 대한 “확정 적립금“이 발생한 다음 날로부터 5년간 “마스터회원“의 지급 요청이 없는 경우, 해당 “확정 적립금“은 모두 소멸합니다.
④ “마스터회원“이 “확정 적립금“을 지급받기 위하여 입력한 정보가 유효하지 않아 지급을 받지 못하는 경우, 이에 대한 귀책은 “회원“에게 있으며 “회사“는 이를 보상하지 않습니다.
⑤ “회사“는 본 약관 및 “서비스“ 운영정책, “세부 지침“과 관련 법령 등을 위반하거나 부정한 방법으로 “광고”의 노출 횟수 및 클릭 횟수가 생성되거나 증가되었다고 판단될 경우, 최종 확인 시까지 “확정 적립금“의 지급을 보류할 수 있으며, 최종 확인 이후 “확정 적립금“을 보정하고 지급을 거절하거나 기지급된 “확정 적립금“을 회수할 수 있습니다.
⑥ “회사“는 본 조의 사유로 “마스터회원“에게 “확정 적립금“의 지급을 보류, 보정 또는 회수, 거절할 경우 해당 사유를 제12조에 따라 “마스터회원“에게 통지하며, 해당 조치에 이의가 있는 “회원“은 “회사“가 정한 절차에 따라 이의신청을 할 수 있습니다.

제 9 조 권한
①“마스터회원” 또는 “멤버회원”은 연결되어 있는 “AdFIt계정”에 접근하고, “AdFit 계정”의 전부 또는 일부를 관리할 수 있습니다.
②“AdFit 계정” 단위로 다음 각 호의 권한은 “마스터회원”에게만 있습니다.
1.“멤버회원”을 초대할 수 있는 권한
2.“AdFit 계정”에서 특정 “멤버회원”을 해제시킬 수 있는 권한
3. 적립금 지급을 위한 정산 정보를 등록하거나 수정할 수 있는 권한
4. 적립금을 지급 요청하거나 지급 요청을 취소할 수 있는 권한
5. “매체”를 생성하거나 삭제할 수 있는 권한
③개인 “AdFit 계정”에서 “마스터회원”은 “멤버회원” 초대가 불가합니다.
④“AdFIt계정”에서 “멤버회원”의 행위는 권한을 위임한 “마스터회원”의 행위로 인정됩니다.

제 10 조 개인정보의 보호 및 관리
① “회사“는 “서비스“를 제공하기 위하여 “회원“으로부터 서비스 이용에 필요한 개인정보를 수집할 수 있습니다.
② “회사“는 정보통신망 이용촉진 및 정보보호 등에 관한 법률과 개인정보 보호법 등 관련 법령이 정하는 바에 따라 “회원“의 개인정보를 보호하기 위해 노력하며, 이러한 개인정보의 보호 및 사용에 대해서는 “회사“가 별도로 고지하는 개인정보처리방침을 적용합니다.
(개인정보처리방침 : kakao b2b 개인정보처리방침 https://biz.kakao.com/resources/html/business_privacy.html)
제 11 조 서비스의 변경 및 종료
① “회사“는 “회원“에게 제공하는 “광고”와 관련하여 “서비스“의 안정적이고 효과적인 운영을 위해 관련된 일체의 사항을 결정할 권한을 가지며, 이에 따라 “회사“의 판단에 기하여 “서비스“의 내용 및 운영 또는 기술적 사항 등을 변경할 수 있습니다.
② “회사“는 사업적 판단에 따라 “서비스“의 일부 또는 전부를 종료할 수 있으며, 이와 관련하여 “회원“이 “서비스” 이용에 따라 기대하는 이익에 대한 손실을 보상하지 않습니다.
③ “회사“는 “서비스“를 변경할 경우 변경 내용과 적용일자를 명시하여 “Adfit(애드핏) 서비스 플랫폼“에 적절한 방법으로 사전에 공지합니다. 단, “회원“에게 중대한 영향을 미치는 “서비스“ 변경 사항이나 종료는 제12조 제2항 단서에 따른 방법 등으로 개별적으로 고지합니다.
④ “회원“은 “서비스“ 변경에 동의하지 않을 경우 “회사“에 거부의사를 표시하고 본 약관 제16조에 따라 이용계약을 해지할 수 있습니다.

제 12 조 서비스의 중단
① “회사“는 컴퓨터 등 정보통신설비의 보수점검, 교체, 고장, 장애, 통신두절 또는 운영상 합리적인 사유가 있는 경우 “서비스“ 제공을 일시적으로 중단할 수 있습니다.
② 전항의 경우 “회사“는 “회원“에게 사전 통지합니다. 다만, “회사“가 사전에 통지할 수 없는 부득이한 사유가 있는 경우 사후에 통지할 수 있습니다.
③ 본 조의 서비스 중단으로 인하여 발생한 “회원“의 손해에 대하여 “회사“는 고의 또는 과실이 없는 한 책임을 부담하지 않습니다.

제 13 조 회원에 대한 통지
① “회사“가 “회원“에 대하여 통지를 하는 경우 본 약관에 별도의 규정이 없는 한 “회원“이 제공한 전자우편주소, (휴대)전화번호, 카카오톡 메시지, “Adfit(애드핏) 서비스 플랫폼“ 로그인시 알림창 등의 수단으로 할 수 있습니다.
② “회사“는 “회원“ 전체에 대하여 통지를 하는 경우 7일 이상 “Adfit(애드핏) 서비스 플랫폼“ 내 공지 게시판에 게시함으로써 전항의 통지에 갈음할 수 있습니다. 단, “회원“에게 중대한 영향을 미치는 사항의 경우에는 삼십(30)일 이상 게시판에 게시하고 “회원“이 입력한 전자우편주소, (휴대)전화번호, 카카오톡 메시지 등으로 개별 통지합니다.
③ “회원“은 “회사“에 실제로 연락이 가능한 전자우편, (휴대)전화번호, 카카오계정 등의 정보를 제공하고 해당 정보들을 최신으로 유지하여야 하며, “회사“의 통지를 확인하여야 합니다.
④ “회원“은 전항의 의무를 소홀히 하여 발생한 불이익에 대해서는 보호받지 못합니다.

제 14 조 회사의 의무
① “회사“는 관련 법령과 본 약관을 준수하고 계속적이고 안정적으로 “서비스“를 제공하기 위하여 최선을 다하여 노력합니다.
② “회사“는 “서비스“ 이용과 관련하여 “회원“의 이의제기가 정당하다고 인정될 경우 이를 처리하여야 하며, “서비스“ 내 게시판, 전자우편 등을 통하여 “회원“에게 처리과정 및 결과를 전달할 수 있습니다.
③ “회사“는 본 약관 제8조에 따라 ‘AdFit 계정’의 마스터에게 광고 수익을 배분합니다.
④ “회사“는 어뷰징 등으로부터 광고주를 보호하고 광고 품질의 관리 및 방문자 보호 등을 위하여 “매체“로의 “광고” 송출을 제한 또는 조정할 수 있습니다.
⑤ “회사“는 “서비스“의 품질향상 및 광고 상품의 효과 개선을 위해 전체 트래픽 중 일부 트래픽을 대상으로 하는 테스트를 진행할 수 있습니다.

제 15 조 회원의 의무
① “회원“은 관련 법령, 본 약관, 운영정책, “세부 지침“ 및 “회사“가 공지하거나 통지한 사항 등을 준수하여야 하며, 기타 “회사“의 업무에 방해되는 행위를 하여서는 안 됩니다.
② “회원“은 아래와 같은 행위를 하거나 그러한 시도를 하여서는 안됩니다.
1. “매체“를 이용하여 “회사“ 및 기타 제3자의 저작권 등 지적재산권을 침해하거나 타인의 초상권, 성명권 등의 퍼블리시티권를 침해하는 행위
2. “매체“를 이용하여 “회사“ 및 기타 제3자의 명예를 손상시키거나 업무를 방해하는 행위
3. “회사“의 직원이나 관리자 또는 제3자를 가장 또는 사칭하여 글을 게시하거나 메일을 발송하는 행위
4. “회사“의 “Adfit(애드핏) 서비스 플랫폼“에 게시된 정보를 변경하거나 “서비스“를 통해 제공 받아 “매체“에 게재한 광고의 내용, 링크, 순서 등을 변경, 조작하는 등의 행위
5. 수동과 자동을 불문하고 다양한 부정한 방법을 사용하여 광고를 노출시키거나 광고 클릭을 반복하는 행위를 유도하거나 승인하는 등 기타 부정한 방법으로 수익을 추구하는 행위
6. 기타 관계 법령, 본 약관 및 “서비스“ 운영정책과 “세부 지침“에 위배되는 모든 행위
(“서비스“ 운영정책 : Kakao AdFit 운영정책 URL)
③ “회원“은 “서비스“ 이용권한을 “회사“의 동의없이 타인에게 대여하거나 양도하여서는 안되며, 타인의 “서비스“ 이용 권한을 “회사“의 동의없이 대여받거나 양수하여서도 안 됩니다.
④ “회원“은 카카오계정 및 “서비스“ 내 “회원“ 정보에 허위의 정보를 기재하거나 타인의 정보를 사칭 및 도용하여 기재해서는 안됩니다.
⑤ “회원“은 “서비스“에 관한 자료와 “서비스“ 이용과정에서 취득한 일체의 정보를 제3자에게 제공, 공개 또는 누설하여서는 안됩니다. 단, “서비스“ 이용을 통해 발생한 적립금은 공개가 가능합니다.
⑥ “회원“은 “회원“의 “매체“를 이용하는 “방문자“에 대한 개인정보보호 정책을 정보통신망 이용촉진 및 정보보호 등에 관한 법률(동시행령 및 규칙 포함) 및 개인정보 보호법(동시행령 및 규칙 포함)에 의거하여 수립 및 준수하여야 하며, 이에 대해서 “방문자“에게 충분히 고지하여야 합니다. 또한 “회원“은 “매체“에 “회사“가 광고 품질 향상을 위해 “방문자“의 브라우저에서 익명화된 인터넷 사용 정보를 수집할 수 있음을 적절한 방법으로 고지하여야 합니다.
⑦ “회원“은 “서비스“ 제공 또는 본 조 위반여부를 확인하기 위하여 “회사“가 자료 또는 접근 권한의 제공 및 관련 사실에 대한 소명을 요청하는 경우에는 이에 성실히 협조하여야 합니다.
⑧ “회사”의 귀책없이 “회원“이 본 약관, 운영정책 또는 관련 법령 등을 위반하여 제3자가 “회사“를 상대로 민·형사상 소 제기 등 문제를 제기하는 경우 “회원“은 해당 분쟁 해결을 위해 적극 협조하여야 하며, 이와 관련하여 “회사“에 손해가 발생한 경우 손해를 배상합니다.

제 16 조 이용제한 등
① “회사“는 “회원“이 관련 법령 및 본 약관 또는 운영정책에 따른 의무를 위반하는 경우 서비스의 이용 정지, 본 약관 동의에 따른 이용계약 해지 등(이하 “이용 제한“이라고 합니다)을 할 수 있습니다. “이용 제한“의 구체적인 기준 등에 대해서는 운영정책 등에서 정합니다.
② “회원“이 카카오계정 또는 카카오 통합계정을 이용함에 따라 “세부 지침“을 위반하여 제재를 받은 경우, “회사“는 제재 기간 동안 “서비스“의 이용을 제한할 수 있습니다.
③ “회사“는 전항에 따라 “이용 제한“을 하는 경우 제12조에서 정한 방법으로 “회원“에게 통지합니다. 이 경우 “회사“는 “이용 제한“을 하기 전에 기간을 정하여 “회원“에게 이의신청 기회를 부여합니다. 단, 운영정책 등에서 정하는 사유가 있을 경우에는 별도의 이의 신청 기간을 부여하지 않을 수 있습니다.
④ “회원“은 본 조항에 따른 “이용 제한“에 대하여 이의신청을 할 수 있으며, “회사“는 “회원“의 이의가 정당하다고 인정할 경우 즉시 “이용 제한“을 취소합니다.

제 17 조 Adfit 계정의 탈퇴
①“마스터회원”은 자신이 생성한 “AdFit 계정”에 속해있는 “멤버회원”을 해제 처리할 수 있습니다.
②“멤버회원”은 언제든지 자신이 속해있는 “AdFit 계정”에서 나가기 기능을 통해 탈퇴 할 수 있습니다.
③”마스터회원”은 “AdFit계정”에 속해있는 “멤버회원”의 동의를 얻고 해당 “멤버회원”에게 마스터 권한을 이전하거나 “AdFit 계정” 삭제를 요청하여 “AdFit 계정” 삭제 처리 후 “AdFit계정”에서 탈퇴할 수 있습니다. 다만, 다음 각호의 어느 하나에 해당하는 경우에는 “AdFit 계정”을 삭제할 수 없습니다.
1.“AdFit 계정”에 “멤버회원”이 존재하는 경우
2.“AdFIt 계정”에 지급받지 않은 적립금이 있는 경우
3.“회사”가 지급 예정인 적립금이 있는 경우

제 18 조 회원의 탈퇴
① “회원“은 카카오 비즈 고객센터를 통하여 본 약관 제5조에 따라 가입한 “회원“ 탈퇴를 신청할 수 있으며, “회사“는 관련 법령 및 본 약관과 운영정책에서 정하는 바에 따라 이를 즉시 처리하여야 합니다. 단, 본 약관 제15조에 의하여 “이용 제한“ 조치가 취해진 “회원“인 경우 탈퇴가 보류되거나 거절될 수 있습니다.
② “회원“ 탈퇴가 완료되는 경우, “회사“는 관련 법령 및 개인정보처리방침에 따라 보유할 의무가 있는 정보를 제외한 “회원“의 모든 정보를 삭제합니다.
(개인정보처리방침 : kakao b2b 개인정보처리방침 https://biz.kakao.com/resources/html/business_privacy.html)
③ “회원“이 본 약관 또는 운영정책 등을 위반하여 탈퇴되는 경우 본 약관 및 운영정책에서 정하는 바에 따라 “서비스“ 재가입이 제한될 수 있습니다

제 19 조 손해배상 등
① “회사“는 “서비스“ 이용과 관련하여 “회사“의 고의 또는 과실로 인해 “회원“에게 손해가 발생한 경우 관련 법령이 규정하는 범위 내에서 “회원“에게 그 손해를 배상합니다.
② “회원“이 본 약관 또는 관련 법령을 위반하여 “회사“에 손해가 발생한 경우 관련 법령이 규정하는 범위 내에서 “회사“에 그 손해를 배상합니다.

제 20 조 책임 제한
① “회사“는 천재지변, 디도스(DDOS)공격, IDC장애, 기간통신사업자의 회선 장애, “매체“의 장애 또는 이에 준하는 불가항력으로 인하여 “서비스“를 제공할 수 없는 경우 “서비스“ 제공에 관한 책임을 지지 않습니다.
② “회사“는 “회원“의 귀책사유로 인한 “서비스“ 이용 장애에 대하여는 책임을 지지 않습니다.
③ “회사“는 “회원“의 “매체“ 및 “매체“에서 노출되는 “광고“와 “광고“의 신뢰도, 정확성, 적법성 등에 관하여 보증하지 않습니다. 단, “매체“가 관련 법령 또는 본 약관 및 “서비스“의 운영정책을 위반하는 경우 “회사“는 해당 “매체“에 “이용 제한“을 조치할 수 있으며, 이러한 “광고“의 게재 또는 게재 중단과 관련하여 “회사“는 책임을 지지 않습니다.
④ “회사“는 “매체“에서 노출되는 “광고“가 “회원“에게 우호적인 내용으로 구성되어 있음을 보증하지 않으며, “회원“에게 부정적인 내용으로 구성된 콘텐츠와 함께 “광고“가 게재된 것에 대하여 “회사“는 책임을 지지 않습니다.
⑤ “회사“는 “서비스“ 및 “서비스“의 이용과 관련하여 “회사“의 고의 또는 중과실이 없이 “회원“에게 발생한 일체의 손해에 관하여 책임을 부담하지 않습니다.

제 21 조 약관의 해석
본 약관에서 정하지 않은 사항이나 해석에 대하여는 “서비스“ 운영정책, “세부 지침“, 이용 안내, 관련 법령에 따르고, 본 약관과 다른 별도 합의가 있는 경우 별도 합의가 우선 적용됩니다.

제 22 조 준거법 및 재판관할
① 본 약관은 대한민국 법령에 의하여 규정되고 이행됩니다.
② “회사“와 “회원“ 간에 발생한 분쟁에 관한 소송은 민사소송법 상의 관할법원에 제소합니다.

부칙
본 약관은 2020년 4월 23일부터 시행됩니다.

[필수] Kakao AdFit 운영 정책

AdFit(애드핏) 서비스 운영정책
“AdFit(애드핏) 서비스“는 “회원“과 광고주의 정당한 권익 보호를 위하여 다음과 같은 정책에 따라 운영되고 있습니다. “회원“은 “서비스“ 이용약관에 의거하여 본 운영정책을 반드시 확인하고 준수하여야 하며, 본 운영정책 및 “세부 지침“을 위반하는 경우에는 “서비스“ 이용의 제한을 받을 수 있으니 유의하여 주시기 바랍니다. 본 운영정책에서 별도로 정의하지 않는 한, 본 운영정책 상 사용되는 모든 용어는 “서비스“ 이용약관에서 정의한 바와 동일한 의미를 가집니다.
보다 더 합리적인 “서비스“ 제공을 위하여 “회사“는 본 운영정책은 변경할 수 있으며, 변경되는 경우 최소 7일 전에 공지하도록 하겠습니다.

1. 회원 가입
카카오계정 이용자(만 14세 이상)는 누구나 “서비스” 가입을 신청할 수 있으며, “회사”는 심사 조건을 충족한 이용자에 한하여 “서비스” 가입을 승인합니다

2. AdFIt계정 심사 및 정보의 변경
“회사“는 광고 공급에 대한 신뢰성을 확보하고, “회원“에 대한 안정적인 수익 지급을 위해 다음의 기준에 따라 “AdFit(애드핏) 서비스”의 “AdFit 계정” 심사를 진행합니다.

2.1 심사 요건
“회사”는 아래 요건을 충족한 이용자에 한하여 “AdFit 계정” 생성을 승인합니다.

o “개인 AdFit 계정“
개인의 경우 “회사“가 요구하는 본인 인증 절차를 거친 후 “서비스” 및 “개인 AdFit 계정” 사용이 가능합니다.
o “사업자 AdFit 계정”
사업자로 “AdFit계정”을 생성하는 경우에는 사업자 정보의 유효성을 확인하기 위하여 본인이 소속되어 있는 법인의 유효한 사업자등록증을 제출하여야 합니다. “회사“는 이를 바탕으로 사업자 등록 여부 및 휴업, 폐업 여부 등을 확인 후 “AdFit계정” 생성을 거절하거나 승인합니다. 또한 경우에 따라 “회사“는 카카오계정 정보와 사업자 정보의 일치 여부 등을 확인하며, 이를 위한 추가 서류의 제출을 요청할 수 있습니다.
o “AdFIt계정” 공통
“회사“는 상기에 기재된 바에도 불구하고 “AdFIt계정” 심사에 필요하다고 판단되는 경우 추가적인 정보 또는 자료의 제공을 요청할 수 있습니다.

2.2 정보 변경
• “AdFIt계정” 심사 이후 계정 정보 페이지에서 정보의 열람 및 변경이 가능합니다. 단, 다음의 정보들은 변경이 제한되거나, 변경 시 별도의 절차를 거쳐야 합니다.
o “개인 AdFit계정“의 경우, 카카오계정, 이름, 주민등록번호는 변경할 수 없습니다.
o “사업자 AdFit계정“의 경우, 사업자등록번호, 업체명, 대표자명 등의 사업자정보 변경 시 별도의 증빙서류 제출 및 심사를 거쳐야 합니다.
• “서비스“ 이용에 따라 발생한 수익은 “AdFit계정” 계좌 정보에 등록된 계좌번호로 지급됩니다. 계좌 정보는 최초 지급 요청 시 “마스터회원”만 입력할 수 있습니다. 계좌번호는 변경이 가능하나 아래의 조건에 부합하여야 하며, “회사“는 “마스터회원“이 이를 위반하여 발생하는 불이익에 대하여 책임지지 않습니다.
o “개인 AdFIt계정“의 경우, 카카오계정의 소유자 명의와 일치하는 예금주 명의의 계좌로만 변경이 가능합니다.
o “사업자 AdFit계정“의 경우, “AdFit계정”생성 시 확인된 법인명 또는 해당 법인의 대표자명과 일치하는 예금주 명의의 계좌로만 변경이 가능합니다.

2.3 계정 유형 변경
• “AdFit계정” 생성 후 개인 → 사업자 유형으로 “AdFit계정” 유형 변경은 가능하지만, 사업자 → 개인 유형으로 변경은 불가합니다.
• “개인 AdFit계정” 에서 “사업자 AdFit계정”으로 유형 변경은 “AdFit” 계정 정보 메뉴에서 신청이 가능하며, 별도의 절차를 거쳐야 합니다.
o 신청 시 사업자등록번호, 업체명, 대표자명 등의 사업자정보를 입력하셔야 하며, 정보의 유효성을 확인하기 위하여 본인이 소속되어 있는 법인의 유효한 사업자등록증을 제출하여야 합니다. “회사”는 이를 바탕으로 사업자 등록 여부 및 휴업, 폐업 여부 등을 확인 후 “AdFit 계정” 유형 변경을 거절하거나 승인합니다. 또한 경우에 따라 “회사”는 카카오계정 정보와 사업자 정보의 일치 여부 등을 확인하여, 이를 위한 추가 서류의 제출을 요청할 수 있습니다.


3. 권한 설정
“마스터회원” 또는 “멤버회원”은 연결되어 있는 “AdFit계정”에 접근하고, “AdFit계정”의 전부 또는 일부를 관리할 수 있습니다.

3.1 권한 설정 방법 및 종류
• “마스터회원”은 “AdFit”계정 생성을 신청 후 “회사”가 이러한 신청에 대하여 승낙하거나, “멤버회원”이 “마스터회원”의 마스터 이전 요청을 승낙함으로써 “마스터회원”의 권한을 가지게 됩니다.
• “멤버회원”은 “마스터회원”이 멤버 초대를 할 사용자에게 멤버 초대 후, 초대를 받은 사용자가 이를 수락하는 경우 “멤버회원”의 권한을 가지게 됩니다..
• “AdFit계정”단위로 다음 권한은 “마스터회원”에게만 있습니다.
o “멤버회원”초대 권한
o “AdFit계정”에서 특정 “멤버회원”을 해제시킬 수 있는 권한
o 적립금 지급을 위한 정산 정보를 등록하거나 수정할 수 있는 권한
o 적립금을 지급 요청하거나 지급 요청을 취소할 수 있는 권한
o “매체”를 생성하거나 삭제할 수 있는 권한
• “AdFit 계정”단위로 다음 권한은 “마스터회원”, “멤버회원” 모두에게 있습니다.
o “매체”를 수정할 수 있는 권한
o “광고단위”를 생성 및 삭제할 수 있는 권한
o “광고단위”를 수정할 수 있는 권한
o 보고서 및 적립금을 조회할 수 있는 권한
o 계정 정보를 조회할 수 있는 권한
o “마스터회원”, “멤버회원”을 조회할 수 있는 권한

3.2 권한 이전 방법, 카카오 계정의 변경
“마스터회원”의 퇴사, “마스터회원”의 연락 두절 등의 사유로 마스터 카카오계정의 변경이 필요한 경우에는 해당 “AdFit계정”에 연결된 “멤버회원”에게 마스터 권한을 이전하여 해당 “AdFit계정”의 마스터 카카오계정을 변경하실 수 있습니다.

3.3 권한 철회 방법
“멤버회원”에게 주어진 권한은 멤버해제 또는 멤버나가기를 통하여 “멤버회원”권한을 철회할 수 있습니다.
• “마스터회원”은 멤버 관리 페이지에서 특정 멤버를 선택하여 “멤버해제”를 통해 “AdFit계정”의 멤버 권한을 철회할 수 있습니다.
• “멤버회원”은 멤버 관리 페이지 또는 내 계정 페이지에서 스스로 멤버나가기를 통해 연결된 “AdFit계정”의 멤버 권한을 철회할 수 있습니다.

4. 매체 심사
“마스터회원”은 “매체“에 “광고“를 게재하기 위하여 “Adfit(애드핏) 서비스 플랫폼“ “AdFit계정”에 자신이 운영하는 “매체“를 등록하여야 합니다. 등록된 “매체“는 “회사“와 광고주의 권익 보호를 위해 다음의 기준에 따라 심사를 진행하며, 심사 요건을 충족하지 못한 “매체“는 “광고“를 게재할 수 없습니다.

4.1 매체 등록
“마스터회원“은 “매체“ 심사를 위하여 “Adfit(애드핏) 서비스 플랫폼“ “AdFit계정”에 “매체“와 “광고 단위“를 등록한 후, 플랫폼에서 제공되는 최신 버전의 SDK 및 스크립트를 “매체“에 설치하여야 합니다. “회사“는 해당 SDK 및 광고 스크립트가 정상적으로 설치되어 광고 요청을 보내고 있음이 확인된 후 심사를 진행할 수 있습니다.

4.2 매체 심사
“회사“는 매체 심사를 위하여 아래의 항목들과 함께 본 운영정책 제3조의 준수 여부를 확인합니다.
o 매체의 소유관계
o 매체에서 보유하고 있는 콘텐츠의 질적, 양적 품질
o 매체에서 발생하는 트래픽의 질적, 양적 품질

5. 매체 운영 요건
“회사“는 “매체“가 다음의 운영 요건을 준수하고 있지 않을 경우, “광고“ 게재에 부합하지 않는다고 판단합니다. 이에 따라 “매체“의 심사 과정에서 아래와 같은 사항이 확인되는 경우 매체 심사가 반려될 수 있습니다. 심사가 통과된 이후에도 “회사“는 “회원“의 “매체“를 지속적으로 확인하며, “매체“가 운영 요건을 준수하지 않는다고 판단하는 경우 운영정책에 의거하여 제5조에 따라 “서비스“ 이용을 제한할 수 있습니다.

5.1 매체의 소유 관계
o “회원“의 계정과 매체의 소유관계가 불명확하거나, 서로 관계가 없음이 확인될 경우
o “회원“의 계정 또는 계정의 소유자가 과거 “서비스“에서 제재 조치를 받은 경우

5.2 콘텐츠 가이드라인
“회원“은 아래의 콘텐츠 가이드라인에 위배되는 콘텐츠가 노출되는 페이지에 광고를 게재할 수 없습니다. 자세한 광고 게재 불가 콘텐츠는 다음과 같습니다.

• 성인 / 음란 표현 콘텐츠
o 성적으로 자극적인 콘텐츠가 게재되어 있는 경우 (ex. 과도한 노출, 성적 표현이 있는 게시글)
o 성적 조언 관련 콘텐츠가 게재되어 있는 경우 (ex. 성기능 향상 및 성병 관련 콘텐츠)
o 성매매 / 애인대행 / 역할대행 등의 콘텐츠가 게재되어 있는 경우
o 유흥업소 관련 콘텐츠가 게재되어 있는 경우
o 본 조항의 항목들과 관련된 소개, 알선, 구인과 관련된 콘텐츠가 게재되어 있거나 그러한 목적으로 사용되는 경우
• 반체제 / 반사회적 표현 콘텐츠
o 욕설 / 범죄 / 성적 비하 / 혐오 / 종교, 지역, 인종 차별적 콘텐츠가 게재되어 있는 경우
o 폭력 / 유혈 / 잔인한 표현의 콘텐츠가 게재되어 있는 경우
o 특정 인물 / 특정 단체를 비방하는 경우
o 괴롭힘 / 따돌림 관련 콘텐츠가 게재되는 경우
• 사행성 / 사금융 관련 콘텐츠
o 도박 / 복권판매 / 경마 / 경륜 / 카지노 등의 콘텐츠가 게재되어 있는 경우
o 대부업 / 대부중개업 관련 콘텐츠가 게재되어 있는 경우
• 저작권 및 초상권 침해 우려가 있는 콘텐츠
o 콘텐츠를 타 사이트에서 정당하지 않은 방법 또는 권리자의 허락없이 복제해 온 경우
o 콘텐츠나 링크 클릭 시 아웃링크로 연결되는 경우
o 불법 콘텐츠의 거래, 유통, 알선 등이 이루어지는 경우
o 콘텐츠에 대한 정식 퍼블리싱 계약을 맺지 않고 API를 통해 가져온 정보들로만 구성한 경우
o 콘텐츠에 공인을 포함한 타인의 초상권 및 지적재산권 등을 침해하는 내용이 다수 포함되는 경우
• 지나치게 광고가 많은 콘텐츠
o “회사“의 광고가 한 페이지 당 4개를 초과하여 게재되어 있는 경우
o “회사“ 외 타 광고 네트워크 플랫폼의 스크립트가 동시에 여러 개 게재된 경우
※ 단, 동시에 스크립트가 표현되는 것이 아닌, 여러 개의 스크립트가 순차적으로 사용되는 경우는 해당되지 않음
• 법률에서 금지된 내용들이 게재되는 등 법률을 위반하는 불법 콘텐츠
o 마약 / 가짜명품 등 거래가 금지된 물품에 대한 콘텐츠가 게재되어 있는 경우
o 총기, 도검 / 주류 / 담배 / 복권 / 불법 의약품 등 온라인 거래가 허용되지 않는 항목들에 대한 콘텐츠가 게재되어 있는 경우
• 해킹 / 크래킹 관련 콘텐츠
• 리워드 관련 콘텐츠
o 광고 클릭을 유도하거나, 클릭할 경우 사용자에게 보상을 약속하는 경우
o 본인의 매체 내에서 웹 서핑, 게시글 작성 등 유사한 작업을 수행하여 트래픽을 고의적으로 발생시키고, 사용자에게 보상을 약속하는 경우
o 이러한 서비스를 구현하는 방법을 안내하여 트래픽을 유도하거나, 관련 자료 제공 및 홍보하는 경우
• 부정확한 정보를 전달하는 콘텐츠
o 허위 또는 불확실한 사실로 “방문자“를 콘텐츠에 참여시키거나 사용자 정보를 불법적으로 수집하는 등의 모든 행위 포함
• 부정행위 및 불법 행위를 계획/공모/방조하는 등 타인의 권리 침해를 조장하는 일체의 콘텐츠
• 채팅, 메신저와 같은 동적 콘텐츠
o 콘텐츠와 함께 광고를 계속 동적으로 불러오는 경우 포함
• 기타 “회사“의 정책에 위배되거나 광고주 ROI를 저하시킬 위험이 있다고 판단되는 경우
o “방문자“가 광고를 클릭할 수밖에 없도록 의도적으로 광고를 배치한 경우
o 문구나 이미지를 통해 “방문자“가 광고를 클릭하도록 유도하는 경우
o 매체 수익이 명확하게 밝혀지지 않으면서, 매체 운영 방식이 사용자에게 대가를 제공하는 형태인 경우(문화상품권, 게임아이템 제공 등)
o 콘텐츠의 레이아웃 및 사용성이 크게 떨어지는 경우
o 콘텐츠 자체가 오클릭을 유발하기 쉬운 경우 (유아 및 어린이 대상 앱 포함)
o 콘텐츠의 내용이 지나치게 부족하여 “방문자“의 유의미한 콘텐츠 소비가 발생하지 않는 경우
o 허용된 “방문자“(예: 멤버십 로그인 등)만 조회 / 열람이 가능한 경우
o 검색창에 특정키워드를 입력하여 놓거나, 특정키워드의 검색결과로 바로 진입하는 경우
o 매체 또는 매체 “방문자“의 국가, 지역, 언어 등이 광고주의 광고 집행 목적에 부합하지 않는 경우
o 기타 미성년자 대상 부적합 콘텐츠의 경우

5.3 광고 게재 위치 정책
“회원“은 광고 게재 위치 정책에 위배되는 콘텐츠 페이지에 광고를 게재할 수 없습니다. “회원“은 다음의 광고 게재 위치 정책을 준수해야 합니다.

• “방문자“가 “회원“이 제공하는 콘텐츠를 사용하는 동안 실수로 클릭할 수 있는 위치 금지
※ 실수로 클릭할 수 있는 버튼 및 기타 객체 가까이에 광고 배치 금지
※ 링크, 재생 버튼, 다운로드 버튼, 이전/다음 버튼, 드롭다운 메뉴 등을 광고 근처에 배치하여 의도하지 않은 클릭을 발생할 수 있는 모든 행위를 포함
※ 광고 닫기 버튼 등이 광고 영역 내에 위치 하는 행위 금지
• 문구나 이미지 등 어떤 방식으로든 “방문자“가 광고를 클릭하도록 고의로 유도 금지
※ 클릭을 유도, 부탁하는 문구, 이미지 등을 사용한 경우
※ 화살표 등으로 광고를 가리키거나 색상 및 애니메이션 등으로 광고 영역을 부각시키는 모든 행위를 포함
• 오해의 소지가 있는 제목 아래에 광고 배치 금지
※ '추천' 또는 '유용한 링크' 등 오해의 소지가 있는 제목 아래에 광고를 배치하는 행위
• 콘텐츠 자체가 오클릭을 유발하기 쉬운 위치 금지(유아 및 어린이 대상 앱 포함)
• 사용자가 원하지 않았음에도 불구하고 새로고침 및 페이지 갱신이 의도적이고 지속적으로 발생하는 페이지에 광고 배치 금지
• 콘텐츠를 덮거나 가리는 영역에 광고 배치 금지 금지
• 광고 클릭 없이는 페이지를 이동할 수 없는 위치에 광고 게재 금지
※ 광고가 배치되는 화면은 광고를 클릭하지 않고도 이동할 수 있어야 함(ex. ‘뒤로가기’, ‘메뉴’ 버튼이 화면에 존재해야 함)
• 광고가 배치되는 공간은 고정되어 함
※ 고정되지 않은 광고 배치로 인해 “방문자“가 의도하지 않은 클릭이 발생하지 않도록 해야 함
• 광고와 비슷하게 만든 콘텐츠를 광고 주변에 배치는 행위 금지
※ 광고를 위장할 목적으로 광고 주변에 광고처럼 보이는 콘텐츠를 배치하는 행위
※ 콘텐츠의 UI를 광고와 구분되지 않게 조작하는 모든 행위
• 모바일 광고의 경우, 기기의 백그라운드, 위젯, 앱 종료 후 등 포그라운드가 아닌 상태에서 광고 배치 금지
※ 광고가 어떤 애플리케이션에 구현 또는 연결되었는지 사용자가 명확히 파악할 수 있어야 함

5.4 이용제한 정책
“회원“은 “서비스“를 이용하는 동안 아래 내용을 준수하여야 하며, 이를 위반하는 경우 광고 게재 중단, “서비스“ 이용 제한 등의 불이익이 발생할 수 있습니다.

• 기술적인 사유
o “회사“의 서버에 과도한 부하를 유발하는 경우
o 스크립트 및 SDK를 임의로 수정 / 변조하는 경우
o “회사“에서 더 이상 지원하지 않는 구 버전 스크립트 및 SDK를 사용하는 경우
o 스크립트 및 SDK를 “서비스“에 등록한 “매체“가 아닌 제3의 “매체“에 설치하는 경우
o 허위로 적립금을 누적하기 위하여 광고 관련 데이터를 조작하거나 조작을 시도하려는 경우
o 광고를 클릭하는 “방문자“의 개인정보를 어떤 방식으로든 수집하는 경우
• 광고의 호출 및 노출 방식
o 웹사이트 외의 전자문서(이메일, PDF 등)에 광고를 게재 / 호출하는 경우
o “회사“가 승인하지 않은 툴바, 다운로드 프로그램 등의 어플리케이션 설치를 통해 광고를 호출하는 경우
o 팝업 페이지나 아이프레임 또는 사전 승인된 URL 접속 시 리다이렉트 되는 사이트에서 광고를 호출하는 경우
• 무효 처리되는 활동
o 광고를 수동 또는 기계적인 방법 등을 통해 임의로 클릭/노출 및 그 외 모든 활동(광고 호출, 전환 등)을 발생시키거나 그러한 정황이 의심되는 경우
※ 광고 클릭은 반드시 “방문자“의 의도에 의한 결과여야 하며 클릭수와 노출수를 인위적으로 늘리는 어떠한 수단도 사용 금지
o 무효 클릭이 지속적으로 “회사“의 정책 및 기준 이상으로 발생되는 경우
o “방문자“ 현황 대비 비정상적인 클릭/노출이 의심되거나, 아래 내용에 해당하는 활동이 의심되는 경우
※ “회원“이 본인의 광고를 클릭하는 경우(테스트를 위해 본인의 광고를 과도하게 클릭하는 것 포함)
※ 수작업을 포함한 인위적인 노출 및 클릭이 발생한 경우
• “매체“의 품질 관련
o “매체“가 “회사“가 제공하는 콘텐츠 가이드라인을 준수하지 않은 경우
o 심사를 위하여 일시적으로 “매체“ 품질을 향상시켰던 정황이 의심되는 경우
o “매체“의 “방문자“, “광고“ 요청 수 등의 지표가 감소하여 “회사“의 정책 및 기준에 미달되는 경우
o 3개월 이상 “광고“의 요청 및 유효 과금이 발생하지 않는 경우
o 일정 기간 동안 콘텐츠의 업데이트가 없는 경우
o “회원”, “AdFIt계정“ 및 “매체“와 관련된 사업체가 휴업 또는 폐업되었음이 확인된 경우
o “매체“ 및 “매체“의 콘텐츠에 대해 분쟁 또는 논란이 발생하는 경우
• 기타
o “회원“이 광고 성과, 광고 운영과 관련된 정보를 공개한 경우
o “회원“이 “방문자“에 대한 개인정보보호정책을 수립 / 준수하지 않거나, 관련 법령에 저촉되는 행위를 한 것으로 판단되는 경우

6. 적립금 및 수익 지급
“서비스“ 약관 및 운영정책에 근거하여 적법하게 “매체“에 노출된 “광고“의 성과에 따라서 “AdFit계정“에 적립금이 배분되며, “회사“는 적립금이 아래에 규정한 조건을 충족하는 경우 “마스터회원“의 요청에 따라 적립금을 현금으로 “AdFit 계정”의 “마스터회원“에게 지급합니다. 배분되는 수익의 비율은 “회사“에서 정한 기준에 따르며, 이 기준은 “회사“의 정책에 따라 변경될 수 있습니다.

6.1 적립금의 종류
“회사“는 “매체“에 노출된 “광고“ 유형에 따른 성과를 측정하며, 이에 따라 배분된 적립금이 “회원“의 “AdFIt 계정”에 누적됩니다. 이러한 적립금은 아래와 같이 두 종류로 분류됩니다.
• “예상 적립금“ : 노출된 “광고“의 성과 발생 1일 후 해당 “광고“에 대한 적립금이 누적되며, 이를 예상 적립금이라 합니다. “회원“은 “Adfit(애드핏) 서비스 플랫폼“에서 예상 적립금을 확인할 수는 있지만 즉시 현금으로 지급받을 수는 없으며, “회사“는 운영정책 제5.4조에 따라 일부 또는 전체 적립금을 회수할 수 있습니다.
• “확정 적립금“ : 발생한 “예상 적립금“이 일정 기간을 거친 후에 최종적으로 적립 금액이 결정된 경우 현금화가 가능한 금액으로 전환되며, 이를 “확정 적립금“이라 합니다. “확정 적립금“이 일정 금액 이상인 경우 “마스터회원“은 해당 “확정 적립금“에 대해서 지급을 요청할 수 있습니다.

6.2 예상 적립금의 확정 적립금 전환
• 원칙적으로 해당 월의 1일부터 말일까지의 “예상 적립금“이 익월 20일에 “확정 적립금“으로 전환됩니다. 다만, “회원“의 운영정책 위반 등의 사유가 발생하는 경우에는 내부 확인을 위하여 “확정 적립금“으로의 전환이 지연될 수 있으며, “회사“의 운영정책에 따라 전환 날짜 및 기간이 변동될 수 있습니다.

6.3 적립금의 지급 요청 및 처리
“AdFit계정”에 “확정 적립금“이 최소 지급액 이상으로 누적된 경우, “마스터회원“은 “Adfit(애드핏) 서비스 플랫폼“에서 적립금의 지급을 요청할 수 있습니다. 지급 요청이 발생하면, “회사“는 다음과 같이 지급 요청을 심사하여 이상이 없는 경우 수익을 “회원“에게 지급합니다.
• 최소 지급액 : 1회 지급 요청이 가능한 최소 금액은 5만원으로, “확정 적립금“이 5만원 미만인 경우에는 지급 요청을 하실 수 없습니다. 관련 법령에서 정해진 바에 따라 “개인 AdFIt계정“의 “확정 적립금“은 원천징수소득세가 징수된 후의 금액으로 지급되며, “사업자 AdFit계정“의 “확정 적립금“은 부가가치세가 포함된 금액으로 지급됩니다.
• 지급 요청 기간 : 매월 20일(이하 “정기 지급일“이라 합니다)의 익일부터 말일까지가 지급 요청 기간입니다. “마스터회원“은 해당 기간에 “AdFit계정”별 1건의 지급 요청이 가능하며, 말일까지는 지급 요청을 수정 또는 취소할 수 있으며, 기간 경과 시에는 취소가 불가합니다.
• 정기 지급일 : 지급 요청 심사가 완료되면, 도래하는 “정기 지급일“에 지급 요청 금액이 현금으로 계좌에 입금됩니다. “정기 지급일“이 주말 또는 공휴일일 경우, 그 이후에 도래하는 영업일에 지급됩니다.
• 지급 형태 : “마스터회원“이 “Adfit(애드핏) 서비스 플랫폼“ “AdFit계정”에 입력한 계좌에 현금 입금하여 지급합니다.
• 지급 요청(증빙서류의 발행 및 제출) : “마스터회원“은 지급 요청 시 “회사“에서 적립금 지급을 위하여 필요하다고 판단하는 전자세금계산서(사업자 유형의 경우 반드시 전자세금계산서를 발행하여 국세청 및 “회사“에 전송하여야 합니다) 등의 구비 서류를 발행 및 제출하여야 합니다. 지급 요청에 대한 증빙서류는 매월 말일까지 발행 및 전달되어야 하며, 그렇지 않은 경우에는 지급 요청이 거절됩니다.
• 지급 요청의 심사 : “회사“는 “회원“의 지급 요청에 대하여 다음 항목들을 확인하는 방법으로 지급 여부를 심사합니다. 아래의 사유로 인하여 지급이 거절된 “확정 적립금“은 소멸되지 않으며, 차후 도래하는 지급 요청 기간에 재요청이 가능합니다.
o 개인 AdFit 계정 : 최초 지급 요청 시 1회 지급에 요구되는 정보의 확인을 위한 인증을 거쳐야 합니다. 이 때 회원명과 예금주명이 일치하지 않는 경우 지급이 거절됩니다.
o 사업자 AdFit 계정: 지급 요청 후 해당 월의 날짜로 작성된 전자세금계산서를 발행하여야 합니다. “회사“는 해당 전자세금계산서의 발행 및 유효 여부를 확인하여 지급 여부를 결정하며, 지급 계좌가 “AdFIt계정”생성 시 제출한 사업자 등록증에 기재된 명의와 일치하는 계좌가 아닐 경우 지급이 거절됩니다.
o 휴업, 폐업 사업자의 지급 요청 : 사업자가 휴업 또는 폐업 상태에서도 “확정 적립금“에 대한 지급 요청을 할 수 있습니다. 다만 휴업/폐업으로 인한 지급 요청은 단 1회에 한하여 “확정 적립금“ 전액에 대한 지급을 요청할 수 있으며, “예상 적립금“이 없는 경우에만 처리가 가능합니다. 또한 지급 요청과 동시에 “광고“의 노출 및 과금이 중단되며, “매체“를 등록하거나 “광고 단위“를 발행하는 행위도 제한됩니다. “마스터회원“은 지급 요청 후 즉시 다음의 증빙 서류를 “회사“에 제출하여야 합니다.
• 사업자등록증 사본
• 대표자 신분증 사본
• 대표자 통장 사본
• 채무변제확인서
• 휴업 또는 폐업확인서
• 개인정보 수집 및 이용 동의서

“회사“는 제출된 서류를 바탕으로 사실 관계를 확인 후 지급을 결정하며, 증빙 서류가 유효하지 않은 경우 해당 지급 요청은 거절됩니다. 이 때 휴/폐업 사업자에 대한 지급은 대표자 개인에 대한 지급으로 처리되며, 사업자 대표자명과 예금주명이 일치하지 않는 경우 “회사“는 지급을 거절할 수 있습니다.

“확정 적립금“은 원천징수 후 지급되며, 원천징수 금액은 관련 법령에 정해진 바를 따릅니다. “회원“이 폐업에 따른 적립금을 지급받은 후에는 해당 계정과 계정에 속한 “매체“, “광고 단위“를 통해 다시 “광고“를 게재하거나 수익을 지급받을 수 없으나, 휴업 회원이 재개업을 한 경우에는 고객센터 또는 1:1 문의를 통해 증빙 서류 제출 및 심사 절차를 거쳐 다시 “광고“를 게재할 수 있습니다.
• 적립금의 만기 : “회원“이 발생한 적립금의 만기가 도래할 때까지 지급 요청하지 않은 경우, “회사“는 해당 금액을 소멸시킬 수 있습니다. 적립금의 만기는 확정 적립금의 발생일 다음 날로부터 5년이 되는 날입니다.

6.4 적립금의 보정 및 회수, 지급 제한 관련
부당한 방법으로 성과가 발생하였거나 적립금이 확정되었다고 판단되는 경우, “회사“는 “예상 적립금“을 “이용자“에 대한 별도의 통보 없이 조정하거나, “확정 적립금“을 회수하고 지급을 거절하여 부정하게 누적된 금액을 적립금에서 차감할 수 있습니다. 이에 대하여 “회원“은 고객센터를 통해 이의를 제기하실 수 있습니다.

7. 이용 제한의 종류 및 제재 조치
“회사“는 “회원“이 “서비스“ 이용약관 및 운영정책, “세부 지침“에 따른 의무를 위반하는 경우 아래의 내용 및 절차에 따라 “서비스“ 이용을 제한합니다. “서비스“ 이용 제한의 종류 및 기준은 경고 제한, 활동 제한, 영구 제한으로 단계적으로 이루어지지만 제5.4조의 이용제한 정책 위반 정도가 중대한 경우 제한 단계와 관계 없이 즉시 활동제한 또는 영구제한 제재가 이루어질 수 있습니다.

“회원“에 대하여 “서비스“의 이용을 제한하는 경우, “회사“는 “회원“이 제공한 전자우편주소, (휴대)전화번호, 카카오톡 메시지, “서비스“ 로그인시 공지 등의 수단으로 등으로 통지합니다.

7.1 경고 조치
“AdFIt계정”에 등록된 “매체“에서 위반 사항이 적발된 경우 이에 대한 수정 요청과 함께 “매체“를 심사 보류 상태로 전환하고 경고를 부여합니다. 이 때 심사 보류 상태가 되면 “매체“ 하위의 “광고단위“에 대한 광고의 노출이 중단됩니다.
위반 사항에 대하여 “매체“ 유형에 따라 아래의 기한(이하 “수정 기한“이라 합니다) 내 수정 및 “매체”가 등록된 “AdFIt계정“의 재심사 요청이 필요하며, “회사“는 수정 사항이 확인된 경우 “매체“를 심사 승인 상태로 전환합니다.
• 웹사이트 : 경고일로부터 2주
• 모바일 어플리케이션 : 경고일로부터 4주

7.2 활동 제한
아래에 해당되는 경우 “회사“는 “AdFIt 계정” “회원“의 “매체“를 심사 반려 상태로 전환하여 활동을 제한합니다. 심사 반려가 되면 “매체“ 하위의 “광고 단위“에 대한 “광고“의 노출이 중단되며, 동일한 “매체“에 대한 재심사가 불가합니다.
• “수정 기한“ 내에 “매체“의 위반 사항이 수정되지 않은 경우
• 단기간에 지속적인 위반 사항의 적발로 경고가 누적된 경우

7.3 영구 제한
본 운영정책 제3.4조의 이용제한 정책 위반 정도가 심각하거나 법령에서 금지하는 명백한 불법행위나 긴급한 위험 또는 피해 차단이 요구되는 경우에는 위반 활동 횟수의 누적 정도와 관계없이 “회사“는 즉시 “회원“의 “서비스“ 이용을 영구 제한할 수 있습니다.

영구 제한이 되면 “회원“이 등록한 모든 “매체“의 “광고 단위“에 대하여 광고의 노출이 중단되고 “광고 단위“의 추가나 삭제, 수정 등의 활동이 불가능해지며, 향후 어떠한 “매체“의 신규 등록도 불가합니다.
영구 제한된 “회원“이 “서비스“의 재사용을 위해 탈퇴 후 새로운 카카오계정을 생성하여 “서비스“ 가입 신청을 하는 정황이 의심되는 경우, “서비스“ 이용약관 제5조 제3항에 따라 “서비스” 가입이 제한될 수 있으며 카카오 운영정책 등 “세부 지침“에 의거하여 계정 생성이 제한될 수도 있습니다.
카카오 운영정책 http://www.kakao.com/policy/oppolicy?lang=ko

7.4 부당 수익에 대한 추가 조치
“회원“이 “서비스“ 이용약관 및 운영정책을 위반하여 부당한 수익을 획득했다고 판단되는 경우, “회사“는 “회원“에 대하여 아래와 같은 추가 조치를 진행할 수 있습니다.
• 지급 정지
지급 정지 시 “회원“은 적립금의 지급을 요청 할 수 없으며, 이미 지급 요청된 내역은 승인 거절됩니다.
• 광고 수익의 회수
부당하게 획득하였다고 판단되는 적립금은 제4.4조의 절차를 통하여 회수됩니다.

7.5 이용 제한 및 제재 조치에 대한 이의제기, 제한 사유의 확인 및 소명
본 조에 따른 이용제한 및 제재 조치를 받게 되면 “회원“은 일(1)주일 이내에 카카오 비즈 고객센터를 통해 이용제한에 대하여 이의제기와 소명을 진행할 수 있습니다. 이 때 이의 제기는 카카오 비즈 고객센터를 통해 접수하여야 유효한 것으로 간주되오니 반드시 이를 확인하고 동 절차에 따라 진행하여 주시기 바랍니다.

8. 장기 미접속 회원의 휴면정책
정보통신망 이용촉진 및 정보보호 등에 관한 법률에 따라 아래 기간 동안 서비스를 이용하지 않으면 개인정보를 파기 또는 분리 보관 후 이용계약을 해지할 수 있습니다.

8.1 회원 휴면 정책
• 1년 동안 회원의 kakao AdFit 접속 이력이 없는 경우 휴면 전환되어 회원의 개인정보를 분리 보관합니다.
• 회사는 회원이 휴면 상태로 전환되기 30일 전 이메일 알림을 통해 사전에 안내합니다.
• 개인정보 분리 보관 이후 4년 동안 로그인 하지 않을 경우, kakao AdFit에 등록된 개인정보를 파기하고 kakao AdFit 은 탈퇴 처리합니다.
• 휴면 전환 이후 회원은 kakao AdFit 로그인 시 자동으로 휴면 해제가 됩니다.

8.2 AdFit 계정의 휴면 정책
• 회원이 휴면 상태로 전환되면, 해당 회원이 마스터인 AdFIt 계정도 휴면 상태로 전환되며 AdFit 계정에 등록된 개인정보를 분리 보관합니다.
• 마스터 회원이 휴면 해제가 되면 자동으로 kakao AdFit도 휴면 해제가 됩니다.

[필수] 개인정보 수집 및 이용 동의

개인정보 수집 및 이용 동의 관련 내용 표목적항목보유기간

서비스 제공에 관한 계약이행 및 원활한 의사소통 이름, 이메일, 휴대전화번호 탈퇴일로부터 정산 진행 시까지 보관 후 지체없이 파기

(주)카카오는 위의 목적으로 개인정보를 수집 및 이용하며, 회원의 개인정보를 안전하게 취급하는데 최선을 다합니다.
회원 가입 및 서비스 이용을 위해 필요한 최소한의 개인정보이므로 동의를 해 주셔야 서비스 제공이 가능합니다
더 자세한 내용에 대해서는 개인정보처리방침을 참고하시기 바랍니다.

[필수] 개인정보 처리 위탁

개인정보 처리 위탁 관련 내용 표위탁받는 업체위탁업무 내용

(주)케이앤웍스 고객센터 운영 및 고객상담, 매체 심사 및 운영 관리 업무

(주)카카오는 위의 목적을 위하여 개인정보 처리 업무를 위탁하여 운영하고 있습니다.
더 자세한 내용에 대해서는 개인정보처리방침을 참고하시기 바랍니다.

모든 필수 약관에 동의합니다.

다음

서비스 이용정보

개인정보처리방침 | AdFit 이용약관 | 운영정책 | AdFit 이용문의 ©Kakao Corp.

'{3D} 가상 세계' 카테고리의 다른 글

중요한 로그  (0) 2021.05.23
XR, AI, IoT, 블록체인  (0) 2021.03.21
한 사람의 힘  (0) 2020.10.29
멤버 모집에 대한 몇 가지 생각  (1) 2020.09.29
쿠팡의 미래  (3) 2020.09.25

https://biz.chosun.com/site/data/html_dir/2014/02/24/2014022401613.html?Dep0=twitter

페이스북, 인재 놓쳐 20조원 쓴 사연…와츠앱 창업자 낙방시켜

세계 최대 소셜네트워크회사(SNS) 페이스북이 인수한 모바일 메신저 와츠앱(whatsapp) 창업자가 페이스북 입사 면접에서 떨어졌다는 뒤늦게 ..

biz.chosun.com

 

 

https://besuccess.com/2014/02/belaunch_02_2/

여기선 지워졌다. 몇 년 지나면 지워질 거라 생각했는데 정말 그렇게 되었다.

 

http://news.bizwatch.co.kr/article/market/2016/02/12/0022

‘10억’ 찍은 왓츠앱…라인·카톡은 ‘기쓰고 용써도…’

글로벌 모바일 메신저들이 엇갈린 성과를 거두고 있다. 미국 '왓츠앱(WhatsApp)'과 중국 '위챗(WeChat, 微信·웨이신)'의 이용자 수가 쑥쑥 늘어난데 반해 토종인 '라인'과 '카카오톡'은 비교할 수 없을

news.bizwatch.co.kr

 

 

https://news.g-enews.com/view.php?ud=2017091313395344e8b8a793f7_1&md=20170913134253_R

[CEO라운지] 왓츠앱 공동창업자 브라이언 액튼 회사 떠난다

왓츠앱(WhatsApp)의 공동창업자 브라이언 액튼(Brian Acton‧45)이 회사를 떠나 자신의 재단을 시작한다고 12일(현지 시간) 리코드가 보도했다. 브라이언 액튼은 트위터와 페이스북에 입사 지원을 했다

www.g-enews.com

 

 

http://www.seattlekcr.com/Article/view.aspx?p=1&aid=9115

이 사이트는 기사가 날아가고 시애틀 교차로로 바뀌었다.

https://wowseattle.com/

WowSeattle Seattle KCR

wowseattle.com

 

 

난 지금에야 널리 퍼진... 기업에 떨어져도 당당한 한국 문화는 이 사람이 가져온 것으로 알고 있다. 워낙 유명한 기사지만, 혹 모르시는 분을 위해. 또 나도 가끔 찾아보려고 적어 둔다. 버전 업이 되어도 아래 스샷은 계속 남길 것이다.

 

 

'{3D} 가상 세계' 카테고리의 다른 글

XR, AI, IoT, 블록체인  (0) 2021.03.21
https://hajunho.com 컨설팅 취미  (0) 2020.12.27
멤버 모집에 대한 몇 가지 생각  (1) 2020.09.29
쿠팡의 미래  (3) 2020.09.25
필요성에 따라 지출하는 비용과 구라...  (0) 2020.09.25

디자인은 잘 모르지만 디자이너에 따라 "결"은 확실한 것 같다. 그래서 회사가 어떤 디자인으로 갈지 정하는 것이 중요하고 거기에 맞는 디자이너를 데려오는 것은 더 중요하다는 것을 알게 되었다. 제너썬아이브가 애플을 만든 택이니 이 부분은 논란의 여지는 없는 것 같다.

 

 

AI 엔지니어의 경우 모델은 스스로 결과 시연 가능한 평가 방법을 정하고 기준에 맞는 퍼포먼스를 보여줄 수 있는 사람으로 해야 겠다.

디자이너랑 개발자도

카테고리가 많네.

 

나도 좀 더 구체적으로 정해야 겠네..

'{3D} 가상 세계' 카테고리의 다른 글

https://hajunho.com 컨설팅 취미  (0) 2020.12.27
한 사람의 힘  (0) 2020.10.29
쿠팡의 미래  (3) 2020.09.25
필요성에 따라 지출하는 비용과 구라...  (0) 2020.09.25
ARM Apple  (0) 2020.09.22

사실, 쿠팡의 미래는

https://brunch.co.kr/@jyzz21/15

쿠팡의 미래

아마존의 재무제표 분석을 통해 쿠팡의 미래를 예상합니다. | 쿠팡의 현재와 미래를 걱정하는 분들이 참 많습니다. 쿠팡과 관련하여 워낙 많은 글과 기사들이 넘쳐나므로 쿠팡에 대한 이야기는

brunch.co.kr/@jyzz21/15

 

이런 시각으로 보는 것이 맞겠다.

 

내가 매거진을 만든 이유는 내 시각을 이야기하고 나와 비슷한 곳에서 현상을 바라보는 분이 있다는 것에 감사하기 위해서이다.

 

내가 보는 시각은 이렇다.

http://www.saramin.co.kr/zf_user/company-info/view/csn/8158101244/company_nm/%EC%8B%AD%EC%9D%BC%EB%B2%88%EA%B0%80(%EC%A3%BC)

십일번가(주)기업정보 - 사람인

십일번가(주)기업정보 및 연봉정보, 취업자료, 진행중 채용정보 제공

www.saramin.co.kr

 

 SK의 11번가는 대한민국 기업이다.

 

SK는 대한민국 사람을 팬다. 그 현상이 이상해서 뉴스 기사도 나고, 베테랑이라는 영화도 나왔다.

https://news.kbs.co.kr/news/view.do?ncd=3643310

[취재후] “한 대에 100만원”…‘맷값폭행’ 피해자, 8년 지나도 고통은 진행형

"매 한 대에 100만 원이니까 스무 대만 맞아라" 2015년 개봉한 류승완 감독의 영화 <베테랑>은 안하무인 재벌 2세 조태오(유아인)의 '망나니' 연기로 흥행 돌풍을 불러일으켰습니다. 하지만 <베테랑>

news.kbs.co.kr

 

 

쿠팡은 일본 기업이라고 한다. 또, 아니라고도 한다.

https://www.logibridge.kr/product/thedepths17

온라인쇼핑 최저가 시대의 종말…쿠팡VS롯데VS신세계 '누가 살아 남을까?'

<1부에 이어서><1부 듣기 클릭> ◇남 : 지금 온라인 시장은 엄청나게 소비자 편익 ...

www.logibridge.kr

 

 

난 손정희는 한국 사람이라고 생각한다. 만약 아니라면, 미국 사람+ 일본 사람+한국 사람일 것이다. 그런데 이런 논란은 중요치 않다.

https://www.ajunews.com/view/20200727181821438

여직원 늘어난 쿠팡맨, 1만명 돌파…'쿠팡친구'로 개명

[사진=쿠팡 제공]쿠팡이 ‘쿠팡맨’의 명칭을 ‘쿠팡친구’로 변경했다. 27일 쿠팡은 지난 22일 1만번째 배송직원을 채용하면서 ...

www.ajunews.com

 

 

임직원 1000명과 0 하나 더 붙은 10000명은 차원이 다른 차이이다. 근무 환경, 근속 년수, 복지, 정직원 개념? 그리 중요치 않은 것 같다. 내가 삼성전자 정직원 7년 동안 단, 한 번도 정직원이라고 생각해 본 적 없는 것 같이 말이다. 잘하면 남는 거고 못하면 나가는 거고, 시대의 흐름과 맞으면 같이 가는 거고 같이 가지 말자면 가지 않는 것이 기업의 속성이고 실력이 있다면 이직이 자유로운 IT 개발자 세계의 특징이기 때문이다.

 

공개적으로 발간하지 못한 내 책에 가장 중요한 개념은 "시간"이라고 말했었다. 딱 지금의 스냅샷만 찍어서, 딱 그 순간의 시간만 따서 말하는 것이 틀렸다고 생각할 수 있다. 그러기에는 너무 큰 사건이고, 어려운 시기에 너무도 많은 같은 밥 먹는 식구이다.

 

어려운 시기에 한국 사람을 더 뽑을 수 있다는 것.

 

영화 "원라인"에서 이를 가리켜

사이즈가 다르네

 

라고 한다. 이를 따라한 기사도 있다.

 

https://www.wikitree.co.kr/articles/503324

“사이즈가 다르네...” 우한 병원에 '112억 원' 기부한 연예인

치료법 찾는 실험실에 기부한 것으로 전해진 가수

www.wikitree.co.kr

 

 

쿠팡은 사이즈가 다르다. 검색은 구글이라고 하지만 상품 검색은 쿠팡으로 한다. 내 생각을 말할 뿐, 내가 쿠팡을 도와주려고 글을 쓰는 것은 아니라 잠깐 다른 이야기를 하면 사실, 검색은 좀 다른 의미로 새로운 기술 도입이 필요해 보인다. 필터를 먹일 때마다 원하는 상품이 사라진다. 그리고 오픈 마켓 이후에는 검색 유이나 검색 조건에 따라서 가격도 달라진다. RTX2080 그래픽 카드를 샀는데 지금 보니 14만 원 다운되어서 하나 더 살까 고민하다가... 반품하려고 반품 버튼 눌렀는데 1달 지났다는 팝업 창 뜬 이후로 다시 가격이 복구되었다.

 

손정희가 주춤할 때 쿠팡 같은 회사는 산업은행에서 2~3조 꽂아주면 좋겠다. 그리고 쿠팡에 중고 물품을 사고팔 수 있는 시스템을 도입하고 중고 판매자에게 수수료를 떼는 방식으로 수익의 다각화를 하면 좋겠다.

 

이 모든 생각은 단지, 쿠팡 배송은 확실히 다른 곳과 차별점이 있기 때문이다. 나 개인적으로 한 명의 쿠팡 맨 때문에 쿠팡 배송에 대해서 무지하게 좋지 않고 오랜 기억(유리는 깨지고 캔 음료는 다 터지고 전자제품은 망가지는 등... 강력한 컴플레인 전, 몇 달간)이 있으나 쿠팡 배송은 다른 곳과는 확실히 다르다고 할 수 있겠다. 

 

이런 생각을 할 수도 있다. 다른 물류 업체도 중요하니, 11번가나 G마켓과 연계된 다른 배송업체의 서비스를 쿠팡 수준으로 올리도록 도우면 안 될까? 응,... 안된다.

 

그것은 SK에서 전화 거는 사람들은 전부 위촉직이라는 이름의 알바로 쓰는 것만 봐도 자회사의 사원으로 쓸 의지가 있는 회사와 상황에 따라 꼬리 자르기를 할 회사와의 큰 차이이다.

 

손정희의 업을 이룬다는 것은

아마도 완전히 다른 형태의 승부로 보인다.

 

untact 시대 대한민국에서 그 날, 혹은 다음 날 중고거래 보다 더 믿음직하고 안전하게 물건을 배송해 주며 한국 사람들을 최대한 많이 뽑고 정직원의 희망을 줄 수 있는 회사는 수익 구조와 관계없이 몇 조 넣어줘도 괜찮은 사이즈다. 나 역시 월급쟁이지만 그런 사이즈의 회사에 2~3조는 일 년 치 연봉 정도로 보인다.

 

사이즈가 다른 쿠팡은 대한민국의 대표 기업이다.

 

삼성전자까지도 다녀봤지만 삼성전자에 있었던 슈퍼 컴퓨터 that is available when you raise proposalthat is available when you raise a proposal 를 제외하고 정말 나에게 지급된 컴퓨터 중에 집에 있는 컴퓨터 보다 성능이 좋은 적은 단 한 번도 없었다.

그러나 software 2.0 시대가 오고 나서 컴퓨터 비용이 많이 비싸졌다.

이에 상응하는 컴퓨터 마련을 위해 개인 컴퓨터들을 구입하는데 3000만원 가량이 들었다. 덕분에 신용 대출도 하게 되고.

쩝... 국가 과제의 필요성을 절실히 느끼는 요즘이다.

CTO로 있는 법인이 2개 인데, 지분이 그리 높지는 않다. 대표자나 생사고락을 할께 할 동료들에게 연대 보증이 없어진 것은 참 좋지만 지금 상황은 사실 연대 보증 있을 때랑 별 구분이 없기 때문이다. 개발도 중요하지만 특히나 서류를 작성하는 것이 얼마나 중요한지 깨닫는 요즘이다.

무조건 좋은 컴퓨터를 살 필요는 없지만... 컴퓨터만 있으면 창업이 가능한 시대에서 바뀐 것은 없으나 그 비용이 상당히 커졌다. 클라우드도 막상 써보면 비싸긴 마찬가지 ㅡㅡ; 매출 0원으로 상장하려면 독보적 기술력을 가지던지, 그에 맞는 BM을 가지던지 해야 할 것 같다.

"구라"가 제목에 들어 간 이유는 빌드 타임에 맞게 끔 회사에 컴퓨터 사양을 요구하는데 들어주지 않기 때문이다. 거의 다 그렇다. 뭐, 그렇다가 내가 불만 가지고 꿍 하고 있을 사람도 아니도 다양한 방법으로 해결 했었다. 그런데 지금은 내 컴퓨터를 회사로 들고 와서 써야 하는 상황이 왔다. 그래서 써 둔다. 회사도 개발자 능력을 정확히 평가하고 거대한 오픈 소스를 빌드 한다고 하면 컴퓨터 사양을 정할 창구를 좀 만들라고 하고 싶다.

'{3D} 가상 세계' 카테고리의 다른 글

멤버 모집에 대한 몇 가지 생각  (1) 2020.09.29
쿠팡의 미래  (3) 2020.09.25
ARM Apple  (0) 2020.09.22
스톡 옵션을 포기한 한 회사가 상장한 썰 외  (0) 2020.09.22
인력 수급...  (0) 2020.09.07

1. iPhone and iPad Apps on Mac. All newly created and existing compatible iPhone and iPad apps will be made available on Mac. Your compatible apps will be published on the Mac App Store on Apple Silicon Macs unless you edit their availability. Manage Availability

 

애플 개발자 사이트에 접속했다.  이 문구를 보고 타고 들어가, 아이폰 앱스토어에 올려져 있던 앱 중 맥에서도 사용할 수 있게 하려면 체크박스 체크하고 확인 버튼 누르면 끝.

 

ARM MAC이라 가능한 이야기.

 

구글은 안드로이드 모바일은 시장을 먹었지만 데스크톱을 먹지 못했고,

마이크로 소프트는 데탑(랩탑) 마켓 셰어를 가져갔지만 모바일은 못했는데,

 

그 틈을 파고들어 결정타를 날렸다.

 

2. VMware가 열심히 마소랑 구글을 돕겠지만... 가상 환경과 퍼포먼스 차이가 클 것이라 예상된다.

 

변수는 언리얼 엔진과 텐서 플로우. ARM에 최적화된 3D 엔진 개발자, AI 논문 구현 개발자 몸 값은 하늘을 찌를 것 같지만 애플에 입사한다는 가정이라고 생각하고 일반 직장인이라고 생각해 보면 딱히 그렇지만은 않은 것 같다. 그 외 사람들은 여전히 3D, AI 엔진을 사용할 테니 기여 방법이라면 ARM용 unreal engine, ARM용 tensor flow가 되겠다. ARM에 기여하면 구글도 덕을 보니... 텐서가 비공개가 될 일은 없어 보인다. 이미 공개했는데 다시 비공개로 가는 것도 불가능한 이야기. 비공개로 가는 순간 이미 공개된 것으로 사업화를 하는 기업들에게 이름을 빼앗겨 버릴 테니 말이다. 공개된 Eclipse 보다 래셔널 제품이나 인텔리 J가 더 좋았던 것처럼.

 

ARM으로 CPU를 만들면 시장을 평정할 거라 생각한지는 오래다. ARM Firmware 강사 한지도 4년이 넘었는데 공식이고 비 공식으로는 오드 로이드를 처음 봤을 때였다. 어차피 휴대폰도 하나의 컴퓨터라고 생각해보면 오드 로이드 같은 임베디드 제품이 나오는 것은 당연한 일일 것이다. 그리고 임베디드를 겨냥해서 치열하게 설계를 고민하고 거기서 쌓아 올린 CPU는 또 얼마나 뛰어날까 생각도 해 보았었다.

 

3. 물론, 리사수가 나타나기 전까지는 말이다.

https://www.youtube.com/watch?v=QZU8H4d8KmA

 

 

IT계에서 그녀는 이렇게 불립니다.

빛 사수

 

이민자, 황인, 여성이라는 유리천장을 박살 낸 그녀. MIT학석박에 IBM에 근무했고 인텔이나 엔비디아 자유롭게 선택할 수 있었음에도 

그런 회사는 ‘쉬운 선택지’이긴 하지만 매력이 없다.


며 망해가는 AMD로 가서 본인 연구를 칩에 적용하여 INTEL을 이겨버립니다.

https://youtu.be/X-byHrNIxAQ? t=1227

 

 

성능을 더 뛰어나게 만들고, 값은 반토막 내어버리는... 개발 단계에서는 가능하지만 상용 제품 양산에 이것이 가능하다는 것은 정말 대단합니다. 개발된 제품도 양산시에는 거대한 생산기술 프로세스가 들어가기 때문입니다. 손으로 두들겨 만드는 것과 양산을 위해 자동화한다는 것에는 많은 차이가 있습니다. 스웨터를 손으로 만드는 것은 힘들긴 하지만 스웨터를 만들어 본 사람이라면 어느 정도 그림이 그려지나, 그 스웨터를 여러 개 뜨기 위해 스웨터를 만드는 기계를 만들어야 하는 것은 또 다른 큰 작업이라는 뜻입니다.

 

 

4. 애플이 과거 자사 CPU로 power PC를 만들다 INTEL로 넘어갔다. 잡스는 더 좋은 게 있으면 유저를 위해 그냥 그것을 쓰라는 철학이 있었다. 그래서 인텔로 갈아탔고, 거대한 회사인 adobe의 플래시를 구리다며 빼 버렸다. 그 때문에 올해 말 플래시는 완전히 끝난다.

https://www.youtube.com/watch?v=Ga_7u8IU49E

 

 

ARM으로 갈아탄 애플이 성능으로만 승부를 하고 싶다면, 당장 해야 할 일은 ARM 설계자와 리사수를 데려오는 것일 수 있다(Apple + ARM + AMD). 그러나 애플은 워낙 사용자 층이 두꺼워서 알아서 제품을 공급해 주려고 할 것이다. 혹은, ARM용 맥과 X86 기반의 CPU용 데스크톱을 계속 이원화하여 출시할 수도 있겠다. GPU 성능이 점점 중요해지면서 CPU는 일정 수준만 되어도 된다고 생각한다면 승부해 볼만 하겠다. GPU 외 TPU가 AI 분야에서 큰 성능 차이를 보였기 때문에 이제는 뭘 하는지에 따라 맞는 제품을 쓰는 게 맞다고 생각할 수도 있겠다. 초연결 시대에 데탑 성능에 집중하지 말고 그냥 클라우드 접속용으로만 쓰고 화면 공유에만 신경 써도 된다고 생각할 수도 있겠다. 이처럼 다양한 관점이 있다. 이런 관점들을 추려내는 가장 중요한 기준은 "애플은 충성 고객을 다수 보유하고 있다"는 것이다.

 

5. 애플의 전략을 바라고는 다양한 고려 사항이 있다. 애플을 제외한 시장이라면, 어느 기업이던 시장에서 승리하는 조건은 간단하다. 뛰어난 성능과 저렴한 가격이다. 단, 애플의 경우 지금까지 하드웨어 성능으로 승부하지 않았다. 하드웨어부터 소프트웨어까지 모두 만들 수 있으니 사용성에 집중했다. 사용자가 편리하면 그만이었던 것이다. 블루투스로 연결하던 와이파이로 연결하던 케이블로 연결하던 사용자는 "연결"이라는 것만 신경 쓰면 되었다. 가령 아이폰으로 전화가 왔을 때 맥에서 받을 수 있게 하는 기능. sidecar처럼 아이패드를 연결하면 보조 디스플레이로 쓸 수 있게 하는 것. 아이클라우드, 타임캡슐을 이용해서 자동으로 백업이 되게 하는 기능, 이전 아이폰 옆에 새 아이폰을 두면 내용을 그대로 복사해서 옮겨 주는 기능 등. 애플이라서 생각하고 구현할 수 있는 기능을 많이 보여주었다. 그런 애플이 ARM을 선택한 것은 맥 프로 같이 고성능 데스크톱 군도 만들 수 있으니 굳이 당장 고성능 시장에 집중하지 않아도 된다는 전략이 있을 것이라 생각된다.

 

6. 독자들 중에도 아마 애플이 WWDC에 관심이 없지만 애플 제품을 쓰고 계신 분들을 많을 거라 생각한다. 애플은 큰 변화가 있어도 기존 사용자들이 거의 느끼지 못한다. 애플 제품 사용자는 새로운 기능을 보고 사용법을 익혀서 사용하는 것이 아니라. 늘 사용하던 기능이 시나브로 더 좋게 되면서 자연스럽게 익혀지게 만든다. 기술보다 사용성에 집중하기 때문이다.

 

7. 어린아이도 애플 로고를 보고, 어 사과(애플)다.라고 한다. 이미 이미 로고에서 모든 철학이 결정 나 버리는 애플을 이길 만한 것이 딱히 떠오르지 않는다. 세상을 변화시키고 싶은 사람들이 구글이나 마이크로소프트, 페이스 북에 모여 있다고 해도 아마 애플에서 자유로운 능력의 발현을 보장하는 입사 제의가 오면 어느 엔지니어가 그것을 단숨에 뿌리칠 수 있겠는가?

 


이제 좀 더 진솔한 이야기를 해 보자.

 

따지고 보면 각자 상황에 맞는 컴퓨터가 따로 있다.

 

 난 오래도록 리눅스를 했고, 윈도를 했다. 애플에 입문한지는 6년 정도인데 맥북 프로, 에어, 아이패드 프로, 아이패드, 애플 워치, 에어포트 익스트림, 아직 안 팔고 가지고 있는 아이폰 3gs, 6, 7, 8, X, XR, 11 등 애플빠라고 해도 된다. 그중 가장 성능이 뛰어난 맥은 제온 CPU가 장착된 아이맥 프로인데 노트북을 많이 쓰고 들고 다니기 무겁고 색 결정 장애라, 맥 프레도 2개를 샀고, 나중에는 에어도 2개를 샀다. 1개는 최근 전자신문 1면에 나신 모 회사 대표님께 무상으로 드렸다. 아이패드도 6개월~1년간 안 쓰다 보니 아이패드 미니는 동생에게 보냈고 또 하나는 처가로 보냈다. 아이패드 프로도 안 켠 지 오래...

 

그래서 생각해 본다. 아이맥 프로는 개발할 때 참 좋다. 화면이 넓어서, 휴대용 컴퓨터는 맥북에어로 충분한 것 같다. 내 작업 대부분이 서버와 붙어서 하는 작업이라 윈도 데이터 센터 붙을 때는 mstsc, 우분투 리눅스에는 termius로 충분하다. 그 외는 CUDA  AI 컴퓨터 컨트롤은 team viewer로 컨트롤한다. 맥북 프로는 무겁고, 아이패드로는 컨트롤이 어렵기 때문에 맥북 에어로 충분하다는 것이다. 

 

그러나 외주 프로젝트할 때는 맥 프레가 필수다.

 

그리고 내 주 컴퓨터는 사실 맥이 아니다. AMD 기반의 데탑이다. X399, 64GB ram, 스레드 리퍼를 쓴다. 왜냐면 맥에서는 오버워치가 안되기 때문이다. 물론, AI도 AMD데탑에 꽂힌 2080에서 더 공부하기 쉽다. 최근 언리얼에서 무료 게임을 계속 푸는 바람에 하드디스크도 더 늘렸는데 MAC은 자유롭게 하드 디스크를 늘이려면 외장 하드가 최선이다. 맥은 하드웨어 확장이 어렵다. 최근 친구 컴퓨터를 보니,

윈도에 쿼드로 P6000을 2개 달고 쓰더라. 클라우드 쓸 것 아니면, Sli나 CrossFire나 최근 4개보다 2개가 대세인 것 같다.

http://prod.danawa.com/info/?pcode=4728048&keyword=%EC%BF%BC%EB%93%9C%EB%A1%9CP6000&cate=112753

[다나와] NVIDIA 쿼드로 P6000 D5X 24GB ABKO

최저가 7,599,990원

prod.danawa.com

 

 

만약, IT를 업으로 하지 않았다면 많은 컴퓨터를 살 일도 접할 일도 적으리라 생각한다. 그래서 일반 사용자 입장인 와이프 입장에서 생각해 본다. 집에 맥이 많지만 쓰지도 않고 프린트한다고 아이맥 프로 쓰는데 힘들어한다. 그래서 대한민국의 일반 사용자 입장에서는 다른 모든 컴퓨터는 필요 없고, 

LG 노트북 gram 이 최고다.

라고 말할 수도 있는 것이다. 참고로 LG 싫어함, 개인적으로 ㅡㅡ; 그래도 LG gram이 좋은 것은 fact니 어쩔 수 없다. 애플 자랑하는 사람에게는 "옵치 돌아가니?"라고 할 수 있고, 애플 제품 없는 사람에게는 "뭔가 다르니 그래도 한 번 써봐"라고 할 수 있겠다. 내 경우엔... 그냥... 다 싫다. 취미가 일이 되는 순간 싫은 것 같다. 한 때 얼리어답터를 좋아했었던 기억에 좋아한다고 스스로 속이고 산다. IT로 먹고사는 내가 가장 좋아하는 것은 종이와 연필이다. 만년필도 좋다.

 

글은 이렇게 늘 산으로 간다. 대한민국 만세. 애플이 좋긴 해도 되도록이면 국산 제품을 쓰자. 애플을 쓴다면 애플 에코 시스템 기반으로 새로운 가치를 창출하자는 것이 결론이다. 일단, ARM으로 갔으니 난 대 환영이다. 운영체제 지배받지 않는 드라이브 삽입 가능하게 해 주고, Hz 높고 쇼트에 안정적인 GPIO 포트를 직접 뽑아 주면 정말 땡큐 하겠다. 그럼, 오실로스코프도 MAC S/W로 가능할 것 같다. 뭐, 이미 만들었었지만.

 

혼술.

디자이너는 2D 디자이너 3D 디자이너 둘 다 있어야 겠다.

 

+ Recent posts