반응형

iOS13으로 업데이트 되면서 Scene delegate 라는것이 생겼었다.

새로 학습할 시간도 없고 내용파악도 귀찮아서

info.plist의

	<key>UIApplicationSceneManifest</key>
	<dict>
		<key>UIApplicationSupportsMultipleScenes</key>
		<false/>
		<key>UISceneConfigurations</key>
		<dict>
			<key>UIWindowSceneSessionRoleApplication</key>
			<array>
				<dict>
					<key>UISceneConfigurationName</key>
					<string>Default Configuration</string>
					<key>UISceneDelegateClassName</key>
					<string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
					<key>UISceneStoryboardFile</key>
					<string>Main</string>
				</dict>
			</array>
		</dict>
	</dict>

를 지워버리고

 

AppDelegate의

 

    func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
        // Called when a new scene session is being created.
        // Use this method to select a configuration to create the new scene with.
        return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
    }

    func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
        // Called when the user discards a scene session.
        // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
        // Use this method to release any resources that were specific to the discarded scenes, as they will not return.
    }

를 날려버려서 기존 AppDelegate만 있을 때 와 동일하게 프로젝트를 생성, 관리했었으나

 

이제는 SceneDelegate에 대하여 정확히 이해하고 사용하려고 메모를 남긴다.

 

골자는 iOS13부터 멀티 window를 지원하므로

 

앱이 백그라운드로 떨어지는것, 다시 올라오는것 등의 UI변화를 SceneDelegate로 이관한다는 것.

 

크게 변하는것 없이 기존 AppDelegate didFinish~ 에  구현하던 초기화 코드를

 

SceneDelegate wiillConnet~ 으로 옮겨준다.

 

나는 navigationController를 앱 전역에서 자주 접근하므로

 

appdelegate에 nav con을 만들어 두고

 

Scene에서 아래와 같이 구현,

 

        APP.nav = UINavigationController.init(rootViewController: vc)

        APP.nav.setNavigationBarHidden(true, animated: false)

        APP.nav.modalPresentationStyle = .fullScreen

        self.window?.rootViewController = APP.nav

        self.window?.makeKeyAndVisible()

 

 

 

SceneDelegate로 전환 후 APP.window 접근 에러가 발생하는데

 

https://xodhks0113.blogspot.com/2020/03/ios13-window-scenedelegate.html

 

iOS13 window 접근 에러 (SceneDelegate 변경 접근하기)

iOS 개발 및 일상에 대한 블로그 입니다.

xodhks0113.blogspot.com

 

를 참고하여 해결.

Posted by npre
,

AWS/Ubuntu EC2 셋팅

Programing 2023. 6. 30. 17:33
반응형

YUM 사용 : Amazon Linux, RedHat, CentOS

APT-GET 사용 : Ubuntu, Debian

 

1. mysql 설치

 

우분투 업데이트

sudo apt-get update

mysql server 설치

sudo apt-get install mysql-server

,Y

 

외부 접근 허용

sudo ufw allow mysql

mysql 실행

sudo systemctl start mysql

mysql 접속

sudo /usr/bin/mysql -u root -p

패스워드는 그냥 엔터

 

데이터베이스 생성

CREATE DATABASE GUIVING;

 

계정생성

create user 'jh'@'%' identified by 'password1234!!';
FLUSH PRIVILEGES;

 

계정에 권한 부여 (*.* 데이터베이스명.테이블명, *는 걍 다 줌)

grant all privileges on GUIVING.* to 'jh'@'%';
FLUSH PRIVILEGES;

 

외부 접근 셋팅

https://npre.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-Mysql-%EC%99%B8%EB%B6%80%EC%A0%91%EC%86%8D-%EC%85%8B%ED%8C%85

 

리눅스 Mysql 외부접속 셋팅

1. user table 변경 mysql> grant all privileges on *.* 'root'@'%' identified by '패스워드'; mysql> flush privileges; 2. bind-address 주석 vi /etc/mysql/my.cnf 또는 해당 파일 내부 참조파일 3. mysql restart service mysql restart 4. 3306

npre.tistory.com

 

2. tomcat 설치 (java 설치)

자바 설치 확인

java --version

 

 

APT-GET update

sudo apt-get update

 

JRE install (필요한 버젼으로)

sudo apt install openjdk-11-jre-headless

JRE 여러개 설치 되었을 때 버젼 변경하는법 참조

https://freedeveloper.tistory.com/347

 

톰캣 설치 위치 만들기

sudo mkdir /home/tomcat

 

톰캣다운로드

 

https://tomcat.apache.org/download-90.cgi

 

Apache Tomcat® - Apache Tomcat 9 Software Downloads

Welcome to the Apache Tomcat® 9.x software download page. This page provides download links for obtaining the latest version of Tomcat 9.0.x software, as well as links to the archives of older releases. Unsure which version you need? Specification version

tomcat.apache.org

에서 다운로드 링크 복사

 

sudo tar xvfz apache-tomcat-9~~~

 

환경변수 설정

 

sudo chmod -R 777 /etc/profile
sudo vi /etc/profile


##추가
export CATALINA_HOME=/home/tomcat



source /etc/profile

 

권한설정해두기

sudo chmod -R 777 home/tomcat/

 

실행

sudo ./startup.sh

 

 

 

## 참고사항

EC2하나에 mysql과 tomcat을 동시에 셋팅하면 서버가 뻗어버리는 현상 발생, 프리티어 EC2두개로 생성하여 하나씩 셋팅하는것을 권장

Posted by npre
,
반응형
- (CGFloat)safetyAreaHeight {
    if (@available(iOS 11.0, *)) {
        UIEdgeInsets edgeInsets = [UIApplication sharedApplication].windows[0].safeAreaInsets;
        if (edgeInsets.top != 0 && edgeInsets.bottom != 0) {
            CGFloat height = [UIApplication sharedApplication].windows.firstObject.safeAreaInsets.top;
            return height;
        }else{
            return 20;
        }
    } else {

        return 20;
    }
    return 20;
}

NON-Notch - 20px

pro가 45

mini가 50으로 영역이 더 큼. 참고

'Programing' 카테고리의 다른 글

[SWIFT] SceneDelegate 없이 AppDelegate로 프로젝트 구현  (0) 2023.07.10
AWS/Ubuntu EC2 셋팅  (0) 2023.06.30
[iOS] WKWebview User Agent 설정  (0) 2022.02.18
[iOS] klip sdk 적용이슈  (1) 2022.02.09
CRUL 관련  (1) 2021.12.02
Posted by npre
,
반응형
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
{

    NSString* urlString = [URL_STRING];
    NSString *escapedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    
    NSMutableURLRequest *fixRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:escapedString]];
    [fixRequest addValue:@"[CUSTOM_USER_AGENT]" forHTTPHeaderField:@"User-Agent"];


    [webView evaluateJavaScript:@"navigator.userAgent" completionHandler:^(id userAgent, NSError * error) {
        if (userAgent != NULL){
            NSLog(@"default UserAgent = %@", userAgent);
            webView.customUserAgent = [NSString stringWithFormat:@"%@/[CUSTOM_USER_AGENT]", userAgent];
            [[NSUserDefaults standardUserDefaults] registerDefaults:@{@"UserAgent": [NSString stringWithFormat:@"%@[CUSTOM_USER_AGENT]]}];
        }
    }];
    decisionHandler(WKNavigationActionPolicyCancel);
    
    [self.webView loadRequest:fixRequest];

}

 

'Programing' 카테고리의 다른 글

AWS/Ubuntu EC2 셋팅  (0) 2023.06.30
[iOS] 상단 Safety Area 영역  (3) 2022.02.18
[iOS] klip sdk 적용이슈  (1) 2022.02.09
CRUL 관련  (1) 2021.12.02
STS Git 로그인 불가  (0) 2021.11.01
Posted by npre
,
반응형

Klip SDK 적용 중 

 

"building for ios but the linked framework was built for ios simulator"와 같은 에러가 발생

 

build setting에서  Validate Workspace 를 YES로 바꿔주면서 해결.

'Programing' 카테고리의 다른 글

[iOS] 상단 Safety Area 영역  (3) 2022.02.18
[iOS] WKWebview User Agent 설정  (0) 2022.02.18
CRUL 관련  (1) 2021.12.02
STS Git 로그인 불가  (0) 2021.11.01
리눅스 Mysql 외부접속 셋팅  (0) 2021.04.19
Posted by npre
,

CRUL 관련

Programing 2021. 12. 2. 14:01
반응형

오픈소스로 개발되어 위도우, 리눅스 등에 설치되어 있는 웹개발 툴

 

command line 용 data transfer tool

 

지원 프로토콜

 

DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, Telnet, TFTP

 

Proxy, Header, Cookie 등의 세부 옵션설정 지원

 

이러한 장점 때문에 Client를 코딩을 시작하기 전에 curl 명령어로 서버 동작을 먼저 확인함으로써 좀 더 빠르게 개발을 진행할 수 있습니다.

'Programing' 카테고리의 다른 글

[iOS] WKWebview User Agent 설정  (0) 2022.02.18
[iOS] klip sdk 적용이슈  (1) 2022.02.09
STS Git 로그인 불가  (0) 2021.11.01
리눅스 Mysql 외부접속 셋팅  (0) 2021.04.19
[Python] 파이썬과 apache 연동  (0) 2021.01.28
Posted by npre
,
반응형

SpringToolSuite에서 잘 사용하던 GIT 연동이 안되었다.

정확한 계정 정보를 넣어도 로그인에 계속 실패했다.

서치를 해보니 더 이상 ID/PW 정보로 로그인을 지원하지 않는다한다.

 

Git Setting에서 Developer Setting 에서 토큰을 신규로 생성하여

 

GIT 인증 시 PW 부분에 해당 토큰을 입력하니 정상적으로 로그인 확인되었다.

 

토큰발급 시 다시 볼 수 없으므로 어디 잘 저장해두자.

'Programing' 카테고리의 다른 글

[iOS] klip sdk 적용이슈  (1) 2022.02.09
CRUL 관련  (1) 2021.12.02
리눅스 Mysql 외부접속 셋팅  (0) 2021.04.19
[Python] 파이썬과 apache 연동  (0) 2021.01.28
[Python] Mac에 Python 개발환경 셋팅  (1) 2021.01.28
Posted by npre
,

NFT

Programing/기술동향 2021. 11. 1. 11:43
반응형

Non-Fungible Token 대체 불가능한 토큰

 

블록체인 기술을 이용해서 디지털 자산의 소유주를 증명하는 토큰.

 

그림·영상 등의 디지털 파일·자산 등에 블록체인 기술로 만든 토큰을 꼬리표로 붙이는 것

 

 

'Programing > 기술동향' 카테고리의 다른 글

AI 의료 기술의 진화  (2) 2024.12.27
머신러닝으로 변화하는 산업  (3) 2024.12.27
양자 컴퓨팅의 현재와 가능성 🌌  (2) 2024.12.26
AI 기술 혁신으로 본 미래  (2) 2024.12.26
메타버스  (0) 2021.10.29
Posted by npre
,
반응형

'초월, 그 이상'을 뜻하는 그리스어 메타(Meta)와 '세상 또는 우주'를 뜻하는 유니버스(Universe)의 합성어

 

미국의 로블록스, 한국의 제페토는 이미 많은 이용자를 확보했고, 페이스북의 호라이즌, 엔비디어의 옴니버스 등이 속속 출현하고 있다.

 

메타버스의 네 가지 유형 (나무위키)
비영리 기술 연구 단체 ASF(Acceleration Studies Foundation)은 메타버스를 '증강과 시뮬레이션', '내적인 것과 외적인 것'이라는 두 축을 가지고 우측 그림과 같이 네 가지 범주로 분류했다.

증강현실(Augmented Reality)
증강현실은 현실공간에 2D 또는 3D로 표현한 가상의 겹쳐 보이는 물체를 통해 상호작용하는 환경을 의미한다. 사람들에게서 가상세계에 거부감을 줄이고, 몰입감을 높이는 특징을 지닌다.[2] 사용자가 단말기 카메라로 현재는 유적만 남은 흔적을 촬영하면 디지털로 구축된 과거의 건물이 사용자 단말기에 중첩해 보이는 장면이 증강현실 일례이다.[2]

일상기록(Lifelogging)
일상기록 또는 라이프로깅(Lifelogging)은 사물과 사람에 대한 일상적인 경험과 정보를 캡처하고 저장하고 묘사하는 기술이다.[14] 사용자는 일상생활에서 일어나는 모든 순간을 텍스트, 영상, 사운드 등으로 캡처하고 그 내용을 서버에 저장하여 이를 정리하고, 다른 사용자들과 공유가 가능하다.[15] 센서가 부착된 스포츠 웨어를 네트워크 연결이 가능한 MP3 플레이어와 연동하여 사용해서 달린 거리, 소비 칼로리, 선곡 음악 등의 정보를 저장하고 공유하는 등의 행위가 일상기록 예시이다.[15]

거울세계(Mirror Worlds)
거울세계는 실제 세계를 가능한 한 사실적으로, 있는 그대로 반영하되 "정보적으로 확장된"[16] 가상세계를 말한다. 대표적인 예로 구글 어스(Google Earth)를 들 수 있다. 구글 어스는 세계 전역의 위성사진을 모조리 수집하여 일정 주기로 사진을 업데이트하면서 시시각각 변화하는 현실세계의 모습을 그대로 반영하고 있다.[17] 기술의 발전이 계속될수록 현실이 반영된 거울세계는 점점 현실세계에 근접해갈 것이며, 이는 향후 가상현실의 커다란 몰입적 요소가 된다.[18] 이같은 거울세계 사용자는 가상세계를 열람함으로써 현실세계에 대한 정보를 얻게 된다.[18]

가상세계(Virtual Worlds)
가상세계(Virtual World)는 현실과 유사하거나 혹은 완전히 다른 대안적 세계를 디지털 데이터로 구축한 것이다.[19] 가상 세계에서 사용자들은 아바타를 통해 현실세계의 경제적, 사회적인 활동과 유사한 활동을 한다는 특징이 있다.[20] 가상세계는 우리에게 가장 친숙한 형태의 메타버스로서, 리니지와 같은 온라인 롤플레잉게임에서부터 린든 랩에서 개발된 세컨드 라이프와 같은 생활형 가상세계에 이르기까지 3차원 컴퓨터그래픽환경에서 구현되는 커뮤니티를 총칭하는 개념이다.[7]

 

'Programing > 기술동향' 카테고리의 다른 글

AI 의료 기술의 진화  (2) 2024.12.27
머신러닝으로 변화하는 산업  (3) 2024.12.27
양자 컴퓨팅의 현재와 가능성 🌌  (2) 2024.12.26
AI 기술 혁신으로 본 미래  (2) 2024.12.26
NFT  (1) 2021.11.01
Posted by npre
,
반응형

1. user table 변경

mysql> grant all privileges on *.* 'root'@'%' identified by '패스워드';

mysql> flush privileges;

 

2. bind-address 주석

vi /etc/mysql/my.cnf 또는 해당 파일 내부 참조파일

 

3. mysql restart

service mysql restart

 

4. 3306 포트 퍼블릭으로 열린것 확인

netstat -lntp

 

'Programing' 카테고리의 다른 글

CRUL 관련  (1) 2021.12.02
STS Git 로그인 불가  (0) 2021.11.01
[Python] 파이썬과 apache 연동  (0) 2021.01.28
[Python] Mac에 Python 개발환경 셋팅  (1) 2021.01.28
Docker에 tomcat 컨테이너 올려서 WAR 돌리기  (1) 2021.01.13
Posted by npre
,