What I Learn Today

Start Date : 2022/02/07 ~

Learn/Company

[TIL #4] 첫 주 마지막 출근, Docker 과제

HannaDev 2022. 2. 12. 00:57

다섯 번째 출근날 ! 오늘은 개발팀의 개발 및 협업 Tool 에 대한 교육을 받았습니다.

 

어제 주셨던 AWS 구성도 그려오기 과제도 확인하는 시간을 가졌는데요! 평가의 시간보다는 해당 구성도를 바탕으로 인프라와 관련된 내용을 추가해주는 방식이었습니다. (*ˊᵕˋ*)ノ

 

다음 주에는 프론트엔드 직무로 개발자 한 분이 신입으로 오시는데, 이와 관련해서 프론트엔드 개발자님과 리드 개발자님도 같이 교육 OT 에 참관하셨습니다. 다음 주에 새로운 분이 오신다니 동기가 한 분 더 생기는 기분이네요 ㅎㅎ!


▶ 전체적인 스케쥴

  • 캔틴 구경, 물 떠오기 + AWS 책 읽기 - 0.5h
  • 개발 스크럼 회의 참관 - 0.5h
    • 주요 안건 : 릴리즈 트래픽 문제 (캐시), 시스템 점검에 대한 니즈, 주간 회의
  • [과제] 유튜브 서비스를 만든다면 AWS 를 어떻게 구성할 것인가 ⇒ 구성도 그리기 - 0.5h
    • 큰 틀은 ‘배워서 바로 쓰는 14가지 AWS 구축 패턴' 책 참고 + 구글링하며 추가 보완
  • 구성도 밀도 높이기 (feat. 유저 시나리오) - 2h
    • CDN 내부 구조, 유저 시나리오에 따른 시스템 흐름 파악하기 등
  • 점심 ⇒ 동기 분들과 대화 - 1h
  • Back-end OT (feat. 부장님) - 2h
  • [오후 3시~] OT 내용 정리 - 2h
    • To do 는 동기 분들에게도 공유
  1.  

▶ 그려본 AWS 구성도 (if 유튜브같은 동영상 서비스를 만들어본다면?)

 

CDN 내부 구조는 공부가 더 필요하다.

=> 종이에다 그려서 월요일에 다시 발표하기로 함. 이미지 파일로 만들어서 오기!


 To do list

  • AWS 구성도 - 클라우드에 종속(Lock in)되지 않는 방향으로도 그려보라.
    • [ex] AWS CloudFront ⇒ CDN 으로 표기
  • IDE - Vi 에디터 사용해보기
    • 터미널 상, OS 상에서 코드 수정 시 활용하는 경우가 있다.
    • 기본적인 단축키를 숙지해놓으면 빠르게 수정해야 하는 경우 편리하다.
  • IDE - 플러그인 맞추기 (조언)
    • 동기 간 서로 Pycharm 플러그인을 맞춰두면 코드 리뷰하거나 서로 피드백할 때 편리할 것.
    • IDE 를 계속 켜 놓으면 프로그램이 무거워 메모리를 조금씩 잡아먹는다. 중간에 종료해주면 느려지는 걸 방지할 수 있다.
  • Git - 명령어 파악하기
    • 브런치 관리, 병합 등 Git 에 있는 다양한 코멘드들을 숙지하고 있어야 한다.
  • Git Client - 여러 개 중 하나 선택해서 익숙해지기
    • 자신에게 맞는 것을 하나 선택해서 잘 사용하면 된다. 정해놓은 것은 없다.
  • 코드리뷰 - GitHub 에서 비대면으로 진행
    • 대면으로 하면 전날부터 분위기가 안 좋아진다.
    • 동료 코드에 칭찬을 많이 해주는 것도 중요 포인트.
  • 문서화 - 컨플루언스(위키), Notion
    • 개발자에게 있어 문서화 능력도 중요!
    • 한 번 들어가서 자신만의 문서를 작성해보라. 자유롭게 작성하면 된다. 정해진 규격 없음.
    • 문서화하는 능력은 꾸준히 연습해놓으면 좋다.
  • ITS (이슈 추적 시스템) - Jira 기능 확인하기
    • 다른 회사에서는 레드마인(오픈소스)도 많이 활용한다. Jira 가 비싸긴 하다.
  • 배포 Tool - Jenkins. CI/CD 개념 이해하기
    • 간단히 말하면 ‘무중단 배포'를 하는 것. (전략적인 배포)

# 숙제

  • Docker 개념 이해하기
    • 도커가 무엇인지. 어떤 구조인지.
    • VM 과의 차이점은 무엇인지.
    • 사용법 X. 전체적인 맥락에서 Docker 이해해오기.
    ⇒ 다음주에 다룰 내용이니 리마인드 차원에서 파악하고 올 것.
  • ⇒ 잘 모른다면 기본 개념 조사해보기.

 


► 인프라 OT 과제 피드백 + 추가 설명

  • 클라우드 종속적으로 구성도를 그려왔다. 락인되지 않도록 구성도를 그려보라.
    • [ex] AWS Cloud Front ⇒ CDN (Contents Delivery Network)
    • [ex] AWS Route 54 ⇒ DNS 서비스
  • AWS S3 는 오브젝트 스토리지?
    • 그럼 오브젝트 스토리지가 무엇인가
    • 그 반대인 블록 스토리지가 무엇인가
    ⇒ 이런 도메인 개념들 알아두기!

 

  • AWS Elastic BeanStalk
    • 서버 개념보다는 PaaS 에 가깝다. (Platform-as-a-service)
    • 환경을 만들어주는 것.
    • 로드 밸런서 등을 클릭으로 쉽게 만들 수 있다.
    • 즉, 환경 세팅을 자동화해주는 개념.
  • CDN (Contents Delivery Network)
    • 비용 절감의 목적으로 사용하는 것은 아니다.
    • 데이터 전달 속도를 지역 별로 보장해주기 위해 사용하는 것.
  • Database - Master/Standby
    • Fail Over 를 방지하기 위한 대처 방식.
    • 이런 목적 말고도 데이터베이스를 이중화하는 경우가 있다.
      • 데이터베이스의 부하를 줄이기 위해 복제본을 만드는 경우.
  • Elastic Load Balancer
    • L2, L4, L7 ⇒ OS 7계층과 관련된 내용이다.
    • 추가 공부 필요.

► 개발 및 협업 Tool 설명 ⇒ 이 부분은 To do list 로 대체


► 추가 공부가 필요한 부분

 

  • CDN (Contents Delivery Network) ?
    • [궁금증] CDN 은 웹 서버인가요?
    • CDN 은 말 그대로 Network. 서버가 아니라 환경을 말하는 것이다.
      • 중국은 해외망을 막아놔서 CDN 을 사용할 수 없다.
      • 중국 내 회사가 있어야 정부에 허가 요청 가능 ⇒ 1달 이내로 허가받으려면 뇌물 필요.
    ⇒ 동기 분이 니콜라스 유튜브 채널 추천.
    ⇒ 니콜라스 유튜브 채널을 정주행하며 기초를 쌓자...!

 

  • 쿠버네티스 ?
    • 컨테이너화된 애플리케이션을 효율적로 배포하고 운영하기 위해 설계된 오픈 소스 플랫폼.
    • 구글의 사내 운영 시스템인 Borg를 오픈 소스로 만든 것이다.
    ⇒ 자세한 조사는 CS Log 에서 다루기!