#This Document will be continuously updated.

오픈 소스의 도움을 받아 만들었기에 공개 가능한 코드는 다음 github 에 모두 공개 합니다. 다른 포스트도 지우거나 해당 github의 소스로 모두 대체합니다.

https://github.com/hajunho/repo_hajunho.slack.com

 

GitHub - hajunho/repo_hajunho.slack.com: is able to use SWIFT, PYTHON, WEB programming language well.

is able to use SWIFT, PYTHON, WEB programming language well. - hajunho/repo_hajunho.slack.com

github.com

######################################

최근, 혼자 쏘캐너를 만들고 있었습니다. Android, iOS 둘 다 만들어서 마켓에 런칭한 이 후 Anil 이라는 좋은 인도 개발자를 만나서 안드로이드쪽은 떼 주고 이전에 정리했었던 기술도 어느 정도 통일이 되어 Swift + SwiftUI 로 최신 프로젝트를 하고 있습니다. 제가 기여한 오픈소스를 가져와서 프로그램을 만들기 때문에 회사 귀속으로 할 수도 없거니와(하려면 해당 오픈 소스들을 제 값주고 다 사야 하는데 아마 수천억 들겠죠) 제가 인터넷에서 받은 수 많은 지식들을 회사 귀속 코드를 제외하고 다 돌려 드리기 위해 이 카테고리를 만들었습니다. 어찌보면 광고의 목적도 있고, 함께 하고픈 사람도 계속 늘여 나가고 싶기도 하구요. IPO가 목적인데, 처음엔 일부 동의하는 사람이 있는 줄 알았는데 지금보니 저 혼자 IPO를 믿고 있는 것 같습니다. 아마 기술 분야로 해야 하고 마지막 그림은 저 외엔 보기 힘들다는 점도 ... 이걸 깨달아야 외롭지 않게 묵묵히 길을 갈 수 있겠지요. 이 블로그를 살아 움직입니다. 글이 써졌다가 고쳐졌다가 지워지기도 하구요. 아마 오랜 구독자는 이미 잘 알고 계시리라 생각합니다. 단, 거짓말은 하지 않는 다는 것을요. 순수한 마음으로 접근해도 평생을 바쳐도 모자란 것이 지식 탐구라는 것을 알면, 세속적 기준을 가져다 대는 것이 얼마나 우스운 일인지... 10대 때 알았던 사람은 저처럼 40대가 되어도 변함이 없다는 것을, 또 80대가 되어도 마찬가지라는 것을 알겁니다. 

 

 요즘은 거의 백엔드만 하고 있어서 사실 iOS도 적합한 개발자를 뽑으면 이 카테고리도 shutting down 하고 백엔드에만 집중하고 싶습니다. 그래도 iOS 개발이 10년이 넘어가다 보니 Xcode 단축키만 쳐도 뭔가 편안함이 느껴지는 터라.

취미로 개발을 하고,

취미로 개발을 해도 publishing 이 가능한 분야가 되었네요.

이에, 꾸준히 빌드업을 할테고 백엔드를 해서인지 다른 언어를 통해 Swift 를 보는 관점을 달리 해 보니 또 더 깊게 알게 되는 것 같아 좋아요. 지난 게시글이 있지만 #This Document continuously updated. 라는 문구가 있으면 지난 자료는 뒤로 보내거나 없애거나 수정을 하며 하나의 게시글을 계속 업데이트 하는 방식으로 진행하려고 합니다. 그래서 아무리 시간이 지나도(제가 죽을 때까지?) 한 카테고리 당 100개의 게시물을 넘지 않도록 하려고 해요. 제가 60계 치킨을 좋아하다보니 그 숫자를 60에 맞추려고 할지도 모르겠군요. 아무튼, 여러개를 올리는 것 보다 좀 더 농도 짙은 게시글로 하고 싶은 마음이 있습니다.  --> 테마를 바꾸어 보니 30개에 맞춰야 보기 편하겠네요.

 

테스트 계정 /2023/656b64010b5fed1db4fc7ae4

파일명 형식

20240402103818_03_2024_5088212684.jpg
2.09 MB image/jpeg 2024. 4. 2.

20240402103835_03_2024_5088212684.jpg
2.42 MB image/jpeg 2024. 4. 2.

20240402103848_03_2024_5088212684.jpg
2.03 MB image/jpeg 2024. 4. 2.

20240402103901_03_2024_5088212684.jpg
1.87 MB image/jpeg 2024. 4. 2.

20240402103916_03_2024_5088212684.jpg
1.96 MB image/jpeg 2024. 4. 2.

20240402103929_03_2024_5088212684.jpg

733753835824_4_2024__656b64010b5fed1db4fc7ae4_거래처명:xx산부인과.jpg
2.04 MB image/jpeg 2024. 4. 2.

733754143865_4_2024__656b64010b5fed1db4fc7ae4_거래처명:xx산부인과.jpg

앱스토어 신규 필터.


App Store Connect
 
Hello,

We noticed one or more issues with a recent submission for App Store review for the following app:
---

---

---
Although submission for App Store review was successful, you may want to correct the following issues in your next submission for App Store review. Once you've corrected the issues, upload a new binary to App Store Connect.

ITMS-91053: Missing API declaration - Your app’s code in the “App” file references one or more APIs that require reasons, including the following API categories: NSPrivacyAccessedAPICategoryDiskSpace. While no action is required at this time, starting May 1, 2024, when you upload a new app or app update, you must include a NSPrivacyAccessedAPITypes array in your app’s privacy manifest to provide approved reasons for these APIs used by your app’s code. For more details about this policy, including a list of required reason APIs and approved reasons for usage, visit: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api.

ITMS-91053: Missing API declaration - Your app’s code in the “App” file references one or more APIs that require reasons, including the following API categories: NSPrivacyAccessedAPICategoryFileTimestamp. While no action is required at this time, starting May 1, 2024, when you upload a new app or app update, you must include a NSPrivacyAccessedAPITypes array in your app’s privacy manifest to provide approved reasons for these APIs used by your app’s code. For more details about this policy, including a list of required reason APIs and approved reasons for usage, visit: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api.

ITMS-91053: Missing API declaration - Your app’s code in the “App” file references one or more APIs that require reasons, including the following API categories: NSPrivacyAccessedAPICategoryUserDefaults. While no action is required at this time, starting May 1, 2024, when you upload a new app or app update, you must include a NSPrivacyAccessedAPITypes array in your app’s privacy manifest to provide approved reasons for these APIs used by your app’s code. For more details about this policy, including a list of required reason APIs and approved reasons for usage, visit: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api.

Apple Developer Relations

 

'Swift & Python 실무 > {APP} SOCANNER APP' 카테고리의 다른 글

MSA 아키텍처 도입  (0) 2023.12.11
Apple developer program has been updated.  (0) 2021.06.08
game center icon  (0) 2021.06.04
Game Center transcript  (0) 2021.06.04
agreements  (0) 2021.05.29

TLS(전송 계층 보안)를 지원하는 FTP 서버를 설정하여 데이터 전송 중 보안을 강화할 수 있습니다. 여기서는 vsftpd를 예로 들어 TLS 지원을 추가하는 방법을 설명하겠습니다. TLS를 활성화하면 FTPS(File Transfer Protocol Secure)를 통해 데이터를 암호화하여 전송할 수 있습니다.

1. SSL 인증서 생성

FTPS 연결을 위해서는 SSL 인증서가 필요합니다. 자체 서명된(셀프 사인드) 인증서를 생성하거나, 인증 기관(CA)으로부터 인증서를 구입할 수 있습니다. 빠른 설정을 위해 여기서는 자체 서명된 인증서를 생성하는 방법을 안내합니다.

sudo mkdir /etc/ssl/private
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

이 명령은 365일 동안 유효한 새 RSA 키 쌍과 자체 서명된 인증서를 생성합니다. 생성 과정에서 몇 가지 정보(예: 국가, 조직 이름 등)를 입력해야 합니다.

2. vsftpd 설정 파일 수정

다음으로, vsftpd 설정 파일(/etc/vsftpd.conf)을 수정하여 TLS 지원을 활성화합니다. 텍스트 에디터로 파일을 열고 다음 줄을 추가 또는 수정합니다.

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem

이 설정은 TLS를 활성화하고, 익명의 SSL 연결은 허용하지 않으며, 모든 로컬 데이터 전송과 로그인을 SSL을 통해 강제로 실행하도록 합니다. 또한, SSLv2와 SSLv3는 보안상의 이유로 비활성화하고, TLSv1은 활성화합니다.

3. vsftpd 재시작

설정을 변경한 후, vsftpd를 재시작하여 변경 사항을 적용합니다.

sudo systemctl restart vsftpd

4. 방화벽 설정 (필요한 경우)

TLS를 사용하는 FTP 서버는 일반적으로 제어 연결에 21번 포트를 사용하며, 데이터 전송을 위해 추가 포트를 동적으로 할당합니다. vsftpd 설정에서 pasv_min_port와 pasv_max_port를 설정하여 패시브 모드에서 사용할 포트 범위를 지정할 수 있습니다. 이 포트 범위도 방화벽을 통해 열어야 합니다.

예를 들어, 40000에서 50000 사이의 포트를 열려면:

sudo ufw allow 40000:50000/tcp
sudo ufw reload

주의사항

  • 자체 서명된 인증서를 사용할 경우, 클라이언트는 서버의 인증서를 신뢰할지 여부를 확인할 수 있어야 합니다. 인증 기관에서 발급받은 인증서를 사용하는 것이 보다 안전하고 신뢰성이 높습니다.
  • FTPS와 SFTP는 서로 다릅니다. FTPS는 FTP에 SSL/TLS 보안을 추가한 것이고, SFTP는 SSH(File Transfer Protocol over SSH)를 기반으로 합니다. 용도에 맞게 적절한 프로토콜을 선택하세요.

특정 사용자가 FTP로만 접속할 수 있고 SSH로는 접속할 수 없도록 설정하는 것은 보안을 강화하는 데 도움이 될 수 있습니다. 이를 구현하는 방법은 여러 가지가 있지만, 여기서는 가장 일반적인 두 가지 방법을 소개하겠습니다.

1. 사용자 쉘을 변경하여 SSH 접속 차단

사용자의 로그인 쉘을 /bin/false나 /usr/sbin/nologin으로 변경하면 해당 사용자의 SSH 접속을 차단할 수 있습니다. 이 방법은 사용자가 시스템에 로그인할 수 없게 하지만, 사용자가 FTP를 통해 파일 전송은 가능하게 합니다. 이를 위해 다음 명령어를 사용할 수 있습니다:

sudo usermod -s /usr/sbin/nologin username

여기서 username은 해당 설정을 적용하고자 하는 사용자의 이름입니다. 이 변경 후에는 사용자가 SSH로 접속을 시도하면 접속이 거부됩니다.

2. SSH 서버 설정 변경

/etc/ssh/sshd_config 파일을 편집하여 특정 사용자 또는 사용자 그룹의 SSH 접속을 차단할 수 있습니다. 이 파일에서 DenyUsers 또는 AllowUsers 지시어를 사용하여 특정 사용자의 접속을 제어할 수 있습니다.

예를 들어, 특정 사용자 username의 SSH 접속을 차단하려면, /etc/ssh/sshd_config 파일을 열고 다음 줄을 추가합니다:

DenyUsers username

또는, 특정 사용자만 SSH 접속을 허용하고 나머지는 모두 차단하려면, AllowUsers 지시어를 사용할 수 있습니다. 이 경우, AllowUsers에 지정되지 않은 모든 사용자는 SSH 접속이 거부됩니다.

변경 후에는 SSH 서비스를 재시작하여 변경 사항을 적용해야 합니다:

sudo systemctl restart sshd

주의사항

  • FTP 접속만 허용하려는 경우, 보안을 위해 가능하다면 FTP 대신 SFTP(SSH File Transfer Protocol) 사용을 고려해 보세요. SFTP는 SSH를 기반으로 하므로 데이터 전송 중 암호화를 제공합니다. 위에서 설명한 방법으로 사용자의 SSH 쉘 접근을 차단하면서도, 적절히 설정된 SFTP를 통해 안전하게 파일 전송을 허용할 수 있습니다.
  • 사용자가 시스템에 접속할 수 없도록 하면서도 FTP 또는 SFTP 접속을 허용하려면, FTP 서버나 SFTP 서버 설정에 따라 다를 수 있으므로 해당 서버의 문서나 설정 가이드를 참고하는 것이 좋습니다. FTP 서비스를 제공하는 서버 소프트웨어(예: vsftpd, ProFTPD 등)마다 설정 방법이 다를 수 있습니다.

vsftpd를 사용할 때 nologin 쉘을 가진 사용자가 FTP를 통해 로그인할 수 있도록 하기 위해 PAM 설정을 수정하는 방법을 설명하겠습니다. 기본적으로 vsftpd는 /etc/pam.d/vsftpd 파일을 통해 PAM 인증을 관리합니다. 이 파일을 수정하여 nologin 쉘을 가진 사용자도 FTP 접속을 허용할 수 있습니다.

PAM 설정 수정하기

  1. PAM 설정 파일 열기
    sudo nano /etc/pam.d/vsftpd
  2. /etc/pam.d/vsftpd 파일을 텍스트 에디터로 엽니다. sudo 권한이 필요할 수 있습니다.
  3. nologin 사용자 허용 설정 추가
    auth required pam_shells.so
    이 라인을 주석 처리하거나 삭제하여, pam_shells.so 모듈이 로그인을 시도하는 사용자의 쉘을 체크하지 않도록 할 수 있습니다. 대신, 다음과 같은 설정을 사용할 수 있습니다.pam_permit.so 모듈은 모든 인증 요청을 허용합니다. 이 설정을 사용하면 쉘 로그인이 제한된 사용자도 FTP를 통해 로그인할 수 있습니다.
  4. auth required pam_permit.so
     
  5. 파일 내에서, 인증 절차를 관리하는 부분을 찾습니다. 그리고 다음 라인을 파일에 추가하거나 기존 라인을 이 내용으로 대체합니다.
  6. 파일 저장 및 종료
  7. 변경사항을 저장하고 텍스트 에디터를 종료합니다. nano를 사용하는 경우, Ctrl + O, Enter를 눌러 저장하고, Ctrl + X로 종료합니다.
  8. vsftpd 재시작
    sudo systemctl restart vsftpd
  9. 변경사항을 적용하기 위해 vsftpd를 재시작합니다.

이제 nologin 쉘을 가진 사용자도 FTP를 통해 로그인할 수 있게 됩니다. 하지만, 보안상의 이유로 이 방법을 사용할 때는 주의가 필요합니다. pam_permit.so를 사용하면 인증 과정에서 보안이 약화될 수 있으므로, 가능하다면 보다 안전한 방법을 모색하는 것이 좋습니다.

지난해 10월부터 시작된 보안 유지 노력은, 마케팅 활동이든 기업 간 협력이든 그 목적을 불문하고, 상당한 시간 동안 지속되어 왔습니다. 관련자가 점차 늘어나면서, 기술 정보의 유출을 완전히 차단하기는 어려운 실정입니다.(개인적으로 어떤 솔루션을 썼는지도 초기 보안에 중요하고, 그 부분은 지켜진 것 같음. 이제 기술 감사나 협업, 마케팅을 위해서 어쩔 수 없고 OCR 하는 타 기업과 미팅 때문에 첫 번째 성벽은 이미 무너진 걸로...)

구글이 document AI를 적극적으로 업데이트 하는 가운데, 인터넷으로부터 많은 도움을 받는 저로서는 관련 분야에서 고군분투하는 엔지니어들에게 작은 도움이라도 제공하고자 이 페이지를 마련했습니다. 가치 있는 로그와 이에 대한 해결 방안을 공유하고자 하니, 도움을 주실 분들의 댓글도 언제나 환영합니다.

실제로 카카오, 네이버와 같은 대기업이 기술 블로그를 운영하며 기술 홍보에 나서는 것처럼, 이 또한 우리 솔루션을 알리기 위한 목적 중 하나입니다.

1007)')))
An error occurred: HTTPSConnectionPool(host='oauth2.googleapis.com', port=443): Max retries exceeded with url: /token (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1007)')))
An error occurred: 400 Request contains an invalid argument. [field_violations {
  field: "raw_document.content"
  description: "Document size (34381195) exceeds the limit: 20971520."
}
]
An error occurred: HTTPSConnectionPool(host='oauth2.googleapis.com', port=443): Max retries exceeded with url: /token (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1007)')))
An error occurred: HTTPSConnectionPool(host='oauth2.googleapis.com', port=443): Max retries exceeded with url: /token (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1007)')))
An error occurred: 400 Request contains an invalid argument. [field_violations {
  field: "raw_document.content"
  description: "Document size (33770199) exceeds the limit: 20971520."
}
]

또한, OCR에 영향을 주지 않으면서 파일 크기를 줄이기 위해 사용한 특정 솔루션에 대해 설명하기는 어렵지만, AI 모델 개발과 관련된 작업은 전문 담당자가 있으며, 직접 실험하거나 상당한 비용을 지출한 바가 없어 상세한 공개가 어려운 점 양해 부탁드립니다.

'Swift & Python 실무 > {BE} SOCANNER BE for AI' 카테고리의 다른 글

Pycharm Plug-ins  (0) 2023.12.30
백엔드 개발 퍼포먼스 측정 : top, htop  (0) 2022.11.14

'{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

Dev Containers, AWS Toolkit - Amazon Q, CodeWhisperer, and more, Big Data File Viewer, Space, Big Data Tools Core, Korean Language Pack / 한국어 언어 팩, Remote File Systems, Xcode Keymap

 

팁으로 Xcode 키맵 이후 가장 잘 쓰는 단축키

옵션 커맨드 위로 : 선택 영역 확장

커맨드 (펑션 F12) : func 찾기,  커맨드O나 커맨드 쉬프트O와는 또 다른...

옵션 (펑션키F7) : 사용처 찾기... F 시리즈 보다 훨 낫다.

OpenAI와 같은 기업은 보안 및 기술적인 이유로 자신들의 서버 구성과 하드웨어 세부 정보를 공개하지 않는 경우가 많습니다. 이러한 정보를 공개하면 해커나 악의적인 공격자에게 시스템에 대한 더 많은 정보를 제공하게 되어 보안 위협이 높아질 수 있습니다. 또한, 업데이트 및 변경 사항을 비밀로 유지하면 시스템을 보호하고 안정성을 유지하기 더 쉽습니다.

또한 회사의 기밀 정보나 경쟁력을 보호하기 위해서도 서버 구성 및 하드웨어 정보를 공개하지 않을 수 있습니다. 이러한 정보를 다른 경쟁 업체나 조직에 제공하지 않고 보호함으로써 경쟁 우위를 유지할 수 있습니다.

요약하면, 보안 및 기술적인 이유로 많은 기업은 서버 구성 및 하드웨어 세부 정보를 공개하지 않습니다.

 

'will be deleted.' 카테고리의 다른 글

서울 평택 FM 102.7  (0) 2022.03.30
쉬엄쉬엄 한 것, 독서, 강의 시청[2022년]  (0) 2022.03.26
음악 저작권 예외 국가  (0) 2022.03.19
40대 아재 - 현대가 현대했네요.  (0) 2021.10.15
rtx 3090 온도 측정  (0) 2020.11.06

# 10MB 이상의 모든 파일 찾기
find . -size +10M -type f | while read -r file; do
    # Git LFS로 각 파일 추적
    git lfs track "$file"
done

# .gitattributes 파일에 변경사항이 있으면 커밋
git add .gitattributes
git commit -m "Track large files using Git LFS"

git push

[This Document will be continueously updated]

이제부터 모든 문서는 구글 드라이브로 이전...

https://docs.google.com/document/d/1JiIC0ByhhoWNN5J3YnnoIeIKB3MEMWd9BMZ48337uXQ/edit?usp=sharing

 

hjh_MSArchitecture

 

docs.google.com

 

 

==== 사족 ====

runBlocking, async, Combine, Task

Android - 

runBlocking과 async는 Kotlin의 코루틴을 사용하는 두 가지 다른 구문입니다. 각각의 목적과 사용 방법에 대해 알아보겠습니다.

  1. runBlocking:
    • 목적: runBlocking은 주로 비동기 코드를 동기적으로 실행하는 데 사용됩니다. 일반적으로 최상위 레벨에서 사용되는 것이 아니라, 테스트 코드나 메인 함수와 같이 코루틴이 루트 수준에서 시작되는 곳에서 사용됩니다.
    • 동작: runBlocking 블록 안에서의 모든 코루틴이 완료될 때까지 현재 스레드를 차단합니다. 따라서 일반적으로 메인 스레드에서 사용하는 것은 피해야 합니다.
    • 예시:
    •   
    • runBlocking { // 코루틴 코드 }
    • kotlinCopy code
  2. async:
    • 목적: async는 비동기적으로 작업을 수행하고 그 결과를 반환하는 데 사용됩니다. 여러 async 작업을 시작하면서 각 작업의 결과를 기다리는 데 유용합니다.
    • 동작: async는 비동기적으로 실행되며, await 함수를 통해 해당 작업이 완료될 때까지 대기할 수 있습니다.
    • 예시:
    • kotlinCopy code
      runBlocking { val result1 = async { // 비동기 작업 1 } val result2 = async { // 비동기 작업 2 } // result1.await()와 result2.await()를 사용하여 각 작업의 결과를 기다릴 수 있음 }
    • async는 주로 여러 작업을 동시에 시작하고 결과를 모아야 하는 경우에 사용됩니다. 비동기적으로 실행되기 때문에 여러 작업을 동시에 수행할 수 있습니다.

주의할 점은 runBlocking은 주로 테스트나 메인 함수와 같은 특정 상황에서만 사용되어야 하며, 메인 스레드에서의 사용은 피해야 합니다. 반면에 async는 비동기적인 작업을 수행하고 결과를 모을 때 주로 사용됩니다.

Swift에서 runBlocking 함수는 Kotlin의 runBlocking과는 다르게 내장된 함수로 제공되지 않습니다. 그러나 비슷한 기능을 구현하려면 Swift에서는 DispatchGroup을 사용하거나 async/await 패턴을 활용할 수 있습니다.

  1. DispatchGroup 사용:
    swiftCopy code
    import Foundation let dispatchGroup = DispatchGroup() dispatchGroup.enter() someAsyncFunction { // 비동기 작업 완료 시 호출 dispatchGroup.leave() } dispatchGroup.enter() anotherAsyncFunction { // 다른 비동기 작업 완료 시 호출 dispatchGroup.leave() } // 모든 비동기 작업이 완료될 때까지 기다림 dispatchGroup.wait() // 여기로 오면 모든 비동기 작업이 완료된 후
  2. DispatchGroup은 여러 비동기 작업이 완료될 때까지 기다리는 데 사용됩니다. 아래는 DispatchGroup을 사용하여 비동기 작업이 모두 완료될 때까지 기다리는 예제입니다.
  3. async/await 사용:
    swiftCopy code
    func someAsyncFunction() async { // 비동기 작업 수행 } func anotherAsyncFunction() async { // 다른 비동기 작업 수행 } // 비동기 작업이 모두 완료될 때까지 기다림 await Task.whenAll { await someAsyncFunction() await anotherAsyncFunction() } // 여기로 오면 모든 비동기 작업이 완료된 후
    이것은 async/await를 사용하여 비동기 작업이 완료될 때까지 기다리는 더 간결한 방법입니다.
  4. Swift 5.5부터는 async/await 패턴이 도입되었습니다. 이를 사용하면 비동기 코드를 더 간결하게 작성할 수 있습니다.

이러한 패턴은 Swift에서 runBlocking과 유사한 기능을 제공하며, 비동기 코드를 처리하는 데 사용됩니다. 선택적으로 Task를 사용하여 새로운 비동기 작업을 만들 수 있습니다.

SwiftUI에서는 비동기 작업 및 다중 스레딩과 관련된 개념이 있습니다. 비동기적인 코드를 작성하거나 다중 스레딩 환경에서 작업을 처리해야 하는 경우, SwiftUI 앱에서 사용할 수 있는 몇 가지 개념과 구성 요소가 있습니다.

  1. Swift의 비동기 프로그래밍:
    • SwiftUI는 Swift 언어를 기반으로 하기 때문에, Swift의 비동기 프로그래밍 기능을 활용할 수 있습니다. Swift 5.5부터는 async/await와 같은 비동기적인 기능들이 도입되었습니다. 이를 통해 비동기 코드를 더 쉽게 작성하고 관리할 수 있습니다.
  2. Combine 프레임워크:
    • Combine은 SwiftUI와 함께 사용되는 반응형 프로그래밍을 위한 Apple의 프레임워크입니다. 비동기적인 이벤트 스트림을 처리하고 결합하는 데 사용됩니다. Publisher 및 Subscriber와 같은 개념을 제공하여 데이터의 비동기적인 흐름을 효율적으로 다룰 수 있습니다.
    swiftCopy code
    import Combine var cancellables: Set<AnyCancellable> = [] URLSession.shared.dataTaskPublisher(for: url) .map(\.data) .decode(type: YourDecodableType.self, decoder: JSONDecoder()) .sink(receiveCompletion: { completion in // Handle completion }, receiveValue: { decodedData in // Handle decoded data }) .store(in: &cancellables)
  3. 비동기적 SwiftUI 뷰 업데이트:
    • SwiftUI에서는 @State 및 @Binding 속성을 사용하여 뷰의 상태를 관리합니다. 이러한 속성은 특정 값이 변경될 때 해당 뷰를 다시 그리도록 트리거됩니다. 비동기 작업이 완료된 후 뷰를 업데이트하려면 DispatchQueue.main.async 또는 Task를 사용할 수 있습니다.
    swiftCopy code
    Task { let result = await fetchData() DispatchQueue.main.async { self.data = result } }

위의 코드는 비동기 작업을 수행하고, 작업이 완료된 후에 메인 스레드에서 SwiftUI 뷰의 상태를 업데이트하는 예시입니다. 여기서 Task는 Swift의 새로운 비동기 작업을 나타내는 개념입니다.

SwiftUI 및 Swift의 최신 버전에서는 비동기 및 다중 스레딩을 다루기 위한 다양한 기능과 패턴이 계속해서 발전하고 있으므로, 현재의 문법과 패턴에 대한 최신 정보를 확인하는 것이 좋습니다.

 

 

'Swift & Python 실무 > {APP} SOCANNER APP' 카테고리의 다른 글

[공지] Swift 에서 SOCANNER로 카테고리를 바꿉니다.  (0) 2024.04.02
Apple developer program has been updated.  (0) 2021.06.08
game center icon  (0) 2021.06.04
Game Center transcript  (0) 2021.06.04
agreements  (0) 2021.05.29

root@hajunhosvr-ocr:/home/hajunho# nproc
64
root@hajunhosvr-ocr:/home/hajunho# lscpu
Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         46 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  64
  On-line CPU(s) list:   0-63
Vendor ID:               GenuineIntel
  Model name:            Intel(R) Xeon(R) Gold 6226R CPU @ 2.90GHz
    CPU family:          6
    Model:               85
    Thread(s) per core:  2
    Core(s) per socket:  16
    Socket(s):           2
    Stepping:            7
    CPU max MHz:         3900.0000
    CPU min MHz:         1200.0000
    BogoMIPS:            5800.00
    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dt
                         s acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc ar
                         t arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni p
                         clmulqdq dtes64 ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4
                         _1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm
                          abm 3dnowprefetch cpuid_fault epb cat_l3 cdp_l3 invpcid_single intel_ppin ssbd mb
                         a ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsb
                         ase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm mpx rdt_a avx512f avx512dq rds
                         eed adx smap clflushopt clwb intel_pt avx512cd avx512bw avx512vl xsaveopt xsavec x
                         getbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pl
                         n pts hwp hwp_act_window hwp_epp hwp_pkg_req pku ospke avx512_vnni md_clear flush_
                         l1d arch_capabilities
Virtualization features: 
  Virtualization:        VT-x
Caches (sum of all):     
  L1d:                   1 MiB (32 instances)
  L1i:                   1 MiB (32 instances)
  L2:                    32 MiB (32 instances)
  L3:                    44 MiB (2 instances)
NUMA:                    
  NUMA node(s):          2
  NUMA node0 CPU(s):     0-15,32-47
  NUMA node1 CPU(s):     16-31,48-63
Vulnerabilities:         
  Gather data sampling:  Mitigation; Microcode
  Itlb multihit:         KVM: Mitigation: VMX disabled
  L1tf:                  Not affected
  Mds:                   Not affected
  Meltdown:              Not affected
  Mmio stale data:       Mitigation; Clear CPU buffers; SMT vulnerable
  Retbleed:              Mitigation; Enhanced IBRS
  Spec rstack overflow:  Not affected
  Spec store bypass:     Mitigation; Speculative Store Bypass disabled via prctl
  Spectre v1:            Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:            Mitigation; Enhanced IBRS, IBPB conditional, RSB filling, PBRSB-eIBRS SW sequence
  Srbds:                 Not affected
  Tsx async abort:       Mitigation; TSX disabled
root@hajunhosvr-ocr:/home/hajunho# 

root@hajunhosvr-ocr:/home/hajunho# stress-ng --cpu 64 --cpu-method matrixprod  --metrics-brief --perf -t 60

'Swift & Python 실무 > {FE} SOCANNER WEB' 카테고리의 다른 글

glmark2 Score: 12032  (0) 2023.11.09
nvidia-smi  (0) 2023.11.09
lspci | grep -i nvidia  (0) 2023.11.09

root@hajunhosvr-ocr:/home/hajunho# apt install glmark2 -y

root@hajunhosvr-ocr:/home/hajunho# glmark2
=======================================================
    glmark2 2021.02
=======================================================
    OpenGL Information
    GL_VENDOR:     NVIDIA Corporation
    GL_RENDERER:   NVIDIA RTX A5000/PCIe/SSE2
    GL_VERSION:    4.6.0 NVIDIA 535.129.03
=======================================================
[build] use-vbo=false:
 FPS: 6366 FrameTime: 0.157 ms
[build] use-vbo=true:
 FPS: 15464 FrameTime: 0.065 ms
[texture] texture-filter=nearest:
 FPS: 15231 FrameTime: 0.066 ms
[texture] texture-filter=linear:
 FPS: 14993 FrameTime: 0.067 ms
[texture] texture-filter=mipmap:
 FPS: 14950 FrameTime: 0.067 ms
[shading] shading=gouraud: FPS: 14001 FrameTime: 0.071 ms
[shading] shading=blinn-phong-inf: FPS: 14525 FrameTime: 0.069 ms
[shading] shading=phong: FPS: 14151 FrameTime: 0.071 ms
[shading] shading=cel: FPS: 14519 FrameTime: 0.069 ms
[bump] bump-render=high-poly: FPS: 13607 FrameTime: 0.073 ms
[bump] bump-render=normals: FPS: 14963 FrameTime: 0.067 ms
[bump] bump-render=height:
 FPS: 15115 FrameTime: 0.066 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 14617 FrameTime: 0.068 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 13854 FrameTime: 0.072 ms
[pulsar] light=false:quads=5:texture=false: FPS: 14915 FrameTime: 0.067 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 6872 FrameTime: 0.146 ms
[desktop] effect=shadow:windows=4: FPS: 8255 FrameTime: 0.121 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 1132 FrameTime: 0.883 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 1314 FrameTime: 0.761 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 1322 FrameTime: 0.756 ms
[ideas] speed=duration: FPS: 9656 FrameTime: 0.104 ms
[jellyfish] <default>: FPS: 12768 FrameTime: 0.078 ms
[terrain] <default>: FPS: 2548 FrameTime: 0.392 ms
[shadow] <default>: FPS: 12143 FrameTime: 0.082 ms
[refract] <default>: FPS: 8119 FrameTime: 0.123 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 15321 FrameTime: 0.065 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 15216 FrameTime: 0.066 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 15278 FrameTime: 0.065 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 15361 FrameTime: 0.065 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 15295 FrameTime: 0.065 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 15183 FrameTime: 0.066 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 15278 FrameTime: 0.065 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 14726 FrameTime: 0.068 ms
=======================================================
                                  glmark2 Score: 12032 
=======================================================

'Swift & Python 실무 > {FE} SOCANNER WEB' 카테고리의 다른 글

nproc, lscpu  (0) 2023.11.09
nvidia-smi  (0) 2023.11.09
lspci | grep -i nvidia  (0) 2023.11.09

hajunho@hajunhosvr-ocr:~$ nvidia-smi
Thu Nov  9 17:27:46 2023       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.129.03             Driver Version: 535.129.03   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA RTX A5000               Off | 00000000:3B:00.0  On |                  Off |
| 30%   34C    P8              11W / 230W |    268MiB / 24564MiB |      8%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A      1987      G   /usr/lib/xorg/Xorg                           91MiB |
|    0   N/A  N/A      2299      G   /usr/bin/gnome-shell                        115MiB |
|    0   N/A  N/A      6167    C+G   ...62187697,7904164309085703231,262144       41MiB |
+---------------------------------------------------------------------------------------+

'Swift & Python 실무 > {FE} SOCANNER WEB' 카테고리의 다른 글

nproc, lscpu  (0) 2023.11.09
glmark2 Score: 12032  (0) 2023.11.09
lspci | grep -i nvidia  (0) 2023.11.09

root@hajunhosvr-ocr:/home/hajunho/ssd# lspci | grep -i nvidia
3b:00.0 VGA compatible controller: NVIDIA Corporation GA102GL [RTX A5000] (rev a1)
3b:00.1 Audio device: NVIDIA Corporation GA102 High Definition Audio Controller (rev a1)

'Swift & Python 실무 > {FE} SOCANNER WEB' 카테고리의 다른 글

nproc, lscpu  (0) 2023.11.09
glmark2 Score: 12032  (0) 2023.11.09
nvidia-smi  (0) 2023.11.09

If the list of SSH keys on GitHub is short and you're unsure which one is the correct key, you can try the following approach to identify the correct key:

  1. List all SSH keys on your system: Use the ls command to list all the SSH keys in your ~/.ssh directory:
  2. ls -al ~/.ssh
     
  3. Identify the public keys: Look for files with the .pub extension in the ~/.ssh directory. These are your SSH public keys. Use cat command to view the content of each public key:
  4. cat ~/.ssh/id_rsa.pub
  5. Check GitHub SSH keys:
    • Go to your GitHub account settings.
    • Navigate to the "SSH and GPG keys" section.
    • You'll see a list of SSH keys associated with your GitHub account.
    • Examine the list to see if any of the keys match the ones you have locally.
  6. Compare SSH key fingerprints: Each SSH key has a unique fingerprint. You can generate the fingerprint for each local SSH key and compare it with the fingerprints shown on GitHub to identify the matching key.This command will display the fingerprint of your SSH key. Compare this fingerprint with the fingerprints listed on GitHub.
  7. ssh-keygen -lf ~/.ssh/id_rsa.pub
     

By comparing the content and fingerprints of each SSH key, you should be able to identify the correct key that matches the one listed on GitHub. Once you've identified the correct key, you can manage your keys accordingly.

 

종국에 보면, 솔루션에 대한 책임을 지지 않으면서 소스 때문에 키 달라는 개발자들이 많아(2명 이상)서 키 이름은 똑같이 블러핑하고 실제 repo는 다 다르게 해뒀는데, 나중에 내가 햇갈려서 말이지. LF 옵션 알아두려고. 라이어들... 뻑. 이라고 외워둬야 겠다. 리포도 더 이상 업데이트 없는 fake 리포로 해둬도 관심도 없다. 언젠가 퇴사할 때 pull 한 번 땡기고 가야지 라는게 눈에 선함. 구글은 안드로이드 소스 다 오픈해뒀고 커널 소스는 만들려면 1조는 넘게 걸리는데 다 오픈 해둬도 못 쓰는데. Open source contributor가 우대 받는게 그런 이유다. 

주변을 좀 걸었다.

nvidia 535 에 맞는 쿠다. AWS G5 

(tf-gpu-env) ubuntu@socanner:/mnt/splitter/set4python$ nvidia-smi
Sat Apr 13 03:38:59 2024       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.171.04             Driver Version: 535.171.04   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA A10G                    Off | 00000000:00:1E.0 Off |                    0 |
|  0%   18C    P8              15W / 300W |      0MiB / 23028MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda-repo-ubuntu2204-12-2-local_12.2.2-535.104.05-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-2-local_12.2.2-535.104.05-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-2-local/cuda-*-keyring.gpg /usr/share/keyrings/

sudo apt-get update

sudo apt-get -y install cuda
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다... 완료
상태 정보를 읽는 중입니다... 완료        
The following additional packages will be installed:
  cuda-12-2 cuda-cccl-12-2 cuda-command-line-tools-12-2 cuda-compiler-12-2 cuda-crt-12-2 cuda-cudart-12-2 cuda-cudart-dev-12-2 cuda-cuobjdump-12-2 cuda-cupti-12-2 cuda-cupti-dev-12-2
  cuda-cuxxfilt-12-2 cuda-demo-suite-12-2 cuda-documentation-12-2 cuda-driver-dev-12-2 cuda-drivers cuda-drivers-535 cuda-gdb-12-2 cuda-libraries-12-2 cuda-libraries-dev-12-2
  cuda-nsight-12-2 cuda-nsight-compute-12-2 cuda-nsight-systems-12-2 cuda-nvcc-12-2 cuda-nvdisasm-12-2 cuda-nvml-dev-12-2 cuda-nvprof-12-2 cuda-nvprune-12-2 cuda-nvrtc-12-2
  cuda-nvrtc-dev-12-2 cuda-nvtx-12-2 cuda-nvvm-12-2 cuda-nvvp-12-2 cuda-opencl-12-2 cuda-opencl-dev-12-2 cuda-profiler-api-12-2 cuda-runtime-12-2 cuda-sanitizer-12-2 cuda-toolkit-12-2
  cuda-toolkit-12-2-config-common cuda-toolkit-12-config-common cuda-toolkit-config-common cuda-tools-12-2 cuda-visual-tools-12-2 default-jre default-jre-headless fonts-dejavu-extra
  gds-tools-12-2 libatk-wrapper-java libatk-wrapper-java-jni libcublas-12-2 libcublas-dev-12-2 libcufft-12-2 libcufft-dev-12-2 libcufile-12-2 libcufile-dev-12-2 libcurand-12-2
  libcurand-dev-12-2 libcusolver-12-2 libcusolver-dev-12-2 libcusparse-12-2 libcusparse-dev-12-2 libgif7 libnpp-12-2 libnpp-dev-12-2 libnvjitlink-12-2 libnvjitlink-dev-12-2
  libnvjpeg-12-2 libnvjpeg-dev-12-2 nsight-compute-2023.2.2 nsight-systems-2023.2.3 nvidia-modprobe nvidia-settings openjdk-11-jre openjdk-11-jre-headless
제안하는 패키지:
  libnss-mdns fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei | fonts-wqy-zenhei fonts-indic
다음 새 패키지를 설치할 것입니다:
  cuda cuda-12-2 cuda-cccl-12-2 cuda-command-line-tools-12-2 cuda-compiler-12-2 cuda-crt-12-2 cuda-cudart-12-2 cuda-cudart-dev-12-2 cuda-cuobjdump-12-2 cuda-cupti-12-2
  cuda-cupti-dev-12-2 cuda-cuxxfilt-12-2 cuda-demo-suite-12-2 cuda-documentation-12-2 cuda-driver-dev-12-2 cuda-drivers cuda-drivers-535 cuda-gdb-12-2 cuda-libraries-12-2
  cuda-libraries-dev-12-2 cuda-nsight-12-2 cuda-nsight-compute-12-2 cuda-nsight-systems-12-2 cuda-nvcc-12-2 cuda-nvdisasm-12-2 cuda-nvml-dev-12-2 cuda-nvprof-12-2 cuda-nvprune-12-2
  cuda-nvrtc-12-2 cuda-nvrtc-dev-12-2 cuda-nvtx-12-2 cuda-nvvm-12-2 cuda-nvvp-12-2 cuda-opencl-12-2 cuda-opencl-dev-12-2 cuda-profiler-api-12-2 cuda-runtime-12-2 cuda-sanitizer-12-2
  cuda-toolkit-12-2 cuda-toolkit-12-2-config-common cuda-toolkit-12-config-common cuda-toolkit-config-common cuda-tools-12-2 cuda-visual-tools-12-2 default-jre default-jre-headless
  fonts-dejavu-extra gds-tools-12-2 libatk-wrapper-java libatk-wrapper-java-jni libcublas-12-2 libcublas-dev-12-2 libcufft-12-2 libcufft-dev-12-2 libcufile-12-2 libcufile-dev-12-2
  libcurand-12-2 libcurand-dev-12-2 libcusolver-12-2 libcusolver-dev-12-2 libcusparse-12-2 libcusparse-dev-12-2 libgif7 libnpp-12-2 libnpp-dev-12-2 libnvjitlink-12-2
  libnvjitlink-dev-12-2 libnvjpeg-12-2 libnvjpeg-dev-12-2 nsight-compute-2023.2.2 nsight-systems-2023.2.3 nvidia-modprobe openjdk-11-jre openjdk-11-jre-headless
다음 패키지를 업그레이드할 것입니다:
  nvidia-settings
1개 업그레이드, 74개 새로 설치, 0개 제거 및 36개 업그레이드 안 함.
44.9 M바이트/2,869 M바이트 아카이브를 받아야 합니다.
이 작업 후 6,556 M바이트의 디스크 공간을 더 사용하게 됩니다.
받기:1 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-toolkit-config-common 12.2.140-1 [16.4 kB]
받기:2 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-toolkit-12-config-common 12.2.140-1 [16.4 kB]
받기:3 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-toolkit-12-2-config-common 12.2.140-1 [16.3 kB]
받기:4 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-cudart-12-2 12.2.140-1 [161 kB]
받기:5 http://us-east-2.ec2.archive.ubuntu.com/ubuntu jammy-updates/main amd64 openjdk-11-jre-headless amd64 11.0.22+7-0ubuntu2~22.04.1 [42.5 MB]
받기:6 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-nvrtc-12-2 12.2.140-1 [17.3 MB]
받기:7 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-opencl-12-2 12.2.140-1 [23.8 kB]
받기:8 file:/var/cuda-repo-ubuntu2204-12-2-local  libcublas-12-2 12.2.5.6-1 [249 MB]
받기:9 http://us-east-2.ec2.archive.ubuntu.com/ubuntu jammy/main amd64 default-jre-headless amd64 2:1.11-72build2 [3,042 B]
받기:10 http://us-east-2.ec2.archive.ubuntu.com/ubuntu jammy/main amd64 libgif7 amd64 5.1.9-2build2 [33.8 kB]
받기:11 file:/var/cuda-repo-ubuntu2204-12-2-local  libcufft-12-2 11.0.8.103-1 [58.0 MB]
받기:12 file:/var/cuda-repo-ubuntu2204-12-2-local  libcufile-12-2 1.7.2.10-1 [840 kB]
받기:13 http://us-east-2.ec2.archive.ubuntu.com/ubuntu jammy-updates/main amd64 openjdk-11-jre amd64 11.0.22+7-0ubuntu2~22.04.1 [214 kB]
받기:14 http://us-east-2.ec2.archive.ubuntu.com/ubuntu jammy/main amd64 default-jre amd64 2:1.11-72build2 [896 B]
받기:15 http://us-east-2.ec2.archive.ubuntu.com/ubuntu jammy/main amd64 fonts-dejavu-extra all 2.37-2build1 [2,041 kB]
받기:16 http://us-east-2.ec2.archive.ubuntu.com/ubuntu jammy/main amd64 libatk-wrapper-java all 0.38.0-5build1 [53.1 kB]
받기:17 http://us-east-2.ec2.archive.ubuntu.com/ubuntu jammy/main amd64 libatk-wrapper-java-jni amd64 0.38.0-5build1 [49.0 kB]
받기:18 file:/var/cuda-repo-ubuntu2204-12-2-local  libcurand-12-2 10.3.3.141-1 [41.4 MB]
받기:19 file:/var/cuda-repo-ubuntu2204-12-2-local  libcusolver-12-2 11.5.2.141-1 [77.2 MB]
받기:20 file:/var/cuda-repo-ubuntu2204-12-2-local  libcusparse-12-2 12.1.2.141-1 [107 MB]
받기:21 file:/var/cuda-repo-ubuntu2204-12-2-local  libnpp-12-2 12.2.1.4-1 [95.2 MB]
받기:22 file:/var/cuda-repo-ubuntu2204-12-2-local  libnvjitlink-12-2 12.2.140-1 [15.1 MB]
받기:23 file:/var/cuda-repo-ubuntu2204-12-2-local  libnvjpeg-12-2 12.2.2.4-1 [2,327 kB]
받기:24 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-libraries-12-2 12.2.2-1 [2,598 B]
받기:25 file:/var/cuda-repo-ubuntu2204-12-2-local  nvidia-modprobe 535.104.05-0ubuntu1 [21.2 kB]
받기:26 file:/var/cuda-repo-ubuntu2204-12-2-local  nvidia-settings 535.104.05-0ubuntu1 [947 kB]
받기:27 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-drivers-535 535.104.05-1 [2,634 B]
받기:28 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-drivers 535.104.05-1 [2,510 B]
받기:29 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-runtime-12-2 12.2.2-1 [2,498 B]
받기:30 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-cuobjdump-12-2 12.2.140-1 [173 kB]
받기:31 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-cuxxfilt-12-2 12.2.140-1 [191 kB]
받기:32 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-cccl-12-2 12.2.140-1 [1,187 kB]
받기:33 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-driver-dev-12-2 12.2.140-1 [28.1 kB]
받기:34 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-cudart-dev-12-2 12.2.140-1 [968 kB]
받기:35 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-nvvm-12-2 12.2.140-1 [19.3 MB]
받기:36 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-crt-12-2 12.2.140-1 [76.3 kB]
받기:37 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-nvcc-12-2 12.2.140-1 [27.6 MB]
받기:38 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-nvprune-12-2 12.2.140-1 [58.4 kB]
받기:39 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-compiler-12-2 12.2.2-1 [2,506 B]
받기:40 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-profiler-api-12-2 12.2.140-1 [18.5 kB]
받기:41 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-nvrtc-dev-12-2 12.2.140-1 [14.0 MB]
받기:42 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-opencl-dev-12-2 12.2.140-1 [70.4 kB]
받기:43 file:/var/cuda-repo-ubuntu2204-12-2-local  libcublas-dev-12-2 12.2.5.6-1 [270 MB]
받기:44 file:/var/cuda-repo-ubuntu2204-12-2-local  libcufft-dev-12-2 11.0.8.103-1 [116 MB]
받기:45 file:/var/cuda-repo-ubuntu2204-12-2-local  libcufile-dev-12-2 1.7.2.10-1 [2,425 kB]
받기:46 file:/var/cuda-repo-ubuntu2204-12-2-local  libcurand-dev-12-2 10.3.3.141-1 [41.7 MB]
받기:47 file:/var/cuda-repo-ubuntu2204-12-2-local  libcusolver-dev-12-2 11.5.2.141-1 [48.7 MB]
받기:48 file:/var/cuda-repo-ubuntu2204-12-2-local  libcusparse-dev-12-2 12.1.2.141-1 [110 MB]
받기:49 file:/var/cuda-repo-ubuntu2204-12-2-local  libnpp-dev-12-2 12.2.1.4-1 [91.8 MB]                                                                                                 
받기:50 file:/var/cuda-repo-ubuntu2204-12-2-local  libnvjitlink-dev-12-2 12.2.140-1 [11.6 MB]                                                                                           
받기:51 file:/var/cuda-repo-ubuntu2204-12-2-local  libnvjpeg-dev-12-2 12.2.2.4-1 [2,001 kB]                                                                                             
받기:52 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-libraries-dev-12-2 12.2.2-1 [2,634 B]                                                                                           
받기:53 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-cupti-12-2 12.2.142-1 [16.7 MB]                                                                                                 
받기:54 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-cupti-dev-12-2 12.2.142-1 [2,587 kB]                                                                                            
받기:55 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-nvdisasm-12-2 12.2.140-1 [49.9 MB]                                                                                              
받기:56 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-gdb-12-2 12.2.140-1 [4,537 kB]                                                                                                  
받기:57 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-nvprof-12-2 12.2.142-1 [2,438 kB]                                                                                               
받기:58 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-nvtx-12-2 12.2.140-1 [51.5 kB]                                                                                                  
받기:59 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-sanitizer-12-2 12.2.140-1 [8,993 kB]                                                                                            
받기:60 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-command-line-tools-12-2 12.2.2-1 [2,542 B]                                                                                      
받기:61 file:/var/cuda-repo-ubuntu2204-12-2-local  nsight-compute-2023.2.2 2023.2.2.3-1 [721 MB]                                                                                        
받기:62 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-nsight-compute-12-2 12.2.2-1 [4,056 B]                                                                                          
받기:63 file:/var/cuda-repo-ubuntu2204-12-2-local  nsight-systems-2023.2.3 2023.2.3.1004-33186433v0 [318 MB]                                                                            
받기:64 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-nsight-systems-12-2 12.2.2-1 [3,468 B]                                                                                          
받기:65 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-nsight-12-2 12.2.144-1 [119 MB]                                                                                                 
받기:66 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-nvml-dev-12-2 12.2.140-1 [88.9 kB]                                                                                              
받기:67 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-nvvp-12-2 12.2.142-1 [115 MB]                                                                                                   
받기:68 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-visual-tools-12-2 12.2.2-1 [2,942 B]                                                                                            
받기:69 file:/var/cuda-repo-ubuntu2204-12-2-local  gds-tools-12-2 1.7.2.10-1 [39.1 MB]                                                                                                  
받기:70 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-tools-12-2 12.2.2-1 [2,462 B]                                                                                                   
받기:71 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-documentation-12-2 12.2.140-1 [49.8 kB]                                                                                         
받기:72 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-toolkit-12-2 12.2.2-1 [3,280 B]                                                                                                 
받기:73 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-demo-suite-12-2 12.2.140-1 [3,984 kB]                                                                                           
받기:74 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda-12-2 12.2.2-1 [2,522 B]                                                                                                         
받기:75 file:/var/cuda-repo-ubuntu2204-12-2-local  cuda 12.2.2-1 [2,470 B]                                                                                                              
내려받기 44.9 M바이트, 소요시간 13초 (3,489 k바이트/초)                                                                                                                                 
패키지에서 템플릿을 추출하는 중: 100%
Selecting previously unselected package cuda-toolkit-config-common.
(데이터베이스 읽는중 ...현재 212774개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack .../00-cuda-toolkit-config-common_12.2.140-1_all.deb ...
Unpacking cuda-toolkit-config-common (12.2.140-1) ...
Selecting previously unselected package cuda-toolkit-12-config-common.
Preparing to unpack .../01-cuda-toolkit-12-config-common_12.2.140-1_all.deb ...
Unpacking cuda-toolkit-12-config-common (12.2.140-1) ...
Selecting previously unselected package cuda-toolkit-12-2-config-common.
Preparing to unpack .../02-cuda-toolkit-12-2-config-common_12.2.140-1_all.deb ...
Unpacking cuda-toolkit-12-2-config-common (12.2.140-1) ...
Selecting previously unselected package cuda-cudart-12-2.
Preparing to unpack .../03-cuda-cudart-12-2_12.2.140-1_amd64.deb ...
Unpacking cuda-cudart-12-2 (12.2.140-1) ...
Selecting previously unselected package cuda-nvrtc-12-2.
Preparing to unpack .../04-cuda-nvrtc-12-2_12.2.140-1_amd64.deb ...
Unpacking cuda-nvrtc-12-2 (12.2.140-1) ...
Selecting previously unselected package cuda-opencl-12-2.
Preparing to unpack .../05-cuda-opencl-12-2_12.2.140-1_amd64.deb ...
Unpacking cuda-opencl-12-2 (12.2.140-1) ...
Selecting previously unselected package libcublas-12-2.
Preparing to unpack .../06-libcublas-12-2_12.2.5.6-1_amd64.deb ...
Unpacking libcublas-12-2 (12.2.5.6-1) ...
Selecting previously unselected package libcufft-12-2.
Preparing to unpack .../07-libcufft-12-2_11.0.8.103-1_amd64.deb ...
Unpacking libcufft-12-2 (11.0.8.103-1) ...
Selecting previously unselected package libcufile-12-2.
Preparing to unpack .../08-libcufile-12-2_1.7.2.10-1_amd64.deb ...
Unpacking libcufile-12-2 (1.7.2.10-1) ...
Selecting previously unselected package libcurand-12-2.
Preparing to unpack .../09-libcurand-12-2_10.3.3.141-1_amd64.deb ...
Unpacking libcurand-12-2 (10.3.3.141-1) ...
Selecting previously unselected package libcusolver-12-2.
Preparing to unpack .../10-libcusolver-12-2_11.5.2.141-1_amd64.deb ...
Unpacking libcusolver-12-2 (11.5.2.141-1) ...
Selecting previously unselected package libcusparse-12-2.
Preparing to unpack .../11-libcusparse-12-2_12.1.2.141-1_amd64.deb ...
Unpacking libcusparse-12-2 (12.1.2.141-1) ...
Selecting previously unselected package libnpp-12-2.
Preparing to unpack .../12-libnpp-12-2_12.2.1.4-1_amd64.deb ...
Unpacking libnpp-12-2 (12.2.1.4-1) ...
Selecting previously unselected package libnvjitlink-12-2.
Preparing to unpack .../13-libnvjitlink-12-2_12.2.140-1_amd64.deb ...
Unpacking libnvjitlink-12-2 (12.2.140-1) ...
Selecting previously unselected package libnvjpeg-12-2.
Preparing to unpack .../14-libnvjpeg-12-2_12.2.2.4-1_amd64.deb ...
Unpacking libnvjpeg-12-2 (12.2.2.4-1) ...
Selecting previously unselected package cuda-libraries-12-2.
Preparing to unpack .../15-cuda-libraries-12-2_12.2.2-1_amd64.deb ...
Unpacking cuda-libraries-12-2 (12.2.2-1) ...
Selecting previously unselected package nvidia-modprobe.
Preparing to unpack .../16-nvidia-modprobe_535.104.05-0ubuntu1_amd64.deb ...
Unpacking nvidia-modprobe (535.104.05-0ubuntu1) ...
Preparing to unpack .../17-nvidia-settings_535.104.05-0ubuntu1_amd64.deb ...
Unpacking nvidia-settings (535.104.05-0ubuntu1) over (510.47.03-0ubuntu1) ...
Selecting previously unselected package cuda-drivers-535.
Preparing to unpack .../18-cuda-drivers-535_535.104.05-1_amd64.deb ...
Unpacking cuda-drivers-535 (535.104.05-1) ...
Selecting previously unselected package cuda-drivers.
Preparing to unpack .../19-cuda-drivers_535.104.05-1_amd64.deb ...
Unpacking cuda-drivers (535.104.05-1) ...
Selecting previously unselected package cuda-runtime-12-2.
Preparing to unpack .../20-cuda-runtime-12-2_12.2.2-1_amd64.deb ...
Unpacking cuda-runtime-12-2 (12.2.2-1) ...
Selecting previously unselected package cuda-cuobjdump-12-2.
Preparing to unpack .../21-cuda-cuobjdump-12-2_12.2.140-1_amd64.deb ...
Unpacking cuda-cuobjdump-12-2 (12.2.140-1) ...
Selecting previously unselected package cuda-cuxxfilt-12-2.
Preparing to unpack .../22-cuda-cuxxfilt-12-2_12.2.140-1_amd64.deb ...
Unpacking cuda-cuxxfilt-12-2 (12.2.140-1) ...
Selecting previously unselected package cuda-cccl-12-2.
Preparing to unpack .../23-cuda-cccl-12-2_12.2.140-1_amd64.deb ...
Unpacking cuda-cccl-12-2 (12.2.140-1) ...
Selecting previously unselected package cuda-driver-dev-12-2.
Preparing to unpack .../24-cuda-driver-dev-12-2_12.2.140-1_amd64.deb ...
Unpacking cuda-driver-dev-12-2 (12.2.140-1) ...
Selecting previously unselected package cuda-cudart-dev-12-2.
Preparing to unpack .../25-cuda-cudart-dev-12-2_12.2.140-1_amd64.deb ...
Unpacking cuda-cudart-dev-12-2 (12.2.140-1) ...
Selecting previously unselected package cuda-nvvm-12-2.
Preparing to unpack .../26-cuda-nvvm-12-2_12.2.140-1_amd64.deb ...
Unpacking cuda-nvvm-12-2 (12.2.140-1) ...
Selecting previously unselected package cuda-crt-12-2.
Preparing to unpack .../27-cuda-crt-12-2_12.2.140-1_amd64.deb ...
Unpacking cuda-crt-12-2 (12.2.140-1) ...
Selecting previously unselected package cuda-nvcc-12-2.
Preparing to unpack .../28-cuda-nvcc-12-2_12.2.140-1_amd64.deb ...
Unpacking cuda-nvcc-12-2 (12.2.140-1) ...
Selecting previously unselected package cuda-nvprune-12-2.
Preparing to unpack .../29-cuda-nvprune-12-2_12.2.140-1_amd64.deb ...
Unpacking cuda-nvprune-12-2 (12.2.140-1) ...
Selecting previously unselected package cuda-compiler-12-2.
Preparing to unpack .../30-cuda-compiler-12-2_12.2.2-1_amd64.deb ...
Unpacking cuda-compiler-12-2 (12.2.2-1) ...
Selecting previously unselected package cuda-profiler-api-12-2.
Preparing to unpack .../31-cuda-profiler-api-12-2_12.2.140-1_amd64.deb ...
Unpacking cuda-profiler-api-12-2 (12.2.140-1) ...
Selecting previously unselected package cuda-nvrtc-dev-12-2.
Preparing to unpack .../32-cuda-nvrtc-dev-12-2_12.2.140-1_amd64.deb ...
Unpacking cuda-nvrtc-dev-12-2 (12.2.140-1) ...
Selecting previously unselected package cuda-opencl-dev-12-2.
Preparing to unpack .../33-cuda-opencl-dev-12-2_12.2.140-1_amd64.deb ...
Unpacking cuda-opencl-dev-12-2 (12.2.140-1) ...
Selecting previously unselected package libcublas-dev-12-2.
Preparing to unpack .../34-libcublas-dev-12-2_12.2.5.6-1_amd64.deb ...
Unpacking libcublas-dev-12-2 (12.2.5.6-1) ...
Selecting previously unselected package libcufft-dev-12-2.
Preparing to unpack .../35-libcufft-dev-12-2_11.0.8.103-1_amd64.deb ...
Unpacking libcufft-dev-12-2 (11.0.8.103-1) ...
Selecting previously unselected package libcufile-dev-12-2.
Preparing to unpack .../36-libcufile-dev-12-2_1.7.2.10-1_amd64.deb ...
Unpacking libcufile-dev-12-2 (1.7.2.10-1) ...
Selecting previously unselected package libcurand-dev-12-2.
Preparing to unpack .../37-libcurand-dev-12-2_10.3.3.141-1_amd64.deb ...
Unpacking libcurand-dev-12-2 (10.3.3.141-1) ...
Selecting previously unselected package libcusolver-dev-12-2.
Preparing to unpack .../38-libcusolver-dev-12-2_11.5.2.141-1_amd64.deb ...
Unpacking libcusolver-dev-12-2 (11.5.2.141-1) ...
Selecting previously unselected package libcusparse-dev-12-2.
Preparing to unpack .../39-libcusparse-dev-12-2_12.1.2.141-1_amd64.deb ...
Unpacking libcusparse-dev-12-2 (12.1.2.141-1) ...
Selecting previously unselected package libnpp-dev-12-2.
Preparing to unpack .../40-libnpp-dev-12-2_12.2.1.4-1_amd64.deb ...
Unpacking libnpp-dev-12-2 (12.2.1.4-1) ...
Selecting previously unselected package libnvjitlink-dev-12-2.
Preparing to unpack .../41-libnvjitlink-dev-12-2_12.2.140-1_amd64.deb ...
Unpacking libnvjitlink-dev-12-2 (12.2.140-1) ...
Selecting previously unselected package libnvjpeg-dev-12-2.
Preparing to unpack .../42-libnvjpeg-dev-12-2_12.2.2.4-1_amd64.deb ...
Unpacking libnvjpeg-dev-12-2 (12.2.2.4-1) ...
Selecting previously unselected package cuda-libraries-dev-12-2.
Preparing to unpack .../43-cuda-libraries-dev-12-2_12.2.2-1_amd64.deb ...
Unpacking cuda-libraries-dev-12-2 (12.2.2-1) ...
Selecting previously unselected package cuda-cupti-12-2.
Preparing to unpack .../44-cuda-cupti-12-2_12.2.142-1_amd64.deb ...
Unpacking cuda-cupti-12-2 (12.2.142-1) ...
Selecting previously unselected package cuda-cupti-dev-12-2.
Preparing to unpack .../45-cuda-cupti-dev-12-2_12.2.142-1_amd64.deb ...
Unpacking cuda-cupti-dev-12-2 (12.2.142-1) ...
Selecting previously unselected package cuda-nvdisasm-12-2.
Preparing to unpack .../46-cuda-nvdisasm-12-2_12.2.140-1_amd64.deb ...
Unpacking cuda-nvdisasm-12-2 (12.2.140-1) ...
Selecting previously unselected package cuda-gdb-12-2.
Preparing to unpack .../47-cuda-gdb-12-2_12.2.140-1_amd64.deb ...
Unpacking cuda-gdb-12-2 (12.2.140-1) ...
Selecting previously unselected package cuda-nvprof-12-2.
Preparing to unpack .../48-cuda-nvprof-12-2_12.2.142-1_amd64.deb ...
Unpacking cuda-nvprof-12-2 (12.2.142-1) ...
Selecting previously unselected package cuda-nvtx-12-2.
Preparing to unpack .../49-cuda-nvtx-12-2_12.2.140-1_amd64.deb ...
Unpacking cuda-nvtx-12-2 (12.2.140-1) ...
Selecting previously unselected package cuda-sanitizer-12-2.
Preparing to unpack .../50-cuda-sanitizer-12-2_12.2.140-1_amd64.deb ...
Unpacking cuda-sanitizer-12-2 (12.2.140-1) ...
Selecting previously unselected package cuda-command-line-tools-12-2.
Preparing to unpack .../51-cuda-command-line-tools-12-2_12.2.2-1_amd64.deb ...
Unpacking cuda-command-line-tools-12-2 (12.2.2-1) ...
Selecting previously unselected package nsight-compute-2023.2.2.
Preparing to unpack .../52-nsight-compute-2023.2.2_2023.2.2.3-1_amd64.deb ...
Unpacking nsight-compute-2023.2.2 (2023.2.2.3-1) ...
^AffSelecting previously unselected package cuda-nsight-compute-12-2.
Preparing to unpack .../53-cuda-nsight-compute-12-2_12.2.2-1_amd64.deb ...
Unpacking cuda-nsight-compute-12-2 (12.2.2-1) ...
Selecting previously unselected package nsight-systems-2023.2.3.
Preparing to unpack .../54-nsight-systems-2023.2.3_2023.2.3.1004-1_amd64.deb ...
Unpacking nsight-systems-2023.2.3 (2023.2.3.1004-33186433v0) ...
Selecting previously unselected package cuda-nsight-systems-12-2.
Preparing to unpack .../55-cuda-nsight-systems-12-2_12.2.2-1_amd64.deb ...
Unpacking cuda-nsight-systems-12-2 (12.2.2-1) ...
Selecting previously unselected package openjdk-11-jre-headless:amd64.
Preparing to unpack .../56-openjdk-11-jre-headless_11.0.22+7-0ubuntu2~22.04.1_amd64.deb ...
Unpacking openjdk-11-jre-headless:amd64 (11.0.22+7-0ubuntu2~22.04.1) ...
Selecting previously unselected package default-jre-headless.
Preparing to unpack .../57-default-jre-headless_2%3a1.11-72build2_amd64.deb ...
Unpacking default-jre-headless (2:1.11-72build2) ...
Selecting previously unselected package libgif7:amd64.
Preparing to unpack .../58-libgif7_5.1.9-2build2_amd64.deb ...
Unpacking libgif7:amd64 (5.1.9-2build2) ...
Selecting previously unselected package openjdk-11-jre:amd64.
Preparing to unpack .../59-openjdk-11-jre_11.0.22+7-0ubuntu2~22.04.1_amd64.deb ...
Unpacking openjdk-11-jre:amd64 (11.0.22+7-0ubuntu2~22.04.1) ...
Selecting previously unselected package default-jre.
Preparing to unpack .../60-default-jre_2%3a1.11-72build2_amd64.deb ...
Unpacking default-jre (2:1.11-72build2) ...
Selecting previously unselected package cuda-nsight-12-2.
Preparing to unpack .../61-cuda-nsight-12-2_12.2.144-1_amd64.deb ...
Unpacking cuda-nsight-12-2 (12.2.144-1) ...
Selecting previously unselected package cuda-nvml-dev-12-2.
Preparing to unpack .../62-cuda-nvml-dev-12-2_12.2.140-1_amd64.deb ...
Unpacking cuda-nvml-dev-12-2 (12.2.140-1) ...
Selecting previously unselected package cuda-nvvp-12-2.
Preparing to unpack .../63-cuda-nvvp-12-2_12.2.142-1_amd64.deb ...
Unpacking cuda-nvvp-12-2 (12.2.142-1) ...
Selecting previously unselected package cuda-visual-tools-12-2.
Preparing to unpack .../64-cuda-visual-tools-12-2_12.2.2-1_amd64.deb ...
Unpacking cuda-visual-tools-12-2 (12.2.2-1) ...
Selecting previously unselected package gds-tools-12-2.
Preparing to unpack .../65-gds-tools-12-2_1.7.2.10-1_amd64.deb ...
Unpacking gds-tools-12-2 (1.7.2.10-1) ...
Selecting previously unselected package cuda-tools-12-2.
Preparing to unpack .../66-cuda-tools-12-2_12.2.2-1_amd64.deb ...
Unpacking cuda-tools-12-2 (12.2.2-1) ...
Selecting previously unselected package cuda-documentation-12-2.
Preparing to unpack .../67-cuda-documentation-12-2_12.2.140-1_amd64.deb ...
Unpacking cuda-documentation-12-2 (12.2.140-1) ...
Selecting previously unselected package cuda-toolkit-12-2.
Preparing to unpack .../68-cuda-toolkit-12-2_12.2.2-1_amd64.deb ...
Unpacking cuda-toolkit-12-2 (12.2.2-1) ...
Selecting previously unselected package cuda-demo-suite-12-2.
Preparing to unpack .../69-cuda-demo-suite-12-2_12.2.140-1_amd64.deb ...
Unpacking cuda-demo-suite-12-2 (12.2.140-1) ...
Selecting previously unselected package cuda-12-2.
Preparing to unpack .../70-cuda-12-2_12.2.2-1_amd64.deb ...
Unpacking cuda-12-2 (12.2.2-1) ...
Selecting previously unselected package cuda.
Preparing to unpack .../71-cuda_12.2.2-1_amd64.deb ...
Unpacking cuda (12.2.2-1) ...
Selecting previously unselected package fonts-dejavu-extra.
Preparing to unpack .../72-fonts-dejavu-extra_2.37-2build1_all.deb ...
Unpacking fonts-dejavu-extra (2.37-2build1) ...
Selecting previously unselected package libatk-wrapper-java.
Preparing to unpack .../73-libatk-wrapper-java_0.38.0-5build1_all.deb ...
Unpacking libatk-wrapper-java (0.38.0-5build1) ...
Selecting previously unselected package libatk-wrapper-java-jni:amd64.
Preparing to unpack .../74-libatk-wrapper-java-jni_0.38.0-5build1_amd64.deb ...
Unpacking libatk-wrapper-java-jni:amd64 (0.38.0-5build1) ...
cuda-toolkit-config-common (12.2.140-1) 설정하는 중입니다 ...
cuda-toolkit-12-2-config-common (12.2.140-1) 설정하는 중입니다 ...
Setting alternatives
update-alternatives: using /usr/local/cuda-12.2 to provide /usr/local/cuda (cuda) in auto mode
update-alternatives: using /usr/local/cuda-12.2 to provide /usr/local/cuda-12 (cuda-12) in auto mode
nsight-systems-2023.2.3 (2023.2.3.1004-33186433v0) 설정하는 중입니다 ...
update-alternatives: using /opt/nvidia/nsight-systems/2023.2.3/target-linux-x64/nsys to provide /usr/local/bin/nsys (nsys) in auto mode
update-alternatives: using /opt/nvidia/nsight-systems/2023.2.3/host-linux-x64/nsys-ui to provide /usr/local/bin/nsys-ui (nsys-ui) in auto mode
nsight-compute-2023.2.2 (2023.2.2.3-1) 설정하는 중입니다 ...
cuda-nvtx-12-2 (12.2.140-1) 설정하는 중입니다 ...
cuda-cuxxfilt-12-2 (12.2.140-1) 설정하는 중입니다 ...
openjdk-11-jre-headless:amd64 (11.0.22+7-0ubuntu2~22.04.1) 설정하는 중입니다 ...
cuda-cccl-12-2 (12.2.140-1) 설정하는 중입니다 ...
cuda-nvdisasm-12-2 (12.2.140-1) 설정하는 중입니다 ...
gds-tools-12-2 (1.7.2.10-1) 설정하는 중입니다 ...
cuda-nsight-compute-12-2 (12.2.2-1) 설정하는 중입니다 ...
nvidia-modprobe (535.104.05-0ubuntu1) 설정하는 중입니다 ...
cuda-cuobjdump-12-2 (12.2.140-1) 설정하는 중입니다 ...
cuda-nvrtc-12-2 (12.2.140-1) 설정하는 중입니다 ...
cuda-sanitizer-12-2 (12.2.140-1) 설정하는 중입니다 ...
cuda-nvvm-12-2 (12.2.140-1) 설정하는 중입니다 ...
cuda-cupti-12-2 (12.2.142-1) 설정하는 중입니다 ...
cuda-nvprof-12-2 (12.2.142-1) 설정하는 중입니다 ...
libgif7:amd64 (5.1.9-2build2) 설정하는 중입니다 ...
fonts-dejavu-extra (2.37-2build1) 설정하는 중입니다 ...
nvidia-settings (535.104.05-0ubuntu1) 설정하는 중입니다 ...
cuda-gdb-12-2 (12.2.140-1) 설정하는 중입니다 ...
libatk-wrapper-java (0.38.0-5build1) 설정하는 중입니다 ...
cuda-nvprune-12-2 (12.2.140-1) 설정하는 중입니다 ...
cuda-documentation-12-2 (12.2.140-1) 설정하는 중입니다 ...
cuda-driver-dev-12-2 (12.2.140-1) 설정하는 중입니다 ...
cuda-toolkit-12-config-common (12.2.140-1) 설정하는 중입니다 ...
cuda-nvml-dev-12-2 (12.2.140-1) 설정하는 중입니다 ...
cuda-opencl-12-2 (12.2.140-1) 설정하는 중입니다 ...
cuda-profiler-api-12-2 (12.2.140-1) 설정하는 중입니다 ...
cuda-nvrtc-dev-12-2 (12.2.140-1) 설정하는 중입니다 ...
cuda-nsight-systems-12-2 (12.2.2-1) 설정하는 중입니다 ...
default-jre-headless (2:1.11-72build2) 설정하는 중입니다 ...
libcusolver-12-2 (11.5.2.141-1) 설정하는 중입니다 ...
cuda-cudart-12-2 (12.2.140-1) 설정하는 중입니다 ...
openjdk-11-jre:amd64 (11.0.22+7-0ubuntu2~22.04.1) 설정하는 중입니다 ...
libnvjpeg-12-2 (12.2.2.4-1) 설정하는 중입니다 ...
default-jre (2:1.11-72build2) 설정하는 중입니다 ...
libcufft-12-2 (11.0.8.103-1) 설정하는 중입니다 ...
libcufile-12-2 (1.7.2.10-1) 설정하는 중입니다 ...
Setting alternatives
update-alternatives: using /usr/local/cuda-12.2/gds/cufile.json to provide /etc/cufile.json (cufile.json) in auto mode
libatk-wrapper-java-jni:amd64 (0.38.0-5build1) 설정하는 중입니다 ...
libnvjpeg-dev-12-2 (12.2.2.4-1) 설정하는 중입니다 ...
libcusparse-12-2 (12.1.2.141-1) 설정하는 중입니다 ...
cuda-drivers-535 (535.104.05-1) 설정하는 중입니다 ...
libcufile-dev-12-2 (1.7.2.10-1) 설정하는 중입니다 ...
cuda-nsight-12-2 (12.2.144-1) 설정하는 중입니다 ...
cuda-cupti-dev-12-2 (12.2.142-1) 설정하는 중입니다 ...
cuda-cudart-dev-12-2 (12.2.140-1) 설정하는 중입니다 ...
cuda-drivers (535.104.05-1) 설정하는 중입니다 ...
cuda-command-line-tools-12-2 (12.2.2-1) 설정하는 중입니다 ...
cuda-opencl-dev-12-2 (12.2.140-1) 설정하는 중입니다 ...
libcublas-12-2 (12.2.5.6-1) 설정하는 중입니다 ...
libnvjitlink-12-2 (12.2.140-1) 설정하는 중입니다 ...
libcurand-12-2 (10.3.3.141-1) 설정하는 중입니다 ...
libcufft-dev-12-2 (11.0.8.103-1) 설정하는 중입니다 ...
libnpp-12-2 (12.2.1.4-1) 설정하는 중입니다 ...
libnvjitlink-dev-12-2 (12.2.140-1) 설정하는 중입니다 ...
cuda-libraries-12-2 (12.2.2-1) 설정하는 중입니다 ...
libcurand-dev-12-2 (10.3.3.141-1) 설정하는 중입니다 ...
libcusolver-dev-12-2 (11.5.2.141-1) 설정하는 중입니다 ...
cuda-nvvp-12-2 (12.2.142-1) 설정하는 중입니다 ...
libcublas-dev-12-2 (12.2.5.6-1) 설정하는 중입니다 ...
cuda-runtime-12-2 (12.2.2-1) 설정하는 중입니다 ...
cuda-crt-12-2 (12.2.140-1) 설정하는 중입니다 ...
libcusparse-dev-12-2 (12.1.2.141-1) 설정하는 중입니다 ...
cuda-nvcc-12-2 (12.2.140-1) 설정하는 중입니다 ...
libnpp-dev-12-2 (12.2.1.4-1) 설정하는 중입니다 ...
cuda-compiler-12-2 (12.2.2-1) 설정하는 중입니다 ...
cuda-libraries-dev-12-2 (12.2.2-1) 설정하는 중입니다 ...
cuda-demo-suite-12-2 (12.2.140-1) 설정하는 중입니다 ...
cuda-visual-tools-12-2 (12.2.2-1) 설정하는 중입니다 ...
cuda-tools-12-2 (12.2.2-1) 설정하는 중입니다 ...
cuda-toolkit-12-2 (12.2.2-1) 설정하는 중입니다 ...
cuda-12-2 (12.2.2-1) 설정하는 중입니다 ...
cuda (12.2.2-1) 설정하는 중입니다 ...
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for mailcap (3.70+nmu1ubuntu1) ...
Processing triggers for fontconfig (2.13.1-4.2ubuntu5) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for libc-bin (2.35-0ubuntu3.6) ...
Scanning processes...                                                                                                                                                                    
Scanning linux images...                                                                                                                                                                 

Running kernel seems to be up-to-date.

No services need to be restarted.

No containers need to be restarted.

No user sessions are running outdated binaries.

No VM guests are running outdated hypervisor (qemu) binaries on this host.

 

2024-02-27 12:05:23.171291: I tensorflow/core/util/port.cc:113] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.
2024-02-27 12:05:23.210348: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
2024-02-27 12:05:23.210387: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:607] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered
2024-02-27 12:05:23.211358: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1515] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
2024-02-27 12:05:23.216942: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: AVX2 AVX512F AVX512_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
2024-02-27 12:05:23.887488: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT
2024-02-27 12:05:24.625931: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1929] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 22011 MB memory:  -> device: 0, name: NVIDIA RTX A5000, pci bus id: 0000:3b:00.0, compute capability: 8.6
2024-02-27 12:05:27.358066: I external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:454] Loaded cuDNN version 8907
1/1 [==============================] - 2s 2s/step
1/1 [==============================] - 0s 38ms/step
Time taken for predicting 32 images: 0.10529780387878418 seconds

sudo apt-get install gnupg-curl\nwget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-ubuntu1604.pin\nsudo mv cuda-ubuntu1604.pin /etc/apt/preferences.d/cuda-repository-pin-600\nsudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub\nsudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/ /"\nsudo apt-get update\nwget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb\nsudo apt install ./nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb\nsudo apt-get update\nwget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/libnvinfer7_7.1.3-1+cuda11.0_amd64.deb\nsudo apt install ./libnvinfer7_7.1.3-1+cuda11.0_amd64.deb\nsudo apt-get update\n\n# Install development and runtime libraries (~4GB)\nsudo apt-get install --no-install-recommends \\n    cuda-11-0 \\n    libcudnn8=8.0.4.30-1+cuda11.0  \\n    libcudnn8-dev=8.0.4.30-1+cuda11.0\n\n\n# Reboot. Check that GPUs are visible using the command: nvidia-smi\n\n# Install TensorRT. Requires that libcudnn7 is installed above.\nsudo apt-get install -y --no-install-recommends \\n    libnvinfer7=7.1.3-1+cuda11.0 \\n    libnvinfer-dev=7.1.3-1+cuda11.0 \\n    libnvinfer-plugin7=7.1.3-1+cuda11.0 \\n    libnvinfer-plugin-dev=7.1.3-1+cuda11.0\n
  460  aptitude

467  sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys xxxxxxxxxxxxx\n
  468  sudo apt-get update
  469  # Add NVIDIA package repositories\n# Add HTTPS support for apt-key\nsudo apt-get install gnupg-curl\nwget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-ubuntu1604.pin\nsudo mv cuda-ubuntu1604.pin /etc/apt/preferences.d/cuda-repository-pin-600\nsudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub\nsudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/ /"\nsudo apt-get update\nwget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb\nsudo apt install ./nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb\nsudo apt-get update\nwget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/libnvinfer7_7.1.3-1+cuda11.0_amd64.deb\nsudo apt install ./libnvinfer7_7.1.3-1+cuda11.0_amd64.deb\nsudo apt-get update\n\n# Install development and runtime libraries (~4GB)\nsudo apt-get install --no-install-recommends \\n    cuda-11-0 \\n    libcudnn8=8.0.4.30-1+cuda11.0  \\n    libcudnn8-dev=8.0.4.30-1+cuda11.0\n\n\n# Reboot. Check that GPUs are visible using the command: nvidia-smi\n\n# Install TensorRT. Requires that libcudnn7 is installed above.\nsudo apt-get install -y --no-install-recommends \\n    libnvinfer7=7.1.3-1+cuda11.0 \\n    libnvinfer-dev=7.1.3-1+cuda11.0 \\n    libnvinfer-plugin7=7.1.3-1+cuda11.0 \\n    libnvinfer-plugin-dev=7.1.3-1+cuda11.0\n

sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
  479  wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin\nsudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600\nwget https://developer.download.nvidia.com/compute/cuda/12.3.2/local_installers/cuda-repo-ubuntu2204-12-3-local_12.3.2-545.23.08-1_amd64.deb\nsudo dpkg -i cuda-repo-ubuntu2204-12-3-local_12.3.2-545.23.08-1_amd64.deb\nsudo cp /var/cuda-repo-ubuntu2204-12-3-local/cuda-*-keyring.gpg /usr/share/keyrings/\nsudo apt-get update\nsudo apt-get -y install cuda-toolkit-12-3

lsb_release -a\n
  489  nvcc --version
  490  tag="8.6.1-cuda-12.3"
  491  sudo dpkg -i nv-tensorrt-local-repo-ubuntu2204-8.4.1-cuda-12.3_1.0-1_amd64.deb\nsudo cp /var/nv-tensorrt-local-repo-ubuntu2204-8.4.1-cuda-12.3/*-keyring.gpg /usr/share/keyrings/\nsudo apt-get update\n
  492  ls *.deb
  493  sudo apt-get install -y cuda-drivers
  494  sudo apt-get install -y nvidia-kernel-open-545\nsudo apt-get install -y cuda-drivers-545

echo "deb [signed-by=/usr/share/keyrings/cuda-archive-keyring.gpg] https://developer.download.nvidia.com/compute/cuda/repos/<distro>/x86_64/ /" | sudo tee /etc/apt/sources.list.d/cuda-<distro>-x86_64.list
  512  wget https://developer.download.nvidia.com/compute/cuda/repos/\<distro\>/x86_64/cuda-archive-keyring.gpg\nsudo mv cuda-archive-keyring.gpg /usr/share/keyrings/cuda-archive-keyring.gpg
  513  wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb\nsudo dpkg -i cuda-keyring_1.1-1_all.deb\nsudo apt-get update\nsudo apt-get -y install cudnn

  516  sudo apt autoremove
  517  sudo apt-get -y install cudnn-cuda-12
  519  pip install tensorrt

4.x대에서 5.3.1로 오면서 블루프린트가 깨지는 경우가 많았다. 하나씩 일일이 컨트롤 해줘야 함. 

블루프린트 열어서 고쳐주던가 해당 블루프린터를 대체(필요 없다면 삭제도 한 방법)하면 해결됨.

 

이건 또 뭐야.

Also in my build.cs I added “Slate”, “SlateCore” & “UMG” with no success. Did regenerate the Project files as well.

 

Assertion failed: CurrentApplication.IsValid() [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Slate\Public\Framework\Application\SlateApplication.h] [Line: 255] 



0x00007ffce316f356 UnrealEditor-Slate.dll!UnknownFunction []
0x00007ffce317c752 UnrealEditor-Slate.dll!UnknownFunction []
0x00007ffce3157223 UnrealEditor-Slate.dll!UnknownFunction []
0x000001959cfee58b UnrealEditor-Text3D.dll!UnknownFunction []
0x000001959cfce556 UnrealEditor-Text3D.dll!UnknownFunction []
0x000001959cfcfa44 UnrealEditor-Text3D.dll!UnknownFunction []
0x00007ffcdc137828 UnrealEditor-Core.dll!UnknownFunction []
0x00007ffcdc151c9f UnrealEditor-Core.dll!UnknownFunction []
0x00007ffcdc1520bb UnrealEditor-Core.dll!UnknownFunction []
0x00007ffca6d73c56 UnrealEditor-UnrealEd.dll!UnknownFunction []
0x00007ffca6d9415e UnrealEditor-UnrealEd.dll!UnknownFunction []
0x00007ffca6d761af UnrealEditor-UnrealEd.dll!UnknownFunction []
0x00007ffca6da1a5f UnrealEditor-UnrealEd.dll!UnknownFunction []
0x00007ffca6da0f57 UnrealEditor-UnrealEd.dll!UnknownFunction []
0x00007ffca6a8fe50 UnrealEditor-UnrealEd.dll!UnknownFunction []
0x00007ffca6a4f323 UnrealEditor-UnrealEd.dll!UnknownFunction []
0x00007ffca6a6dc6f UnrealEditor-UnrealEd.dll!UnknownFunction []
0x00007ff62b4a733f UnrealEditor-Cmd.exe!UnknownFunction []
0x00007ff62b49cfb6 UnrealEditor-Cmd.exe!UnknownFunction []
0x00007ff62b49d37a UnrealEditor-Cmd.exe!UnknownFunction []
0x00007ff62b4a0854 UnrealEditor-Cmd.exe!UnknownFunction []
0x00007ff62b4b6984 UnrealEditor-Cmd.exe!UnknownFunction []
0x00007ff62b4b8eb6 UnrealEditor-Cmd.exe!UnknownFunction []
0x00007ffd4c9b7344 KERNEL32.DLL!UnknownFunction []

 

 

[2023.10.24-10.44.50:687][861]UATHelper: Cooking (Windows): LogWindows: Error: appError called: Assertion failed: CurrentApplication.IsValid() [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Slate\Public\Framework\Application\SlateApplication.h] [Line: 255]
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: begin: stack for UAT
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: === Critical error: ===
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error:
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: Assertion failed: CurrentApplication.IsValid() [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Slate\Public\Framework\Application\SlateApplication.h] [Line: 255]
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error:
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error:
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error:
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x00007ffce316f356 UnrealEditor-Slate.dll!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x00007ffce317c752 UnrealEditor-Slate.dll!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x00007ffce3157223 UnrealEditor-Slate.dll!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x000001959cfee58b UnrealEditor-Text3D.dll!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x000001959cfce556 UnrealEditor-Text3D.dll!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x000001959cfcfa44 UnrealEditor-Text3D.dll!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x00007ffcdc137828 UnrealEditor-Core.dll!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x00007ffcdc151c9f UnrealEditor-Core.dll!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x00007ffcdc1520bb UnrealEditor-Core.dll!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x00007ffca6d73c56 UnrealEditor-UnrealEd.dll!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x00007ffca6d9415e UnrealEditor-UnrealEd.dll!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x00007ffca6d761af UnrealEditor-UnrealEd.dll!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x00007ffca6da1a5f UnrealEditor-UnrealEd.dll!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x00007ffca6da0f57 UnrealEditor-UnrealEd.dll!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x00007ffca6a8fe50 UnrealEditor-UnrealEd.dll!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x00007ffca6a4f323 UnrealEditor-UnrealEd.dll!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x00007ffca6a6dc6f UnrealEditor-UnrealEd.dll!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x00007ff62b4a733f UnrealEditor-Cmd.exe!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x00007ff62b49cfb6 UnrealEditor-Cmd.exe!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x00007ff62b49d37a UnrealEditor-Cmd.exe!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x00007ff62b4a0854 UnrealEditor-Cmd.exe!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x00007ff62b4b6984 UnrealEditor-Cmd.exe!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x00007ff62b4b8eb6 UnrealEditor-Cmd.exe!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: [Callstack] 0x00007ffd4c9b7344 KERNEL32.DLL!UnknownFunction []
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error:
[2023.10.24-10.44.50:698][861]UATHelper: Cooking (Windows): LogWindows: Error: end: stack for UAT
[2023.10.24-10.44.50:827][862]PackagingResults: Error: appError called: Assertion failed: CurrentApplication.IsValid() [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Slate\Public\Framework\Application\SlateApplication.h] [Line: 255]
[2023.10.24-10.44.50:827][862]PackagingResults: Error: begin: stack for UAT
[2023.10.24-10.44.50:827][862]PackagingResults: Error: === Critical error: ===
[2023.10.24-10.44.50:827][862]PackagingResults: Error: Assertion failed: CurrentApplication.IsValid() [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Slate\Public\Framework\Application\SlateApplication.h] [Line: 255]
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x00007ffce316f356 UnrealEditor-Slate.dll!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x00007ffce317c752 UnrealEditor-Slate.dll!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x00007ffce3157223 UnrealEditor-Slate.dll!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x000001959cfee58b UnrealEditor-Text3D.dll!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x000001959cfce556 UnrealEditor-Text3D.dll!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x000001959cfcfa44 UnrealEditor-Text3D.dll!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x00007ffcdc137828 UnrealEditor-Core.dll!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x00007ffcdc151c9f UnrealEditor-Core.dll!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x00007ffcdc1520bb UnrealEditor-Core.dll!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x00007ffca6d73c56 UnrealEditor-UnrealEd.dll!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x00007ffca6d9415e UnrealEditor-UnrealEd.dll!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x00007ffca6d761af UnrealEditor-UnrealEd.dll!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x00007ffca6da1a5f UnrealEditor-UnrealEd.dll!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x00007ffca6da0f57 UnrealEditor-UnrealEd.dll!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x00007ffca6a8fe50 UnrealEditor-UnrealEd.dll!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x00007ffca6a4f323 UnrealEditor-UnrealEd.dll!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x00007ffca6a6dc6f UnrealEditor-UnrealEd.dll!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x00007ff62b4a733f UnrealEditor-Cmd.exe!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x00007ff62b49cfb6 UnrealEditor-Cmd.exe!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x00007ff62b49d37a UnrealEditor-Cmd.exe!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x00007ff62b4a0854 UnrealEditor-Cmd.exe!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x00007ff62b4b6984 UnrealEditor-Cmd.exe!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x00007ff62b4b8eb6 UnrealEditor-Cmd.exe!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: [Callstack] 0x00007ffd4c9b7344 KERNEL32.DLL!UnknownFunction []
[2023.10.24-10.44.50:827][862]PackagingResults: Error: end: stack for UAT

 

 

 

C:\Users\hajun\appdata\Roaming\Unreal Engine\AutomationTool\Logs\G+EpicGames+UE_5.3

 

Cook failed.

 

LogBlueprint: Error: [Compiler] In use pin  <Unnamed>  no longer exists on node  Reset Orientation and Position . Please refresh node or break links to remove pin. from Source: /Game/001/PN_GrassLibrary/UE4ThirdPersonTemplate/ThirdPersonBP/Blueprints/ThirdPersonCharacter.ThirdPersonCharacter

LogBlueprint: Error: [Compiler] Could not find a function named "ResetOrientationAndPosition" in 'ThirdPersonCharacter'.

 

<html>

<body>
    <div id="test">
        <h1> Hello! Screenshot Me!</h1>
    </div>
    <button id="btn">screenshot</button>
</body>
<script src="https://unpkg.com/jspdf@latest/dist/jspdf.umd.min.js"></script>

<script src="https://cdn.jsdelivr.net/npm/html2canvas@1.0.0-rc.7/dist/html2canvas.min.js"></script>
<script>
    window.onload = function () {
        console.log("Window is loaded")
        document.getElementById('btn').addEventListener("click", function () {
            html2canvas(document.getElementById('test')).then(function (canvas) {
                document.body.appendChild(canvas);
                var imgdata = canvas.toDataURL("image/jpg");
                var doc = new jspdf.jsPDF();
                doc.addImage(imgdata, "JPG", 10, 10);
                doc.save("sample.pdf");
            });
        })

    }

</script>

</html>

from. https://stackoverflow.com/questions/65335526/html-page-screenshot-to-pdf-using-html2canvas-and-jspdf

 

html page screenshot to pdf using html2canvas and jspdf

I am trying to create a receipt or invoice to pdf by screenshot of a php page. I found a source code on youtube and tried it for myself, however, it is not saving or downloading any pdf. here is th...

stackoverflow.com

 

'진행 프로젝트 > [진행] 설문조사 서비스' 카테고리의 다른 글

친절한 금자씨  (0) 2020.09.22
방시혁, 한 사람의 힘  (2) 2020.09.21
오 예술  (0) 2020.09.20
포트나이트는 예술이다.  (0) 2020.09.17
"복수는 나의 것" 비평_2  (0) 2020.09.17

q: 나가기

s : 초 단위 시간 조절.

o - cpu or mem : CPU or 메모리 사용률 소팅

S : 시그널

 

ex) 

s 10 : 10초 단위 업데이트로 설정

o mem : 메모리 사용 큰 애들로 소팅. PID 2422가 많이 쓰고 지금 필요 없으면,

S kill 2422

 

내가 쓰는 테마 c, zb, Z   T3, H4

htop도 괜찮지만 top 커스터마이징이 좀 더 익숙한...

'Swift & Python 실무 > {BE} SOCANNER BE for AI' 카테고리의 다른 글

Google Document AI  (0) 2024.02.05
Pycharm Plug-ins  (0) 2023.12.30

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

https://programmingsummaries.tistory.com/381?category=485241 

 

[JavaScript] 예제로 확인하는 handlebars.js 사용 방법

들어가며 최근 서버 사이드 템플릿 엔진 변경에 대한 논의가 있어서 주요 템플릿 엔진에 대해서 살펴보고 정리할 기회가 생겼다. 그 중에서 handlebars.js(이하 핸들바)  사용법에 대해 정리한 내용

programmingsummaries.tistory.com

여기 설명 잘 되어 있는데,

 

<script id="entry-template" type="text/x-handlebars-template">
<table>
    <thead> 
        <th>이름</th> 
        <th>아이디</th> 
        <th>메일주소</th> 
    </thead> 
    <tbody> 
        {{#users}} 
        <tr> 
            <td>{{name}}</td> 
            <td>{{id23}}</td> 
            
            {{!-- 사용자 정의 헬퍼인 email에 id를 인자로 넘긴다 --}}
            <td><a href="mailto:{{email id23}}">{{email id23}}</a></td> 
        </tr> 
        {{/users}} 
    </tbody> 
</table>
</script>

인자와 파라미터 구분이 애매해서 id를 x로 바꾼게 더 이해가 잘되어서.

//핸들바 템플릿 가져오기
var source = $("#entry-template").html(); 

//핸들바 템플릿 컴파일
var template = Handlebars.compile(source); 

//핸들바 템플릿에 바인딩할 데이터
var data = {
     users: [
            { name: "홍길동1", id23: "aaa1" },
            { name: "홍길동2", id23: "aaa2" },
            { name: "홍길동3", id23: "aaa3" },
            { name: "홍길동4", id23: "aaa4" },
            { name: "홍길동5", id23: "aaa5" },
            { name: "길동아", id23: "ffdsf"}
        ]
}; 

//커스텀 헬퍼 등록 (id를 인자로 받아서 전체 이메일 주소를 반환)
Handlebars.registerHelper('email', x => {
  return x + "@daum.net";
});

//핸들바 템플릿에 데이터를 바인딩해서 HTML 생성
var html = template(data);

//생성된 HTML을 DOM에 주입
$('body').append(html);

 

해당 필자 깃헙도 팔로우 했다. 웹 FE 쪽에서는 어떤 프레임웍으로 가는지 궁금해서.

spring boot 2.6.6

gradle 7.4.1

AdoptOpenJDK 11

curl -s https://get.sdkman.io | bash

 source "/home/nanuminet/.sdkman/bin/sdkman-init.sh"

sdk install springboot

spring init -dweb,jpa,security --build gradle -p jar -x

 ./gradlew 

nanuminet@localhost:~/spring414$ ./gradlew build

> Task :test FAILED

DemoApplicationTests > contextLoads() FAILED
    java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:132
        Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException at ConstructorResolver.java:800
            Caused by: org.springframework.beans.factory.BeanCreationException at ConstructorResolver.java:658
                Caused by: org.springframework.beans.BeanInstantiationException at SimpleInstantiationStrategy.java:185
                    Caused by: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException at DataSourceProperties.java:252

1 test completed, 1 failed

FAILURE: Build failed with an exception.

기분 팍.. 걍 쿠퍼네티스로...

https://syhwang.tistory.com/44?category=1196270 

 

[도커 설치] Docker Installation on Ubuntu:20.04

Docker 설치시에는 반드시 root 계정으로 설치를 진행해야 한다. 1. Docker Install > docs.docker.com을 참조하여 설치 진행 > Download and install > Docker for Linux > Install on Linux https://docs.docker..

syhwang.tistory.com

 

https://syhwang.tistory.com/49?category=1196270 

 

[Docker] Docker-Compose 설치

https://docs.docker.com/compose/install/ Install Docker Compose docs.docker.com 위 사이트에서 Docker-Compose Install을 따라서 하면 쉽다. 1. Install Compose on Linux systems $ sudo curl -L "ht..

syhwang.tistory.com

https://syhwang.tistory.com/45

 

[K8S] 쿠버네티스 설치 Ubuntu:20.04

이번에는 Ubuntu:20.04 위에 쿠버네티스 설치를 해보려고 한다. 이 장을 함께 따라해보고 싶다면 아래 글 2개를 다시 보고 오면 된다. https://syhwang.tistory.com/43?category=1220695 Download > 20.04 LTS Ent..

syhwang.tistory.com

참... 

 

 

걍 부트앱으로.

 

./mvnw clean install          127 ↵ qq(Tue,Apr05)qj
[INFO] Scanning for projects...
[INFO] 
[INFO] --------------------------< com.example:demo >--------------------------
[INFO] Building demo 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/3.1.0/maven-clean-plugin-3.1.0.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/3.1.0/maven-clean-plugin-3.1.0.pom (5.2 kB at 4.0 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-install-plugin/2.5.2/maven-install-plugin-2.5.2.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-install-plugin/2.5.2/maven-install-plugin-2.5.2.pom (6.4 kB at 16 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/25/maven-plugins-25.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/25/maven-plugins-25.pom (9.6 kB at 24 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/24/maven-parent-24.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/24/maven-parent-24.pom (37 kB at 82 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/apache/14/apache-14.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/apache/14/apache-14.pom (15 kB at 39 kB/s)
[INFO] 
[INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ demo ---
[INFO] Deleting /Users/junhoha/Documents/spring414/demo/target
[INFO] 
[INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ demo ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] Copying 1 resource
[INFO] Copying 135 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ demo ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 4 source files to /Users/junhoha/Documents/spring414/demo/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:3.2.0:testResources (default-testResources) @ demo ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] skip non existing resourceDirectory /Users/junhoha/Documents/spring414/demo/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ demo ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /Users/junhoha/Documents/spring414/demo/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ demo ---
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/maven-surefire-common/2.22.2/maven-surefire-common-2.22.2.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/maven-surefire-common/2.22.2/maven-surefire-common-2.22.2.pom (11 kB at 13 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugin-tools/maven-plugin-annotations/3.5.2/maven-plugin-annotations-3.5.2.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugin-tools/maven-plugin-annotations/3.5.2/maven-plugin-annotations-3.5.2.pom (1.6 kB at 3.3 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugin-tools/maven-plugin-tools/3.5.2/maven-plugin-tools-3.5.2.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugin-tools/maven-plugin-tools/3.5.2/maven-plugin-tools-3.5.2.pom (15 kB at 19 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-api/2.22.2/surefire-api-2.22.2.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-api/2.22.2/surefire-api-2.22.2.pom (3.5 kB at 8.5 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-logger-api/2.22.2/surefire-logger-api-2.22.2.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-logger-api/2.22.2/surefire-logger-api-2.22.2.pom (2.0 kB at 5.3 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-booter/2.22.2/surefire-booter-2.22.2.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-booter/2.22.2/surefire-booter-2.22.2.pom (7.5 kB at 17 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.pom (2.4 kB at 5.7 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-shared-components/15/maven-shared-components-15.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-shared-components/15/maven-shared-components-15.pom (9.3 kB at 20 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/16/maven-parent-16.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/16/maven-parent-16.pom (23 kB at 48 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/apache/7/apache-7.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/apache/7/apache-7.pom (14 kB at 35 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-toolchain/2.2.1/maven-toolchain-2.2.1.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-toolchain/2.2.1/maven-toolchain-2.2.1.pom (3.3 kB at 8.9 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/com/thoughtworks/qdox/qdox/2.0-M8/qdox-2.0-M8.pom
Downloaded from central: https://repo.maven.apache.org/maven2/com/thoughtworks/qdox/qdox/2.0-M8/qdox-2.0-M8.pom (16 kB at 34 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/maven-surefire-common/2.22.2/maven-surefire-common-2.22.2.jar
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-api/2.2.1/maven-plugin-api-2.2.1.jar
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugin-tools/maven-plugin-annotations/3.5.2/maven-plugin-annotations-3.5.2.jar
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-api/2.22.2/surefire-api-2.22.2.jar
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-logger-api/2.22.2/surefire-logger-api-2.22.2.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-api/2.2.1/maven-plugin-api-2.2.1.jar (12 kB at 23 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-booter/2.22.2/surefire-booter-2.22.2.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-logger-api/2.22.2/surefire-logger-api-2.22.2.jar (13 kB at 11 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugin-tools/maven-plugin-annotations/3.5.2/maven-plugin-annotations-3.5.2.jar (14 kB at 11 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-booter/2.22.2/surefire-booter-2.22.2.jar (274 kB at 55 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-descriptor/2.2.1/maven-plugin-descriptor-2.2.1.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.jar (80 kB at 15 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-project/2.2.1/maven-project-2.2.1.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-api/2.22.2/surefire-api-2.22.2.jar (186 kB at 34 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-descriptor/2.2.1/maven-plugin-descriptor-2.2.1.jar (39 kB at 5.3 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-profile/2.2.1/maven-profile-2.2.1.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.jar (228 kB at 30 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact-manager/2.2.1/maven-artifact-manager-2.2.1.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.jar (49 kB at 6.5 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/maven-surefire-common/2.22.2/maven-surefire-common-2.22.2.jar (528 kB at 68 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-registry/2.2.1/maven-plugin-registry-2.2.1.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-profile/2.2.1/maven-profile-2.2.1.jar (35 kB at 4.2 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-project/2.2.1/maven-project-2.2.1.jar (156 kB at 18 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-model/2.2.1/maven-model-2.2.1.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-registry/2.2.1/maven-plugin-registry-2.2.1.jar (30 kB at 3.2 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-core/2.2.1/maven-core-2.2.1.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact-manager/2.2.1/maven-artifact-manager-2.2.1.jar (68 kB at 7.1 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-parameter-documenter/2.2.1/maven-plugin-parameter-documenter-2.2.1.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.jar (51 kB at 4.9 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/slf4j/slf4j-jdk14/1.5.6/slf4j-jdk14-1.5.6.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-core/2.2.1/maven-core-2.2.1.jar (178 kB at 17 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-model/2.2.1/maven-model-2.2.1.jar (88 kB at 8.2 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/slf4j/jcl-over-slf4j/1.5.6/jcl-over-slf4j-1.5.6.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-parameter-documenter/2.2.1/maven-plugin-parameter-documenter-2.2.1.jar (22 kB at 2.1 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/slf4j/slf4j-jdk14/1.5.6/slf4j-jdk14-1.5.6.jar (8.8 kB at 811 B/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-repository-metadata/2.2.1/maven-repository-metadata-2.2.1.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6.jar (22 kB at 2.0 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-error-diagnostics/2.2.1/maven-error-diagnostics-2.2.1.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/slf4j/jcl-over-slf4j/1.5.6/jcl-over-slf4j-1.5.6.jar (17 kB at 1.5 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-monitor/2.2.1/maven-monitor-2.2.1.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar (11 kB at 974 B/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-toolchain/2.2.1/maven-toolchain-2.2.1.jar
Downloaded from central: https://repo.maven.apache.org/maven2/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar (332 kB at 29 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/com/thoughtworks/qdox/qdox/2.0-M8/qdox-2.0-M8.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-repository-metadata/2.2.1/maven-repository-metadata-2.2.1.jar (26 kB at 2.2 kB/s)
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-error-diagnostics/2.2.1/maven-error-diagnostics-2.2.1.jar (13 kB at 1.1 kB/s)
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-monitor/2.2.1/maven-monitor-2.2.1.jar (10 kB at 894 B/s)
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-toolchain/2.2.1/maven-toolchain-2.2.1.jar (38 kB at 3.2 kB/s)
Downloaded from central: https://repo.maven.apache.org/maven2/com/thoughtworks/qdox/qdox/2.0-M8/qdox-2.0-M8.jar (316 kB at 25 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-junit-platform/2.22.2/surefire-junit-platform-2.22.2.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-junit-platform/2.22.2/surefire-junit-platform-2.22.2.pom (7.0 kB at 18 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-providers/2.22.2/surefire-providers-2.22.2.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-providers/2.22.2/surefire-providers-2.22.2.pom (2.5 kB at 6.8 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-launcher/1.3.1/junit-platform-launcher-1.3.1.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-launcher/1.3.1/junit-platform-launcher-1.3.1.pom (2.2 kB at 5.7 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apiguardian/apiguardian-api/1.0.0/apiguardian-api-1.0.0.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apiguardian/apiguardian-api/1.0.0/apiguardian-api-1.0.0.pom (1.2 kB at 3.1 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-engine/1.3.1/junit-platform-engine-1.3.1.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-engine/1.3.1/junit-platform-engine-1.3.1.pom (2.4 kB at 5.8 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-commons/1.3.1/junit-platform-commons-1.3.1.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-commons/1.3.1/junit-platform-commons-1.3.1.pom (2.0 kB at 5.5 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.1.1/opentest4j-1.1.1.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.1.1/opentest4j-1.1.1.pom (1.7 kB at 4.6 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-launcher/1.3.1/junit-platform-launcher-1.3.1.jar
Downloading from central: https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-engine/1.3.1/junit-platform-engine-1.3.1.jar
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-junit-platform/2.22.2/surefire-junit-platform-2.22.2.jar
Downloading from central: https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-commons/1.3.1/junit-platform-commons-1.3.1.jar
Downloading from central: https://repo.maven.apache.org/maven2/org/apiguardian/apiguardian-api/1.0.0/apiguardian-api-1.0.0.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apiguardian/apiguardian-api/1.0.0/apiguardian-api-1.0.0.jar (2.2 kB at 5.0 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.1.1/opentest4j-1.1.1.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-junit-platform/2.22.2/surefire-junit-platform-2.22.2.jar (66 kB at 126 kB/s)
Downloaded from central: https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-engine/1.3.1/junit-platform-engine-1.3.1.jar (135 kB at 257 kB/s)
Downloaded from central: https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-launcher/1.3.1/junit-platform-launcher-1.3.1.jar (95 kB at 173 kB/s)
Downloaded from central: https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-commons/1.3.1/junit-platform-commons-1.3.1.jar (78 kB at 130 kB/s)
Downloaded from central: https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.1.1/opentest4j-1.1.1.jar (7.1 kB at 18 kB/s)
[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.example.demo.DemoApplicationTests
13:58:28.342 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating CacheAwareContextLoaderDelegate from class [org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate]
13:58:28.351 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating BootstrapContext using constructor [public org.springframework.test.context.support.DefaultBootstrapContext(java.lang.Class,org.springframework.test.context.CacheAwareContextLoaderDelegate)]
13:58:28.380 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating TestContextBootstrapper for test class [com.example.demo.DemoApplicationTests] from class [org.springframework.boot.test.context.SpringBootTestContextBootstrapper]
13:58:28.391 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.example.demo.DemoApplicationTests], using SpringBootContextLoader
13:58:28.395 [main] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [com.example.demo.DemoApplicationTests]: class path resource [com/example/demo/DemoApplicationTests-context.xml] does not exist
13:58:28.395 [main] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [com.example.demo.DemoApplicationTests]: class path resource [com/example/demo/DemoApplicationTestsContext.groovy] does not exist
13:58:28.395 [main] INFO org.springframework.test.context.support.AbstractContextLoader - Could not detect default resource locations for test class [com.example.demo.DemoApplicationTests]: no resource found for suffixes {-context.xml, Context.groovy}.
13:58:28.396 [main] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [com.example.demo.DemoApplicationTests]: DemoApplicationTests does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
13:58:28.431 [main] DEBUG org.springframework.test.context.support.ActiveProfilesUtils - Could not find an 'annotation declaring class' for annotation type [org.springframework.test.context.ActiveProfiles] and class [com.example.demo.DemoApplicationTests]
13:58:28.476 [main] DEBUG org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider - Identified candidate component class: file [/Users/junhoha/Documents/spring414/demo/target/classes/com/example/demo/DemoApplication.class]
13:58:28.477 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration com.example.demo.DemoApplication for test class com.example.demo.DemoApplicationTests
13:58:28.563 [main] DEBUG org.springframework.boot.test.context.SpringBootTestContextBootstrapper - @TestExecutionListeners is not present for class [com.example.demo.DemoApplicationTests]: using defaults.
13:58:28.563 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener]
13:58:28.580 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@40dff0b7, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@7966baa7, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@60975100, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@1253e7cb, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@2d36e77e, org.springframework.test.context.support.DirtiesContextTestExecutionListener@61c9c3fd, org.springframework.test.context.transaction.TransactionalTestExecutionListener@3b0c9195, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@366c4480, org.springframework.test.context.event.EventPublishingTestExecutionListener@2c7b5824, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@302a07d, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@5cdd09b1, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@8c11eee, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@7e8dcdaa, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@681a8b4e, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@5cbe877d]
13:58:28.584 [main] DEBUG org.springframework.test.context.support.AbstractDirtiesContextTestExecutionListener - Before test class: context [DefaultTestContext@2cc3ad05 testClass = DemoApplicationTests, testInstance = [null], testMethod = [null], testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@710b18a6 testClass = DemoApplicationTests, locations = '{}', classes = '{class com.example.demo.DemoApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@7ac296f6, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@78fa769e, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@536dbea0, org.springframework.boot.test.autoconfigure.actuate.metrics.MetricsExportContextCustomizerFactory$DisableMetricExportContextCustomizer@3576ddc2, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@6f8e8894, org.springframework.boot.test.context.SpringBootTestArgs@1, org.springframework.boot.test.context.SpringBootTestWebEnvironment@163e4e87], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true]], class annotated with @DirtiesContext [false] with mode [null].

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.6.5)

2022-04-05 13:58:28.978  INFO 17122 --- [           main] com.example.demo.DemoApplicationTests    : Starting DemoApplicationTests using Java 11.0.12 on Junhoui-iMac-Pro.local with PID 17122 (started by junhoha in /Users/junhoha/Documents/spring414/demo)
2022-04-05 13:58:28.979  INFO 17122 --- [           main] com.example.demo.DemoApplicationTests    : No active profile set, falling back to 1 default profile: "default"
2022-04-05 13:58:29.478  WARN 17122 --- [           main] o.m.s.mapper.ClassPathMapperScanner      : No MyBatis mapper was found in '[com.example.demo]' package. Please check your configuration.
2022-04-05 13:58:30.303  INFO 17122 --- [           main] com.example.demo.DemoApplicationTests    : Started DemoApplicationTests in 1.683 seconds (JVM running for 2.469)
PgSQLRunner ===> START 
2022-04-05 13:58:30.306  INFO 17122 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2022-04-05 13:58:30.485  INFO 17122 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
PgSQLRunner ===>class com.zaxxer.hikari.HikariDataSource
PgSQLRunner ===>HikariProxyDatabaseMetaData@1941639991 wrapping org.postgresql.jdbc.PgDatabaseMetaData@6a2d867d
PgSQLRunner ===>postgres
Exceptionorg.postgresql.util.PSQLException: ERROR: relation "test_user2" already exists
commandLineRunner
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.573 s - in com.example.demo.DemoApplicationTests
2022-04-05 13:58:30.867  INFO 17122 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown initiated...
2022-04-05 13:58:30.871  INFO 17122 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown completed.
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] 
[INFO] --- maven-jar-plugin:3.2.2:jar (default-jar) @ demo ---
[INFO] Building jar: /Users/junhoha/Documents/spring414/demo/target/demo-0.0.1-SNAPSHOT.jar
[INFO] 
[INFO] --- spring-boot-maven-plugin:2.6.5:repackage (repackage) @ demo ---
[INFO] Replacing main artifact with repackaged archive
[INFO] 
[INFO] --- maven-install-plugin:2.5.2:install (default-install) @ demo ---
Downloading from central: https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.6/commons-codec-1.6.pom
Downloaded from central: https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.6/commons-codec-1.6.pom (11 kB at 21 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/22/commons-parent-22.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/22/commons-parent-22.pom (42 kB at 22 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.pom (4.0 kB at 5.5 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.6/commons-codec-1.6.jar
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.jar
Downloading from central: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.jar (155 kB at 63 kB/s)
Downloaded from central: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.jar (239 kB at 95 kB/s)
Downloaded from central: https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.6/commons-codec-1.6.jar (233 kB at 84 kB/s)
[INFO] Installing /Users/junhoha/Documents/spring414/demo/target/demo-0.0.1-SNAPSHOT.jar to /Users/junhoha/.m2/repository/com/example/demo/0.0.1-SNAPSHOT/demo-0.0.1-SNAPSHOT.jar
[INFO] Installing /Users/junhoha/Documents/spring414/demo/pom.xml to /Users/junhoha/.m2/repository/com/example/demo/0.0.1-SNAPSHOT/demo-0.0.1-SNAPSHOT.pom

'Swift & Python 실무' 카테고리의 다른 글

handlebars.js  (0) 2022.04.13
자바 8 과 자바 11  (0) 2022.04.04
spring 통 백업 .app 을 zip혹은 jar로 파일 크기 차이  (0) 2022.04.04
eclipse configuration file location  (0) 2022.04.04
네트워크 문제 로그  (0) 2022.04.04

Java 8  Java 11 애플릿 뷰어 도구 사용 가능 애플릿 뷰어 도구 사용 불가 AWTUtilities 클래스 사용하지 않는것이 좋음 AWTUtilities 클래스 사용 불가 String 문자열 관련 메소드가 적다 isBlank(), line(), repeat(n), stripLeading(), stripTrailing(), strip() 같은 새로운 String 문자열 방법이 도입됨 람다 파라미터에는 특수 변수가 사용되지 않음 람다식에 사용할 var 변수를 사용 할 수 있음 Java Deployment Technologies 사용 가능 Java Deployment Technologies 사용 불가 JMC 및 JavaFX는 Oracle JDK에서 사용 가능 JMC와 JavaFX는 자바 11의 Oracle JDK에서 제거 파일에 적합한 방법이 없음. writeString(), readString(), isSameFile()과 같은 다양한 메소드가 있어 파일에 대해 여러 작업을 수행 할 수 있음. 패턴을 인식 할 수 없음 패턴 인식은 asMatchPredicate(() 메스드이 도움으로 가능

출처: https://itkjspo56.tistory.com/201 [로춘남의 IT이야기]

 

[Java] Java 8 / Java 11 차이 자바

연습을 할땐 자바 11을 주로 사용하는데, 프로젝트 부분에 있어서는 안정성을 좀 추구하다보니 자바 8을 사용하는일이 있다. 2개를 쓰다가 문득 이 2개의 차이점이 무엇일까? 라는 궁금증이 생겼

itkjspo56.tistory.com

 

https://livenow14.tistory.com/81

 

[Java] Java8과 Java11의 특징

정리 java8의 특징은 이전 포스트에 다뤘어요. 이번엔 java 11을 다뤄보려 해요. Java 10은 라이선스 없이 상업적으로 사용할 수 있는 마지막 무료 Oracle JDK 였어요. JAva 11부터는 Open JDK 를 무료로 사용

livenow14.tistory.com

 

http://daplus.net/java-openjdk%EC%99%80-adoptium-adoptopenjdk%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90/

 

[java] OpenJDK와 Adoptium / AdoptOpenJDK의 차이점 - 리뷰나라

최근 Oracle Java SE 지원 로드맵 정책 업데이트 (특히 2019 년 3 월 이후 Oracle의 무료 릴리스 업데이트 종료) 로 인해 Oracle Java에 대한 대안을 찾고있었습니다. OpenJDK가 오픈 소스 대안이라는 것을 알

daplus.net

Production and Early-Access OpenJDK Builds, from Oracle

Ready for use: JDK 18, JDK 17, JMC 8

Early access: JDK 19, Loom, Metropolis, Panama, & Valhalla

Looking to learn more about Java? Visit dev.java for the latest Java developer news and resources.

Looking for Oracle JDK builds and information about Oracle’s enterprise Java products and services? Visit the Oracle JDK Download page.

 

https://dev.java/

 

Dev.java: The Destination for Java Developers

Moving Java Forward: Keynote In this keynote from the Oracle Developer Live conference, learn about Java's newest features, Java's release cadence, long-term support model, and more! community

dev.java

헐 자바 18

 

https://dev.java/download/releases/

 

Java Release History - Dev.java

Copyright © 2021 Oracle and/or its affiliates. All rights reserved. Terms of Use | Privacy | Trademarks

dev.java

자바 8이 자바 17 보다 관리 기간이 더 길어 2030년 까지 ㅋㅋ

https://www.oracle.com/java/technologies/javase/products-doc-jdk8-jre8-certconfig.html

https://www.oracle.com/security-alerts/cpuapr2021.html#AppendixJAVA

 

자바 8 다운로드

 

https://jcp.org/en/jsr/detail?id=337 

 

The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 337

Stage Access Start Finish Maintenance Release 3 Download page 05 Feb, 2020   Maintenance Review Ballot 3 View results 21 Jan, 2020 27 Jan, 2020 Maintenance Draft Review 3 Download page 17 Dec, 2019 20 Jan, 2020 Maintenance Release 2 Download page 26 Mar,

jcp.org

 

'Swift & Python 실무' 카테고리의 다른 글

handlebars.js  (0) 2022.04.13
ubuntu 20.04에 배포  (0) 2022.04.05
spring 통 백업 .app 을 zip혹은 jar로 파일 크기 차이  (0) 2022.04.04
eclipse configuration file location  (0) 2022.04.04
네트워크 문제 로그  (0) 2022.04.04

+ Recent posts