본문 바로가기
DevOps

(유튜브)컴공 학생, 신입, Jr. S/W 엔지니어들이 꼭 알았으면 하는 것!

by Engineer-Lee 2024. 8. 15.
반응형

https://youtu.be/yMT7gBtLvZA?si=ImugL1A7ZY2vaU2f

 

 

1. 보안(Security)

  • IP 차단(Blocking): 특정 IP 주소나 지리적 위치에서의 접근을 제한하여 외부 침입으로부터 시스템을 보호합니다. 예를 들어, 특정 국가에서의 접근을 막거나, 내부 네트워크에서만 접근이 가능하도록 설정합니다.
  • 데이터 암호화(Encryption):
    • 대칭키 암호화: 동일한 키로 데이터를 암호화하고 복호화합니다. 간단하지만, 키 관리가 어렵습니다.
    • 비대칭키 암호화: 서로 다른 공개키와 개인키를 사용하여 데이터를 암호화하고 복호화합니다. 예를 들어, HTTPS가 이 방식을 사용하여 웹 브라우저와 서버 간의 안전한 통신을 보장합니다.
    • 동형 암호화(Homomorphic Encryption): 암호화된 상태에서 데이터를 처리하고 연산할 수 있는 방법으로, 민감한 데이터를 보호하면서도 분석할 수 있습니다.
  • 감사 로그(Audit Logs): 시스템 접근과 데이터 변경에 대한 기록을 남겨 나중에 보안 사고가 발생했을 때 추적할 수 있도록 합니다.

2. 신뢰성(Reliability)

  • 이중화(Failover): 주 서버에 문제가 발생했을 때 자동으로 백업 서버로 전환되는 구조입니다. 예를 들어, A 서버가 다운되면 자동으로 B 서버로 트래픽이 전환됩니다.
  • 고가용성(High Availability): 서버나 서비스가 언제나 사용 가능하도록 이중화와 삼중화를 통해 장애 발생 시에도 서비스 중단을 최소화합니다.
  • 관측성(Observability): 시스템의 상태를 실시간으로 모니터링하고 이상 징후를 사전에 감지할 수 있는 도구와 프로세스를 구축합니다. 예를 들어, Datadog, Prometheus, Grafana와 같은 도구를 사용하여 시스템의 성능과 상태를 모니터링합니다.

3. 효율성(Efficiency)

  • 자동화(Automation): 반복적인 작업을 스크립트나 도구를 사용해 자동화하여 인적 오류를 줄이고, 엔지니어의 시간을 절약합니다. 예를 들어, CI/CD 파이프라인을 통해 코드를 자동으로 빌드, 테스트, 배포합니다.
  • 비용 효율성: 인프라를 설계할 때 최소한의 자원으로 최대한의 성능을 발휘할 수 있도록 설계합니다. 예를 들어, 서버 리소스를 효율적으로 사용하기 위해 오토스케일링(Auto Scaling)을 설정합니다.

4. 조직적 리더십과 문화

  • 기술 표준화: 조직 내에서 통일된 기술 표준과 프로세스를 확립하여 일관된 개발 환경과 배포 프로세스를 유지합니다. 예를 들어, 코드 스타일 가이드를 마련하고, 모든 개발자가 이를 준수하도록 합니다.
  • 팀 협업 강화: 팀원들 간의 협업을 촉진하고, 모든 구성원이 보안, 신뢰성, 효율성 등의 원칙을 이해하고 실천하도록 지도합니다. 예를 들어, 코드 리뷰 과정을 통해 팀원들이 서로의 코드를 검토하고 피드백을 제공하는 문화를 조성합니다.

5. 지속적인 학습과 성장

  • 최신 기술 습득: 엔지니어는 최신 기술 트렌드를 따라잡고, 새로운 도구와 방법론을 지속적으로 학습하여 실력을 향상시켜야 합니다. 예를 들어, 클라우드 컴퓨팅이나 머신러닝 같은 최신 기술에 대한 교육을 정기적으로 받습니다.
  • 경험 기반 학습: 실무에서의 경험을 통해 문제를 예측하고 해결할 수 있는 능력을 키우며, 이를 바탕으로 더 나은 설계와 구현을 할 수 있도록 합니다.

6. 정신적 강인함

  • 비판에 대한 대처: 비판이나 어려움에 직면했을 때 흔들리지 않고 자신의 신념과 목표를 지키며 나아가는 것이 중요합니다. 예를 들어, 프로젝트에서 문제를 직면했을 때, 이를 긍정적으로 해결하려는 태도를 유지합니다.
  • 문제 해결의 적극성: 발생한 문제를 즉각적으로 해결하고, 이를 통해 장기적으로 기술 부채를 최소화하는 것이 중요합니다. 예를 들어, 코드나 시스템에서 발생한 문제를 즉시 해결하고, 유사한 문제가 재발하지 않도록 문서화합니다.

7. 올바른 방향 설정

  • 방향성 유지: 단기적인 목표보다 올바른 방향으로 나아가는 것이 중요하며, 이를 통해 장기적인 성공을 이루는 전략을 세웁니다. 예를 들어, 프로젝트 목표를 설정할 때, 단기적인 성과보다는 장기적인 기술적 발전과 조직의 이익을 고려합니다.

8. 미래를 대비하는 아키텍처 설계

  • 불변성(Immutable): 서버와 시스템을 설정할 때, 한 번 설정된 서버나 시스템을 변경하지 않고 새로 배포하는 방식으로 관리합니다. 예를 들어, 서버 설정을 코드로 작성하여, 매번 새로운 서버를 동일한 설정으로 배포합니다.
  • 컨테이너화와 Kubernetes: 애플리케이션을 컨테이너화하여 일관된 개발 환경을 제공하고, Kubernetes를 사용해 확장성과 복원력을 강화합니다. 예를 들어, Docker를 사용해 애플리케이션을 컨테이너로 패키징하고, Kubernetes로 여러 서버에 분산 배포합니다.

이러한 구체적인 원칙과 기술들을 통해 엔지니어는 조직 내에서 중요한 역할을 수행하고, 성공적인 커리어를 쌓을 수 있다는 점을 강조한 강의입니다.

반응형

'DevOps' 카테고리의 다른 글

Jenkins podtemplate 이용할때 인식이 안되는 이유  (0) 2024.08.21