- 오류 메세지

Illegal key size

 

- 해결 방법

방법 1. java가 설치된 경로에서 US_export_policy.jar파일을 복사하여 local_policy.jar로 덮어씌운다. (백업필요)

  윈도우 OS에서 경로 : C:\Program Files\Java\jdk-1.8.x.x\jre\lib\security\

 

다른 방법 2. 자바 버전(1.8)을 다른 높은 버전으로 변경한다.   

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

[자바, 스프링] XML에 부등호 입력  (0) 2022.07.09

1. <![CDATA[]]> 를 사용하여 부등호를 입력합니다.

  ex) 테이블에서 나이가 18세 이상인 데이터 찾기

<select>
	SELECT * FROM table
	<where>
		나이 <![CDATA[>]]>= 18
	</where>
</select>

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

[자바, 스프링] AES256 Illegal key size 오류  (0) 2022.07.18

1. 우분투 최초 설치시 sudo passwd root로 루트계정 로그인 암호 최초 설정

 

2. 커맨드를 실행하여 source.list 수정하기

 

sudo sed -i 's,http://.*ubuntu.com,http://old-releases.ubuntu.com,g' /etc/apt/sources.list

 

3. sudo apt-get update 수행하기

1. 변수 선언

var : 초기화 이후 수정 가능

val : 초기화 이후 수정 불가능

? : nullable

 

2. 배열 선언

var intlist = ArrayList<Int>();

 

3. 함수 선언

fun myfunc(str:String){

}
fun myfunc(str:String):String{
    return str
}

 

4. 조건문

if(){
    // true
}else{
    // false
}

 

5. 반복문

for (i in 0..1){
    
}

 

6. lateinit : 선언만하고 나중에 초기화

 

7. lazy : 변수를 사용할때 초기화

 

1. 권한 설정

<uses-permission android:name="android.permission.INTERNET"/>
<application        
        android:usesCleartextTraffic="true">


2. build.gradle(app)

dependencies {
implementation 'com.android.volley:volley:1.2.1'
}


3. 싱글톤 클래스 생성(RequestQueue 설정)

class MySingleton constructor(context: Context) {
    companion object {
        @Volatile
        private var INSTANCE: MySingleton? = null
        fun getInstance(context: Context) =
            INSTANCE ?: synchronized(this) {
                INSTANCE ?: MySingleton(context).also {
                    INSTANCE = it
                }
            }
    }
    val requestQueue: RequestQueue by lazy {
        // applicationContext is key, it keeps you from leaking the
        // Activity or BroadcastReceiver if someone passes one in.
        Volley.newRequestQueue(context.applicationContext)
    }
    fun <T> addToRequestQueue(req: Request<T>) {
        requestQueue.add(req)
    }
}



4. 사용하기

val url = "http://www.example.com"
// Formulate the request and handle the response.
val stringRequest = StringRequest(Request.Method.GET, url,
         Response.Listener<String> { response ->
            // Do something with the response
        },
        Response.ErrorListener { error ->
            // Handle error
        })
val queue = MySingleton.getInstance(this.applicationContext).requestQueue
queue.add(stringRequest)



- 깃허브 주소 : https://github.com/google/volley

1. build.gradle(project)

dependencies {
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.4'
}


2. build.gradle(app)

plugins {
id 'com.google.android.gms.oss-licenses-plugin'
}
dependencies {
implementation 'com.google.android.gms:play-services-oss-licenses:17.0.0'
}


3. 액티비티 호출

startActivity(Intent(this, OssLicensesMenuActivity::class.java))
OssLicensesMenuActivity.setActivityTitle("화면 이름")



깃허브 주소 : https://github.com/google/play-services-plugins/tree/master/oss-licenses-plugin

'개발 > 안드로이드_Kotlin' 카테고리의 다른 글

[Kotlin] 문법 정리  (0) 2022.06.13
Volley 사용법  (0) 2022.06.12

[ksbm]연산 수식[/ksbm]
[ksbm]6,12,17,21,32,39[/ksbm]
[ksbm]로또 번호[/ksbm]
[ksbm]1062,20,31,32,40,41,45[/ksbm]
[ksbm]연금 번호[/ksbm]
[ksbm]153,9,7,7,0,3,8[/ksbm]

Step 1. 디스크 번호 확인

1. 명령 프롬프트(%windir%\system32\cmd.exe) 실행

2. "diskpart" 입력

3. "list disk"로 usb 디스크 번호 확인

diskpart에서 list disk 명령어 실행화면

  - 위 사진에서는 디스크가 4개 있고 각 디스크 번호는 0, 1, 2, 3 이다.

 

Step 2. USB 가상 디스크 파일 생성

1. 관리자 권한으로 명령 프롬프트(%windir%\system32\cmd.exe) 실행

2. 아래 명령어를 입력

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" internalcommands createrawvmdk -filename "D:\usb.vmdk" -rawdisk \\.\PhysicalDrive2

  - "D:usb.vmdk" : 저장 경로 및 파일명, 확장자(vmdk)이외는 원하는 경로 및 파일로 설정 가능

  - \\.\PhysicalDrive2 : 대상 디스크, Step 1에서 확인한 usb 디스크 번호에 맞게 뒤에 숫자를 수정

    (ex. 디스크 번호가 "디스크 3"이면 "\\.\PhysicalDrive3"으로 설정)

 

Step 3. 생성된 가상 디스크 파일 사용

1. 관리자 권한으로 VirtaulBox 실행

  - 권한(permission) 오류가 발생할 경우 관리자 권한으로 실행

2. 원하는 가상 시스템 [설정]-[저장소]에서 생성된 가상 디스크 파일을 추가

3. 저장 후 가상 시스템 부팅

[설정]-[저장소] 화면

 

    - 재부팅, USB 재삽입 이후에 오류가 발생하면 [파일]-[가상 미디어 관리자]에서

    등록된 가상 디스크 파일을 [등록해제]-[삭제]하고 위 과정을 반복해야됩니다.

'%' [[Index]':'] ['-'] [Width] ['.' Precision] ArgType
'%' starts the placeholder.
If you want to insert a literal 
% character, then you must insert two of them : %%.
Index ':' takes the Index-th element in the argument array as the element to insert.
If 
index is omitted, then the zeroth argument is taken.
'-'
tells Format to left-align the inserted text.
The default behaviour is to right-align inserted text.
This can only take effect if the 
Width element is also specified.
Width
the inserted string must have at least Width characters.
If not, the inserted string will be padded with spaces. By default, the string is left-padded, resulting in a right-aligned string.
This behaviour can be changed by the usage of the 
'-' character.
'.' Precision
Indicates the precision to be used when converting the argument.
The exact meaning of this parameter depends on 
ArgType.

 

- ArgType

D Decimal format.  format('%d', [-123]) -123
E Scientific format.  format('%e', [12345.678]) 1.23456780000000E+004
F Fixed point format. format('%f', [12345.678]) 12345.68
G General number format. format('%g', [12345.678]) 12345.678
M Currency format.  format('%n', [12345.678]) 12,345.68
N Number format. format('%m', [12345.678]) ₩12,346
P Pointer format. format('%p', [addr(text)]) 0019F35C
S String format. format('%s', ['Hello']) Hello
U Unsigned decimal format. format('%u', [123]) 123
X hexadecimal format.  format('%x', [140]) 8C

 

- 참고

https://www.freepascal.org/docs-html/rtl/sysutils/format.html

http://www.delphibasics.co.uk/RTL.asp?Name=format

 

'개발 > 델파이(라자루스)' 카테고리의 다른 글

[델파이]날짜/시간 출력  (0) 2021.08.26

Date and time formatting characters

Specifier Description Display
(ex. 2021-01-02 17:03:04)
c Formats date using shortdateformat and formats time using longtimeformat if the time is not zero. 2021-01-02 오후 5:03:04
d day of month 2
dd day of month (leading zero) 02
ddd day of week (abbreviation)
dddd day of week (full) 토요일
ddddd shortdateformat 2021-01-02
dddddd longdateformat 2021년 1월 2일 토요일
m month or minutes if preceded by h or hh specifiers. 1
mm month or minutes if preceded by h or hh specifiers, with leading zero. 01
mmm month (abbreviation) 1
mmmm month (full) 1월
y year (2 digits) 21
yy year (two digits) 21
yyyy year (with century) 2021
h hour 17
hh hour (leading zero) 17
n minute 3
nn minute (leading zero) 03
s second 4
ss second (leading zero) 04
z milliseconds 0
zzz milliseconds(leading zero) 000
am/pm use 12 hour clock and display am and pm accordingly pm
a/p use 12 hour clock and display a and p accordingly p
t shorttimeformat 오후 5:03
tt longtimeformat 오후 5:03:04

 

참고 : https://www.freepascal.org/docs-html/rtl/sysutils/formatchars.html

'개발 > 델파이(라자루스)' 카테고리의 다른 글

[델파이] Format  (0) 2021.08.27
DEC HEX BIN(7bit) Symbol Description
0 00 000 0000 NUL Null Character
1 01 000 0001 SOH Start of Header
2 02 000 0010 STX Start of Text
3 03 000 0011 ETX End of Text
4 04 000 0100 EOT End of Transmission
5 05 000 0101 ENQ Enquiry
6 06 000 0110 ACK Acknowledgment
7 07 000 0111 BEL Bell
8 08 000 1000 BS Backspace
9 09 000 1001 HT Horizontal Tab
10 0A 000 1010 LF Line feed
11 0B 000 1011 VT Vertical Tab
12 0C 000 1100 FF Form feed
13 0D 000 1101 CR Carriage return
14 0E 000 1110 SO Shift Out
15 0F 000 1111 SI Shift In
16 10 001 0000 DLE Data Link Escape
17 11 001 0001 DC1 Device Control 1
18 12 001 0010 DC2 Device Control 2
19 13 001 0011 DC3 Device Control 3
20 14 001 0100 DC4 Device Control 4
21 15 001 0101 NAK Negative Acknowledgement
22 16 001 0110 SYN Synchronous idle
23 17 001 0111 ETB End of Transmission Block
24 18 001 1000 CAN Cancel
25 19 001 1001 EM End of Medium
26 1A 001 1010 SUB Substitute
27 1B 001 1011 ESC Escape
28 1C 001 1100 FS File Separator
29 1D 001 1101 GS Group Separator
30 1E 001 1110 RS Record Separator
31 1F 001 1111 US Unit Separator
32 20 010 0000 SP Space
33 21 010 0001 !  
34 22 010 0010 "  
35 23 010 0011 #  
36 24 010 0100 $  
37 25 010 0101 %  
38 26 010 0110 &  
39 27 010 0111 '  
40 28 010 1000 (  
41 29 010 1001 )  
42 2A 010 1010 *  
43 2B 010 1011 +  
44 2C 010 1100 ,  
45 2D 010 1101 -  
46 2E 010 1110 .  
47 2F 010 1111 /  
48 30 011 0000 0  
49 31 011 0001 1  
50 32 011 0010 2  
51 33 011 0011 3  
52 34 011 0100 4  
53 35 011 0101 5  
54 36 011 0110 6  
55 37 011 0111 7  
56 38 011 1000 8  
57 39 011 1001 9  
58 3A 011 1010 :  
59 3B 011 1011 ;  
60 3C 011 1100 <  
61 3D 011 1101 =  
62 3E 011 1110 >  
63 3F 011 1111 ?  
64 40 100 0000 @  
65 41 100 0001 A  
66 42 100 0010 B  
67 43 100 0011 C  
68 44 100 0100 D  
69 45 100 0101 E  
70 46 100 0110 F  
71 47 100 0111 G  
72 48 100 1000 H  
73 49 100 1001 I  
74 4A 100 1010 J  
75 4B 100 1011 K  
76 4C 100 1100 L  
77 4D 100 1101 M  
78 4E 100 1110 N  
79 4F 100 1111 O  
80 50 101 0000 P  
81 51 101 0001 Q  
82 52 101 0010 R  
83 53 101 0011 S  
84 54 101 0100 T  
85 55 101 0101 U  
86 56 101 0110 V  
87 57 101 0111 W  
88 58 101 1000 X  
89 59 101 1001 Y  
90 5A 101 1010 Z  
91 5B 101 1011 [  
92 5C 101 1100 \  
93 5D 101 1101 ]  
94 5E 101 1110 ^  
95 5F 101 1111 _  
96 60 110 0000 `  
97 61 110 0001 a  
98 62 110 0010 b  
99 63 110 0011 c  
100 64 110 0100 d  
101 65 110 0101 e  
102 66 110 0110 f  
103 67 110 0111 g  
104 68 110 1000 h  
105 69 110 1001 i  
106 6A 110 1010 j  
107 6B 110 1011 k  
108 6C 110 1100 l  
109 6D 110 1101 m  
110 6E 110 1110 n  
111 6F 110 1111 o  
112 70 111 0000 p  
113 71 111 0001 q  
114 72 111 0010 r  
115 73 111 0011 s  
116 74 111 0100 t  
117 75 111 0101 u  
118 76 111 0110 v  
119 77 111 0111 w  
120 78 111 1000 x  
121 79 111 1001 y  
122 7A 111 1010 z  
123 7B 111 1011 {  
124 7C 111 1100 |  
125 7D 111 1101 }  
126 7E 111 1110 ~  
127 7F 111 1111 DEL Delete

 

 

참고 : https://ko.wikipedia.org/wiki/ASCII

- 오류메세지 : 

[Window Title]
Error


[Content]
Unable to load project "프로젝트 경로"
MSBuildToolsPath is not specified for the ToolsVersion "14.0" defined at 

"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0", 

or the value specified evaluates to the empty string.

 

- 해결방법 :

  1. 레지스트리에서 해당 항목 삭제

    - [실행(윈도우키 + r)]->"regedit 입력" ->

      "경로 이동 : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\" ->

      "14.0 항목(하위항목 포함) 삭제"

- 오류메세지 : "법적 이름이 계좌 이름과 일치하지 않음"

 

- 해결방법 :

  1. 애드센스 결제 프로필 이름 변경

    - [지급]->[설정관리]->[결제 프로필]->[이름 및 주소] 옆에 수정 버튼 클릭->

      [이름] 항목에서 이름 수정 후 [저장] 버튼 클릭

 

  2. 구글 계정이름 변경(1번 시도에서 안될 경우)

    (https://myaccount.google.com/personal-info)

[지급]->[설정관리]
[결제 프로필]->[이름 및 주소]
[이름]->[저장]

 

○ 화면 캡쳐 명령어 

  - /sdcard/Pictures/scree.png는 임의 경로 입니다. 저장하고 싶은 경로를 입력하시면 됩니다.

adb shell screencap -p /sdcard/Pictures/screen.png

  - screencap 사용법

usage: screencap [-hp] [-d display-id] [FILENAME]
   -h: this message
   -p: save the file as a png.
   -d: specify the display id to capture, default 0.
If FILENAME ends with .png it will be saved as a png.
If FILENAME is not given, the results will be printed to stdout.

 

참고 사이트

developer.android.com/studio/command-line/adb?hl=ko

 

Android 디버그 브리지(adb)  |  Android 개발자  |  Android Developers

기기와 통신할 수 있는 다목적 명령줄 도구인 Android 디버그 브리지를 알아보세요.

developer.android.com

 

- 오류 메세지 : 

  1. 컴퓨터에 api-ms-win-crt-runtime-l1-1-0.dll이(가) 없어 프로그램을 시작할 수없습니다. 프로그램을 다시 설치하여 이 문제를 해결하십시오.

  2. 컴퓨터에 VCRUNTIME140.dll(가) 없어 프로그램을 시작할 수없습니다. 프로그램을 다시 설치하여 이 문제를 해결하십시오.

 

- 해결 방법 : Microsoft Visual C++ 2015 재배포 가능 패키지 설치

- 다운로드 : keyserbetzman.tistory.com/30

 

 

 

- 웹사이트 다운로드

www.microsoft.com/ko-kr/download/details.aspx?id=53840

 

Microsoft Visual C++ 2015 재배포 가능 패키지 Update 3

이 업데이트는 Microsoft Visual C++ 2015 재배포 가능 패키지(x86) 14.0.23504에 대한 일련의 누적 기능 추가 및 버그 수정 중 최신 버전입니다.

www.microsoft.com

- 파일 다운로드

vc_redist.x86.z01
10.00MB
vc_redist.x86.zip
3.58MB
vc_redist.x64.z01
10.00MB
vc_redist.x64.zip
4.39MB

 

- 오류 메세지 : 인증서 체인은 처리되었지만, 신뢰 공급자에 의해 신뢰되지 않는 루트 인증서에서 중지되었습니다.

 

- 해결 방법 : KB2813430 윈도우 패치 설치

 

다운로드 : keyserbetzman.tistory.com/28

 

[윈도우 패치] KB2813430

[윈도우 패치] KB2813430 - 마이크로소프트 사이트에서 직접 다운로드 Window7 x86(32bit) : www.microsoft.com/ko-kr/download/details.aspx?id=39110 Windows 7 용 보안 업데이트(KB2813430) Microsoft 소프..

keyserbetzman.tistory.com

※ 설치될 OS에 해당하는 버전이 없으면 찾아서 설치해야합니다.

 패치가 설치된 이후에 동일한 문제가 발생한다면 패치 설치 후 인터넷을 연결하고 닷넷 설치를 시도해 보세요.

 

[윈도우 패치] KB2813430

 

- 마이크로소프트 사이트에서 직접 다운로드 

Window7 x86(32bit) : www.microsoft.com/ko-kr/download/details.aspx?id=39110

 

Windows 7 용 보안 업데이트(KB2813430)

Microsoft 소프트웨어 제품에서 시스템에 영향을 줄 수 있는 보안 문제가 발견되었습니다.

www.microsoft.com

Window7 x64(64bit) : www.microsoft.com/ko-kr/download/details.aspx?id=39115

 

x64 기반 시스템용 Windows 7 보안 업데이트(KB2813430)

Microsoft 소프트웨어 제품에서 시스템에 영향을 줄 수 있는 보안 문제가 발견되었습니다.

www.microsoft.com

- 패치파일 다운로드

Windows6.1-KB2813430-x64.7z
3.80MB
Windows6.1-KB2813430-x86.7z
2.30MB

Step 1. 검색창 실행 (단축키 : Ctrl + H)

Step 2. File Search 탭 선택

Step 3. \"[^"\u0080-\uffff;\\n]*[\u0080-\uffff][^";\\n]*\" 입력

Step 4. Regular expression 체크

Step 5. Search 클릭

 

개인정보 처리 방침


  본 "개인정보 처리 방침"은 "KeySergioBetzMan"가 배포하는 "안드로이드 어플리케이션"(이하 "앱") 사용을 위하여 요청하는 "민감한 권한" 및 "사용자 정보"에 대한 관리 및 운영에 관한 내용입니다.

1. 사용하는 "민감한 권한" 및 "사용자 정보"와 이의 이용 목적
  1) android.permission.CAMERA
    손전등 등의 "앱"에서 카메라 플래시의 사용 등의 기능을 수행하기 위하여 사용.
  2)android.permission.INTERNET
    손전등 등의 "앱"에서 광고 API 동작 등의 기능을 수행하기 위하여 사용.


2. "민감한 권한" 및 "사용자 정보"에 대한 수집
  "KeySergioBetzMan"에서는 사용자가 "앱"을 사용함에 있어 서비스의 이용 내역을 포함한 어떠한 개인 정보도 "KeySergioBetzMan"이 운영/관리하는 서버로의 수집/전송/저장 하지 않습니다.

3. "민감한 권한" 및 "사용자 정보"에 대한 제3자 제공 및 위탁
  "KeySergioBetzMan"에서는 정보 이용 목적의 범위를 넘어 사용하거나 제3자에게 제공 또는 위탁하지 않습니다.

4. "개인정보 처리 방침"의 적용 제외
  "KeySergioBetzMan"은 무료 배포되는 "앱"에서 수익의 창출을 위하여 광고를 게제할 수 있습니다. 이 경우 "KeySergioBetzMan"은 광고 대행사의 광고 API와 광고를 통하여 링크된 다른 회사의 웹사이트, 어플리케이션 및 자료에 대하여 통제권이 없을 뿐만 아니라 이들이 개인정보를 수집하는 행위에 대하여 "KeySergioBetzMan"의 "개인정보처리방침"이 적용되지 않습니다. 따라서, "KeySergioBetzMan"이 배포한 "앱" 포함하고 있는 광고를 클릭하여 광고를 통하여 링크된 다른 회사의 웹사이트, 어플리케이션 및 자료 페이지로 이동한 경우에는 새로 방문한 사이트 또는 광고에 포함된 개인정보 처리 방침을 반드시 확인하시기 바랍니다.

5. 기타
  본 "개인정보 처리 방침"은 2020년 10월 27일부터 시행됩니다.

 

6. 참고사항

  광고 API별 정책 :

    - AdMob 및 애드센스 프로그램 정책 : support.google.com/admob/answer/6128543?hl=ko&ref_topic=9756841&visit_id=637393771242910577-2257526952&rd=1

 네트워크를 관리하기 위해서는 어떤 방법이 필요할까요? 우선 해당 네트워크의 장비가 살아 있는지 판단해야 합니다. 장비가 살아 있는지 여부를 판단 할 수 있는 것이 Ping(ICMP)라는 프로토콜이 있습니다. 단순히 장비가 살아있다는 정보 뿐만아니라 장비의 정보을 알고 싶을 땐 어떤 방법을 사용할까요? 방법이라 여러가지 있겠지만 여기서는 그 방법 중 하나로 SNMP라는 프로토콜에 대해서 알아보려고 합니다. SNMP를 이용하여 장비 정보 수집 뿐만 아니라 설정도 가능합니다. 자세한 내용 보다는 간단한 사용법을 알아보려고 합니다. 기본적으로 제가 알고 있거나 검색한 내용을 기반으로 참고 작성하는 것이기 때문에 잘 못된 부분이 있더라도 양해 부탁 드립니다.




SNMP 버전은 SNMPv1, SNMPv2c, SNMPv3가 있습니다. SNMP 통신을 하기위해서는 기본적으로 Community String이 일치해야 합니다. 기본적으로 Public으로 되어 있으나 보안상 다른 이름을 사용하는 것이 적절하다고 합니다. SNMP로 장비에 데이터를 요청하기 위해서는 OID(Object ID)를 알고 있어야 합니다. OID는 MIB(Management Information Base)파일에 정의 되어 있습니다. 여기에는 OID와 그 OID값의 의미가 정의되어 있습니다.


기본 OID 정보


 OID

 OID Name

설명 

1.3.6.1.2.1.1.1

 sysDescr

 A textual description of the entity.

1.3.6.1.2.1.1.2

 sysObjectID

 The vendor's authoritative identification of the network management subsystem contained in the entity.

1.3.6.1.2.1.1.3

 sysUpTime

 The time (in hundredths of a second) since the network management portion of the system was last re-initialized.

1.3.6.1.2.1.1.4

 sysContact

 The textual identification of the contact person for this managed node, together with information on how to contact this person.

1.3.6.1.2.1.1.5

 sysName

 An administratively-assigned name for this managed node. By convention, this is the node's fully-qualified domain name.

1.3.6.1.2.1.1.6

 sysLocation

 The physical location of this node (e.g., 'telephone closet, 3rd floor').

1.3.6.1.2.1.1.7

 sysServices

 A value which indicates the set of services that this entity primarily offers.



기본적으로 SNMP 시스템 OID만 적어봤는데요. MIB 파일을 보면 더 많은 내용이 있습니다. 위의 OID를 가지고 각 장비에 SNMP값을 요청하면해당 정보를 가져옵니다. 혹시 OID정보를 가져오지 못한다면 OID뒤에 ".0"를 더 붙여서 날려보세요. 참고로 OID는 하나의 값을 가진 경우도 있지만 하나의 OID에 ".0", ".1", ".2"처럼 붙여진 경우도 있는데요. 정적 OID, 동적 OID라는 구분이 있는데요 자세한 내용은 MIB 파일에 정의되어 있습니다.

SNMP는 데이터를 요청해서 정보를 수집하는데요. 요청하지 않아도 수집되는 정보가 있습니다. 트랩이라는 것인데요. 트랩은 SNMP 이벤트입니다. 장비에 설정된 이벤트 정보가 날라오는데요. 이것도 역시 OID를 가지고 있고 MIB에 정의가 되어 있습니다. SNMP는 기본적으로 UDP를 사용하며 161, 162포트를 사용합니다. 161번은 기본 SNMP 통신 포트, 162번은 SNMP 트랩 포트 입니다.

구글에서 개발관련 검색을 하면 소스코드를 볼 수 있는데요. 그 중에서 소스코드가 가독성이 높게 표시되는 경우를 확인 할 수 있습니다. 저도 어떻게 하면 저렇게 보일까 검색을 해보니 syntaxhighlighter라는 플러그인이었습니다. 그래서 저도 한번 적용해 보기로 했습니다. 여러 블로그에 링크된 다운로드 페이지의 경우 개발자 홈페이지에 있는 다운로드 링크가 걸려 있는데요. 링크가 연결이 안되더라구요. 개발자 홈페이지에서는 새로운 다운로드 페이지로 연결해 줍니다. 여기에서 다운로드 받을 수 있는 것이 syntaxhighlighter v4 입니다. 근데 여러 블로그에 올려진 내용은 syntaxhighlighter v3 기준이라서요. 잘모르겠지만 syntaxhighlighter v4은 내부 파일들도 다른뿐만 아니라 사용법도 달라진거 같아요. 저도 다른 블로그처럼 syntaxhighlighter v3 버전으로 해볼려고 합니다. 먼저 다운로드 받을 파일은 여기 있습니다.

syntaxhighlighter_3.0.83.zip
다운로드

프로젝트 URL

https://github.com/syntaxhighlighter/syntaxhighlighter/releases

 

Releases · syntaxhighlighter/syntaxhighlighter

SyntaxHighlighter is a fully functional self-contained code syntax highlighter developed in JavaScript. - syntaxhighlighter/syntaxhighlighter

github.com

 

플러그인 업로드

 

 

 

1. 압축파일의 압축을 풀면 scripts, styles 폴더가 있는지 확인합니다.

2. 티스토리 관리 화면에서 좌측에 [꾸미기]->[HTML/CSS 편집]를 클릭 합니다.

3. 우측 상단에 파일 업로드 항목을 클릭 합니다.

4. 우측 하단에 추가 버튼을 클릭합니다.

  추가 버튼을 누르면 파일 선택창이 뜨는데요.  그 화면에서 scripts, styles 폴더에 있는 모든 파일을 선택해서 업로드하면 플러그인 업로드가 완료됩니다. 참고로 파일들을 다중으로 선택해서 추가 가능합니다.

 

플러그인 적용하기

 

 

1. 티스토리 관리 화면에서 좌측에 [꾸미기]->[HTML/CSS 편집]를 클릭 합니다.

2. 우측 상단에 HTML 항목을 클릭 합니다.

3. 아래 소스코드에서 아래와 같이 수정해 줍니다.

(HTML에대해서 잘 모르신다면 다른 소스가 수정되지 않도록 조심하세요.)

</head>바로 위에 아래 소스를 추가하세요.

</head>의 위치는 Ctrl + F 로 찾으시면 됩니다.

 

 

<span style="font-family: Tahoma;">  
<script type="text/javascript" src="./images/shCore.js"></script> 
<script type="text/javascript" src="./images/shLegacy.js"></script> 
<script type="text/javascript" src="./images/shBrushBash.js"></script> 
<script type="text/javascript" src="./images/shBrushCpp.js"></script> 
<script type="text/javascript" src="./images/shBrushCSharp.js"></script> 
<script type="text/javascript" src="./images/shBrushCss.js"></script> 
<script type="text/javascript" src="./images/shBrushDelphi.js"></script> 
<script type="text/javascript" src="./images/shBrushDiff.js"></script> 
<script type="text/javascript" src="./images/shBrushGroovy.js"></script> 
<script type="text/javascript" src="./images/shBrushJava.js"></script> 
<script type="text/javascript" src="./images/shBrushJScript.js"></script> 
<script type="text/javascript" src="./images/shBrushPhp.js"></script> 
<script type="text/javascript" src="./images/shBrushPlain.js"></script> 
<script type="text/javascript" src="./images/shBrushPython.js"></script> 
<script type="text/javascript" src="./images/shBrushRuby.js"></script> 
<script type="text/javascript" src="./images/shBrushScala.js"></script> 
<script type="text/javascript" src="./images/shBrushSql.js"></script> 
<script type="text/javascript" src="./images/shBrushVb.js"></script> 
<script type="text/javascript" src="./images/shBrushXml.js"></script> 
<link type="text/css" rel="stylesheet" href="./images/shCore.css"> 
<link type="text/css" rel="stylesheet" href="./images/shThemeDefault.css"> 
<script type="text/javascript"> SyntaxHighlighter.all(); </script> 
</span>

 

<body>를 아래와 같이 변경해 주세요. 저 같은 경우 </head>바로 아래 있었습니다.

<body Onload="dp.SyntaxHighlighter.HighlightAll('code');">

 

4. 마지막으로 저장 버튼을 누르시면 됩니다. 

 

 

플러그인 사용하기

 

 

플러그인은 글을 작성하실 때 사용하실 수 있는데요. 소스코드를 입력하시고 HTML모드로 변경하신 다음에 해당 소스코드 가장 처음에

 

<pre name="code" class="brush:xml;">

 

를 추가하시고 마지막에는

 

</pre>

 

를 추가하시면 적용됩니다. 그리고 brush: 옆에는 적용할 언어를 입력하시면됩니다.

 

PC 및 모바일 모두 적용하기 위해서는 textarea가 아닌 pre를 사용해야합니다.

티스토리 복사하면 자동으로 <pre>항목이 변경되므로 "<pre name="code" class="brush:xml;">"

와 동일한지 확인이 필요합니다. 또한 <pre>항목 내부에 <code>,</code>항목이 추가되므로

"HTML"모드에서 <code>,</code>항목을 삭제해야 정상적으로 동작합니다.

 

언어 관련 참조 주소

http://alexgorbatchev.com/SyntaxHighlighter/manual/brushes/

 

 

 

Brush name
Brush aliases
File name
ActionScript3
as3, actionscript3
shBrushAS3.js
Bash/shell
bash, shell
shBrushBash.js
ColdFusion
cf, coldfusion
shBrushColdFusion.js
C#
c-sharp, csharp
shBrushCSharp.js
C++
cpp, c
shBrushCpp.js
CSS
css
shBrushCss.js
Delphi
delphi, pas, pascal
shBrushDelphi.js
Diff
diff, patch
shBrushDiff.js
Erlang
erl, erlang
shBrushErlang.js
Groovy
groovy
shBrushGroovy.js
JavaScript
js, jscript, javascript
shBrushJScript.js
Java
java
shBrushJava.js
JavaFX
jfx, javafx
shBrushJavaFX.js
Perl
perl, pl
shBrushPerl.js
PHP
php
shBrushPhp.js
Plain Text
plain, text
shBrushPlain.js
PowerShell
ps, powershell
shBrushPowerShell.js
Python
py, python
shBrushPython.js
Ruby
rails, ror, ruby
shBrushRuby.js
Scala
scala
shBrushScala.js
SQL
sql
shBrushSql.js
Visual Basic
vb, vbnet
shBrushVb.js
XML
xml, xhtml, xslt, html, xhtml
shBrushXml.js

 

 

[ 주의사항 ( 프로그램 사용 규약) ]

※ 이 프로그램을 다운로드, 실행, 설치하는 행위는 프로그램 사용 규약에 동의함을 의미합니다.

※ 이 프로그램을 사용함으로써 발생하는 모든 문제의 책임은 사용자에게 있습니다.

 

'소프트웨어 > 자료' 카테고리의 다른 글

복권 번호  (0) 2022.06.12
ASCII(아스키)  (0) 2021.08.25
[윈도우SDK] Microsoft Visual C++ 2015 재배포 가능 패키지  (0) 2021.01.10
[윈도우 패치] KB2813430  (0) 2021.01.10

안녕하세요.


 제 블로그에 방문해주셔서 감사합니다. 이 블로그는 2017년 05월 14일에 시작했습니다. 그 시작을 기념하 이 글을 쓰게 되었습니다.

 처음 블로그를 시작하고자 생각하게 되었을 때 티스토리에 블로그를 시작해 보기로 마음먹었습니다. 흔한 사이트들처럼 단순하게 회원가입을 하여 블로그를 시작하면 되겠지 생각했습니다. 막상 티스토리에 가입하려고 하니 가입을 위해서는 초대장이 필요했습니다. 이것은 게임 퀘스트를 받는 느낌을 받았습니다. 초대장 받기 퀘스트는 Lv.1에게 Lv.99 보스를 잡으라는 것 같았습니다. 그만큼 너무 어려웠어요. 이렇게까지 해야하나하는 생각도 들었습니다. 며칠동안 초대장 신청을 하고 초대장을 받지 못해서 낙심했으나 마음을 비우고 시간 날때마다 접속해서 초대장을 구걸(?)했습니다. 일주일 정도지나서 결국에는 hi.anna님이 초대장을 주셔서 블로그를 시작하게 되었습니다.

(hi.anna님 잘쓸게요. 감사합니다.)


이렇게 어렵게 시작한 블로그지만, 무엇부터 해야할지 모르겠네요. 우선, 제 블로그에서는 소프트웨어 관련해서 블로그를 쓸려고 합니다. 아직 전문적인 주제는 없지만 여러가지 소프트웨어에 대한 정보를 블로그에 올릴려고 합니다.


향후에는 전문적인 블로그로 거듭나기를 기원하면서 글을 마칩니다.



감사합니다.

 

+ Recent posts