BLE, Beacon, iBeacon

개발/Note 2024. 1. 11. 13:39
반응형

BLE, Beacon, iBeacon 각각의 차이점을 정리해 보았다.

 

  • BLE, Beacon 비교
특성 Bluetooth Low Energy (BLE) Beacon
용도     주변 기기 간의 양방향 통신 주변에 위치 정보를 브로드캐스트
통신 방식     양방향 통신 단방향 통신 (브로드캐스트)
전력 소비     저전력 통신으로 에너지 효율적 전송만 수행하여 에너지 소비 낮음                                           
주요 사용 분야     다양한 응용 분야 (데이터 교환) 위치 기반 서비스, 광고, 근거리 탐지
통신 범위     주변 기기 간의 상대적으로 높음 범위                                        주로 근거리 ( 미터 )

 

  • Beacon, iBeacon 비교
특성 Beacon iBeacon
프로토콜 Bluetooth Low Energy (BLE)  Bluetooth Low Energy (BLE) 
데이터 전송 속도 0.25Mbps ~ 24Mbps 1Mbps
전력 소비 높음 낮음
주요 사용 분야 위치 기반 서비스, 광고, 마케팅 위치 기반 서비스, 광고, 마케팅
비고   Apple 도입한 특정한 규격

 

  • Beacon

| AD Length | AD Type | Manufacturer ID | Beacon ID | Major | Minor | TX Power |

 

  • iBeacon

| AD Length | AD Type | Manufacturer ID | iBeacon Prefix | UUID | Major | Minor | TX Power |

 

  • 참고사항 :

Beacon과 iBeacon은 Advertisement Data의 AD Type으로 일반적으로 0xFF(Manufacturer Specific Data)를 사용합니다. 이 AD Type은 제조사에 특화된 데이터를 나타내며, Beacon과 iBeacon은 자체적인 프로토콜을 사용하여 이 부분에 정보를 담습니다.

따라서 Beacon이나 iBeacon으로 방송될 때, Advertisement Data의 AD Type이 0xFF로 설정되는 것이 일반적입니다. 그리고 이 AD Type 뒤에 이어지는 데이터 부분에는 Beacon이나 iBeacon에 대한 고유한 정보가 포함됩니다.

이러한 설정은 Beacon 또는 iBeacon의 프로토콜 스펙에 따라 다를 수 있으므로, 구체적인 Beacon 또는 iBeacon의 문서나 스펙을 참고하여야 합니다. Beacon과 iBeacon은 자체적으로 프로토콜을 정의하고 있기 때문에, 이러한 세부 사항은 제조사 또는 표준에 따라 다르게 정의될 수 있습니다.

 

2024.01.11 - [Note] - BLE, Beacon, iBeacon

2024.01.11 - [Note] - BLE Advertising Payload format 샘플 분석

2024.01.09 - [Note] - Packet Format for the LE Uncoded PHYs

2024.01.04 - [iOS] - Floating, Dragging Button

2023.12.27 - [Bark Bark] - 말이 통하지 않는 사람과 싸우지 말라.

2023.12.27 - [Server] - Push Notification

2023.12.27 - [AI,ML,ALGORITHM] - A star

2023.12.07 - [iOS] - XOR 연산을 이용한 문자열 비교

2023.11.03 - [AI,ML,ALGORITHM] - Gomoku(Five in a Row, Omok) (5/5) - 3x3 체크 추가

2023.10.29 - [AI,ML,ALGORITHM] - Gomoku(Five in a Row, Omok) (5/5) - 머신러닝으로 게임 구현

 

 

 

반응형

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

BLE Advertising Payload format 샘플 분석  (1) 2024.01.11
Packet Format for the LE Uncoded PHYs  (0) 2024.01.09
[Mac OS X] Apache Virtual Hosts 설정 설정  (0) 2023.02.21
Unwind Segue 사용방법  (0) 2023.01.11
랜덤 seed 초기화  (0) 2022.11.18
블로그 이미지

SKY STORY

,
반응형

BLE Advertising Payload format을 raw data로 부터 분리 추출하는 방법을 알아보겠다.

raw data로 부터 payload 포맷에 대한 이해에 도움이 되길 바란다.

Flags, Manufacturer Specify Data, TX Power Level, Slave Connection Interval Range (BLE 5.0미만), Service UUIDs (Complete UUID 128 bit), Device Name, Service Data, Beacon Adv. Data, iBeacon Adv. Data 등의 포맷을 알아 보겠다.

아래 일부 샘플 자료는 아래 사이트에서 참고하였다.
https://jimmywongiot.com/2019/08/13/advertising-payload-format-on-ble/

 

Flags

Length Data Type Advertising Mode
0x02 (2) 0x01 (1) 0x06 (00000110B)

——————————————————————————————————————————
Flags
02 01 06
——————————————————————————————————————————
AD length : 0x02 (2)
AD Type : 0x01 (1)
	- 0x01 : Flags
AD data : 0x06
	- 0x06 ( 0000 0110 B ) 
	- Bit 0 : LE Limited Discoverable Mode		NO
	- Bit 1 : LE General Discoverable Mode		YES
	- Bit 2 : BR / EDR Not Supported			YES  
	- Bit 3 : Simultaneous LE and BR/EDR to Same Device Capable			NO
	- Bit 4 : Simultaneous LE and BR/EDR to Same Device Capable (Host)	NO
	- Bit 5 : Reserved
	- Bit 6 : Reserved
	- Bit 7 : Reserved

 

 

Manufacturer Specify Data

Length Data Type Company ID Manufacturer Specific Data
0x1B (27) 0xFF (255) 0x0059 0x01C0111111CC64F00A0B0C0D0E0F101112131415161718

Manufacturer Specific Data (offset) Type Value / Data
0 Header of Manufacturer Payload 0x01
1-7 MAC Address 0xCC, 0x11, 0x11, 0x11, 0x11, 0xC0
8 Battery Value in % 0x64 (100%)
9 Measured RSSI Value 0xF0
10 – 24 Other Value 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 
0x10, 0x11, 0x12, 0x13, 0x14, 0x15,
0x16, 0x17, 0x18
——————————————————————————————————————————
Manufacturer Specific Data
1B FF 59 00 01 C0 11 11 11 11 CC 64 F0 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18
——————————————————————————————————————————
AD length : 0x1B (27)
AD Type : 0xFF (255)
	- 0xFF :  Manufacturer Specific Data
AD data :
	Company Id :
		- 0x0059 (89)
	Manufacturer Specific Data :
		- 0x01C0111111CC64F00A0B0C0D0E0F101112131415161718
		- Header of Manufacturer Payload (0) : 0x01 (1)
		- MAC Address (1-7) : 0xCC, 0x11, 0x11, 0x11, 0x11, 0xC0
		- Battery Value in % (8) : 0x64 (100) %
		- Measured RSSI Value (9) : 0xF0 (240)
		- Other Value (10-24) : 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18

 

 

TX Power Level

Length Data Type TX Power Level
0x02 (2) 0x0A (10) 0xFC (-4 dBm)

Slave Connection Interval Range

Length Data Type Minimum Maximum
0x05 (5) 0x12 (18) 0x0006 (7.5ms) 0x0014 (25ms)

——————————————————————————————————————————
Tx Power Level
02 0A FC
——————————————————————————————————————————
AD length : 0x02 (2)
AD Type : 0x0A (10)
	- 0x0A : Tx Power Level
AD data : 0xFC (-4 dBm)
	- 0xFC ( 1111 1100 B ) 
	- 부호 있는 8비트 정수이므로 2의 보수를 취해 값을 구한다.
	- 11111100을 반전하면 00000011. 그리고 1을 더하면 00000100. 즉, 값은 -4가 된다.



——————————————————————————————————————————
Slave Connection Interval Range
05 12 06 00 14 00
——————————————————————————————————————————
AD length : 0x05 (5)
AD Type : 0x12 (18)
	- 0x12 : Slave Connection Interval Range
AD data :
	- BLE 5.0 미만 버전에서 사용 됨. BLE 5.0 이상에서는 Advertising ID로 변경 됨.
	- Slave Connection Interval은 BLE(Bluetooth Low Energy)에서 두 장치 간의 연결 주기를 나타내는 값입니다.
	- Connection Interval은 두 연속적인 연결 사이의 시간 간격을 말하며, 이를 설정함으로써 연결의 성능과 전력 소비를 조절할 수 있습니다.
	- 최소 값과 최대 값은 16진수로 표현된 값이며, 단위는 1.25ms입니다. 
	- Connection Interval Min/Max (ms)=16진수 값×1.25
	Minimum : 
		- 0x0006 (6) 
		- 6 x 1.25 = 7.5 ms
	Maximum :
		- 0x0014 (20)
		- 20 x 1.25 = 25 ms

 

 

Service UUIDs (Complete UUID 128 bit)

Length Data Type UUID
0x11 (17) 0x07 (7) 0x6E400001-B5A3-F393-E0A9-E50E24DCCA9E

——————————————————————————————————————————
Complete List of 128-bit Service Class UUIDs 
11 07 9E CA DC 24 0E E5 A9 E0 93 F3 A3 B5 01 00 40 6E
——————————————————————————————————————————
AD length : 0x11 (17)
AD Type : 0x07 (7)
	- 0x12 : Complete List of 128-bit Service Class UUIDs 
AD data :
	- 0x6E400001-B5A3-F393-E0A9-E50E24DCCA9E

 

 

Complete Local Name

Length Data Type Complete Local Name
0x0C (12) 0x09 (9) Nordic_UART (0x4E6F726469635F55415254)

——————————————————————————————————————————
Complete Local Name 
0C 09 4E 6F 72 64 69 63 5F 55 41 52 54
——————————————————————————————————————————
AD length : 0x0C (12)
AD Type : 0x09 (9)
	- 0x09 : Complete Local Name 
AD data :
	- Nordic_UART (0x4E6F726469635F55415254)

 

 

Flags

Length Data Type Service Data
0x02 (2) 0x01 (1) 0x06

Service Data

Length Data Type Service Data
0x05 (5) 0x16 (22) 0x6E2ADB02

Complete Local Name

Length Data Type Service Data
0x0B (11) 0x09 (9) 0x50205420383034394638                                 

——————————————————————————————————————————
Flags
02 01 06
——————————————————————————————————————————
AD length : 0x02 (2)
AD Type : 0x01 (1)
	- 0x01 : Flags
AD data : 0x06
	- 0x06 ( 0000 0110 B ) 
	- Bit 0 : LE Limited Discoverable Mode		NO
	- Bit 1 : LE General Discoverable Mode		YES
	- Bit 2 : BR / EDR Not Supported				YES  
	- Bit 3 : Simultaneous LE and BR/EDR to Same Device Capable			NO
	- Bit 4 : Simultaneous LE and BR/EDR to Same Device Capable (Host)	NO
	- Bit 5 : Reserved
	- Bit 6 : Reserved
	- Bit 7 : Reserved


——————————————————————————————————————————
Service Data 16-bit UUID
05 16 6E 2A DB 02
——————————————————————————————————————————
AD length : 0x05 (5)
AD Type : 0x16 (22)
	- 0x16 :  Service Data 16-bit UUID
AD data :
	- 0x6E2ADB02
	- ServiceData의 값은 해당 서비스의 사양에 따라 정의된다. (사용자 설정 포맷)
	- ServiceData UUID를 포함할 경우 [CBUUID: Data] 포맷으로 만들기도 한다.


——————————————————————————————————————————
Complete Local Name
0B 09 50 20 54 20 38 30 34 39 46 38
——————————————————————————————————————————
AD length : 0x0B (11)
AD Type : 0x09 (9)
	- 0x09 :  Complete Local Name
AD data :
	- 0x50205420383034394638
	- ASCII 문자열로 변환하면  "P T 8 0 4 9 F 8" 이다.

 

 

Beacon Adv. Data

Length Data Type Beacon Adv. Data
0x1A (26) 0xFF (255) 0x004C 000215 112233445566778899AABBCCDD

——————————————————————————————————————————
Beacon Adv. Data
| AD Length | AD Type | Manufacturer ID | Beacon ID | Major | Minor | TX Power |
1A FF 00 4C 00 02 15 11 22 33 44 55 66 77 88 99 AA BB CC DD
——————————————————————————————————————————
AD length : 0x1A (26)
AD Type : 0xFF (255)
	- 0xFF : Manufacturer Specific Data
AD data :
	Manufacturer :
	- 0x004C (Beacon을 제조한 회사의 ID)
	Beacon ID :
	- 0x000215 (Beacon을 식별하는 고유 ID)
	Beacon Data :
	- 0x112233445566778899AABBCCDD (Beacon 고유 데이터)
	- Beacon Data의 세부 사항은 제조사 또는 표준에 따라 다르게 정의될 수 있다. 
	- 일반적으로 Major, Minor, TX Power를 사용한다.

 

 

iBeacon Adv. Data

Length Data Type iBeacon Adv. Data
0x1F (31) 0xFF (255) 0x4C 000215 E2C56DB5DFFB48D2B060D0F5A71096E0 0001 0002 C5

——————————————————————————————————————————
iBeacon Adv. Data
| AD Length | AD Type | Manufacturer ID | iBeacon Prefix | UUID | Major | Minor | TX Power |
1F FF 4C 00 02 15 E2C56DB5DFFB48D2B060D0F5A71096E0 0001 0002 C5
——————————————————————————————————————————
AD length : 0x1A (26)
AD Type : 0xFF (255)
	- 0xFF : Manufacturer Specific Data
AD data : 
	Manufacturer :
	- 0x4C (Beacon을 제조한 회사의 ID)
	iBeacon Prefix :
	- 0x000215 (Apple이 iBeacon을 식별하기 위한 특별한 값)
	UUID : 
	- 0xE2C56DB5DFFB48D2B060D0F5A71096E0 (16바이트의 Universally Unique Identifier)
	Major :
	- 0x0001 (주요 범주를 식별하는 값)
	Minor :
	- 0x0002 (Major 범주 내에서 세부 항목을 식별하는 값)
	TX Power :
	- 0xC5 (전송 전력을 나타내는 값)

 

 

2024.01.11 - [Note] - BLE, Beacon, iBeacon

2024.01.11 - [Note] - BLE Advertising Payload format 샘플 분석

2024.01.09 - [Note] - Packet Format for the LE Uncoded PHYs

2024.01.04 - [iOS] - Floating, Dragging Button

2023.12.27 - [Bark Bark] - 말이 통하지 않는 사람과 싸우지 말라.

2023.12.27 - [Server] - Push Notification

2023.12.27 - [AI,ML,ALGORITHM] - A star

2023.12.07 - [iOS] - XOR 연산을 이용한 문자열 비교

2023.11.03 - [AI,ML,ALGORITHM] - Gomoku(Five in a Row, Omok) (5/5) - 3x3 체크 추가

2023.10.29 - [AI,ML,ALGORITHM] - Gomoku(Five in a Row, Omok) (5/5) - 머신러닝으로 게임 구현2023.11.03 - [AI,ML,ALGORITHM] - Gomoku(Five in a Row, Omok) (5/5) - 3x3 체크 추가

 

 

반응형

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

BLE, Beacon, iBeacon  (0) 2024.01.11
Packet Format for the LE Uncoded PHYs  (0) 2024.01.09
[Mac OS X] Apache Virtual Hosts 설정 설정  (0) 2023.02.21
Unwind Segue 사용방법  (0) 2023.01.11
랜덤 seed 초기화  (0) 2022.11.18
블로그 이미지

SKY STORY

,
반응형
반응형

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

BLE, Beacon, iBeacon  (0) 2024.01.11
BLE Advertising Payload format 샘플 분석  (1) 2024.01.11
[Mac OS X] Apache Virtual Hosts 설정 설정  (0) 2023.02.21
Unwind Segue 사용방법  (0) 2023.01.11
랜덤 seed 초기화  (0) 2022.11.18
블로그 이미지

SKY STORY

,
반응형

아파치 웹 서버 실행

 

아파치, php 버전 확인

$ apachectl -v

$ php -v

 

아파치, php 설치 (설치되어 있지 않을 경우)

$ brew install httpd

$ brew install php

 

아파치 실행

$ sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist

 

아파치 종료

$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

 

기본 웹서버 패스

/Library/WebServer/Documents/index.html

 

브라우저로 확인 

http://127.0.0.1

http://localhost

 

 

 

[ 요약 ]

sudo vi /private/etc/hosts

# mysite

127.0.0.1       ww1.mysite.net

127.0.0.1       ww2.mysite.net

 

sudo vi /private/etc/apache2/httpd.conf

 

sudo vi /private/etc/apache2/extra/httpd-vhosts.conf

<VirtualHost *:80>
    ServerName     ww1.mysite.net
    ServerAdmin    netcanis@mysite.net
    DocumentRoot   "/private/etc/apache2/htdocs-ww1"
    CustomLog      "/private/var/log/apache2/ww1.access.log" common
    ErrorLog       "/private/var/log/apache2/ww1.error.log"
    <Directory "/private/etc/apache2/htdocs-ww1">
        Options Indexes MultiViews
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>



<VirtualHost *:80>
    ServerName     ww2.mysite.net
    ServerAdmin    netcanis@mysite.net
    DocumentRoot   "/private/etc/apache2/htdocs-ww2"
    CustomLog      "/private/var/log/apache2/ww2.access.log" common
    ErrorLog       "/private/var/log/apache2/ww2.error.log"
    <Directory "/private/etc/apache2/htdocs-ww2">
        Options Indexes MultiViews
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

 

 

테스트

sudo apachectl configtest

 

재시작

sudo apachectl graceful

 

브라우저 테스트

http://ww1.mysite.net

http://ww2.mysite.net

 

 

 

웹서버 패스

/private/etc/apache2/htdocs-ww1/index.html 

/private/etc/apache2/htdocs-ww2/index.html 

 

로그파일 패스

/private/var/log/apache2/ww1.access.log

/private/var/log/apache2/ww1.error.log

/private/var/log/apache2/ww2.access.log

/private/var/log/apache2/ww2.error.log

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

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

BLE Advertising Payload format 샘플 분석  (1) 2024.01.11
Packet Format for the LE Uncoded PHYs  (0) 2024.01.09
Unwind Segue 사용방법  (0) 2023.01.11
랜덤 seed 초기화  (0) 2022.11.18
matplotlib 사용  (0) 2022.11.18
블로그 이미지

SKY STORY

,
반응형

다음은 ViewController가 종료될 때 이전 ViewController에

Unwind Segue 이벤트가 수신되도록 설정하는 방법이다.

 

현재 QRcodeDetailViewController 가 popViewController될때 

이전QRcodeViewController의 특정함수(unwindToQRcodeViewController)를 호출하기 위한 설정

 

다음과 같이 ViewController가 push되어 있을 경우

QRcodeDetailViewController가 pop되어 종료 되었을 때 

Unwind Segue를 이용하여 QRcodeViewController의 

특정 함수 호출방법을 알아본다.

 

 

+ UINavigationViewController

   - QRcodeViewController

   - QRcodeDetailViewController

 

 

 

::::  QRcodeViewController  ::::

 

:::: storyboard ::::

QRcodeDetailViewController 를 Ctrl 버튼을 누른상태에서 Exit버튼 클릭

 

QRcodeDetailViewController 로 연결

 

‘manual’ 선택

 

QRcodeDetailViewController Presenting Segues 설정 확인

 

Unwind segue id 설정 (아래 예에서는 호출되는 함수 이름으로 할당함)

 

QRcodeDetailViewController 클래스 내에서 종료함수 호출

 

QRcodeDetailViewController 가 pop되고나서 종료되면 QRcodeViewController에 선언된 

unwindToQRcodeViewController()함수 호출

 

svc = QRcodeDetailViewController

dvc = QRcodeViewController

segueId = unwindToQRcodeViewController

반응형

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

Packet Format for the LE Uncoded PHYs  (0) 2024.01.09
[Mac OS X] Apache Virtual Hosts 설정 설정  (0) 2023.02.21
랜덤 seed 초기화  (0) 2022.11.18
matplotlib 사용  (0) 2022.11.18
git 소스코드 비교  (0) 2022.02.23
블로그 이미지

SKY STORY

,

랜덤 seed 초기화

개발/Note 2022. 11. 18. 13:48
반응형

최초 seed값을 초기화 하지 않으면 동일한 결과 값이 반환되므로

반드시 초기화 처리 하도록 한다.

import random
from datetime import datetime
random.seed(datetime.now())

 

 

 

반응형

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

[Mac OS X] Apache Virtual Hosts 설정 설정  (0) 2023.02.21
Unwind Segue 사용방법  (0) 2023.01.11
matplotlib 사용  (0) 2022.11.18
git 소스코드 비교  (0) 2022.02.23
20진수 변환  (0) 2021.09.16
블로그 이미지

SKY STORY

,

matplotlib 사용

개발/Note 2022. 11. 18. 13:44
반응형

다음 코드는 matplotlib를 사용한 그래프 출력 샘플이다.

import numpy as np
import matplotlib.pyplot as plt
'''
x = np.arange(0,5)
y = x ** 2 
'''

#x= np.array([1,2,3,4,5])
x = np.arange( -5, 5, 0.1)

y1 = np.exp(x)
y2 = pow(np.exp(x), 2)
y3 = pow((1+np.exp(x)), 2)
y4 = np.exp(x) / pow((1+np.exp(x)), 2)


plt.subplot(2, 2, 1)                # nrows=2, ncols=1, index=1
#포맷 문자열 ‘ro’는 빨간색 (‘red’)의 원형 (‘o’) 마커를 의미합니다. 
# '--'은 점선을 의미. (ex. ro, o-, .-, bs, g^, r--,)
plt.plot(x,y1, 'r-')#plt.plot(x1, y1, 'r--', x2, y2, 'bs', x3, y3, 'g^')
plt.title('np.exp(x)')
plt.axis([-5, 5, 0, 5])# xmin, xmax, ymin, ymax
plt.xlabel('x')
plt.ylabel('y')

plt.subplot(2, 2, 2)                # nrows=2, ncols=1, index=2
#포맷 문자열 ‘b-‘는 파란색 (‘blue’)의 실선 (‘-‘)을 의미합니다.
plt.plot(x,y2, 'b-')
plt.title('pow(np.exp(x), 2)')
plt.axis([-5, 5, 0, 5])# xmin, xmax, ymin, ymax
plt.xlabel('x')
plt.ylabel('y')

plt.subplot(2, 2, 3)                # nrows=2, ncols=1, index=2
#포맷 문자열 ‘b-‘는 파란색 (‘blue’)의 실선 (‘-‘)을 의미합니다.
plt.plot(x,y3, 'b-')
plt.title('pow((1+np.exp(x)), 2)')
plt.axis([-5, 5, 0, 5])# xmin, xmax, ymin, ymax
plt.xlabel('x')
plt.ylabel('y')

plt.subplot(2, 2, 4)                # nrows=2, ncols=1, index=2
#포맷 문자열 ‘b-‘는 파란색 (‘blue’)의 실선 (‘-‘)을 의미합니다.
plt.plot(x,y4, 'b-')
plt.title('np.exp(x) / pow((1+np.exp(x)), 2)')
plt.axis([-5, 5, 0, 5])# xmin, xmax, ymin, ymax
plt.xlabel('x')
plt.ylabel('y')




fig1 = plt.gcf()
plt.tight_layout()
plt.show()
plt.draw()
#dpi default=100
fig1.savefig('test.png', dpi=200, facecolor='#eeeeee', edgecolor='blue')

 

반응형

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

Unwind Segue 사용방법  (0) 2023.01.11
랜덤 seed 초기화  (0) 2022.11.18
git 소스코드 비교  (0) 2022.02.23
20진수 변환  (0) 2021.09.16
RSA 암복호화 테스트  (0) 2021.02.05
블로그 이미지

SKY STORY

,
반응형

현재 작업중인 소스코드가 git에 마지막으로 commit된 소스코드와

비교를 해야할 경우가 종종 발생한다.

이럴경우 이전 commit코드와 비교하여 추가,삭제 및 수정된 부분을

알 수 있도록 보여주는 기능(Code Review)을 사용하도록 하자. 

 

View / Show Code Review

Shift + Option + Command + Enter

 

'Code Review' 가 활성화되면 Xcode 우상단 아이콘(1번)이 아래 그림과 같이 변경된다.

또한 우측 목록 아이콘을 클릭하여 Inline, Side By Side 비교방법(2번)을 선택할 수 있다.

 

Inline Comparision - 현재 소스코드에서 저장된 코드와의 비교

다음과 같이 변경된 부분은 좌측 라인번호에 파란색 마크가 생긴다.

 

Side By Side Comparision - 현재 소스코드와 저장된 코드를 화면분할 출력하여 비교

다음과 같이 현재 코드와 저장된 코드를 둘다 출력하여 변경된 부분을 비교해 준다.

 

 

반응형

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

랜덤 seed 초기화  (0) 2022.11.18
matplotlib 사용  (0) 2022.11.18
20진수 변환  (0) 2021.09.16
RSA 암복호화 테스트  (0) 2021.02.05
RSA key 파일 생성  (0) 2021.02.05
블로그 이미지

SKY STORY

,