NAVER D2 정리

KIMYEONGJUNΒ·2023λ…„ 6μ›” 8일
0

πŸ’¬ μ°Ύμ•„λ³΄κ²Œ 된 계기

μ–Όλ§ˆ 전에 기술 λΈ”λ‘œκ·Έλ₯Ό μ •λ¦¬ν•˜λ‹€κ°€ 넀이버 기업이 μ΅œκ·Όμ— μ–΄λ–€ 문제둜 κ³ λ―Όν•˜λŠ”μ§€ κΆκΈˆν•˜κΈ°λ„ ν•˜κ³  μ΅œκ·Όμ— μ–΄λ–€ κΈ°μˆ μ„ 가지고 코딩을 ν•˜λŠ”μ§€ κΆκΈˆν•΄μ„œ μ°Ύμ•„λ³΄κ²Œ 됐닀.

πŸ›  NAVER D2

NAVER D2에 κ²Œμ‹œλœ 넀이버 κ²€μƒ‰μ˜ SRE μ‹œμŠ€ν…œ μ°Ύμ•„λ³΄κ²Œ 됐닀. 넀이버 검색 SRE μ‹œμŠ€ν…œμ€ κ΅­λ‚΄ μ΅œλŒ€ 규λͺ¨μ˜ νŠΈλž˜ν”½κ³Ό 데이터λ₯Ό λ‹€λ£¨λŠ” λŒ€μš©λŸ‰ λΆ„μ‚° μ‹œμŠ€ν…œμ΄λ‹€. λ„€μ΄λ²„μ—μ„œ κ²€μƒ‰μ˜ SRE μ‹œμŠ€ν…œμ„ λ„μž…ν•˜κ²Œ 된 κ³„κΈ°λŠ” 첫 λ²ˆμ§ΈλŠ” μŠ€μΌ€μΌμ΄ ν•œ 단계씩 컀질 λ•Œλ§ˆλ‹€ μƒˆλ‘œμš΄ 방법둠이 ν•„μš”ν–ˆλ˜ κ²ƒμœΌλ‘œ 보인닀. 두 λ²ˆμ§ΈλŠ” 예츑이 λΆˆκ°€λŠ₯ν•œ 일듀이 많이 μΌμ–΄λ‚˜κΈ°λ•Œλ¬Έμ΄λ‹€.

βœ” Site Reliability Engineering(SRE, μ‚¬μ΄νŠΈ μ‹ λ’°μ„± μ—”μ§€λ‹ˆμ–΄)

SREλŠ” μ‚¬μ΄νŠΈ μ‹ λ’°μ„± μ—”μ§€λ‹ˆμ–΄λΌκ³  ν•œλ‹€. μ†Œν”„νŠΈμ›¨μ–΄ κΈ°μˆ μ„ 인프라 및 μš΄μ˜μ— ν™œμš©ν•  수 μžˆλ„λ‘ ν•˜λŠ” 역할이닀.

사전적인 μ˜λ―Έλ‘œλŠ” μ‚¬μ΄νŠΈ μ‹ λ’°μ„± 곡학(Site Reliability Engineering, SRE)은 μ†Œν”„νŠΈμ›¨μ–΄ κ³΅ν•™μ˜ 관점듀을 ν†΅ν•©ν•œ μ›μΉ™μœΌλ‘œ, 이듀을 μΈν”„λΌμŠ€νŠΈλŸ­μ²˜μ™€ 운영 λ¬Έμ œμ— μ μš©ν•œλ‹€. 주된 λͺ©μ μ€ μƒλ‹Ήν•œ μŠ€μΌ€μΌλ§μ΄ κ°€λŠ₯ν•˜κ³  μƒλ‹Ήνžˆ μ‹ λ’°ν• λ§Œν•œ μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œμ„ λ§Œλ“œλŠ” 것이닀. κ΅¬κΈ€μ˜ μ‚¬μ΄νŠΈ μ‹ λ’°μ„± νŒ€μ˜ μ„€λ¦½μž λ²€ νŠΈλ ˆμ΄λ„ˆμ— λ”°λ₯΄λ©΄ SREλŠ” "μ†Œν”„νŠΈμ›¨μ–΄ μ—”μ§€λ‹ˆμ–΄κ°€ 이λ₯Έλ°” 운영이라 λΆˆλ¦¬λŠ” μž„λ¬΄λ₯Ό 떠맑을 λ•Œ λ°œμƒν•˜λŠ” 것"이닀.

μ•½κ°„ μ‰¬μš΄λ§λ‘œ ν’€μ–΄λ³΄μžλ©΄ SREλŠ” "운영(operation)κ³Ό μ‹œμŠ€ν…œ μžλ™ν™”(Software Engineering)에 λŒ€ν•œ 업무λ₯Ό λ‹΄λ‹Ήν•˜λ©° μ‹œμŠ€ν…œκ΄€λ¦¬ κ²½ν—˜κ³Ό μ†Œν”„νŠΈμ›¨μ–΄ μ—”μ§€λ‹ˆμ–΄ ν˜Ήμ€ μ½”λ”© 및 μžλ™ν™”μ— λŒ€ν•œ 업무λ₯Ό λ‹΄λ‹Ήν•˜λ©° 이에 μˆ™λ ¨λœ μ‚¬λžŒμ„ λ§ν•œλ‹€.

βœ” AS-IS

AS-ISλž€ μ§€κΈˆ ν˜„μž¬ 'μžˆλŠ” κ·ΈλŒ€λ‘œ'λ₯Ό μ˜λ―Έν•œλ‹€. 즉, AS-IS λΆ„μ„μ΄λž€ ν˜„μž¬μ˜ 업무 ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•œ 뢄석을 λœ»ν•œλ‹€. μ΄λŠ” μ•„λž˜μ™€ 같이 크게 3κ°€μ§€λ‘œ λ‚˜λˆ μ§„λ‹€.

  1. AS-IS ν”„λ‘œμ„ΈμŠ€ λͺ©λ‘ μž‘μ„±
    AS-IS ν”„λ‘œμ„ΈμŠ€ λͺ©λ‘ μž‘μ„±μ΄λž€ 업무λ₯Ό λŒ€λΆ„λ₯˜, 쀑뢄λ₯˜, μ„ΈλΆ„λ₯˜, ν”„λ‘œμ„ΈμŠ€ μ„€λͺ… 등을 μ—‘μ…€ 등을 μ΄μš©ν•˜μ—¬ λͺ©λ‘μ„ μž‘μ„±ν•˜λŠ” 것이닀.

  2. AS-IS ν”„λ‘œμ„ΈμŠ€ 체계도 μž‘μ„±
    AS-IS ν”„λ‘œμ„ΈμŠ€ 체계도 μž‘μ„±μ΄λž€ 업무가 μ–΄λ–€ μ²΄κ³„μ˜ ꡬ쑰λ₯Ό 가지고 μžˆλŠ”μ§€μ— λŒ€ν•˜μ—¬ 계측ꡬ쑰 ν˜•νƒœλ‘œ 업무λ₯Ό λΆ„λ₯˜ν•˜λŠ” μž‘μ—…μ„ λ§ν•œλ‹€.

  3. AS-IS ν”„λ‘œμ„ΈμŠ€ μ •μ˜μ„œ μž‘μ„±
    AS-IS ν”„λ‘œμ„ΈμŠ€ μ •μ˜μ„œλž€ μ—…λ¬΄μ˜ 흐름에 λŒ€ν•˜μ—¬ Flow Chart ν˜•νƒœλ‘œ 업무λ₯Ό μ •μ˜ν•˜λŠ” μž‘μ—…μ΄λ‹€.

AS-IS 뢄석은 λΆ€μ„œμ˜ Needs 뢄석 자료λ₯Ό 가지고 AS-IS와 Needs κ°„μ˜ Gap 뢄석을 ν†΅ν•˜μ—¬ κ΅¬ν˜„ν•˜κ³ μž ν•˜λŠ” μ‹œμŠ€ν…œμ˜ μ΄μŠˆλ“€μ„ λ„μΆœν•˜λŠ” μžλ£Œκ°€ λœλ‹€. λ˜ν•œ λ‚˜μ€‘μ— TO-BE 뢄석 자료λ₯Ό 가지고 AS-IS와 TO-BE κ°„μ˜ Gap 뢄석을 ν†΅ν•˜μ—¬ κ΅¬ν˜„ν•˜κ³ μž ν•˜λŠ” 전체적인 μ‹œμŠ€ν…œ 틀이 작히기 λ•Œλ¬Έμ—, μ‹œκ°„μ΄ 많이 λ“€μ–΄κ°€λŠ” 반면 μ•„μ£Ό μ€‘μš”ν•œ 뢄석 μžλ£Œκ°€ λœλ‹€.

βœ” TO-BE

TO-BEλž€ '미래의'λΌλŠ” 의미λ₯Ό 가지고 μžˆλ‹€. 즉, λ―Έλž˜μ— κ°œμ„ λ  업무 ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•œ 뢄석을 λœ»ν•œλ‹€. AS-IS 뢄석을 잘 ν•΄ λ†“μœΌλ©΄ λ‚˜μ€‘μ— κ΅¬ν˜„ν•˜κ³ μž ν•˜λŠ” μ‹œμŠ€ν…œμ— λŒ€ν•΄ 큰 어렀움 없이 TO-BE 뢄석할 수 μžˆλ‹€. TO-BE 뢄석도 μ•„λž˜μ™€ 같이 크게 3κ°€μ§€λ‘œ λ‚˜λˆ μ§„λ‹€.

  1. TO-BE ν”„λ‘œμ„ΈμŠ€ λͺ©λ‘ μž‘μ„±
    TO-BE ν”„λ‘œμ„ΈμŠ€ λͺ©λ‘ μž‘μ„±μ΄λž€ μ‹œμŠ€ν…œμ—μ„œ 업무λ₯Ό λŒ€λΆ„λ₯˜, 쀑뢄λ₯˜, μ„ΈλΆ„λ₯˜λ‘œ λΆ„λ₯˜λ³„λ‘œ κ΅¬λΆ„ν•˜μ—¬ μ„ΈλΆ€ 업무에 λŒ€ν•œ μ„€λͺ… 등을 μ—‘μ…€ 등을 μ΄μš©ν•˜μ—¬ λͺ©λ‘μ„ μž‘μ„±ν•˜λŠ” 것이닀.

  2. TO-BE ν”„λ‘œμ„ΈμŠ€ 체계도 μž‘μ„±
    TO-BE ν”„λ‘œμ„ΈμŠ€ 체계도 μž‘μ„±μ΄λž€ μ‹œμŠ€ν…œ κΈ°μ€€μœΌλ‘œ 업무가 μ–΄λ–€ μ²΄κ³„μ˜ ꡬ쑰λ₯Ό 가지고 μžˆλŠ”μ§€μ— λŒ€ν•˜μ—¬ 계측ꡬ쑰 ν˜•νƒœλ‘œ 업무λ₯Ό λΆ„λ₯˜ν•˜λŠ” μž‘μ—…μ΄λ‹€.

  3. TO-BE ν”„λ‘œμ„ΈμŠ€ μ •μ˜μ„œ μž‘μ„±
    TO-BE ν”„λ‘œμ„ΈμŠ€ μ •μ˜μ„œλž€ μ‹œμŠ€ν…œ κΈ°μ€€μœΌλ‘œ μ—…λ¬΄μ˜ 흐름에 λŒ€ν•˜μ—¬ Flow Chart ν˜•νƒœλ‘œ 업무λ₯Ό μ •μ˜ν•˜λŠ” μž‘μ—…μ΄λ‹€.

TO-BE λΆ„μ„μ—μ„œ μ€‘μš”ν•œ 것은 각 λͺ¨λ“ˆλ³„λ‘œ TO-BE ν”„λ‘œμ„ΈμŠ€λ₯Ό μž‘μ„±μ„ ν•˜μ˜€μœΌλ©΄ 톡합 ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•˜μ—¬ 섀계해야 ν•œλ‹€λŠ” 것이닀.

βœ” νœ΄λ¦¬μŠ€ν‹± μ•Œκ³ λ¦¬μ¦˜

νœ΄λ¦¬μŠ€ν‹±(heuristics)μ΄λž€ λΆˆμΆ©λΆ„ν•œ μ‹œκ°„μ΄λ‚˜ μ •λ³΄λ‘œ μΈν•˜μ—¬ 합리적인 νŒλ‹¨μ„ ν•  수 μ—†κ±°λ‚˜, μ²΄κ³„μ μ΄λ©΄μ„œ 합리적인 νŒλ‹¨μ΄ ꡳ이 ν•„μš”ν•˜μ§€ μ•Šμ€ μƒν™©μ—μ„œ μ‚¬λžŒλ“€μ΄ λΉ λ₯΄κ²Œ μ‚¬μš©ν•  수 있게 보닀 μš©μ΄ν•˜κ²Œ κ΅¬μ„±λœ κ°„νŽΈ μΆ”λ‘ μ˜ 방법이닀. (좜처: μœ„ν‚€λ°±κ³Ό - νœ΄λ¦¬μŠ€ν‹± 이둠)

νœ΄λ¦¬μŠ€ν‹± κ΄€λ ¨ 이둠

  • κ°€μ§€μΉ˜κΈ°(pruning) 기법
  • Simulated Annealing (λ‹΄κΈˆμ§ˆ 기법)
  • Genetic Algorithms (μœ μ „ μ•Œκ³ λ¦¬μ¦˜)

πŸ’­ 글을 끝마치며

μžμ—°μž¬ν•΄λ‘œ 인해 μ΄μš©μžκ°€ κ²€μƒ‰μ„œλΉ„μŠ€λ₯Ό λͺ‡ λΆ„κ°„ μ΄μš©μ„ λͺ»ν•  κ²½μš°μ— μ–Όλ§ˆλ‚˜ ν”Όν•΄λ₯Ό μž…λŠ”μ§€ 그리고 λ„€μ΄λ²„λΌλŠ” λŒ€κΈ°μ—…μ—μ„œ μ–΄λ–»κ²Œ λŒ€μ²΄ν•˜κ³  μ½”λ“œλ₯Ό κ°œμ„ ν•˜κ³  μžˆλŠ”μ§€ μ œλŒ€λ‘œ μ•Œ 수 μžˆλŠ” 계기가 된 것 κ°™λ‹€. 아직 λ§Žμ€ 뢀뢄이 μ–΄λ ΅κ²Œ λŠκ»΄μ§€λŠ” 것 κ°™λ‹€. NAVER D2 κ²Œμ‹œκΈ€μ„ 읽고 슀슀둜 쑰금 더 λ°œμ „ν–ˆμœΌλ©΄ μ’‹κ² λ‹€.

πŸ“Œμ°Έκ³ 

[1] https://d2.naver.com/helloworld/2047663
[2] https://d2.naver.com/helloworld/5799075
[3] https://real-dongsoo7.tistory.com/138
[4] https://m.blog.naver.com/seek316/221732237485
[5] https://kau-algorithm.tistory.com/7

profile
Junior backend developer

0개의 λŒ“κΈ€