XNUMXλ…„ λ™μ•ˆ μ§„ν–‰λœ ν•˜λ‚˜μ˜ μž‘μ€ ν”„λ‘œμ νŠΈ 이야기(BIRMA.NET에 λŒ€ν•΄ 처음이자 μ†”μ§ν•˜κ²Œ 직접 접함)

이 ν”„λ‘œμ νŠΈμ˜ 탄생은 2007λ…„ 말 μ–΄λ”˜κ°€μ— λ‚˜μ—κ²Œ λ– μ˜€λ₯Έ μž‘μ€ μ•„μ΄λ””μ–΄λ‘œ 간주될 수 있으며, μ΄λŠ” 뢈과 12λ…„ 후에 μ΅œμ’… ν˜•νƒœλ₯Ό 찾을 운λͺ…μ΄μ—ˆμŠ΅λ‹ˆλ‹€(λ¬Όλ‘  ν˜„μž¬ κ΅¬ν˜„μ€ κ·Έλ ‡μ§€λ§Œ, μž‘μ„±μžλ‹˜μ€ 맀우 λ§Œμ‘±ν•˜μ‹­λ‹ˆλ‹€.)

λͺ¨λ“  것은 λ„μ„œκ΄€μ—μ„œ λ‹Ήμ‹œμ˜ 곡식 업무λ₯Ό μˆ˜ν–‰ν•˜λŠ” κ³Όμ •μ—μ„œ λ„μ„œ(및 μŒμ•…) κ°„ν–‰λ¬Ό λͺ©μ°¨μ˜ μŠ€μΊ”λœ ν…μŠ€νŠΈμ—μ„œ 데이터λ₯Ό κΈ°μ‘΄ λ°μ΄ν„°λ² μ΄μŠ€μ— μž…λ ₯ν•˜λŠ” 과정이, λΆ„λͺ…νžˆ 기사 μž‘μ„±μžμ˜ 이름(기사 λͺ¨μŒμ— λŒ€ν•΄ μ΄μ•ΌκΈ°ν•˜λŠ” 경우), 제λͺ©κ³Ό 같이 μž…λ ₯에 ν•„μš”ν•œ λͺ¨λ“  λ°μ΄ν„°μ˜ μ§ˆμ„œμ™€ λ°˜λ³΅μ„±μ˜ νŠΉμ„±μ„ ν™œμš©ν•˜μ—¬ μƒλ‹Ήνžˆ λ‹¨μˆœν™”λ˜κ³  μžλ™ν™”λ  수 μžˆμŠ΅λ‹ˆλ‹€. 기사(λ˜λŠ” λͺ©μ°¨μ— 반영된 λΆ€μ œ)와 ν˜„μž¬ λͺ©μ°¨ ν•­λͺ©μ˜ νŽ˜μ΄μ§€ λ²ˆν˜Έμž…λ‹ˆλ‹€. μ²˜μŒμ—λŠ” 이 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 데 μ ν•©ν•œ μ‹œμŠ€ν…œμ„ μΈν„°λ„·μ—μ„œ μ‰½κ²Œ 찾을 수 μžˆμ„ 것이라고 μ‹€μ§ˆμ μœΌλ‘œ ν™•μ‹ ν–ˆμŠ΅λ‹ˆλ‹€. 그런 ν”„λ‘œμ νŠΈλ₯Ό 찾을 수 μ—†λ‹€λŠ” 사싀에 λ†€λžμ„ λ•Œ λ‚˜λŠ” 그것을 직접 κ΅¬ν˜„ν•΄λ³΄κΈ°λ‘œ κ²°μ •ν–ˆμŠ΅λ‹ˆλ‹€.

κ½€ 짧은 μ‹œκ°„μ΄ μ§€λ‚œ ν›„, 첫 번째 ν”„λ‘œν† νƒ€μž…μ΄ μž‘λ™ν•˜κΈ° μ‹œμž‘ν–ˆκ³  μ €λŠ” μ¦‰μ‹œ 일상 ν™œλ™μ— μ‚¬μš©ν•˜κΈ° μ‹œμž‘ν–ˆμœΌλ©° λ™μ‹œμ— 제 손에 λ“€μ–΄μ˜¨ λͺ¨λ“  μ˜ˆμ œμ—μ„œ λ””λ²„κΉ…ν–ˆμŠ΅λ‹ˆλ‹€. λ‹€ν–‰μŠ€λŸ½κ²Œλ„ μ œκ°€ ν”„λ‘œκ·Έλž˜λ¨Έκ°€ μ•„λ‹ˆμ—ˆλ˜ 일반적인 직μž₯μ—μ„œλŠ” λˆˆμ— λ„λŠ” "λ‹€μš΄νƒ€μž„"을 κ²ͺμœΌλ©΄μ„œλ„ μ—¬μ „νžˆ 제 μž‘μ—…μ„ μ§‘μ€‘μ μœΌλ‘œ λ””λ²„κΉ…ν•˜κ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” ν˜„μž¬ ν˜„μ‹€μ—μ„œλŠ” 거의 상상할 수 μ—†λŠ” μΌμž…λ‹ˆλ‹€. ν•˜λ£¨ λ™μ•ˆ μˆ˜ν–‰λœ μž‘μ—…μ— λŒ€ν•œ 일일 λ³΄κ³ μ„œμž…λ‹ˆλ‹€. ν”„λ‘œκ·Έλž¨μ„ λ‹€λ“¬λŠ” κ³Όμ •μ—λŠ” 총 μ•½ 8년이 κ±Έλ Έμ§€λ§Œ κ·Έ 후에도 κ²°κ³Όκ°€ μ™„μ „νžˆ μ„±κ³΅μ μ΄λΌκ³ λŠ” ν•  수 μ—†μ—ˆμŠ΅λ‹ˆλ‹€. μ²˜μŒμ—λŠ” κ΅¬ν˜„ν•˜κΈ°μ— μ™„μ „νžˆ λͺ…ν™•ν•˜μ§€ μ•Šμ€ λ„ˆλ¬΄ λ§Žμ€ λ‹€μ–‘ν•œ κ°œλ…μ΄ μ œμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. κ±΄λ„ˆλ›°λ‹€; μš”μ†Œμ˜ ν–₯ν›„ 보기(이전 μš”μ†Œλ₯Ό 검색 결과둜 λŒ€μ²΄ν•˜κΈ° μœ„ν•œ λͺ©μ ) (κ³ μœ ν•œ ꡬ문이 μžˆλŠ”) μ •κ·œμ‹κ³Ό 같은 것을 κ΅¬ν˜„ν•˜λ €λŠ” 우리의 μ‹œλ„λ„ λ§ˆμ°¬κ°€μ§€μž…λ‹ˆλ‹€. κ·Έ μ „μ—λŠ” ν”„λ‘œκ·Έλž˜λ°μ„ μ–΄λŠ 정도(κ·Έ 이상은 μ•„λ‹ˆλ”λΌλ„ μ•½ XNUMXλ…„ λ™μ•ˆ) ν¬κΈ°ν–ˆκΈ° λ•Œλ¬Έμ— ν₯λ―Έλ‘­κ³  ν•„μš”ν•œ μž‘μ—…μ— λ‚΄ κΈ°μˆ μ„ μ μš©ν•  수 μžˆλŠ” μƒˆλ‘œμš΄ κΈ°νšŒκ°€ λ‚΄ 관심을 μ™„μ „νžˆ μ‚¬λ‘œμž‘μ•˜μŠ΅λ‹ˆλ‹€. λ‚΄ μž…μž₯μ—μ„œλŠ” λ””μžμΈμ— λŒ€ν•œ λͺ…ν™•ν•œ μ ‘κ·Ό 방식이 μ—†λŠ” μƒν™©μ—μ„œ κ²°κ³Ό μ†ŒμŠ€ μ½”λ“œκ°€ C++의 일뢀 μš”μ†Œμ™€ μ‹œκ°μ  ν”„λ‘œκ·Έλž˜λ° μΈ‘λ©΄(μ²˜μŒμ—λŠ” Borland C++ Builder와 같은 λ””μžμΈ μ‹œμŠ€ν…œμ„ μ‚¬μš©ν•˜κΈ°λ‘œ κ²°μ •ν–ˆμŠ΅λ‹ˆλ‹€. "거의 Delphiμ΄μ§€λ§Œ Cμž…λ‹ˆλ‹€." κ·ΈλŸ¬λ‚˜ 이 λͺ¨λ“  것이 ꢁ극적으둜 우리 λ„μ„œκ΄€μ˜ 일상 ν™œλ™μ„ μžλ™ν™”ν•˜λŠ” 데 결싀을 λ§Ίμ—ˆμŠ΅λ‹ˆλ‹€.

λ™μ‹œμ— ν˜Ήμ‹œλΌλ„ μ „λ¬Έ μ†Œν”„νŠΈμ›¨μ–΄ 개발자λ₯Ό μ–‘μ„±ν•˜λŠ” 과정을 μˆ˜κ°•ν•˜κΈ°λ‘œ κ²°μ •ν–ˆμŠ΅λ‹ˆλ‹€. κ±°κΈ°μ—μ„œ "ν”„λ‘œκ·Έλž˜λ¨Έκ°€ λ˜λŠ” 것"을 μ²˜μŒλΆ€ν„° λ°°μš°λŠ” 것이 μ‹€μ œλ‘œ κ°€λŠ₯ν•œμ§€λŠ” λͺ¨λ₯΄κ² μ§€λ§Œ, κ·Έ λ‹Ήμ‹œ 이미 가지고 있던 κΈ°μˆ μ„ κ³ λ €ν•˜λ©΄ κ·Έ λ‹Ήμ‹œμ— 더 관련성이 높은 기술, 즉 .NET κ°œλ°œμ„ μœ„ν•œ C#, Visual Studio 및 Java, HTML, SQLκ³Ό κ΄€λ ¨λœ 일뢀 기술이 μžˆμŠ΅λ‹ˆλ‹€. 전체 κ΅μœ‘μ—λŠ” 총 XNUMX년이 κ±Έλ Έκ³ , λ‚΄ 또 λ‹€λ₯Έ ν”„λ‘œμ νŠΈμ˜ 좜발점이 λ˜μ—ˆμœΌλ©°, κ²°κ΅­ λͺ‡ 년에 걸쳐 μ§„ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ΄λŠ” λ³„λ„μ˜ μΆœνŒλ¬Όμ— λŒ€ν•œ μ£Όμ œμž…λ‹ˆλ‹€. μ—¬κΈ°μ—μ„œλŠ” ν•„μš”ν•œ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λŠ” C# 및 WinFormsμ—μ„œ 본격적인 μ°½ μ‘μš© ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“€κΈ° μœ„ν•΄ μ„€λͺ…λœ ν”„λ‘œμ νŠΈμ—μ„œ 이미 μˆ˜ν–‰ν•œ κ°œλ°œμ„ μ μš©ν•˜κ³  이λ₯Ό 기반으둜 μ‚¬μš©ν•˜λ €κ³  μ‹œλ„ν–ˆλ‹€λŠ” 점을 μ–ΈκΈ‰ν•˜λŠ” 것이 μ μ ˆν•  κ²ƒμž…λ‹ˆλ‹€. λ‹€κ°€μ˜€λŠ” μ‘Έμ—…μž₯ ν”„λ‘œμ νŠΈ.
μ‹œκ°„μ΄ 지남에 따라이 μ•„μ΄λ””μ–΄λŠ” "LIBKOM"및 "CRIMEA"와 같은 λ‹€μ–‘ν•œ λ„μ„œκ΄€ λŒ€ν‘œκ°€ μ°Έμ—¬ν•˜λŠ” μ—°λ‘€ νšŒμ˜μ—μ„œ ν‘œλͺ… 될 κ°€μΉ˜κ°€ μžˆλ‹€κ³  μƒκ°λ˜κΈ° μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€. μ•„μ΄λ””μ–΄λŠ” κ·Έλ ‡μŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ λ‹Ήμ‹œμ—λŠ” κ΅¬ν˜„ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. 그런 λ‹€μŒ λˆ„κ΅°κ°€κ°€ 더 유λŠ₯ν•œ μ ‘κ·Ό 방식을 μ‚¬μš©ν•˜μ—¬ 그것을 λ‹€μ‹œ μž‘μ„±ν•˜κΈ°λ₯Ό λ°”λžμŠ΅λ‹ˆλ‹€. μ–΄λ–€ μ‹μœΌλ‘œλ“  2013λ…„κΉŒμ§€ λ‚˜λŠ” μ˜ˆλΉ„ μž‘μ—…μ— λŒ€ν•œ λ³΄κ³ μ„œλ₯Ό μž‘μ„±ν•˜μ—¬ 컨퍼런슀 μ°Έμ—¬λ₯Ό μœ„ν•œ 보쑰금 μ‹ μ²­μ„œμ™€ ν•¨κ»˜ 컨퍼런슀 μ‘°μ§μœ„μ›νšŒμ— λ³΄λ‚΄κΈ°λ‘œ κ²°μ •ν–ˆμŠ΅λ‹ˆλ‹€. λ‹€μ†Œ λ†€λžκ²Œλ„ λ‚΄ μ‹ μ²­μ„œλŠ” μŠΉμΈλ˜μ—ˆκ³  μ»¨νΌλŸ°μŠ€μ—μ„œ λ°œν‘œν•  μ€€λΉ„λ₯Ό ν•˜κΈ° μœ„ν•΄ ν”„λ‘œμ νŠΈλ₯Ό 일뢀 κ°œμ„ ν•˜κΈ° μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€.

κ·Έ 무렡 ν”„λ‘œμ νŠΈλŠ” 이미 BIRMAλΌλŠ” μƒˆ 이름을 λ°›μ•˜μœΌλ©° λ‹€μ–‘ν•œ μΆ”κ°€ κΈ°λŠ₯(μ™„μ „νžˆ κ΅¬ν˜„λ˜μ§€λŠ” μ•Šμ•˜μ§€λ§Œ μ˜ˆμƒλ¨)을 νšλ“ν–ˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“  μ„ΈλΆ€μ •λ³΄λŠ” λ‚΄ λ³΄κ³ μ„œμ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€..

μ†”μ§νžˆ λ§ν•΄μ„œ BIRMA 2013을 μ™„μ „ν•˜λ‹€κ³  λ§ν•˜κΈ°λŠ” μ–΄λ €μ› μŠ΅λ‹ˆλ‹€. μ†”μ§νžˆ λ§ν•˜λ©΄, 그것은 κΈ‰ν•˜κ²Œ λ§Œλ“  맀우 ν•΄ν‚Ήλœ κ³΅μ˜ˆν’ˆμ΄μ—ˆμŠ΅λ‹ˆλ‹€. μ½”λ“œ μΈ‘λ©΄μ—μ„œλŠ” IRBIS 64 ν˜•μ‹ μ–Έμ–΄(μ‹€μ œλ‘œ ISIS μ‹œμŠ€ν…œλ„ 포함)λ₯Ό μ—°μƒμ‹œν‚€λŠ” μΌμ’…μ˜ νŒŒμ„œμš© 톡합 ꡬ문을 μƒμ„±ν•˜λ €λŠ” λ‹€μ†Œ 무기λ ₯ν•œ μ‹œλ„λ₯Ό μ œμ™Έν•˜κ³ λŠ” 사싀상 νŠΉλ³„ν•œ ν˜μ‹ μ΄ μ „ν˜€ μ—†μ—ˆμŠ΅λ‹ˆλ‹€. μˆœν™˜ ꡬ쑰둜 κ΄„ν˜Έλ₯Ό μ‚¬μš©ν•˜λŠ” 경우(λ‹Ήμ‹œμ—λŠ” κ½€ λ©‹μ Έ 보인닀고 μƒκ°ν•œ 이유) νŒŒμ„œλŠ” 절망적으둜 μ μ ˆν•œ μœ ν˜•μ˜ κ΄„ν˜Έ 원을 λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€(κ΄„ν˜ΈλŠ” 또 λ‹€λ₯Έ 역할도 μˆ˜ν–‰ν–ˆκΈ° λ•Œλ¬Έμ—, 즉 νŒŒμ‹± 쀑에 κ±΄λ„ˆλ›Έ 수 μžˆλŠ” 선택적 ꡬ쑰λ₯Ό ν‘œμ‹œν–ˆκΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€). λ‹Ήμ‹œμ—λŠ” μƒμƒν•˜κΈ° μ–΄λ €μ› κ³  μ •λ‹Ήν™”λ˜μ§€ μ•Šμ€ BIRMA ꡬ문에 λŒ€ν•΄ 더 μžμ„Ένžˆ μ•Œκ³  싢은 λͺ¨λ“  μ‚¬λžŒμ—κ²Œ λ‹Ήμ‹œ λ³΄κ³ μ„œλ₯Ό λ‹€μ‹œ μ–ΈκΈ‰ν•©λ‹ˆλ‹€.

일반적으둜 λ‚΄ νŒŒμ„œμ™€ μ”¨λ¦„ν•˜λŠ” 것 μ™Έμ—λŠ” 이 λ²„μ „μ˜ μ½”λ“œμ— λŒ€ν•΄ 더 이상 말할 것이 μ—†μŠ΅λ‹ˆλ‹€. .NET μ½”λ“œμ˜ λͺ‡ 가지 일반적인 κΈ°λŠ₯을 μœ μ§€ν•˜λ©΄μ„œ κΈ°μ‘΄ μ†ŒμŠ€λ₯Ό C++둜 μ—­λ³€ν™˜ν•˜λŠ” 것 μ™Έμ—λŠ”(μ†”μ§νžˆ λ§ν•˜μžλ©΄, μ΄ν•΄ν•˜κΈ° μ–΄λ ΅μŠ΅λ‹ˆλ‹€. λͺ¨λ“  것을 λ‹€μ‹œ 되돌리게 된 μ •ν™•ν•œ μ΄μœ λŠ” μ•„λ§ˆλ„ μ½”μΉ΄μ½œλΌμ˜ λΉ„λ°€ λ ˆμ‹œν”Όμ™€ λ™λ“±ν•œ κ²ƒμ²˜λŸΌ λ‚΄ μ†ŒμŠ€ μ½”λ“œλ₯Ό λΉ„λ°€λ‘œ μœ μ§€ν•˜λŠ” 것에 λŒ€ν•œ 어리석은 두렀움 λ•Œλ¬ΈμΌ κ²ƒμž…λ‹ˆλ‹€.

μ•„λ§ˆλ„ 이 어리석은 결정은 μ „μž μΉ΄νƒˆλ‘œκ·Έμ— 데이터λ₯Ό μž…λ ₯ν•˜κΈ° μœ„ν•΄ κ²°κ³Ό DLL 라이브러리λ₯Ό μ§‘μ—μ„œ λ§Œλ“  μ›Œν¬μŠ€ν…Œμ΄μ…˜μ˜ κΈ°μ‘΄ μΈν„°νŽ˜μ΄μŠ€μ™€ κ²°ν•©ν•˜λŠ” 데 어렀움을 κ²ͺλŠ” μ΄μœ μ΄κΈ°λ„ ν•©λ‹ˆλ‹€(예, 또 λ‹€λ₯Έ μ€‘μš”ν•œ 사싀은 μ–ΈκΈ‰ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. μ§€κΈˆλΆ€ν„° λͺ¨λ“  BIRMA "엔진"의 μ½”λ“œλŠ” μ˜ˆμƒν•œ λŒ€λ‘œ μΈν„°νŽ˜μ΄μŠ€ λΆ€λΆ„μ—μ„œ λΆ„λ¦¬λ˜μ–΄ μ μ ˆν•œ DLL에 νŒ¨ν‚€μ§€λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ λͺ©μ μ„ μœ„ν•΄ λ³„λ„μ˜ μ›Œν¬μŠ€ν…Œμ΄μ…˜μ„ μž‘μ„±ν•΄μ•Ό ν•˜λŠ” μ΄μœ λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ? μ™Έκ΄€κ³Ό μ‚¬μš©μžμ™€μ˜ μƒν˜Έ μž‘μš© 방법이 IRBIS 64 μ‹œμŠ€ν…œμ˜ λ™μΌν•œ μ›Œν¬μŠ€ν…Œμ΄μ…˜ "Catalogizer"λ₯Ό λ»”λ»”ν•˜κ²Œ λ³΅μ‚¬ν•œ μ΄μœ λŠ” λ³„λ„μ˜ μ§ˆλ¬Έμž…λ‹ˆλ‹€. κ°„λ‹¨νžˆ λ§ν•΄μ„œ, 그것은 λ‚΄ μ‘Έμ—… ν”„λ‘œμ νŠΈλ₯Ό μœ„ν•œ λ‹Ήμ‹œμ˜ κ°œλ°œμ— ν•„μš”ν•œ 견고성을 μ œκ³΅ν–ˆμŠ΅λ‹ˆλ‹€(그렇지 μ•ŠμœΌλ©΄ μ†Œν™”λ˜μ§€ μ•ŠλŠ” νŒŒμ„œ μ—”μ§„λ§ŒμœΌλ‘œλŠ” μΆ©λΆ„ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€). λ˜ν•œ C++ 및 C#으둜 κ΅¬ν˜„λœ 자체 λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜μ—¬ Cataloger μ›Œν¬μŠ€ν…Œμ΄μ…˜μ˜ μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•˜κ³  엔진에 직접 μ•‘μ„ΈμŠ€ν•˜λŠ” 데 λͺ‡ 가지 어렀움에 μ§λ©΄ν–ˆμŠ΅λ‹ˆλ‹€.

일반적으둜 μ΄μƒν•˜κ²Œλ„ ν–₯ν›„ XNUMXλ…„ λ™μ•ˆ λ‚˜μ˜ "일꾼"이 될 운λͺ…은 미래 BIRMA.NET의 λ‹€μ†Œ μ„œνˆ¬λ₯Έ ν”„λ‘œν† νƒ€μž…μ΄μ—ˆμŠ΅λ‹ˆλ‹€. 이 κΈ°κ°„ λ™μ•ˆ λ‚˜λŠ” 적어도 였랜 아이디어λ₯Ό μƒˆλ‘­κ³  더 μ™„λ²½ν•˜κ²Œ κ΅¬ν˜„ν•˜λŠ” 방법을 찾으렀고 λ…Έλ ₯ν•˜μ§€ μ•Šμ•˜λ‹€κ³  말할 수 μ—†μŠ΅λ‹ˆλ‹€. λ‹€λ₯Έ ν˜μ‹  μ€‘μ—λŠ” 선택적 μš”μ†Œλ₯Ό 포함할 수 μžˆλŠ” μ€‘μ²©λœ μˆœν™˜ μ‹œν€€μŠ€κ°€ ​​이미 μžˆμ–΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€. 이것이 μ œκ°€ 좜판물의 μ„œμ§€ μ„€λͺ… 및 기타 λ‹€μ–‘ν•œ ν₯미둜운 ν•­λͺ©μ„ μœ„ν•œ λ²”μš© ν…œν”Œλ¦Ώ 아이디어λ₯Ό μƒμƒν•˜κ²Œ κ΅¬ν˜„ν•˜λ €κ³  ν–ˆλ˜ λ°©λ²•μž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ‹Ήμ‹œμ˜ μ‹€μ œ ν™œλ™μ—μ„œλŠ” 이 λͺ¨λ“  것이 거의 μš”κ΅¬λ˜μ§€ μ•Šμ•˜κ³  λ‹Ήμ‹œ κ΅¬ν˜„ν•œ κ²ƒλ§ŒμœΌλ‘œλ„ λͺ©μ°¨λ₯Ό μž…λ ₯ν•˜κΈ°μ— μΆ©λΆ„ν–ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, 우리 λ„μ„œκ΄€μ˜ 개발 λ²‘ν„°λŠ” λ°•λ¬Όκ΄€ 기둝 λ³΄κ΄€μ†Œμ˜ 디지털화, 보고 및 λ‚˜μ—κ²Œ 거의 관심이 μ—†λŠ” 기타 ν™œλ™μœΌλ‘œ 점점 더 λ²—μ–΄λ‚˜κΈ° μ‹œμž‘ν–ˆκ³  κ²°κ΅­μ—λŠ” λ§ˆμΉ¨λ‚΄ λ„μ„œκ΄€μ„ λ– λ‚˜κ³  싢은 μ‚¬λžŒλ“€μ—κ²Œ μ–‘λ³΄ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이 λͺ¨λ“  것에 더 λ§Œμ‘±ν•˜μ‹­μ‹œμ˜€.

μ—­μ„€μ μ΄κ²Œλ„ λ‹Ήμ‹œ μ „ν˜•μ μΈ μž₯κΈ° 건섀 ν”„λ‘œμ νŠΈμ˜ λͺ¨λ“  νŠΉμ§•μ„ 이미 κ°–μΆ”κ³  있던 BIRMA ν”„λ‘œμ νŠΈκ°€ μ˜€λž«λ™μ•ˆ κΈ°λ‹€λ €μ˜¨ μƒˆλ‘œμš΄ 삢을 μ‹œμž‘ν•˜κΈ° μ‹œμž‘ν•œ 것은 μ΄λŸ¬ν•œ 극적인 사건 μ΄ν›„μ˜€μŠ΅λ‹ˆλ‹€! λ‚˜λŠ” ν•œκ°€ν•œ 생각을 ν•  더 λ§Žμ€ 자유 μ‹œκ°„μ„ κ°€μ‘Œκ³  λΉ„μŠ·ν•œ 것을 μ°ΎκΈ° μœ„ν•΄ λ‹€μ‹œ World Wide Web을 샅샅이 뒀지기 μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€. (λ‹€ν–‰νžˆλ„ μ΄μ œλŠ” 이 λͺ¨λ“  것을 μ–΄λ””μ—μ„œλ‚˜ 찾을 수 μžˆμ„ κ²ƒμœΌλ‘œ μΆ”μΈ‘ν•  수 μžˆμ—ˆμ§€λ§Œ GitHubμ—μ„œ 찾을 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.) μ˜¬ν•΄ 초, λ“œλ””μ–΄ 유λͺ… μ„ΈμΌμ¦ˆν¬μŠ€ νšŒμ‚¬μ˜ λ―Έλ―Έν•œ μ΄λ¦„μœΌλ‘œ ν•΄λ‹Ή μ œν’ˆμ„ λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€. κ³ ν”„. κ·Έ 자체둜 νŒŒμ„œ μ—”μ§„μ—μ„œ ν•„μš”ν•œ 거의 λͺ¨λ“  μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 즉, λ‹€μŒκ³Ό 같이 이해할 수 μžˆλŠ” λ³Έμ§ˆμ„ ν¬ν•¨ν•˜μ—¬ μ΅œμ’… μ‚¬μš©μžμ—κ²Œ μƒλ‹Ήνžˆ μ‚¬μš©μž μΉœν™”μ μΈ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” λ™μ‹œμ— μž„μ˜μ˜ ν…μŠ€νŠΈμ—μ„œ κ°œλ³„ 쑰각을 지λŠ₯적으둜 κ²©λ¦¬ν•˜μ§€λ§Œ λͺ…ν™•ν•˜κ²Œ κ΅¬μ‘°ν™”λ˜λŠ” κ²ƒμž…λ‹ˆλ‹€. νŒ¨ν„΄, ν…œν”Œλ¦Ώ 및 λ°œμƒμ„ λ™μ‹œμ— μ‚¬μš©ν•˜λŠ” λ™μ‹œμ— μΉœμˆ™ν•œ μ •κ·œμ‹ ꡬ문을 μ‚¬μš©ν•©λ‹ˆλ‹€. μ΄λŠ” ꡬ문 뢄석을 μœ„ν•΄ μ§€μ •λœ 의미 그룹으둜 λΆ„ν• λ˜μ–΄ 비ꡐ할 수 없을 μ •λ„λ‘œ 더 읽기 μ‰¬μ›Œμ§‘λ‹ˆλ‹€.

일반적으둜 λ‚˜λŠ” 이것이 ν•˜λ‚˜λΌκ³  κ²°μ •ν–ˆμŠ΅λ‹ˆλ‹€ κ³ ν”„ (이 이름이 무엇을 μ˜λ―Έν•˜λŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€. μ•„λ§ˆλ„ μΌμ’…μ˜ "일반 지ν–₯ 일반 νŒŒμ„œ"μΌκΉŒμš”?) – λ°”λ‘œ μ œκ°€ μ˜€λž«λ™μ•ˆ μ°Ύκ³  있던 κ²ƒμž…λ‹ˆλ‹€. 사싀, λ‚΄ ν•„μš”μ— 따라 μ¦‰μ‹œ κ΅¬ν˜„ν•˜λ €λ©΄ 이 엔진이 μ†ŒμŠ€ ν…μŠ€νŠΈμ˜ ꡬ쑰적 μˆœμ„œλ₯Ό λ„ˆλ¬΄ μ—„κ²©ν•˜κ²Œ μ€€μˆ˜ν•΄μ•Ό ν•œλ‹€λŠ” λ¬Έμ œκ°€ μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 둜그 파일과 같은 일뢀 λ³΄κ³ μ„œ(즉, ν”„λ‘œμ νŠΈ μ‚¬μš©μ— λŒ€ν•œ λͺ…ν™•ν•œ 예둜 κ°œλ°œμžκ°€ λ°°μΉ˜ν•œ λ³΄κ³ μ„œ)의 경우 μ΄λŠ” 맀우 μ ν•©ν•˜μ§€λ§Œ μŠ€μΊ”ν•œ λͺ©μ°¨μ˜ λ™μΌν•œ ν…μŠ€νŠΈμ—λŠ” μ ν•©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. κ²°κ΅­ λͺ©μ°¨κ°€ μžˆλŠ” λ™μΌν•œ νŽ˜μ΄μ§€λŠ” "λͺ©μ°¨", "λͺ©μ°¨"λΌλŠ” 단어와 μ˜λ„ν•œ 뢄석 결과에 λ°°μΉ˜ν•  ν•„μš”κ°€ μ—†λŠ” 기타 μ˜ˆλΉ„ μ„€λͺ…μœΌλ‘œ μ‹œμž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€(μˆ˜λ™μœΌλ‘œ μž˜λΌλ‚΄κΈ°). 맀번 λΆˆνŽΈν•©λ‹ˆλ‹€). λ˜ν•œ, μ €μž 이름, 제λͺ©, νŽ˜μ΄μ§€ 번호 λ“± κ°œλ³„μ μœΌλ‘œ λ°˜λ³΅λ˜λŠ” μš”μ†Œ 사이에 ν•΄λ‹Ή νŽ˜μ΄μ§€μ—λŠ” μΌμ •λŸ‰μ˜ μ“°λ ˆκΈ°(예: κ·Έλ¦Ό, μž„μ˜μ˜ 문자)κ°€ 포함될 수 μžˆμŠ΅λ‹ˆλ‹€. λŠλ‹€. κ·ΈλŸ¬λ‚˜ λ§ˆμ§€λ§‰ 츑면은 아직 그닀지 μ€‘μš”ν•˜μ§€ μ•Šμ•˜μœΌλ‚˜, 첫 번째둜 인해 κΈ°μ‘΄ κ΅¬ν˜„μ—μ„œλŠ” ν…μŠ€νŠΈμ—μ„œ ν•„μš”ν•œ ꡬ쑰λ₯Ό νŠΉμ • μœ„μΉ˜λΆ€ν„° 찾을 수 μ—†μ—ˆκ³  λŒ€μ‹  μ²˜μŒλΆ€ν„° λ‹¨μˆœνžˆ 처리만 ν–ˆκΈ° λ•Œλ¬Έμ— ν•΄λ‹Ή ꡬ쑰λ₯Ό 찾지 λͺ»ν–ˆμŠ΅λ‹ˆλ‹€. 거기에 νŠΉμ • νŒ¨ν„΄μ„ μ§€μ •ν•˜κ³ ... λ‚΄ μž‘μ—…μ„ μ’…λ£Œν–ˆμŠ΅λ‹ˆλ‹€. λΆ„λͺ…νžˆ λ°˜λ³΅λ˜λŠ” ꡬ쑰 사이에 μ΅œμ†Œν•œ μ•½κ°„μ˜ 곡간을 ν—ˆμš©ν•˜κΈ° μœ„ν•΄ μ•½κ°„μ˜ 쑰정이 ν•„μš”ν–ˆκ³  그둜 인해 λ‹€μ‹œ μž‘μ—…ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

또 λ‹€λ₯Έ λ¬Έμ œλŠ” ν”„λ‘œμ νŠΈ μžμ²΄κ°€ Java둜 κ΅¬ν˜„λ˜μ—ˆλ‹€λŠ” μ μ΄μ—ˆκ³ , ν–₯ν›„ 이 κΈ°μˆ μ„ κΈ°μ‘΄ λ°μ΄ν„°λ² μ΄μŠ€μ— 데이터λ₯Ό μž…λ ₯ν•˜κΈ° μœ„ν•œ μΉœμˆ™ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜(예: Irbis의 "Cataloguer")κ³Ό μΈν„°νŽ˜μ΄μŠ€ν•˜λŠ” μˆ˜λ‹¨μ„ κ΅¬ν˜„ν•  κ³„νšμ΄λΌλ©΄ μ΅œμ†Œν•œ C# 및 .NETμ—μ„œ 이 μž‘μ—…μ„ μˆ˜ν–‰ν•˜μ„Έμš”. Java μžμ²΄κ°€ λ‚˜μœ μ–Έμ–΄λŠ” μ•„λ‹™λ‹ˆλ‹€. μ €λŠ” ν•œλ•Œ Javaλ₯Ό μ‚¬μš©ν•˜μ—¬ κ΅­λ‚΄ ν”„λ‘œκ·Έλž˜λ° κ°€λŠ₯ν•œ κ³„μ‚°κΈ°μ˜ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λŠ” ν₯미둜운 μ°½ μ‘μš© ν”„λ‘œκ·Έλž¨μ„ κ΅¬ν˜„ν•œ 적이 μžˆμŠ΅λ‹ˆλ‹€(κ°•μ˜ ν”„λ‘œμ νŠΈμ˜ μΌλΆ€λ‘œ). 그리고 ꡬ문 μΈ‘λ©΄μ—μ„œ 보면 λ™μΌν•œ C-sharp와 맀우 μœ μ‚¬ν•©λ‹ˆλ‹€. κΈ€μŽ„μš”, 이것은 단지 μž₯점일 λΏμž…λ‹ˆλ‹€. κΈ°μ‘΄ ν”„λ‘œμ νŠΈλ₯Ό λ§ˆλ¬΄λ¦¬ν•˜λŠ” 것이 더 μ‰¬μšΈ κ²ƒμž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ‚˜λŠ” μœˆλ„μš°(λ˜λŠ” λ°μŠ€ν¬νƒ‘) Java 기술의 λ‹€μ†Œ νŠΉμ΄ν•œ μ„Έκ³„λ‘œ λ‹€μ‹œ λ›°μ–΄λ“€κ³  싢지 μ•Šμ•˜μŠ΅λ‹ˆλ‹€. κ²°κ΅­ μ–Έμ–΄ μžμ²΄λŠ” κ·ΈλŸ¬ν•œ μš©λ„μ— "λ§žμΆ€ν™”"λ˜μ§€ μ•Šμ•˜μœΌλ©° 이전 κ²½ν—˜. μ•„λ§ˆλ„ WinForms와 κ²°ν•©λœ C#이 우리 쀑 λ§Žμ€ μ‚¬λžŒλ“€μ΄ ν•œλ•Œ μ‹œμž‘ν–ˆλ˜ Delphi에 훨씬 더 가깝기 λ•Œλ¬ΈμΌ κ²ƒμž…λ‹ˆλ‹€. λ‹€ν–‰μŠ€λŸ½κ²Œλ„ ν”„λ‘œμ νŠΈ ν˜•νƒœλ‘œ ν•„μš”ν•œ μ†”λ£¨μ…˜μ΄ 맀우 λΉ λ₯΄κ²Œ λ°œκ²¬λ˜μ—ˆμŠ΅λ‹ˆλ‹€. IKVM.NETλ₯Ό μ‚¬μš©ν•˜λ©΄ κΈ°μ‘΄ Java ν”„λ‘œκ·Έλž¨μ„ κ΄€λ¦¬λ˜λŠ” .NET μ½”λ“œλ‘œ μ‰½κ²Œ λ³€ν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 사싀, κ·Έ λ‹Ήμ‹œμ—λŠ” ν”„λ‘œμ νŠΈ μžμ²΄κ°€ 이미 μž‘μ„±μžμ— μ˜ν•΄ ν¬κΈ°λ˜μ—ˆμ§€λ§Œ 졜근 κ΅¬ν˜„μ„ 톡해 μ†ŒμŠ€ ν…μŠ€νŠΈμ— ν•„μš”ν•œ μž‘μ—…μ„ 맀우 μ„±κ³΅μ μœΌλ‘œ μˆ˜ν–‰ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. κ³ ν”„.

κ·Έλž˜μ„œ ν•„μš”ν•œ λͺ¨λ“  λ³€κ²½ μž‘μ—…μ„ μˆ˜ν–‰ν•˜κ³  Visual Studioμ—μ„œ μƒμ„±λœ .NET Framework용 ν”„λ‘œμ νŠΈμ—μ„œ μ‰½κ²Œ "선택"ν•  수 μžˆλŠ” μ μ ˆν•œ μœ ν˜•μ˜ DLL둜 λͺ¨λ‘ μ–΄μ…ˆλΈ”ν–ˆμŠ΅λ‹ˆλ‹€. κ·Έλ™μ•ˆ λ°˜ν™˜λœ κ²°κ³Όλ₯Ό νŽΈλ¦¬ν•˜κ²Œ ν‘œμ‹œν•˜κΈ° μœ„ν•΄ 또 λ‹€λ₯Έ λ ˆμ΄μ–΄λ₯Ό λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€. κ³ ν”„, ν…Œμ΄λΈ” λ·°μ—μ„œ μ²˜λ¦¬ν•˜κΈ° νŽΈλ¦¬ν•œ ν•΄λ‹Ή 데이터 ꡬ쑰 ν˜•νƒœ(ν–‰κ³Ό μ—΄, 사전 킀와 숫자 인덱슀 λͺ¨λ‘λ₯Ό 기본으둜 함). κ²°κ³Όλ₯Ό μ²˜λ¦¬ν•˜κ³  ν‘œμ‹œν•˜λŠ” 데 ν•„μš”ν•œ μœ ν‹Έλ¦¬ν‹° μžμ²΄λŠ” 맀우 λΉ λ₯΄κ²Œ μž‘μ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

λ˜ν•œ μŠ€μΊ”ν•œ λͺ©μ°¨ ν…μŠ€νŠΈμ˜ κΈ°μ‘΄ μƒ˜ν”Œμ„ ꡬ문 λΆ„μ„ν•˜λ„λ‘ κ°€λ₯΄μΉ˜κΈ° μœ„ν•΄ μƒˆ 엔진에 ν…œν”Œλ¦Ώμ„ μ μš©ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€λŠ” νŠΉλ³„ν•œ 문제λ₯Ό μΌμœΌν‚€μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. 사싀 이전 ν…œν”Œλ¦Ώμ„ μ „ν˜€ μ°Έμ‘°ν•  ν•„μš”λ„ μ—†μ—ˆμŠ΅λ‹ˆλ‹€. ν•„μš”ν•œ ν…œν”Œλ¦Ώμ„ μ²˜μŒλΆ€ν„° λͺ¨λ‘ λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€. λ”μš±μ΄, 이전 λ²„μ „μ˜ μ‹œμŠ€ν…œκ³Ό ν•¨κ»˜ μž‘λ™ν•˜λ„λ‘ μ„€κ³„λœ ν…œν”Œλ¦Ώμ΄ 도움을 λ°›μ•„ μ˜¬λ°”λ₯΄κ²Œ ꡬ문 뢄석할 수 μžˆλŠ” ν…μŠ€νŠΈμ— λŒ€ν•΄ μƒλ‹Ήνžˆ 쒁은 ν”„λ ˆμž„μ›Œν¬λ₯Ό μ„€μ •ν–ˆλ‹€λ©΄, μƒˆ 엔진은 이미 λ‹€μŒκ³Ό 같은 μ—¬λŸ¬ μœ ν˜•μ˜ λ§ˆν¬μ—…μ— μ ν•©ν•œ μƒλ‹Ήνžˆ 보편적인 ν…œν”Œλ¦Ώμ„ κ°œλ°œν•˜λŠ” 것을 κ°€λŠ₯ν•˜κ²Œ ν–ˆμŠ΅λ‹ˆλ‹€. ν•œ 번. λ‚˜λŠ” 심지어 μž„μ˜μ˜ λͺ©μ°¨ ν…μŠ€νŠΈμ— λŒ€ν•œ μΌμ’…μ˜ 포괄적인 ν…œν”Œλ¦Ώμ„ μž‘μ„±ν•˜λ €κ³  μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€. λ¬Όλ‘ , 특히 λ™μΌν•œ 쀑첩 반볡 μ‹œν€€μŠ€λ₯Ό κ΅¬ν˜„ν•˜λŠ” μ œν•œλœ λŠ₯λ ₯을 ν¬ν•¨ν•˜μ—¬ λͺ¨λ“  μƒˆλ‘œμš΄ κ°€λŠ₯성이 λ‚˜μ—κ²Œ μ—΄λ € μžˆμŒμ—λ„ λΆˆκ΅¬ν•˜κ³ ( 예λ₯Ό λ“€μ–΄ μ—¬λŸ¬ μ €μžμ˜ μ„±κ³Ό μ΄λ‹ˆμ…œμ„ μ—°μ†μœΌλ‘œ μ‚¬μš©ν•˜λŠ” 경우) μ΄λŠ” μœ ν† ν”Όμ•„λ‘œ 판λͺ…λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

μ•„λ§ˆλ„ λ―Έλž˜μ—λŠ” μ†ŒμŠ€ ν…μŠ€νŠΈκ°€ μ‚¬μš© κ°€λŠ₯ν•œ μ—¬λŸ¬ ν…œν”Œλ¦Ώκ³Ό ν˜Έν™˜λ˜λŠ”μ§€ ν•œ λ²ˆμ— 확인할 수 μžˆλŠ” νŠΉμ • κ°œλ…μ˜ 메타 ν…œν”Œλ¦Ώμ„ κ΅¬ν˜„ν•˜λŠ” 것이 κ°€λŠ₯ν•  κ²ƒμž…λ‹ˆλ‹€. 그런 λ‹€μŒ 얻은 결과에 따라 μΌμ’…μ˜ 지λŠ₯ν˜• μ•Œκ³ λ¦¬μ¦˜μ„ μ‚¬μš©ν•˜μ—¬ κ°€μž₯ μ ν•©ν•œ κ²ƒμž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ 이제 λ‚˜λŠ” 또 λ‹€λ₯Έ μ§ˆλ¬Έμ— 더 관심을 κ°–κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ‹€μŒκ³Ό 같은 νŒŒμ„œ κ³ ν”„, κ·Έ λͺ¨λ“  λ‹€μž¬λ‹€λŠ₯함과 λ‚΄κ°€ μˆ˜μ •ν•œ λ‚΄μš©μ—λ„ λΆˆκ΅¬ν•˜κ³ , λ‚΄κ°€ 직접 μž‘μ„±ν•œ νŒŒμ„œκ°€ 첫 번째 λ²„μ „μ—μ„œ ν•  수 μžˆμ—ˆλ˜ 겉보기에 λ‹¨μˆœν•΄ λ³΄μ΄λŠ” μž‘μ—…μ„ 본질적으둜 μˆ˜ν–‰ν•  수 μ—†μ—ˆμŠ΅λ‹ˆλ‹€. 즉, κ·ΈλŠ” μ˜¬λ°”λ₯Έ μœ„μΉ˜μ— μ‚¬μš©λœ ν…œν”Œλ¦Ώ 내에 μ§€μ •λœ λ§ˆμŠ€ν¬μ™€ μΌμΉ˜ν•˜λŠ” λͺ¨λ“  쑰각을 μ†ŒμŠ€ ν…μŠ€νŠΈμ—μ„œ μ°Ύκ³  μΆ”μΆœν•  수 μžˆλŠ” λŠ₯λ ₯이 μžˆμ—ˆμ§€λ§Œ 주어진 ν…μŠ€νŠΈκ°€ μ΄λŸ¬ν•œ 쑰각 μ‚¬μ΄μ˜ 곡간에 ν¬ν•¨λœ λ‚΄μš©μ—λŠ” μ „ν˜€ 관심이 μ—†μ—ˆμŠ΅λ‹ˆλ‹€. μ§€κΈˆκΉŒμ§€ λ‚˜λŠ” μƒˆ 엔진을 μ•½κ°„λ§Œ κ°œμ„ ν•˜μ—¬ ν˜„μž¬ μœ„μΉ˜μ—μ„œ ν•΄λ‹Ή 마슀크의 주어진 μ‹œν€€μŠ€μ— λŒ€ν•΄ κ°€λŠ₯ν•œ λͺ¨λ“  μƒˆλ‘œμš΄ λ°˜λ³΅μ„ 검색할 수 μžˆλ„λ‘ ν—ˆμš©ν•˜κ³  μ™„μ „νžˆ μž„μ˜μ˜ 문자 집합이 ν…μŠ€νŠΈμ— μ‘΄μž¬ν•  κ°€λŠ₯성을 남겨 λ‘μ—ˆμŠ΅λ‹ˆλ‹€. κ°μ§€λœ 반볡 ꡬ쑰 사이에 ν¬ν•¨λ˜μ–΄ ꡬ문 λΆ„μ„μ—μ„œ μ„€λͺ…λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이둜 인해 ν•΄λ‹Ή 마슀크λ₯Ό μ‚¬μš©ν•˜μ—¬ 이전 쑰각을 κ²€μƒ‰ν•œ 결과에 관계없이 λ‹€μŒ 마슀크λ₯Ό μ„€μ •ν•  수 μ—†μ—ˆμŠ΅λ‹ˆλ‹€. μ„€λͺ…λœ ν…μŠ€νŠΈ ꡬ쑰의 엄격함은 μ—¬μ „νžˆ β€‹β€‹λΆˆκ·œμΉ™ν•œ 문자λ₯Ό μž„μ˜λ‘œ 포함할 여지λ₯Ό 남기지 μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

그리고 λ‚΄κ°€ μ ‘ν•œ λͺ©μ°¨μ˜ μ˜ˆμ—μ„œ 이 λ¬Έμ œκ°€ 아직 κ·Έλ ‡κ²Œ 심각해 보이지 μ•ŠλŠ”λ‹€λ©΄ μ›Ή μ‚¬μ΄νŠΈμ˜ μ½˜ν…μΈ λ₯Ό ꡬ문 λΆ„μ„ν•˜λŠ” μœ μ‚¬ν•œ μž‘μ—…(즉, λ™μΌν•œ ꡬ문 뢄석)에 μƒˆλ‘œμš΄ ꡬ문 뢄석 λ©”μ»€λ‹ˆμ¦˜μ„ μ μš©ν•˜λ €κ³  ν•  λ•Œ ν•œκ³„λŠ” 여기에 λͺ¨λ“  λͺ…백함과 ν•¨κ»˜ λ‚˜νƒ€λ‚¬μŠ΅λ‹ˆλ‹€. κ²°κ΅­ μ›Ή λ§ˆν¬μ—… 쑰각에 ν•„μš”ν•œ 마슀크λ₯Ό μ„€μ •ν•˜λŠ” 것은 맀우 μ‰½μŠ΅λ‹ˆλ‹€. κ·Έ 사이에 μš°λ¦¬κ°€ μ°Ύκ³  μžˆλŠ”(μΆ”μΆœν•΄μ•Ό ν•˜λŠ”) 데이터가 μœ„μΉ˜ν•΄μ•Ό ν•˜μ§€λ§Œ νŒŒμ„œκ°€ μ¦‰μ‹œ λ‹€μŒμœΌλ‘œ μ΄λ™ν•˜λ„λ‘ κ°•μ œν•  수 μžˆλŠ” 방법은 λ¬΄μ—‡μž…λ‹ˆκΉŒ? κ°€λŠ₯ν•œ λͺ¨λ“  νƒœκ·Έμ™€ HTML 속성 사이에 λ°°μΉ˜ν•  수 μžˆμŒμ—λ„ λΆˆκ΅¬ν•˜κ³  μœ μ‚¬ν•œ 쑰각이 μžˆμŠ΅λ‹ˆκΉŒ?

쑰금 μƒκ°ν•œ 끝에 λͺ‡ 가지 μ„œλΉ„μŠ€ νŒ¨ν„΄μ„ μ†Œκ°œν•˜κΈ°λ‘œ κ²°μ •ν–ˆμŠ΅λ‹ˆλ‹€. (%all_이전) ΠΈ (%all_after), μ†ŒμŠ€ ν…μŠ€νŠΈμ— 포함될 수 μžˆλŠ” λͺ¨λ“  ν•­λͺ©μ„ 뒀에 μ˜€λŠ” νŒ¨ν„΄(마슀크) 전에 κ±΄λ„ˆλ›°λ„λ‘ 보μž₯ν•˜λŠ” λΆ„λͺ…ν•œ λͺ©μ μ„ μ œκ³΅ν•©λ‹ˆλ‹€. κ²Œλ‹€κ°€ λ§Œμ•½μ— (%all_이전) μ΄λŸ¬ν•œ μž„μ˜μ˜ 포함을 λͺ¨λ‘ λ¬΄μ‹œν•œ λ‹€μŒ (%all_after), λ°˜λŒ€λ‘œ 이전 μ‘°κ°μ—μ„œ μ΄λ™ν•œ ν›„ μ›ν•˜λŠ” 쑰각에 μΆ”κ°€ν•  수 μžˆλ„λ‘ ν—ˆμš©ν–ˆμŠ΅λ‹ˆλ‹€. 맀우 κ°„λ‹¨ν•˜κ²Œ λ“€λ¦¬μ§€λ§Œ 이 κ°œλ…μ„ κ΅¬ν˜„ν•˜λ €λ©΄ 이미 κ΅¬ν˜„λœ 논리λ₯Ό 깨지 μ•Šλ„λ‘ gorp μ†ŒμŠ€λ₯Ό λ‹€μ‹œ 샅샅이 λ’€μ Έ ν•„μš”ν•œ μˆ˜μ • μž‘μ—…μ„ μˆ˜ν–‰ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€. κ²°κ΅­ μš°λ¦¬λŠ” 이 μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€(비둝 맀우 버그가 μžˆκΈ°λŠ” ν•˜μ§€λ§Œ λ‚΄ νŒŒμ„œμ˜ κ΅¬ν˜„μ΄ κ°€μž₯ λ¨Όμ € μž‘μ„±λ˜μ—ˆμœΌλ©° 심지어 λͺ‡ μ£Ό λ§Œμ— 훨씬 더 λΉ¨λΌμ‘ŒμŠ΅λ‹ˆλ‹€). μ΄μ œλΆ€ν„° μ‹œμŠ€ν…œμ€ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λ €λŠ” 첫 번째 μ‹œλ„κ°€ μžˆμ€ 지 12년이 채 μ§€λ‚˜μ§€ μ•Šμ•„ μ§„μ •ν•œ 보편적인 ν˜•νƒœλ₯Ό κ°–μΆ”κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

λ¬Όλ‘  이것이 우리의 꿈의 끝은 μ•„λ‹™λ‹ˆλ‹€. 자유 문법 κ΅¬ν˜„μ— μ‚¬μš© κ°€λŠ₯ν•œ 라이브러리λ₯Ό μ‚¬μš©ν•˜μ—¬ C#μ—μ„œ gorp ν…œν”Œλ¦Ώ νŒŒμ„œλ₯Ό μ™„μ „νžˆ λ‹€μ‹œ μž‘μ„±ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” μ½”λ“œκ°€ μƒλ‹Ήνžˆ λ‹¨μˆœν™”λ˜μ–΄μ•Ό ν•œλ‹€κ³  μƒκ°ν•˜λ©°, 이λ₯Ό 톡해 κΈ°μ‘΄ Java μ†ŒμŠ€ ν˜•νƒœμ˜ λ ˆκ±°μ‹œλ₯Ό μ œκ±°ν•  수 μžˆμ„ κ²ƒμž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ κΈ°μ‘΄ μœ ν˜•μ˜ 엔진을 μ‚¬μš©ν•˜λ©΄ λ‹€μ–‘ν•œ μ›Ή μ‚¬μ΄νŠΈμ˜ λ‹€μ–‘ν•œ 데이터λ₯Ό ꡬ문 λΆ„μ„ν•˜λŠ” 것은 물둠이고 이미 μ–ΈκΈ‰ν•œ 메타 ν…œν”Œλ¦Ώμ„ κ΅¬ν˜„ν•˜λ €λŠ” μ‹œλ„λ₯Ό ν¬ν•¨ν•˜μ—¬ λ‹€μ–‘ν•˜κ³  ν₯미둜운 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 것도 κ½€ κ°€λŠ₯ν•©λ‹ˆλ‹€(단, λ°°μ œν•˜μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€). 기쑴의 μ „λ¬Έ μ†Œν”„νŠΈμ›¨μ–΄ 도ꡬ가 이에 더 μ ν•©ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. μ•„μ§κΉŒμ§€λŠ” μ μ ˆν•œ μ‚¬μš© κ²½ν—˜μ΄ μ—†μ—ˆμ„ λΏμž…λ‹ˆλ‹€.

그런데 올 여름 이미 Salesforce κΈ°μˆ μ„ μ‚¬μš©ν•˜λŠ” νšŒμ‚¬(원본 개발자)λ‘œλΆ€ν„° μ΄λ©”μΌλ‘œ μ΄ˆλŒ€λ₯Ό λ°›μ•˜μŠ΅λ‹ˆλ‹€. κ³ ν”„), λ¦¬κ°€μ—μ„œμ˜ 후속 μž‘μ—…μ„ μœ„ν•œ 인터뷰λ₯Ό ν†΅κ³Όν•˜μ„Έμš”. λΆˆν–‰ν•˜κ²Œλ„ ν˜„μž¬λ‘œμ„œλŠ” κ·ΈλŸ¬ν•œ 재배치λ₯Ό ν•  μ€€λΉ„κ°€ λ˜μ–΄ μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

이 μžλ£Œκ°€ 관심을 λΆˆλŸ¬μΌμœΌν‚¨λ‹€λ©΄ 두 번째 λΆ€λΆ„μ—μ„œλŠ” Salesforceμ—μ„œ μ‚¬μš©λœ κ΅¬ν˜„ 예λ₯Ό μ‚¬μš©ν•˜μ—¬ ν…œν”Œλ¦Ώμ„ μ»΄νŒŒμΌν•˜κ³  이후에 ꡬ문 λΆ„μ„ν•˜λŠ” κΈ°μˆ μ„ 더 μžμ„Ένžˆ μ„€λͺ…ν•˜λ €κ³  λ…Έλ ₯ν•  κ²ƒμž…λ‹ˆλ‹€. κ³ ν”„ (이미 μ„€λͺ…ν•œ λͺ‡ 가지 κΈ°λŠ₯ 단어λ₯Ό μ œμ™Έν•˜κ³  λ‚΄κ°€ 직접 μΆ”κ°€ν•œ λ‚΄μš©μ€ ν…œν”Œλ¦Ώ ꡬ문 자체λ₯Ό 사싀상 λ³€κ²½ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ μ›λž˜ μ‹œμŠ€ν…œμ— λŒ€ν•œ 거의 λͺ¨λ“  λ¬Έμ„œκ°€ κ³ ν”„ λ‚΄ 버전에도 μ ν•©ν•©λ‹ˆλ‹€.)

좜처 : habr.com

μ½”λ©˜νŠΈλ₯Ό μΆ”κ°€