KR_IT_DevOps - somaz94/DevOps-Engineer GitHub Wiki
SSO, μ¦ Single Sign-Onμ μ¬μ©μκ° νλμ μΈμ¦μ ν΅ν΄ μ¬λ¬ μμ€ν μ΄λ μ ν리μΌμ΄μ μ μ κ·Όν μ μκ² ν΄μ£Όλ μΈμ¦ κ³Όμ μ΄λ€. μ¬μ©μλ νλμ IDμ λΉλ°λ²νΈλ‘ λ€μν μλΉμ€μ λ‘κ·ΈμΈν μ μμΌλ©°, μ΄λ μ¬μ©μ κ²½νμ ν₯μμν€κ³ μΈμ¦ κ΄λ¦¬μ 볡μ‘μ±μ μ€μ¬μ€λ€. SSOλ ν¨μ¨μ μΈ μμ κ΄λ¦¬μ 보μ κ°νμλ κΈ°μ¬νλ€. μλ₯Ό λ€μ΄, μ§μμ΄ νμ¬μ μ΄λ©μΌ, λ¬Έμ λꡬ, λ΄λΆ ν¬νΈ λ± λ€μν μλΉμ€λ₯Ό μ¬μ©ν λ κ°κ° λ€λ₯Έ λ‘κ·ΈμΈ μ 보λ₯Ό κΈ°μ΅ν νμ μμ΄ ν λ²μ λ‘κ·ΈμΈμΌλ‘ λͺ¨λ μλΉμ€μ μ κ·Όν μ μλ€.
SSO ꡬνμ μ¬λ¬ λ°©μμΌλ‘ μ΄λ£¨μ΄μ§ μ μμΌλ©°, μΌλ°μ μΌλ‘ OAuth, SAML(Security Assertion Markup Language), OpenID Connectμ κ°μ νμ€ νλ‘ν μ½μ μ¬μ©νλ€. μ΄λ¬ν νλ‘ν μ½μ μμ ν μΈμ¦ μ 보μ κ΅νμ 보μ₯νλ©°, μλΉμ€ μ 곡μμ μ λ’°ν μ μλ μΈμ¦ μ 곡μ κ°μ ν΅μ μ μ€μ¬νλ€.
- μ¬μ©μ νΈμμ± μ¦λ: ν λ²μ λ‘κ·ΈμΈμΌλ‘ μ¬λ¬ μλΉμ€μ μ κ·Όν μ μμ΄ μ¬μ©μμ νΈμμ±μ΄ μ¦λλλ€.
- 보μ κ°ν: μ¬μ©μκ° λ€μν μλΉμ€μ λν΄ λ³΅μ‘νκ³ λ€λ₯Έ λΉλ°λ²νΈλ₯Ό κΈ°μ΅ν νμκ° μμ΄, κ°λ ₯ν λΉλ°λ²νΈ μ μ± μ λ μ½κ² μνν μ μλ€.
- ν¨μ¨μ μΈ μμ κ΄λ¦¬: μΈμ¦ μ μ°¨κ° μ€μμμ κ΄λ¦¬λλ―λ‘ IT κ΄λ¦¬μλ μ¬μ©μ κ³μ μ λμ± ν¨κ³Όμ μΌλ‘ κ΄λ¦¬ν μ μλ€.
- λͺ©μ : OAuthλ μ‘μΈμ€ μμμ μν κ°λ°©ν νμ€μΌλ‘, μΌλ°μ μΌλ‘ μΈν°λ· μ¬μ©μκ° λΉλ°λ²νΈλ₯Ό μ 곡νμ§ μκ³ λ μΉμ¬μ΄νΈλ μ ν리μΌμ΄μ μ λ€λ₯Έ μΉμ¬μ΄νΈμ μ 보μ λν μ‘μΈμ€ κΆνμ λΆμ¬νλ λ°©λ²μΌλ‘ μ¬μ©λλ€. μ¬μ©μ μ격 μ¦λͺ μ λ ΈμΆνμ§ μκ³ μ¬μ©μ λ°μ΄ν°μ μ‘μΈμ€ν μ μλλ‘ νμ¬ μ ν리μΌμ΄μ μ μΈμ¦νλ λ° μ€μ μ λλ€.
-
μλ λ°©μ: OAuthλ 리μμ€ μμ μ(μ¬μ©μ)μ μΉμΈμ λ°μ μΉμΈ μλ²μμ νμ¬ μ ν리μΌμ΄μ
μ ν ν°μ λ°κΈνλ λ°©μμΌλ‘ μλνλ€. μ΄ ν ν°μ μ μλ κΈ°κ° λμ νΉμ 리μμ€ μΈνΈμ λν μ‘μΈμ€ κΆνμ λΆμ¬νλ€. μ΅μ λ²μ μΈ OAuth 2.0μ API μΈμ¦μ μ¬μ©λλ©° λ€μν ν΄λΌμ΄μΈνΈ μ ν λ° μλ리μ€μ λν μ¬λ¬ νλ¦(λλ λΆμ¬)μ μ§μνλ€.
- λͺ©μ : SAMLμ μλΉμ€ μ 곡μμ ID μ 곡μ κ°μ μΈμ¦ λ° κΆν λΆμ¬λ₯Ό μν XML κΈ°λ° νλ μμν¬μ΄λ€. SSO(Single Sign-On)λ₯Ό μν΄ μν°νλΌμ΄μ¦ νκ²½μμ λ리 μ¬μ©λλ©° μ¬μ©μκ° ν λ² λ‘κ·ΈμΈνλ©΄ μ¬μΈμ¦ μμ΄ μ¬λ¬ μμ€ν μ μ‘μΈμ€ν μ μλ€.
-
μλ λ°©μ: SAMLμμ ID 곡κΈμ(IdP)λ μ¬μ©μμ μ격 μ¦λͺ
μ νμΈν λ€μ μλΉμ€ 곡κΈμ(SP)μκ² SAML μ΄μ€μ
μ 보λΈλ€. μ΄ μ΄μ€μ
μλ μ¬μ©μ IDμ κ΄λ ¨λ μΈμ¦ λ¬Έ λ° μμ±μ΄ ν¬ν¨λμ΄ μμ΅λλ€. κ·Έλ° λ€μ μλΉμ€ 곡κΈμλ μ΄ μ΄μ€μ
μ κΈ°λ°μΌλ‘ μ‘μΈμ€ κΆνμ λΆμ¬νλ€. SAML 2.0μ νμ¬ μΌλ°μ μΌλ‘ μ¬μ©λλ λ²μ μ΄λ€.
- λͺ©μ : OpenID Connectλ OAuth 2.0 νλ‘ν μ½ μμ μλ κ°λ¨ν ID κ³μΈ΅μΌλ‘, ν΄λΌμ΄μΈνΈκ° μ΅μ’ μ¬μ©μμ IDλ₯Ό νμΈνκ³ μνΈ μ΄μ© κ°λ₯ν RESTμ μ μ¬ν λ°©μμΌλ‘ κΈ°λ³Έ νλ‘ν μ 보λ₯Ό μ»μ μ μλλ‘ νλ€. μΉ, λͺ¨λ°μΌ λ° JavaScript ν΄λΌμ΄μΈνΈμ λ리 μ¬μ©λλ€.
-
μλ λ°©μ: OpenID Connectλ μ¬μ©μμ λν μ λ³΄κ° ν¬ν¨λ JWT(JSON μΉ ν ν°)μΈ ID ν ν°μΌλ‘ OAuth 2.0μ νμ₯νλ€. μ¬μ©μλ₯Ό μΈμ¦ν ν ID 곡κΈμλ ID ν ν°κ³Ό μ‘μΈμ€ ν ν°(μΉμΈλ κ²½μ°)μ λ°κΈνλ€. κ·Έλ° λ€μ ν΄λΌμ΄μΈνΈλ ID ν ν°μ μ¬μ©νμ¬ μ¬μ©μ μ 보λ₯Ό μ»κ³ μ‘μΈμ€ ν ν°μ μ¬μ©νμ¬ μΉμΈλ 리μμ€μ μ‘μΈμ€ν μ μλ€.
- OAuthλ μ£Όλ‘ μΈμ¦μ΄ μλ μΉμΈκ³Ό κ΄λ ¨μ΄ μλ€. μ¬μ©μλ₯Ό λμ νμ¬ μμ ν μ μλ κΆνμ μ ν리μΌμ΄μ μ λΆμ¬νλ λ° μ¬μ©λλ€.
- SAMLμ μ¬μ©μκ° μΈμ μ€μ μ¬λ¬ μλΉμ€μ μ‘μΈμ€νλ μν°νλΌμ΄μ¦ μλ리μ€μμ μ£Όλ‘ SSOλ₯Ό ν΅ν μΈμ¦ λ° κΆν λΆμ¬μ μ€μ μ λλ€.
- OIDCλ μΈμ¦μ μΆκ°νκΈ° μν΄ OAuth 2.0μ κΈ°λ°μΌλ‘ ꡬμΆλμ΄ μ μ νμΈκ³Ό λ°μ΄ν° μ‘μΈμ€ κΆνμ΄ λͺ¨λ νμν μ΅μ μΉ λ° λͺ¨λ°μΌ μ ν리μΌμ΄μ μ μν λ³΄λ€ ν¬κ΄μ μΈ μ루μ μ΄λ€.
JSON μΉ ν ν°(JWT) μ λ λΉμ¬μ κ°μ μ μ‘λ ν΄λ μμ λνλ΄λ URL μμ λ°©μμ κ°κ²°ν μλ¨μ΄λ€. JWT λ΄μ ν΄λ μμ JSON κ°μ²΄λ‘ μΈμ½λ©λλ©°, JSON μΉ μλͺ (JWS)μ μ¬μ©νμ¬ λμ§νΈ μλͺ λλ€. μ νμ μΌλ‘, JSON μΉ μνΈν(JWE)λ₯Ό μ¬μ©νμ¬ μνΈνν μλ μλ€.
JWTλ μΌλ°μ μΌλ‘ ν€λ(Header), νμ΄λ‘λ(Payload), μλͺ
(Signature)μ μΈ λΆλΆμΌλ‘ ꡬμ±λλ©°, μ (.)μΌλ‘ ꡬλΆλ©λλ€. κ·Έ ꡬ쑰λ header.payload.signatureμ΄λ€.
- ν€λ(Header): ν€λλ λ³΄ν΅ ν ν°μ μ ν(JWT)κ³Ό μ¬μ©λλ μλͺ μκ³ λ¦¬μ¦(μ: HMAC SHA256 λλ RSA)μ λ λΆλΆμΌλ‘ ꡬμ±λλ€.
{
"alg": "HS256",
"typ": "JWT"
}-
νμ΄λ‘λ(Payload): νμ΄λ‘λμλ ν΄λ μμ΄ ν¬ν¨λ©λλ€. ν΄λ μμ μν°ν°(λ³΄ν΅ μ¬μ©μ)μ λν μ§μ κ³Ό μΆκ° λ°μ΄ν°μ
λλ€. λ±λ‘λ ν΄λ μ, κ³΅κ° ν΄λ μ, κ°μΈ ν΄λ μμ μΈ κ°μ§ μ νμ΄ μλ€.
- λ±λ‘λ ν΄λ μ(Registered Claims): μ΄λ€μ νμλ μλμ§λ§ μ μ©ν μνΈ μ΄μ© ν΄λ μ μΈνΈλ₯Ό μ 곡νκΈ° μν΄ λ―Έλ¦¬ μ μλ ν΄λ μ μΈνΈμ΄λ€. μΌλΆλ iss(λ°κΈμ), exp(λ§λ£ μκ°), sub(μ£Όμ ), aud(λμμ) λ±μ΄λ€.
- κ³΅κ° ν΄λ μ(Public Claims): JWTλ₯Ό μ¬μ©νλ μ΄λ€μ΄ μνλ λλ‘ μ μν μ μλ€. κ·Έλ¬λ μΆ©λμ νΌνκΈ° μν΄ IANA JSON μΉ ν ν° λ μ§μ€νΈλ¦¬μ μ μλκ±°λ μΆ©λ λ°©μ§ λ€μμ€νμ΄μ€λ₯Ό ν¬ν¨νλ URIλ‘ μ μλμ΄μΌ νλ€.
- κ°μΈ ν΄λ μ(Private Claims): λμνλ λΉμ¬μ κ°μ μ 보λ₯Ό 곡μ νκΈ° μν΄ μμ±λ μ¬μ©μ μ μ ν΄λ μμΌλ‘, λ±λ‘λμ§ μμκ±°λ κ³΅κ° ν΄λ μμ΄ μλλ€.
{
"sub": "1234567890",
"name": "John Doe",
"admin": true,
"iat": 1516239022
}- μλͺ (Signature): μλͺ λΆλΆμ μμ±νλ €λ©΄, μΈμ½λ©λ ν€λμ μΈμ½λ©λ νμ΄λ‘λ, λΉλ°ν€, ν€λμ λͺ μλ μκ³ λ¦¬μ¦μ μ¬μ©νμ¬ μλͺ ν΄μΌ νλ€. μλ₯Ό λ€μ΄, HMAC SHA256 μκ³ λ¦¬μ¦μ μ¬μ©νλ κ²½μ°, μλͺ μ λ€μκ³Ό κ°μ λ°©μμΌλ‘ μμ±λλ€.
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret)
- μΈμ¦(Authentication): μ¬μ©μκ° λ‘κ·ΈμΈν ν, κ° νμ μμ²μλ JWTκ° ν¬ν¨λμ΄, ν΄λΉ ν ν°μΌλ‘ νμ©λ κ²½λ‘, μλΉμ€ λ° λ¦¬μμ€μ μ κ·Όν μ μλ€.
- μ 보 κ΅ν(Information Exchange): JWTλ μλ₯Ό λ€μ΄ 곡κ°/κ°μΈ ν€ μμ μ¬μ©νμ¬ μλͺ ν μ μκΈ° λλ¬Έμ, λ°μ μκ° κ·Έλ€μ΄ μ£Όμ₯νλ μ¬λμΈμ§ νμ ν μ μλ€. λν, μλͺ μ ν€λμ νμ΄λ‘λλ₯Ό μ¬μ©νμ¬ κ³μ°λλ―λ‘, λ΄μ©μ΄ λ³κ²½λμ§ μμλμ§λ κ²μ¦ν μ μλ€.
sequenceDiagram
participant User
participant Client
participant Server
participant Protected Resource
%% μΈμ¦ νλ‘μΈμ€
Note over User,Protected Resource: Authentication Flow
User->>Client: Login with credentials
Client->>Server: Send credentials
Server->>Server: Validate credentials
Server->>Client: Generate & return JWT
Client->>Protected Resource: Request with JWT
Protected Resource->>Protected Resource: Validate JWT
Protected Resource->>Client: Return requested resource
%% μ 보 κ΅ν νλ‘μΈμ€
Note over User,Protected Resource: Information Exchange Flow
Client->>Server: Request with JWT
Server->>Server: Verify signature
Server->>Server: Validate claims
alt Signature valid
Server->>Client: Process request
else Signature invalid
Server->>Client: Return error
end
Infrastructure as Code (IaC) λ μλ νλ‘μΈμ€κ° μλ μ½λλ₯Ό ν΅ν΄ μΈνλΌλ₯Ό κ΄λ¦¬νκ³ νλ‘λΉμ λνλ λ°©μμ΄λ€. IaCλ₯Ό μ¬μ©νλ©΄, νλμ¨μ΄κ° μλ κ΅¬μ± νμΌμ μ¬μ©νμ¬ μΈνλΌκ° κ΄λ¦¬λλ€. μ΄ μ κ·Ό λ°©μμ κ°λ°μμ IT μ΄μ νμ΄ νλμ¨μ΄ μ€μ μ΄λ ꡬμ±μ μλμΌλ‘ μ€μ νλ λμ μλμΌλ‘ 리μμ€λ₯Ό κ΄λ¦¬, λͺ¨λν°λ§ λ° νλ‘λΉμ λν μ μκ² ν΄μ€λ€.
- μλν(Automation): IaCλ μΈνλΌ λ°°ν¬λ₯Ό μλννμ¬ λΉ λ₯΄κ³ μΌκ΄λ μ€μ μ κ°λ₯νκ² νλ€.
- λ©±λ±μ±(Idempotency): IaC μμ€ν μ μμ μ ν λ²μ΄λ μ¬λ¬ λ² μ€νλ μ μμΌλ©° λμΌν κ²°κ³Όλ₯Ό 보μ₯νμ¬ μ λ’°μ±κ³Ό μΌκ΄μ±μ 보μ₯νλ€.
- λ²μ κ΄λ¦¬(Version Control): μΈνλΌ κ΅¬μ±μ λ²μ κ΄λ¦¬ μμ€ν μ μ μ₯λμ΄ λ³κ²½ μΆμ , κΈ°λ‘, λ° λ‘€λ°±μ κ°λ₯νκ² νλ€.
- μλ λ° ν¨μ¨μ±(Speed and Efficiency): μΈνλΌμ μ μν νλ‘λΉμ λμ ν΅ν΄ κ°λ° λ° λ°°ν¬ μ£ΌκΈ°λ₯Ό λΉ λ₯΄κ² ν μ μλ€.
- μΌκ΄μ± λ° μ λ’°μ±(Consistency and Reliability): νλ‘λΉμ λ νλ‘μΈμ€λ₯Ό μλννμ¬ μΈκ°μ μ€λ₯λ₯Ό μ΅μννκ³ νκ²½μ λ§€λ² μΌκ΄λκ² νλ‘λΉμ λμ 보μ₯νλ€.
- νμ₯μ±(Scalability): μλ κ°μ μμ΄ κ΅¬μ± νμΌμ λ³κ²½μΌλ‘ μΈνλΌλ₯Ό μ½κ² νμ₯νκ±°λ μΆμν μ μλ€.
- λΉμ© μ κ°(Cost Savings): 물리μ νλμ¨μ΄μ μλ λ Έλμ νμμ±μ μ€μ¬ μκ°μ΄ μ§λ¨μ λ°λΌ λΉμ©μ μ κ°νλ€.
IaCλ₯Ό μ©μ΄νκ² νλ μ¬λ¬ λꡬλ€μ΄ μμΌλ©°, κ°κ° μ체μ μΈ λ¬Έλ²κ³Ό μνκ³λ₯Ό κ°μ§κ³ μλ€:
- Terraform: HashiCorpμ μν΄ κ°λ°λ μ€νμμ€ λꡬλ‘, ν΄λΌμ°λ λ° μ¨νλ λ―Έμ€ λ¦¬μμ€ λͺ¨λλ₯Ό κ΄λ¦¬ν μ μλ€.
- AWS CloudFormation: Amazon Web Servicesμμ μ 곡νλ μλΉμ€λ‘, ν νλ¦Ώμ μ μλ AWS 리μμ€λ₯Ό κ΄λ¦¬ν μ μλ€.
- Ansible: ν΄λΌμ°λ νλ‘λΉμ λ, κ΅¬μ± κ΄λ¦¬ λ° μ ν리μΌμ΄μ λ°°ν¬λ₯Ό μν κ°λ¨ν μλνλ₯Ό μ 곡νλ μ€νμμ€ λꡬμ΄λ€.
- Chef: Ruby κΈ°λ° λ μνΌλ₯Ό μ¬μ©νμ¬ μΈνλΌ νλ‘λΉμ λμ μλννλ κ΅¬μ± κ΄λ¦¬ λꡬμ΄λ€.
- Puppet: IT μΈνλΌμ μνλ₯Ό μ μν μ μκ² νκ³ μ¬λ°λ₯Έ μνλ₯Ό μλμΌλ‘ μ§ννλ λ λ€λ₯Έ κ΅¬μ± κ΄λ¦¬ λꡬμ΄λ€.
μ§μμ ν΅ν©μ κ°λ°μλ€μ΄ μμ ν μ½λλ₯Ό μ£ΌκΈ°μ μΌλ‘ 곡μ λ ν¬μ§ν 리μ ν©μΉλ κ²μ λ§νλ€. μ΄ κ³Όμ μ μλνλ λΉλμ ν μ€νΈλ₯Ό ν¬ν¨νμ¬, μ½λ λ³κ²½ μ¬νμ΄ λ¬Έμ λ₯Ό μΌμΌν€μ§ μλμ§ νμΈνλ€. μ§μμ ν΅ν©μ μ£Όμ λͺ©μ μ μννΈμ¨μ΄ κ°λ° κ³Όμ μμ λ°μν μ μλ μ€λ₯λ₯Ό μ‘°κΈ°μ λ°κ²¬νκ³ ν΄κ²°νλ κ²μ΄λ€.
μ§μμ λ°°ν¬λ κ°λ°λ μννΈμ¨μ΄λ₯Ό κ³ κ°μ΄ μ¬μ©ν μ μλ νκ²½κΉμ§ μλμΌλ‘ λ°°ν¬νλ κ²μ λ§νλ€. μ΄λ μ§μμ ν΅ν© κ³Όμ μ κ±°μΉ ν, μΆκ°μ μΈ μλ κ³Όμ μμ΄ κ³ κ°μκ² μννΈμ¨μ΄λ₯Ό μ 곡νλ κ²μ ν¬ν¨νλ€. μ§μμ λ°°ν¬λ₯Ό ν΅ν΄ μννΈμ¨μ΄μ μλ‘μ΄ λ²μ μ λΉ λ₯΄κ² κ³ κ°μκ² μ λ¬ν μ μλ€.
- ν¨μ¨μ± μ¦λ: μλνλ νλ‘μΈμ€λ₯Ό ν΅ν΄ κ°λ° λ° λ°°ν¬ κ³Όμ μ μλκ° λΉ¨λΌμ§κ³ , μ€λ₯ λ°μ κ°λ₯μ±μ΄ μ€μ΄λ λ€.
- νμ§ ν₯μ: μ§μμ μΈ ν μ€νΈμ ν΅ν©μ ν΅ν΄ μννΈμ¨μ΄μ νμ§μ΄ κ°μ λλ€.
- κ³ κ° λ§μ‘±λ ν₯μ: λΉ λ₯Έ λ°°ν¬λ₯Ό ν΅ν΄ μ¬μ©μμ νΌλλ°±μ μ μνκ² λ°μνκ³ , μννΈμ¨μ΄μ κ°μ μ¬νμ λΉ λ₯΄κ² μ 곡ν μ μλ€.
CI/CD νμ΄νλΌμΈμ ꡬμΆνκ³ κ΄λ¦¬νλ λ° μ¬μ©ν μ μλ μ¬λ¬ λκ΅¬κ° μλ€. κ°μ₯ μΈκΈ° μλ λꡬ μ€ μΌλΆλ λ€μκ³Ό κ°λ€:
- Jenkins: λ€μν CI/CD μλ리μ€λ₯Ό μ§μνλ μ€ν μμ€ μλν μλ²μ΄λ€. Jenkinsλ λ°©λν νλ¬κ·ΈμΈ μνκ³λ‘ λ§€μ° λ§μΆ€νν μ μλ€.
- Travis CI: GitHub νλ‘μ νΈλ₯Ό μν μ§μμ ν΅ν© μλΉμ€μ΄λ€. GitHub μ μ₯μμμ ν΅ν©μ΄ μ©μ΄νκ³ μ¬μ©μ΄ κ°νΈνλ€λ μ₯μ μ΄ μλ€.
- GitLab CI/CD: μμ€ μ½λ κ΄λ¦¬μ CI/CDλ₯Ό νλμ νλ«νΌμΌλ‘ ν΅ν©ν μ루μ μ μ 곡νλ€. κ°λ ₯ν νμ΄νλΌμΈ ꡬμ±μ μ 곡νλ€.
- CircleCI: λΉ λ₯Έ λΉλμ λ°°ν¬λ₯Ό μ§μνλ ν΄λΌμ°λ κΈ°λ° CI/CD μλΉμ€μ΄λ€. GitHubκ³Ό Bitbucketκ³Όμ μ°μν ν΅ν© κΈ°λ₯μ μ 곡νλ€.
- GitHub Actions: GitHub μ μ₯μ λ΄μμ μν¬νλ‘μ° μλνλ₯Ό κ°λ₯νκ² νλ€. GitHub Actionsλ CI/CDμμ μ΄μ λΆλ₯κΉμ§ λͺ¨λ μννΈμ¨μ΄ μν¬νλ‘μ°λ₯Ό μλννλ κ²μ μ½κ² λ§λ€μ΄ μ€λ€.
- ArgoCD: Kubernetesλ₯Ό μν μ μΈμ GitOps μ§μμ λ°°ν¬ λꡬμ΄λ€. ArgoCDλ₯Ό μ¬μ©νλ©΄ μμ€ μ½λ μ μ₯μλ₯Ό μ§λ¦¬μ κ·ΌμμΌλ‘ μ¬μ©νμ¬ Kubernetes 리μμ€λ₯Ό μ μ§ κ΄λ¦¬νκ³ κ΄λ¦¬ν μ μλ€.
- Bamboo: μλνλ λΉλ, ν μ€νΈ, 릴리μ¦λ₯Ό νλμ μν¬νλ‘μ°λ‘ κ²°ν©νλ μ§μμ ν΅ν© λ° λ°°ν¬ λꡬμ΄λ€. λ€λ₯Έ Atlassian μ νλ€κ³Ό μ ν΅ν©λλ€.
- TeamCity: JetBrainsμμ μ 곡νλ λΉλ κ΄λ¦¬ λ° μ§μμ ν΅ν© μλ²μ΄λ€. λ€μν νλ‘κ·Έλλ° μΈμ΄μ κΈ°μ μ μ§μνλ©° ν¬κ΄μ μΈ κΈ°λ₯ μΈνΈλ₯Ό κ°μ§κ³ μλ€.
APM(μ ν리μΌμ΄μ μ±λ₯ λͺ¨λν°λ§) μ μννΈμ¨μ΄ λꡬμ μ격 μΈ‘μ λ°μ΄ν°λ₯Ό μ¬μ©νμ¬ λΉμ¦λμ€ ν¬λ¦¬ν°μ»¬ μ ν리μΌμ΄μ μ μ±λ₯μ λͺ¨λν°λ§νλ νλ‘μΈμ€λ₯Ό λ§νλ€. APMμ IT μ λ¬Έκ°κ° 볡μ‘ν μ ν리μΌμ΄μ μ±λ₯ λ¬Έμ λ₯Ό κ°μ§νκ³ μ§λ¨νμ¬ μ ν리μΌμ΄μ μ΄ μμ μλΉμ€ μμ€μ μΆ©μ‘±νλμ§ νμΈνλ λ° λμμ μ€λ€.
APMμλ μΌλ°μ μΌλ‘ λ€μκ³Ό κ°μ λͺ κ°μ§ μ£Όμ κ΅¬μ± μμκ° ν¬ν¨λλ€.
- μ±λ₯ μ§ν: APM λꡬλ μλ΅ μκ°, νΈλμμ λ³Όλ₯¨, μ€λ₯μ¨, μμ€ν 리μμ€ μ¬μ©λ λ± λ€μν μ±λ₯ μ§νμ λν λ°μ΄ν°λ₯Ό μμ§νλ€.
- μ€μκ° λͺ¨λν°λ§: APMμ μ ν리μΌμ΄μ μ λν μ€μκ° λͺ¨λν°λ§μ μ 곡νμ¬ μ±λ₯ μ΄μ λ° μ€λ¨μ μ μνκ² κ°μ§νλ€.
- μ΅μ’ μ¬μ©μ λͺ¨λν°λ§: μ΅μ’ μ¬μ©μκ° μ ν리μΌμ΄μ κ³Ό μνΈ μμ©νλ λ°©μκ³Ό μ ν리μΌμ΄μ μ±λ₯μ΄ μ¬μ©μ κ²½νμ λ―ΈμΉλ μν₯μ μΆμ νλ€. μ¬κΈ°μλ λΈλΌμ°μ λ° λͺ¨λ°μΌ μ± μ±λ₯ λΆμμ΄ ν¬ν¨λ μ μλ€.
- λΆμ° μΆμ λ° νΈλμμ νλ‘νμΌλ§: APM λꡬλ λΆμ° μν€ν μ² λ΄μ λ€μν μλΉμ€μ κ΅¬μ± μμμμ νΈλμμ μ μΆμ νκ³ μκ°νν μ μλ€. μ΄λ νΈλμμ 체μΈμμ μ§μ°μ΄λ μ€ν¨κ° λ°μνλ μμΉλ₯Ό μ νν μ°Ύμλ΄λ λ° λμμ΄ λλ€.
- λΆμ λ° λ³΄κ³ : APM μ루μ μ μμ§λ λ°μ΄ν°λ₯Ό μ²λ¦¬νκ³ , ν¨ν΄μ μλ³νκ³ , μ μ¬μ μΈ λ¬Έμ λ₯Ό μμΈ‘νκ³ , μ€ν κ°λ₯ν ν΅μ°°λ ₯μ μ 곡νλ λΆμ λꡬλ₯Ό μ 곡νλ€.
- μ ν리μΌμ΄μ ν ν΄λ‘μ§ κ²μ: μ΅μ APM λꡬλ μ ν리μΌμ΄μ μ λ€μν κ΅¬μ± μμμ μ’ μμ±μ μλμΌλ‘ κ²μνκ³ λ§€ννμ¬ μ ν리μΌμ΄μ μν€ν μ²μ λν ν¬κ΄μ μΈ λ³΄κΈ°λ₯Ό μ 곡ν μ μλ€.
- Dynatrace: μ±λ₯ λ¬Έμ λ₯Ό κ°μ§νκ³ μ§λ¨νλ μ¬μΈ΅ λͺ¨λν°λ§ κΈ°λ₯κ³Ό κ΄λ²μν μλνλ‘ μ μλ €μ Έ μλ€.
- New Relic: κ°λ ₯ν λΆμ κΈ°λ₯μ ν΅ν΄ ν¬κ΄μ μΈ μ ν리μΌμ΄μ λ° μΈνλΌ λͺ¨λν°λ§μ μ 곡νλ€.
- Datadog: ν΄λΌμ°λ νκ²½μ μ€μ μ λκ³ μλ², λ°μ΄ν°λ² μ΄μ€, λꡬ λ° μλΉμ€ μ λ°μ λν λͺ¨λν°λ§μ μ 곡νλ€.
- AppDynamics: μμΈν μ ν리μΌμ΄μ μ±λ₯ ν΅μ°°λ ₯ λ° λΉμ¦λμ€ μ±κ³Ό λͺ¨λν°λ§μ μ€μ μ λλ€.