먼저 아이폰 설정 부터 손봐줘야 한다. 설정 앱 > Safari > 고급(맨 아래에 있음) > '웹 속성' OFF를 ON으로 바꿔준다.
다음은 맥에서 Safari앱을 실행한다. Safari를 못 찾는다면 Finder에서 응용프로그램으로 가보면 Safari가 있다. Safari 실행 후 설정으로 이동
팝업 윈도우가 뜨면 맨 우측 상단의 고급을 눌러보자 그럼 하단에 메뉴 막대에서 개발자용 메뉴 보기 라는게 체크되어 있는지 확인하고 언체크라면 체크로 바꿔주자
그럼 Safari의 메뉴들 중 중간 쯤 책갈피와 윈도우 사이에 개발자용이란게 뜨는걸 확인할 수 있을 것이다.
그럼 이제 개발자용을 클릭해보자.
아이폰과 맥이 케이블로 연결되어 있다면 저렇게 연결된 아이폰이 뜰것이고 >를 눌러보면 검사할 수 있는 응용 프로그램 없음 이라고 되어 있을 것이다.
Xcode에서 디버깅 할 wkWebview가 탑재된 앱을 실행하고 다시 Safari를 봐보자 그럼 아깐 검사할 수 있는 응용 프로그램 없음 이라고 되어 있던 곳에 우리의 앱이 보여질 것이다. 거기에 추가로 호출하고 있는 웹페이지까지 보여진다. 만약 테스트 하고 있는 아이폰의 OS가 최신버전인 16.4 버전 이후라면 아래 코드를 webview를 생성하는 곳에 살포시 넣어준다. if#available(iOS16.4, *) { webView.isInspectable=true }else{ // Fallback on earlier versions } 난 didload에서 wkWebview를 addsub해주고 있기 때문에 didload에 넣어줬다.
앱에서 웹뷰의 링크들을 요리조리 눌러보다 보면 오류가 있는 페이지에선 이렇게 오류들이 뜰 것이다. 마치 크롬의 개발자 도구처럼 말이다.
난 이번에 골탕 먹은게 뭐였냐면 ATS 때문이었다. 개발서버엔 SSL적용이 잘 되지 않았다. 하지만 실서버엔 SSL이 적용 되었다. 따라서 plist.info에 ATS 예외 도메인 처리를 해두었다. 그런데 사이트는 뜨지만 이상하게 자바스크립트단에서 자꾸 막히는 증상이 발현되었기 때문에 도무지 이해가 안 갔는데 기존 소스들이 jQuery js파일을 다운받지 않고 cdn을 사용하여 실시간으로 받아오고 있었고 이 cdn호출시 http로 불러와졌기 때문에 이런 오류가 나는 구조상의 문제였다.
오류가 확인되었으니 마찬가지로 예외 도메인으로 등록해주면 되니 아래처럼 plist.info를 설정해주니 App Transport Security Settings Allow Arbitrary Loads NO Exception Domains code.jquery.com NSTemporaryExceptionMinimumTLSVersion TLSv1.2 NSIncludesSubdomains YES NSExceptionAllowsInsecureHTTPLoads YES NSExceptionRequiresForwardSecrecy NO
swift로 iOS WEB APP을 만들다보면 웹과 앱 사이 통신이야 javascript로 서로 통신을 하니 별 문제가 없는데 앱 이용자와 일반 모바일 웹 이용자의 화면 UI를 다르게 제공할 일이 존재한다. 가령 GNB에 앱 설정을 불러오는 버튼은 앱 이용자에게만 지원할 때 인데 모바일 웹에선 앱의 기능 설정할 일이 없을테니 말이다. useragent로 확인을 한들 사파리 브라우저로 접속 하든 앱의 wkwebview로 접속 하든 아주 좃 아니 똑같다.
어쩔 수 없다. 앱으로 접속할 땐 url을 호출할 때 custom agent로 agent를 마사지 해줘야 한다.
webView.evaluateJavaScript("navigator.userAgent") {(result, error) in let originUserAgent = result as! String let customAgent = originUserAgent + " IOSAPP" self.webView.customUserAgent = customAgent }
이렇게 보내주고 웹에서 agent를 분석할 때 IOSAPP이 존재하면 아하 우리 회원님이 앱을 사용하고 계시는구나~ 하며 앱용 기능을 제공하면 되겠다.
물론 앱에서 웹쪽으로 "이보시게 관상가 양반. 내가 앱이 될 상인가?" 라며 JAVASCRIPT 함수 하나를 서로 약속하고 호출하면 웹에선 이를 쿠키로 저장하든 세션으로 저장하든 하여 "성군 앱이 되실 분 이십니다."라며 처리해도 무방하나 좀 없어보인다.
만약 난 윈도우 11이 좋아~ 라면 아래 명령어로 복원도 가능하다. Windows 11 스타일의 우클릭 메뉴 복원하기 reg.exe delete "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}" /f
Windows 11 스타일의 탐색기 상단 UI 복원하기 reg.exe delete "HKCU\Software\Classes\CLSID\{d93ed569-3b3e-4bff-8355-3c44f6a52bb5}" /f
스펀지밥 (사실 스폰지송, 스펀지송으로 잘못 외우고 있었지만) 전시회가 용산 아이파크몰에서 열린다하여 방문하였다.
스폰지밥 전시회는 익히 들었던것처럼 볼것도 없고 사진 찍는 줄이 입장 줄보다 몇배 길고 볼것도 없다라는게 중론이므로 시간과 돈이 많다면 추천하지만 그렇지 않다면 스폰지밥 카페를 추천한다.
스폰지밥 30% 할인 받는법은 전시회장 윗층에서 식사를 하고 영수증을 제출하면 된다. 원래 얼리예약을 하면 할인을 해주지만 이미 얼리예약 기간은 전시가 시작되며 종료되었기 때문에 현시점에선 위 방법만이 용산 아이파크몰 스폰지밥 할인을 받는 방법 중 유일한 방법이다. 물론 단체라던가 그런 일반인이 접근 불가능한 경우를 제외하고 말이다.
이제부턴 스펀지밥 카페 팝버블 이용 핵심 팁 일단 팝퍼블은 오픈런을 해야 한다. 안그러면 1시간 이상 대기해야 한다. 참고로 우린 오픈런 후 바로 입장을 하였지만 혹시 몰라 그 와중에 대기를 걸었는데 대기번호가 3번이었음에도 불구하고 1시간 넘어서 연락이 왔다. 만약 오픈런을 성공 못했다면 아래처럼 대기 번호를 받아야하는데 보이는가? 저 무시무시한 대기시간 125분 39팀!
그런데 입장을 했다해도 또다른 난관이 있다. 바로 주문줄이다. 앞 대기팀이 많아야 7~8팀이었는데 주문만 하는데 10분 정도 걸리는것 같다. 그런데 주문을 하면 또 끝나냐? 아니다 음식이 나오기까지 또 오래 걸린다.
그럼 하염없이 대기만 할 것인가? 아니다. 혼자 방문한게 아니라면 한명은 줄을 서고 주문을 하고 다른 일행은 포토존을 이용하면 된다. 3천원에 얼굴을 프라스틱 ID카드에 인쇄하는 프로그램이 존재한다. 아이폰 이용자들은 빡치고 싶지 않으면 안드로이드유저를 데리고 가길 바란다. 사진을 기계로 전송해야 하는데 아이폰은 안되더라. 그리고 주문까지 성공하면 이제 기다리면 되는데 추가 주문은 또 안 받는다. 그러니 주문할 때 최대한 먹을만큼 주문해야 한다.
메뉴는 대충 이렇다. 다들 햄버거랑 팝콘 그리고 마카롱은 많이 먹는것 같다. 음료는 망고였나? 그건 품절이라더라. 수박은 그럭저럭 먹을만 하고 퍼런 음료는 정말 개노맛이다. 시키지 말자. 2023년 낭비한 돈 리스트에서 1등 차지할 맛이다.
마카롱은 괜찮다. 존귀염 뽀찍이다.
사실 난 맛보지 못했다. 그런데 애가 잘 먹더라.
끝으로 SNS에 #스폰지밥, #팝퍼블 #스폰지밥카페 라고 태그 남기고 직원 보여주면 투명 포토카드 랜덤으로 준다. 팝퍼블인데 팝버블이라고 태그 잘못 남기면 알바가 지적한다. 수정해야 한다. 알짤없다.
정말 끝으로 네이버 스폰지밥 팝퍼블 정보를 보면 10시 오픈이라고 되어 있는데 10시 30분 부터 입장 가능하다. 아이파크몰 자체가 10시 30분에 문을 열기 때문이다. 알바에게 말해줬지만 듣는둥 마는둥 하더라. 내 알바 아니다 식의 마인드를 시전하는 알바를 개선시키는건 사치일것 같아 참았다.
정말 정말 끝으로 도라에몽 만화책을 무료로 빌려 볼 수 있다. 다른 만화책도 10여권 존재했다.
요 사진은 1층인가 가면 유니클로 있는 곳에 따로 포토존 1곳이 존재한다. 전시회에서 돈 내고 스트레스 받느니 차라리 이게 더 낫다.
ChatGPT API사용법은 chatgpt에게 물어보면 잘 대답해준다. 이런 소스인데 기본적으론 python으로 답을 해주고 javascript로 소스 샘플을 짜달라면 node.js로 보내온다. 하지만 쌩 javascript도 가능하니 node.js가 아닌 javascript로만 답을 해달라고 하자. 그럼 이런 답을 얻을 수 있다.
CHAT GPT OPEN API는 Bearer 인증방식을 취하고 있는데 이 설정방법을 소개하려 한다. Authorization탭으로 이동한다. 그리고 Type에서 BearerToken을 선택하고 Token에 아까 받아온 api key를 입력하면 된다.
그다음으론 전송할 데이터를 입력해야 하는데 소스를 보면 json형식이니 모델과 메세지를 보내야 하는데 Body로 이동해 raw라디오 버튼을 선택하고 아래처럼 json을 입력하면 된다.
{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "Hello!"
}
]
}
이제 Send를 눌러 결과를 확인해보자.
API문서에 따르면 이런 규격의 response를 보게 될 것 같다.(정확하진 않다.) { "id":"chatcmpl-abc123", "object":"chat.completion", "created":1677858242, "model":"gpt-3.5-turbo-0301", "usage":{ "prompt_tokens":13, "completion_tokens":7, "total_tokens":20 }, "choices":[ { "message":{ "role":"assistant", "content":"\n\nThis is a test!" }, "finish_reason":"stop", "index":0 } ] }
하지만 아래 같은 결과를 확인할 수 있다.
{
"error": {
"message": "You exceeded your current quota, please check your plan and billing details.",
"type": "insufficient_quota",
"param": null,
"code": "insufficient_quota"
}
}
돈 내란다. -_-
이상하다. chat gpt 사이트에는 분명 이렇게 5딸라까지 호출 여유가 있는데 쿼터를 오버했다니....
자세히보니 Expires가 2023년 7월 1일까지라 그런것 같다. 오늘은 8월이다.
오호라 아이디를 그럼 새로 파서 API KEY를 신청하면 5딸라 받아 테스트 가능하겠네? 신나게 아이디를 새로 파보니 그새 또 뭔가 달라졌나보다 -_-
예전에 생성했던 계정은 만료 5딸라가 보이지만 오늘 새로 생성한 chatgpt 계정은 그른그 읎다. 그냥 set up a paid account 답정이다. 역시 m$인가?
검색해보니 예전엔 18딸라까지 무료 지원을 했었는데 그마저도 5딸라로 개악된듯하고 이젠 그마저도 지원 안하나보다.
연령대별 정상 혈압 구간이 존재한다. 혈압은 심장이 수축하고 이완하는 과정에서 동맥 벽에 가하는 압력을 의미하는데 혈압은 수축기 혈압(Systolic Blood Pressure, SBP)과 이완기 혈압(Diastolic Blood Pressure, DBP)으로 나뉜다. 이는 mmHg(밀리미터 수은柱)로 측정된다.
전체적인 평가: 정상 혈압: SBP < 120 mmHg이고, DBP < 80 mmHg 고혈압 전단계: SBP 120-129 mmHg이고, DBP < 80 mmHg 고혈압 1단계: SBP 130-139 mmHg 또는 DBP 80-89 mmHg 고혈압 2단계: SBP ≥ 140 mmHg 또는 DBP ≥ 90 mmHg 고혈압 위험: SBP ≥ 180 mmHg 또는 DBP ≥ 120 mmHg (의료적 긴급 상태) 하지만 연령에 따라 정상 혈압의 범위는 조금씩 다를 수 있는데 이는 일반적으로 나이가 들면서 혈압이 약간 상승하는 경향이 있기 때문이다.
따라서 연령대별 혈압 차이가 존재한다.
이러한 혈압 기준은 보건 기관과 학회에서 연구를 통해 수집한 대규모의 데이터와 임상 연구를 기반으로 하고 있다. 정상적인 혈압 범위는 개인의 건강 상태를 평가하고 고혈압 또는 저혈압과 같은 혈압 이상을 조기에 발견하여 적절한 조치를 취하기 위해 중요하다.
주의할 점은 개인의 건강 상태에 따라 정상 범위가 다를 수 있다는 점, 혈압은 하루에도 변동이 있을 수 있으며, 정상 범위를 넘어선다고 반드시 질병이 있다는 의미는 아니다. 따라서 혈압 측정이나 혈압 상태에 대한 평가는 의료 전문가와 상담하여 정확한 판단을 받는 것이 좋다.
이러한 혈압 범위는 일반적인 기준이며, 개인별 차이가 있을 수 있다. 따라서 혈압을 평가하거나 이상 여부를 판단하기 위해서는 주기적인 혈압 측정과 의료 전문가와의 상담이 필요하다. 또한, 고령자의 경우 혈압 변동이 더 크기 때문에 주기적인 건강 체크가 중요하며, 혈압의 변화나 다른 증상이 있다면 즉시 의료 전문가와 상담하여야 한다.
이번 여행의 마지막 관광지로 선택한 노형수퍼마켙 대충 빛가지고 장난질치는 관람시설이란 정도 알고 방문하였다. 올초 겨울에도 빛관광지를 방문한 경험이 있었던지라 사실 크게 기대 안하고 방문하였다.
그런데 말이다. 이게 참 기획자의 의도에 제대로 한 방 먹은 느낌이다.
티켓팅하고 계단을 통해 입구로 입장하면 비교적 좁은 공간에서 대기해야 하는데 여기가 사람을 미치게 만드는 공간이다. 모든 색을 무채색으로 탈색시켜 회색 방안에 과거 물품들이 전시된 공간인데 대충 특정 빌런인지 외계세력에게서인지 빛을 빼앗긴 컨셉같은 공간이었다. 색이 있는 옷을 입고 사진 촬영을 하면 완전 잘 나온다.
잠시 대기하고 있노라면 라디오에 빛이 비춰지며 색을 빼앗겼고 어쩌고 안내멘트가 나오고 이윽고 본격적인 관람장소로 이동하게 된다. 들어서면 상당히 넓은 3층 공간으로 들어서게 되고 그 아래엔 이렇게 찬란한 빛의 예술이 음악과 함께 어우러짐을 감상할 수 있다.
앞서 설명한 무채색 공간 때문인지 색이 고맙게 느껴지기까지 한다.
일행 때문에 끝까지 보고 나오진 못했지만 꽤 신경을 많이 쓴 전시회장이었다란 느낌이 전해져왔다.
노형동에 있어 노형수퍼마켙인것 같다. 글 작성하는 시점까지 슈퍼마켙, 슈퍼마켓 인줄 알았다는
주차장도 넓어 주차걱정 안해도 되는 수준이었고 꽤나 만족스러운 시설이었다. 입구와 출구 공간엔 기념품을 팔고 있으니 마지막 코스에 넣어 비행기 타러 가기 전에 기념품도 사고 관람도 하는 코스로 짜면 꽤 괜찮은 여행 경로가 될 것이다.