반응형

스마트폰 BTC 채굴앱

https://get.cryptobrowser.site/34473645

 

Earn coins while browsing the web

Earn bitcoins while watching videos, chatting, or playing online. It has never been so easy to increase your income! Tell your friends about CryptoTab Browser, invite them to join, and earn more together. Grow your network—get more profit!

get.cryptobrowser.site

 

웹에서 앱을 실행할 경우 대부분 URL scheme을 이용한다.

그런데 만약 같은 scheme id를 사용하는 앱이 2개 이상이면 

어떻게 될까?  안드로이드 운영체제에서는 앱 선택창이 떠서

원하는 앱을 실행할 수 있지만 iOS에서는 무작위로 실행된다.

(물론 내부적으로 규칙은 있겠지만... 공개되어있지 않음)

 

※ iOS 14.4.1버전 부터 타임 트릭을 이용한 앱 존재 여부 체크가

사파리가 비활성화 되도 타이머가 진행되어 앱이 존재하더라도

앱 실행 후 앱스토어 이동이 동시에 일어나는 문제가 발생한다.

 

이럴경우를 위해 URL scheme 대신 도메인 주소로 앱을 

실행할 수 있도록 한 것이 Universal Link이다.

 

유니버셜링크 환경설정 방법을 알아보자.

 

 

개발자 사이트 접속

https://developer.apple.com

 

Certificates, Identifiers & Profiles / Identifiers 선택

 

적용할 App ID 선택하고 'Associated Domains' 체크 

 

Provisioning Profile 설정이 바뀌었으므로 다시 활성화 시킨다.

 

 

Xcode에서 'Associated Domains' 을 추가

 

applinks 도메인 추가

 

스마트폰 BTC 채굴앱

https://get.cryptobrowser.site/34473645

 

Earn coins while browsing the web

Earn bitcoins while watching videos, chatting, or playing online. It has never been so easy to increase your income! Tell your friends about CryptoTab Browser, invite them to join, and earn more together. Grow your network—get more profit!

get.cryptobrowser.site

 

2021.03.16 - [iOS/Tips] - Universal Link (1/4) - 네이티브 환경설정

2021.03.16 - [iOS/Tips] - Universal Link (2/4) - 네이티브 링크 수신

2021.03.16 - [iOS/Tips] - Universal Link (3/4) - 웹서버 환경 설정

2021.03.16 - [iOS/Tips] - Universal Link (4/4) - 웹서버 환경 검증

2020.12.08 - [프로그래밍/Java Script] - Android, iOS 앱 설치여부 체크 및 스토어 이동

2021.06.17 - [iOS/Tips] - Firebase dynamic link (다이나믹 링크) (1/4)

2021.06.17 - [iOS/Tips] - Firebase dynamic link (다이나믹 링크) (2/4)

2021.06.17 - [iOS/Tips] - Firebase dynamic link (다이나믹 링크) (3/4)

2021.06.17 - [iOS/Tips] - Firebase dynamic link (다이나믹 링크) (4/4)

 

반응형

'개발 > iOS' 카테고리의 다른 글

Universal Link (3/4) - 웹서버 환경 설정  (0) 2021.03.16
Universal Link (2/4) - 네이티브 링크 수신  (0) 2021.03.16
ARC or Non-ARC Compile Flag 설정  (0) 2021.02.05
String to CGFloat  (0) 2021.01.06
SceneDelegate 포인터 구하기  (0) 2021.01.05
블로그 이미지

SKY STORY

,
반응형

root-level 디렉토리이 기본적으로 생성되어있는 디렉토리는 다음과 같다.

/Applications, /Library, /System, /Users

이곳에 폴더 및 심볼릭링크 생성이 권한문제로 불가능하지만

다음 과정을 통해 생성 가능하다.

/etc 디렉토리에 synthetic.conf 파일 생성

sudo touch /etc/synthetic.conf

 

파일 권한 설정

sudo chmod 755 /etc/synthetic.conf

 

파일에 디렉토리 이름 선언

# 폴더 생성

MyFolder

# 심볼릭링크 폴더 생성

MySymbolicLinkFolder    /Volumes/DATA/MySymbolicLinkFolder

 

저장 후 재부팅

2021.02.22 - [COIN] - DogeCoin Mining

2021.02.08 - [Proxmark3] - Proxmark3 V5 개발환경 구축 (4/4)

2021.02.08 - [Proxmark3] - Proxmark3 V5 개발환경 구축 (3/4)

2021.02.08 - [Proxmark3] - Proxmark3 V5 개발환경 구축 (2/4)

2021.02.08 - [Proxmark3] - Proxmark3 V5 개발환경 구축 (1/4)

2021.02.08 - [Proxmark3] - Proxmark3 RFID Tool

2021.02.05 - [프로그래밍/Java] - RSA 암복호화 테스트

2021.02.05 - [프로그래밍/Java] - RSA key 파일 생성

2021.02.05 - [개발노트] - 용어 정리

반응형

'개발 > Mac OS X' 카테고리의 다른 글

NVRAM / PRAM 재설정  (0) 2021.02.05
Mac OS 재설치  (0) 2021.02.05
MacBook을 AP로 설정하는 방법  (0) 2020.12.24
OpenSSL을 이용한 Key 정보 Text 변환  (0) 2020.12.17
SMC(System Management Controller) 재설정  (0) 2020.07.11
블로그 이미지

SKY STORY

,
반응형

RSA 키생성 후 생성된 키로 암복호화 테스트 해 보았다.

package com.rsatest.rsaTest;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.file.Files;
import java.security.InvalidKeyException;
import java.security.KeyFactory;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.spec.DSAPrivateKeySpec;
import java.security.spec.DSAPublicKeySpec;
import java.security.spec.EncodedKeySpec;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import org.apache.commons.codec.binary.Base64;


//
// RSA 암복호화 및 테스트
//
// Created by netcanis on 2019/04/29.
// Copyright © 2019 netcanis. All rights reserved.
//

public class RSAEncryption
{
	private Cipher cipher;
	
	public RSAEncryption() throws NoSuchAlgorithmException, NoSuchPaddingException{
		this.cipher = Cipher.getInstance("RSA");
	}
	
	// 주어진 파일을 byte array로 읽기 
	public byte[] getFileInBytes(File f) throws IOException{
		FileInputStream fis = new FileInputStream(f);
		byte[] fbytes = new byte[(int) f.length()];
		fis.read(fbytes);
		fis.close();
		return fbytes;
	}
		
	// X509EncodedKey
	public PublicKey getPublic(String filename) throws Exception {
		byte[] keyBytes = Files.readAllBytes(new File(filename).toPath());
		X509EncodedKeySpec spec = new X509EncodedKeySpec(keyBytes);
		KeyFactory kf = KeyFactory.getInstance("RSA");
		return kf.generatePublic(spec);
	}

	// PKCS8EncodedKeySpec
	public PrivateKey getPrivate(String filename) throws Exception {
		byte[] keyBytes = Files.readAllBytes(new File(filename).toPath());
		
		//byte[] decoded = Base64.getDecoder().decode(keyBytes);
		//println(new String(decoded));    // Outputs "Hello"
		
		//Base64 codec = new Base64();
		//byte[] decoded = codec.decode(keyBytes);
		//System.out.println( new String(decoded) );    // Outputs "Hello"
		
		PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(keyBytes);
		KeyFactory kf = KeyFactory.getInstance("RSA");
		return kf.generatePrivate(spec);
	}
	
	
	
	// PKCS1
//	public PrivateKey getPrivate2(String filename) throws Exception {
//		PEMParser pemParser = new PEMParser(new FileReader(privateKeyFile));
//		JcaPEMKeyConverter converter = new JcaPEMKeyConverter().setProvider("BC");
//		Object object = pemParser.readObject();
//		KeyPair kp = converter.getKeyPair((PEMKeyPair) object);
//		PrivateKey privateKey = kp.getPrivate();
//	}
	
	// public key로 암호화 
	public String encrypt(String str, PublicKey key) throws NoSuchAlgorithmException, NoSuchPaddingException, UnsupportedEncodingException, IllegalBlockSizeException, BadPaddingException, InvalidKeyException{
		this.cipher.init(Cipher.ENCRYPT_MODE, key);
		return Base64.encodeBase64String(cipher.doFinal(str.getBytes("UTF-8")));
	}
	
	// private key로 복호화 
	public String decrypt(String str, PrivateKey key) throws InvalidKeyException, UnsupportedEncodingException, IllegalBlockSizeException, BadPaddingException{
		this.cipher.init(Cipher.DECRYPT_MODE, key);
		return new String(cipher.doFinal(Base64.decodeBase64(str)), "UTF-8");
	}

	/*
	  String hexString = "01020304FF11";
      byte[] ByteArray = hexStringToByteArray(hexString);
      String str = byteArrayToHexString(ByteArray);
      System.out.println(str);
	 */
	
	// hex to byte[]
	public byte[] hexStringToByteArray(String s) {
	    int len = s.length();
	    byte[] data = new byte[len / 2];
	    for (int i = 0; i < len; i += 2) {
	        data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
	                             + Character.digit(s.charAt(i+1), 16));
	    }
	    return data;
	}
	
	// byte[] to hex
	public String byteArrayToHexString(byte[] bytes){ 
		StringBuilder sb = new StringBuilder(); 
		for(byte b : bytes){ 
			sb.append(String.format("%02X", b&0xff)); 
		} 
		return sb.toString(); 
	} 
    
	
	public static void main(String[] args) throws Exception {
		RSAEncryption ac = new RSAEncryption();
		
		// 공개키
		PublicKey publicKey = ac.getPublic("KeyPair/public.key");
		// 개인키 
		PrivateKey privateKey = ac.getPrivate("KeyPair/private.key");
		
		// 원문 
		String msg = "test message";
		
		
		System.out.println("----------------------------------------------------");
		System.out.println(":::: TEST 암호화 및 복호화 ::::");
		
		// 암호화 원문 BASE64
		String encryptedString = ac.encrypt(msg, publicKey);
		// 복호화
		String decryptedString = ac.decrypt(encryptedString, privateKey);
		
		System.out.println("----------------------------------------------------");
		System.out.println(
    			"원문 = " + msg + "\n" +
				"공개키 암호화 = " + encryptedString + "\n" +
				"개인키 복호화 = " + decryptedString
				);
		System.out.println("----------------------------------------------------");

	}
}

 

사용방법 :

Encode or decode byte arrays:

byte[] encoded = Base64.getEncoder().encode("Hello".getBytes());
println(new String(encoded));   // Outputs "SGVsbG8="

byte[] decoded = Base64.getDecoder().decode(encoded);
println(new String(decoded))    // Outputs "Hello"
Or if you just want the strings:

String encoded = Base64.getEncoder().encodeToString("Hello".getBytes());
println(encoded);   // Outputs "SGVsbG8="

String decoded = new String(Base64.getDecoder().decode(encoded.getBytes()));
println(decoded)    // Outputs "Hello"


Base64 codec = new Base64();
byte[] encoded = codec.encode("Hello".getBytes());
println(new String(encoded));   // Outputs "SGVsbG8="

byte[] decoded = codec.decode(encoded);
println(new String(decoded))    // Outputs "Hello"


	

openssl rsa -text -in public.key -inform DER -pubin
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCCH+bC/6rGV8I9NgqCUTpcUcUX
q15NC8N86kHtSPFl03dwwGIO3hPQVZyMiVwJYq8gz0ZFacf27tkvgphqJOAf/ckY
PKb52+8bEXNowbPhKqiwPaclEmtvm8MJplxZKa/Y+IhYitRRI7aVow841PRxC/nA
Z8AEiw5xkfBMsy9jdwIDAQAB
-----END PUBLIC KEY-----


openssl rsa -text -in private.key -inform DER
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQCCH+bC/6rGV8I9NgqCUTpcUcUXq15NC8N86kHtSPFl03dwwGIO
3hPQVZyMiVwJYq8gz0ZFacf27tkvgphqJOAf/ckYPKb52+8bEXNowbPhKqiwPacl
Emtvm8MJplxZKa/Y+IhYitRRI7aVow841PRxC/nAZ8AEiw5xkfBMsy9jdwIDAQAB
AoGAGfdvvz3xwD7G/hwIoNTAxqdyozSJTuqoCgddPJKvyVgXn6Jkbv8WCR7sbIcE
nMLam7uBFFz1kGs9X+O5soTFTJHvyN1QyhvWODd2Gqqheh2fHqNunjegBJKnMVDS
ZCF+0HQe1SBub2D/WkPRMNb1O24v0FaR9LalaZAPqgM9eYECQQDpl+lSEddOsB7f
jX6QS9Z56s8St2Lql/HVlEsyZ3RZIHA+oGMuHaK124fo/CEQxH/SHouVCrjdgiR1
2rLbZY1hAkEAjps5Yw2SHb3AOUqG7x+FmVhb+DaMR+KZZpVlJvRxy4fQpoB2GdC4
Okf7idpQGZJHXeOI8sQbtS4GTFT7nwgH1wJBAKS2natlMTEnN13jZA9TqpSlYgaM
kY9iPQChZLTSBlSibwN6DPWDqCwb9KXww1ATfx4ms74QpXJsRlFkOSJDZYECQD4I
T6JC2PiO/frt7FxAPgFCal9CeysZ6tiwy9tyIb4DSkPjRXxdSoYvob+Jc6Zr9xdk
TsIrhFH/v0WdAgdfmukCQQCRnRh0nMw5GhjkP9pJTLZo4j8H/kp7lY0LDBLzo1cW
+nvyJ4Xg+Jgig5/lsn3QaIckocfnxcq10fGk+bFr67gM
-----END RSA PRIVATE KEY-----


UBpay RSA 암호화 결과 (위의 public key로 암호화)
원문 = test message
원문 HEXA = 74657374206D657373616765
암호화 원문 BASE64 = JLvhRkfskdQNcJ5mjMIy9hcCrfM1QDL5Qy/4tsnW8pG7QXvPrwmo7OxiTiC4FVBMw/Ae/NeLJCxY2jr9uRvKXFxqSrdrjBoO3QL+oFpKbldcvTRUzXCRsWzKzeM8v3FOclWgkZYZMzGq8PQQu3PgFKHCVMnX7//UE7aguHvLiJo=

반응형

'개발 > Note' 카테고리의 다른 글

git 소스코드 비교  (0) 2022.02.23
20진수 변환  (0) 2021.09.16
RSA key 파일 생성  (0) 2021.02.05
용어 정리  (0) 2021.02.05
Korea Bank Codes  (0) 2021.02.05
블로그 이미지

SKY STORY

,
반응형

Download Apache Commons Codec 다운로드 :

commons.apache.org/proper/commons-codec/download_codec.cgi

 

라이브러리 폴더에 복사

 

RSA key 파일 생성 클래스 추가 

package com.rsatest.keypair;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.PrivateKey;
import java.security.PublicKey;


//
// RSA Key 파일 생성
//
// Created by netcanis on 2019/04/29.
// Copyright © 2019 netcanis. All rights reserved.
//


public class GenKeys
{
	private KeyPairGenerator keyGen;
	private KeyPair pair;
	private PrivateKey privateKey;
	private PublicKey publicKey;

	// RSA 초기화 및 키 생성 
	public GenKeys(int keysize) throws NoSuchAlgorithmException, NoSuchProviderException {
		this.keyGen = KeyPairGenerator.getInstance("RSA");
		this.keyGen.initialize(keysize);
		this.pair = this.keyGen.generateKeyPair();
		this.publicKey = pair.getPublic();
		this.privateKey = pair.getPrivate();
	}

	public PublicKey getPublicKey() {
		return this.publicKey;
	}
	
	public PrivateKey getPrivateKey() {
		return this.privateKey;
	}
	
	public void writeToFile(String path, byte[] key) throws IOException {
		File f = new File(path);
		f.getParentFile().mkdirs();

		FileOutputStream fos = new FileOutputStream(f);
		fos.write(key);
		fos.flush();
		fos.close();
	}

	
	
	public static void main(String[] args) {
		GenKeys genKeys;
		try {
			// 1024bit key pair 생성  
			genKeys = new GenKeys(1024);
			
			System.out.println(genKeys.publicKey);
			System.out.println(genKeys.privateKey);
			
			// 바이너리 파일로 저장 
			genKeys.writeToFile("KeyPair/public.key", genKeys.getPublicKey().getEncoded());
			genKeys.writeToFile("KeyPair/private.key", genKeys.getPrivateKey().getEncoded());
			
		} catch (NoSuchAlgorithmException | NoSuchProviderException e) {
			System.err.println(e.getMessage());
		} catch (IOException e) {
			System.err.println(e.getMessage());
		}
	}
}

 

결과 로그

 

결과물 확인

 

2021/02/05 - [개발노트] - 용어 정리

2021/02/05 - [iOS/Objective-C] - ARC or Non-ARC Compile Flag 설정

2021/02/05 - [개발노트] - Korea Bank Codes

2021/02/05 - [OS/Mac OS X] - NVRAM / PRAM 재설정

2021/02/05 - [OS/Mac OS X] - Mac OS 재설치

2021/01/06 - [iOS/Swift] - String to CGFloat

2021/01/05 - [iOS/Tips] - SceneDelegate 포인터 구하기

2021/01/05 - [iOS/Tips] - 앱 호출 (URL scheme)

2020/12/24 - [개발노트] - 라이선스 종류

2020/12/24 - [OS/Mac OS X] - MacBook을 AP로 설정하는 방법

2020/12/18 - [Arduino] - Bit Rate, Baud Rate

2020/12/18 - [Arduino] - RS232 Serial 통신 불량체크

2020/12/17 - [프로그래밍/Java] - Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended

2020/12/17 - [프로그래밍/Java] - RSA 암복호화

반응형

'개발 > Note' 카테고리의 다른 글

20진수 변환  (0) 2021.09.16
RSA 암복호화 테스트  (0) 2021.02.05
용어 정리  (0) 2021.02.05
Korea Bank Codes  (0) 2021.02.05
라이선스 종류  (0) 2020.12.24
블로그 이미지

SKY STORY

,

용어 정리

개발/Note 2021. 2. 5. 10:19
반응형

손익분기점

BEP Break-Even Point

비용과 이익이 같아지는 지점

 

CCU(ConCurrent User)

동시접속자

정의 : 동일한 시간대에 게임에 접속해 있는 유저를 말한다. 흔히 로그인 서버를 기준으로 산정한다.

 

ARPU(Average Revenue Per User)

가입자당 평균 매출액, 객단가

정의 : "일정기간" 매출액을 기간내의 BU 나누어 산출한 수치

         한달을 기준으로 해서 유저가 평균적으로 결제한 금액으로 산정.

 

ACCU(Average ConCurrent User)

평균동접

 

PCCU(Peak ConCurrent User)

최고동접

 

BU(Buying User) = PU(Paying User)

구매자, 한번이라도 캐쉬 아이템을 구입한 적이 있는 유저

주로 정액제 비지니스 모델을 사용하는 게임에서 활용하는 용어

정액 비용을 결제한 유저(PU), 캐쉬 아이템을 구입한 유저(BU)

 

UV(Unique Visitor)

한번이라도 접속을 유저

 

BUrate(Buying User rate)

BU/UV

 

MMO UV 산출법 : PCCU * 3.935

CASUAL UV 산출법 : PCCU * 7.45

 

QC(Quality Control)

품질관리

게임의 테스트, 분석 등을 통해 문제점을 파악하는 업무

 

QA(Quality Assurance)

품질관리

QC 업무 자체를 보증하는 업무

 

RMT(Real Money Trading)

현거래/현질

 

Postmortem

원래 의미는 부검으로 게임 개발 이후에 개발에 대한 사후 분석을 하는 행위

 

LF(License Fee)

계약금

 

MG(Minimum Guarantee) = AR(Advanced Royalty)

로열티를 미리 책정해 땡겨받음

 

TFT(Task Force Team)

특정한 일을 해결하기 위해서 선별된 인력으로 구성된 임시조직

 

CM(Commercial Launch)

상용화

 

F2P(Free to Play)

부분유료화 비지니스 모델을 택한 게임

 

P2P(Pay to Play)

정액제 비지니스 모델을 택한 게임

 

AP(Associate Producer)

게임 기획자와 유사한 역활로 창의력이 요구되는 직책, 각종 이벤트/프로모션 기획, 아웃소싱/관리

코디네이션 업무와 일정관리 등의 업무를 수행

 

Texture

천등 면직물의 짜임새, 나무의 , 조직이란 뜻으로폴리곤의 겉에 입혀지는 그래픽. 

 

polygon

Poly(많은, 여러개가 합쳐진) + gon(각형) , 3차원적으로 입체가 있는 다각형 

 

mapping

무늬를 입히는 . ex) 텍스쳐 매핑(Texture Mapping) : 폴리곤에 텍스쳐를 입히는 작업. 

 

IDC(Internet Data Center)

항온·항습·보안시설 등을 갖추고 인터넷 업체들에 서버를 빌려주거나 이들의 서버를 대신 관리해주는

한마디로 서버관리 대행업체. 

 

CDN(Content Delivery Networks)

원활한 다운로드를 위해서 콘텐츠 제공업자(CP) 서버에 집중돼 있는 콘텐츠 용량이 크거나 

사용자의 요구가 잦은 콘텐츠를 ISP측에 설치한 CDN 서버에 미리 저장, CDN 서버로부터 최적의 경로로 

사용자에게 콘텐츠를 전달하는 기술. 

(한마디로 IDC 여러개 두고 한쪽으로 트레픽이 너무 많이 밀릴때 알아서 가장 속도가 빠른 곳에서 다운로드를 해주는 거죠)

반응형
블로그 이미지

SKY STORY

,
반응형

Objective-C 개발시 ARC 혹은 MRC를 선택하여 개발을 한다. ARC는 Objective-C Class에만 해당되어 만약 Core Foundation과 같이 C/C++ 계열의 API는 Type Casting을 해줘야 ARC를 사용할 수 있다. (일명 Toll-Free Bridging) 오늘 소개할 내용은 *.m 파일에 ARC or Non-ARC Compile Flag를 사용하는 방법이며, 위에 얘기한 것처럼 Type Casting 없이 개별 파일에 Compile Flag만 변경해서도 사용할 수 있는 방법이다. 

우선 프로젝트 폴더의 상단 프로젝트명을 선택해서 나오는 Target에서  Build Phases중 Compile Sources를 열어보면 Compile될 *m파일 리스트가 보이며 Compile Flag 변경을 원하는 파일을 더블클릭하면 변경가능하다.

 

ARC 변경

-fobjc-arc

 

Non-ARC변경

-fno-obj-arc

반응형

'개발 > iOS' 카테고리의 다른 글

Universal Link (2/4) - 네이티브 링크 수신  (0) 2021.03.16
Universal Link (1/4) - 네이티브 환경설정  (0) 2021.03.16
String to CGFloat  (0) 2021.01.06
SceneDelegate 포인터 구하기  (0) 2021.01.05
앱 호출 (URL scheme)  (0) 2021.01.05
블로그 이미지

SKY STORY

,

Korea Bank Codes

개발/Note 2021. 2. 5. 09:41
반응형

Bank Code

Name of Bank

39

KYONGNAM BANK

34

KWANGJU BANK

04

KOOKMIN BANK

03

INDUSTRIAL BANK OF KOREA

12

AGRICULTURAL COOPERATION UNIT

11

NATIONAL AGRICULTURAL COOPERATIVE FEDERATION

31

DAEGU BANK

55

DEUTSCH BANK AG SEOUL BRANCH

59

BANK OF TOKYO-MITSUBISHI SEOUL BRANCH

58

MIZUHO CORPORATE BANK SEOUL BRANCH

60

BANK OF AMERICA N.A. SEOUL BRANCH

32

PUSAN BANK

50

KOREA FEDERATION OF SAVINGS BANK

45

KOREAN FEDERATION OF COMMUNITY CREDIT COOPERATIVES

25

SEOUL BANK

08

EXPORT-IMPORT! BANK OF KOREA

07

NATIONAL FEDERATION OF FISHERIES COOPERATIVES

53

CITIBANK N.A., SEOUL BRANCH

48

NATIONAL CREDIT UNION FEDERATION OF KOREA

26

SHINHAN BANK

56

ABN AMRO BANK

05

KOREA EXCHANGE BANK

20

WOORI BANK

71

KOREA POST OFFICE

37

JEONBUK BANK

23

KOREA FIRST BANK

35

CHEJU BANK

21

CHO HUNG BANK

81

HANA BANK

02

KOREA DEVELOPMENT BANK

01

BANK OF KOREA

27

KORAM BANK

54

HONGKONG AND SHANGHAI BANKING CORP

57

UFJ BANK LTD SEOUL BRANCH

반응형
블로그 이미지

SKY STORY

,
반응형

1-1. NVRAM(PRAM) 재설정

* 먼저 'PRAM'이라는 명칭은 애플이 파워피씨(PowerPC) 기반의 맥을 판매하던 2006년 이전까지 사용되어 온 명칭이며, 비교적 근래에는 애플 스스로 'NVRAM'이라는 명칭을 사용하고 있습니다. 하지만 PRAM이라는 이름이 오래 사용되어 온 탓에 맥 커뮤니티에서는 상대적으로 PRAM이라는 명칭이 더 빈번히 사용되고 있습니다.

NVRAM(Nonvolatile Random Access Memory)/PRAM(Parameter Ram)은 비휘발성 메모리 영역에 시스템 구동과 관련된 정보와 수치들을 미리 저장해 두었다 맥이 부팅하면서 정보를 읽어드리는 장소입니다. 이로 인해 전원이 차단 되더라도 정보들이 사라지지 않으며 매 부팅시마다 새로운 수치를 저장장치에서 읽어올 필요 없이 비교적 빠른 속도로 OS X 세팅값과 사용자의 정보를 불러올 수 있습니다. 단, 불특정한 이유로 인해 NVRAM/PRAM에 저장된 정보가 변질되거나 무결성이 깨질 경우 아래 정리된 기능에 문제가 발생하거나 시스템 오작동이 발생할 수 있습니다.

이 때 NVRAM/PRAM을 깨끗이 비워주고 다시 정보를 읽는 초기화 작업을하여 문제를 해결할 수 있습니다.

• AppleTalk 정보 // OS 클래식 환경에서 기기간 공유 기능을 담당하던 프로토콜
• 직렬 포트 구성 및 포트 정보
• 알람 시간 설정
• 응용 프로그램 서체
• 직렬 프린터 정보
• 키 반복 입력 간격
• 스피커 볼륨
• 주의(경고음) 사운드
• 마우스 및 트랙패드 이중 클릭 간격
• 캐럿 깜박임 시간(삽입점 비율) // 터미널 환경
• 마우스 크기 및 마우스 속도
• 시동 디스크 정보
• 메뉴 깜박임 수
• 모니터 심도 (색상 정보)
• 32비트 주소 지정
• 가상 메모리
• RAM 디스크
• 디스크 캐시

 

1-2. NVRAM(PRAM) 재설정 방법

NVRAM/PRAM을 리셋하는 방법은 2016년 맥북프로를 제외한 모든 기종이 동일합니다. 맥이 완전히 꺼져 있는 상태에서 command + option + p + r 키를 먼저 누른 상태에서 전원 버튼'을 누르고 있으세요. 부팅이 한 번 됐다 다시 자동으로 리부팅 됩니다. 그리고 재부팅 직후 누르고 있던 키에서 손을 땝니다.

1-3. MacBook Pro (Late 2016) 모델에서 NVRAM을 재설정하는 방법

2016 신형 맥북프로의 경우 시동음이 들리지 않기 때문에 NVRAM을 재설정하는 방법이 조금 다릅니다.

앞서 출시된 다른 맥북은 전원을 켠 뒤 시동음이 들리면 command + option + p + r 키를 길게 누르는 방법으로 NVRAM을 초기화할 수 있습니다. 하지만 시동음이 들리지 않는 2016 맥북프로는 전원을 켠 직 후 command + option + p + r 키를 누르고 20초간 손가락을 떼지 않아야 한다고 합니다. 터치바 탑재 여부와 상관없이 2016년 출시된 모든 맥북프로에 공통으로 적용되는 사항입니다.

관련글
  애플, 신형 맥북프로에서 30년 전통 '부팅음' 폐지... NVRAM 초기화 방법도 달라졌다

 

2-1. SMC(System Management Controller) 재설정

SMC는 전원이나 방열 팬, 백라이트 및 부팅 등 맥 전원 체계와 시스템에 연결된 각종 외부 장치들을 총제적으로 관리하는 칩입니다. 다음과 같은 문제가 발생할 경우 SMC를 초기화하는 것으로 효과를 볼 수 있습니다.

• 배터리 관련 이상 증상
• 배터리 인디케이터 오작동
• 디스플레이 밝기 관련 이상 증상
• 키보드 백라이트 관련 이상 증상
• 시스템 팬 관련 이상 증상
• 전원 버튼 오작동
• 잠자기 관련 이상 증상
• 외부 전원(USB, FireWire등) 관련 이상 증상
• 외부 장치(USB HDD등) 관련 이상 증상
• 외부 모니터 인식 문제
• 에어포트 및 블루투스 관련 이상 증상
• 급작스럽게 시스템 전원이 나가는 증상
• SMS(하드 충격 방지 시스템) 오작동

 

2-2. SMC 재설정 방법

• 포터블 맥(배터리를 탈착할 수 있는 구형 맥북 모델)

1. (맥이 켜져 있는 상태라면) 맥을 종료시킵니다.
2. 전원 케이블을 맥에서 연결 해제합니다.
3. 배터리를 제거합니다.
4. 전원 버튼을 5초간 눌러준 후 손을 땝니다.
5. 배터리를 다시 장착하고 전원 어댑터를 연결합니다.
6. 전원 버튼을 누르고 OS X을 부팅해 줍니다.

 

• 포터블 맥(배터리를 탈착할 수 없는 맥북 모델)

1. (맥이 켜져 있는 상태라면) 맥을 종료시킵니다.
2. (전원 케이블이 분리되어 있는 상태라면) 전원 케이블을 연결해 줍니다. (배터리 탈착가능한 모델과 반대입니다.)
3. 내장 키보드의 왼쪽 shift + control + option + 전원 버튼을 동시에 눌러줍니다.
4. 마찬가지로 동시에 위 키들에서 손가락을 땝니다.
5. 전원 버튼을 눌러 맥을 시동시킵니다.

 

• 데스크탑 맥(아이맥, 맥미니, 맥 프로 등)

1. (맥이 켜져 있는 상태라면) 맥을 종료시킵니다.
2.
전원 플러그를 뽑아 줍니다.
3. 15
대기합니다.
4.
전원을 다시 연결합니다.
5. 5
동안 기다렸다 전원 버튼을 눌러 컴퓨터의 전원을 켭니다.

 

 

2021/02/05 - [OS/Mac OS X] - Mac OS 재설치

2021/01/06 - [iOS/Swift] - String to CGFloat

2021/01/05 - [iOS/Tips] - SceneDelegate 포인터 구하기

2021/01/05 - [iOS/Tips] - 앱 호출 (URL scheme)

2020/12/24 - [개발노트] - 라이선스 종류

2020/12/24 - [OS/Mac OS X] - MacBook을 AP로 설정하는 방법

2020/12/18 - [Arduino] - Bit Rate, Baud Rate

2020/12/18 - [Arduino] - RS232 Serial 통신 불량체크

2020/12/17 - [프로그래밍/Java] - Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended

2020/12/17 - [OS/Mac OS X] - OpenSSL을 이용한 Key 정보 Text 변환

2020/12/17 - [프로그래밍/Java] - RSA 암복호화

2020/12/17 - [iOS/Tips] - URL query 파싱 및 json string 변환

2020/12/16 - [개발노트] - Code 128 Barcode의 Check Digit 계산방법

2020/12/15 - [iOS/Tips] - 디버깅 차단 처리 (Anti Debug)

2020/12/14 - [iOS/Tips] - bundle id 알아내기

반응형
블로그 이미지

SKY STORY

,