TIL

[에스넷시스템 부트캠프] TIL Day 57 - 직무 특강 3

yulee_to 2025. 8. 8. 22:39
728x90
반응형

1. 프로젝트 피드백

현업자 피드백 요약

긍정적 평가

  • 심플하고 깔끔한 아키텍처 구성

개선 제안사항

  • 성과 중심 프로젝트 특성상 기술적 챌린지 요소 필요
  • 현재 서비스 규모 대비 K8s 도입 목적에 대한 명확한 근거 필요
  • API Gateway 배치 전략 재검토 (Private 배치 시 외부 접근 경로 확보 또는 Public 배치 고려)

피드백 반영 계획

  1. K8s 기반 통합 관리 체계
    1. 적용 범위: 데이터 수집, 웹 서비스, 모니터링, 로깅 시스템을 K8s 클러스터로 통합 관리
    2. 도입 근거: 마이크로서비스 간 오케스트레이션, 자동 스케일링, 장애 복구 자동화
  2. 데이터 수집 방식 개선
    1. 기존: 배치 방식 데이터 수집
    2. 변경: 이벤트 드리븐 방식으로 전환
    3. 선택 이유:
      실시간 뉴스 데이터 수집이라는 서비스 특성에 최적화
      수집 실패 시 재시도 메커니즘을 통한 안정성 향상
  3. 인프라 구성 최적화
    1. 온프레미스: 백업 용도로 사용
    2. API Gateway: DynamoDB 연동 백엔드 서버를 K8s로 관리할 경우 불필요 (Ingress Controller로 대체 가능)

 

2. 직무 특강 - 엔지니어의 인성

1) 취업 노하우

지원자의 기술 스택과 프로젝트, 자격증이 가장 중요

ex) 자바에서도 어떤 것에 정확히 관심이 있는지 어필

 

문 열고 들어올 때 25% 합격 여부가 결정된다. 

면접자 주요 질문사항

1. 인사 담당자

- 성적, 취미, 성격 등

- 야근, 특근에 관한 질문 

2. 본부/부서 본부장

- 공부하면서 어려웠던 점

- 문제 해결 경험

3. 실무 담당자 (팀장)

- 이력서 기반 실무 관련 질문

 

같이 일하기 힘든 타입에 대한 질문을 받은 적이 있는데 어떻게 대답하면 좋을지?

=> 제가 오히려 그 사람에 맞춰서 일할 수 있도록 노력하고, 업무적으로든 협업을 하는 데 일을 떠맏게 되더라도 열심히 일해서 프로젝트 완성에 더 목표를 둘 것입니다. 

상사가 부당한 지시를 했을 때 어떻게 할 것인가에 대한 대답은 어떻게 하면 좋을지?

=> 정말 불법적인 지시가 아니라면 부당하다고 생각하기 보다는 의미가 있는 일이라고 생각할 것 같습니다. 신입의 입장에서 경험이 없는 만큼 상사의 지시에서 배울 점을 찾으려고 노력할겁니다. 

 

2) Best 엔지니어가 되기 위한 조언

1. 의심될 때는 테스트해라

- 실제 환경과 최대한 가깝게 만들기

- 테스트 할 때는 무엇을 달성하고자 하는지 문서화 하는 것부터 시작하자

ex) 사설 서브넷(S3 VPC 엔드포인트 없이)에 존재하는 EC2 인스턴스에서 S3로 파일을 업로드 중일 때 네트워크 주소 변환(NAT) 게이트웨이를 종료하면 어떤 일이 일어나는가? 

-> 데이터 저장이 실패함.

 

2. 이상하면 이상하다

- 애플리케이션만 동작하면 끝? 뭔가 찜찜하다면 이상하다는 느낌이 없어질 때까지 디버깅하고 해결하자. 

 

3. 인프라를 소프트웨어처럼 취급하자.

- 인프라는 중요하다. 인프라와 애플리케이션 코드는 똑같이 중요하다

- 인프라 드리프트를 IaC 도구로 자동화하는 것은 엔지니어에게 아주 핵심적인 능력이다

ex) 주요 퍼블릭 클라우드는 각자의 IaC 도구가 있다. AWS CF, 구글 CDM, 애저 RM 

 

4. 신뢰할 수 잇는 시스템은 우연히 만들어지지 않는다.

- 서비스 요청이 갑작스럽게 가용량을 초과하는 수준으로 들어온다

- API 요청이 플랫폼에 의해 쓰로틀링 된다.

ex) 시스템이 받는 입력부터 응답을 기다리는 모든 것에 제한을 두어야 한다. -> DB 카니덜리티 강화

자동 수평 확장을 사용하더라도 수용할 수 있는 수를 제한하자. -> 서비스가 다운되는 것보다 낫다

 

5. KISS 하라.

- 단순하게 하자. (Keep It Simple, Stupid)
- 동작하지 않는다면?이 중요한게 아니라 언제 동작하지 않는다면?이 중요하다.

ex) 성급한 최적화를 피하자.

최소 가용 제품(MVP)을 사용하여 작게 시작해서 설계를 확장해나가자.

 

6. 문서를 읽어라, 다시 읽어라 그리고 이해해라.

- 아무리 문서를 읽었다고 해도 또 다른 도전이 남아 있다.

여러분이 구축하는 시스템의 핵심 기술들을 이해하는 것이 이를 사용하고 조합해서 만드는 것과 마찬가지로 중요하다 -> 기능을 모르다면 없는 것과 마찬가지다. 

이미 아는 내용을 확인하는 용도로만 구글링을 하자.

 

7. 계속해서 호기심을 가지자.

- 새로운 기술, 플랫폼, 솔루션이 매일같이 나오기 때문에 평생 배워야 한다

절대로 자신이 알고 있거나 선호하는 것에만 제한하지 말고 기술 레버리지를 확장하자

불가능해 보이는 것을 시도하고 다시 시도해보자

 

8. 무엇보다도 즐겨라

- 3, 6, 9 매너리즘이 꼭 찾아온다

- 강단에 서는 것에 희열을 느껴라.

 

9. 한 번만 더 시도해보자. 

 

3) 클라우드 기술

클라우드 네이티브 정의

조직이 퍼블릭, 프라이빗, 그리고 하이브리드 클라우드와 같은 현대적이고 동적인 환경에서 확장 가능한 애플리케이션을 개발하고 실행할 수 있게 해준다. 컨테이너, 서비스 메쉬, 마이크로서비스, 불변 인프라, 그리고 선언형 API가 이러한 접근 방식의 예시들이다. 

이 기술은 회복성, 관리 편이성, 가시성을 갖춘 느슨하게 결합된 시스템을 가능하게 한다. 견고한 자동화 기능을 함께 사용하면 엔지니어는 영향이 큰 변경을 최소한의 노력으로 자주, 예측 가능하게 수행할 수 있다.

 

 

클라우드 기술 용어 정리

- On-Demand Service

- Flexibility 
- 자원의 재활용

- AWS GCP Azure

- IaaS, PaaS, SaaS

 

클라우드 기술

- 특정 시간 동안 사용되지 않는 컴퓨팅 자원의 활용

가상 머신 : HyperVisor라는 SW를 이용하여 논리적으로 완전히 격리된 환경에서 실행되는 논리적인 컴퓨터

컴퓨팅 자원의 활용과 안정성 : 하이퍼바이저에 의해 분리된 가상 컴퓨터들은 서로 영향을 주지 않고 물리적 시스템에도 영향을 주지 않아 시스템의 안정성(재해 복구)을 높일 수 있다. 

 

클라우드 컴퓨팅이란

클라우드 컴퓨팅은 클라우드 내에서 워크로드를 실행하는 활동이다. 

클라우드란 네트워크 전반에서 확장 가능한 리소스를 추상화, 풀링, 공유하는 IT 환경을 말한다.

클라우드 컴퓨팅과 클라우드 자체가 기술은 아니다. 

- 클라우드 컴퓨팅은 클라우드에서 워크로드를 실행하는 기능, 즉 동작을 말함

- 클라우드는 애플리케이션이 실행되는 환경

- 기술은 클라우드를 구축하고 사용할 때 필요한 소프트웨어나 하드웨어 같은 것

 

클라우드 컴퓨팅 장점

종량제 : 사용한 만큼만 지불

용량 추측 중지 : 필요한 만큼의 용량에 액세스 가능 

속도 및 민첩성 향상 : 클릭 한번으로 IT 리소스 사용 가능

비용 절감 : 기업은 데이터 센터를 유지하는 대신 비즈니스를 차별화하는 프로젝트에 집중 가능

몇분 만에 글로벌화 : 클릭 몇번으로 전 세계 여러 지역에 애플리케이션 배포 가능

 

DevOps란?

애플리케이션과 서비스를 빠른 속도로 제공할 수 있도록 빌드, 테스트, 릴리즈를 자동화

 

728x90
반응형