데브코스 특강 TIL : 어떻게 공부해야 하는가

te-ing·2021년 9월 4일
0
post-thumbnail

오늘은 아침부터 FE+BE 입문 개발자가 챙겨가야할 지식 키트 라는 주제의 특강이 있었다. 입문개발자를 대상으로 간단한 지식을 설명해주는 강의였기 때문에 대체로 알고 있는 내용이 많았지만 그 중 잘 알지 못하는 것들이나 더 알고 싶은 것, 그리고 어떻게 공부해야 하는지 알려주신 것들을 간단히 정리하였다.

커널과 쉘

커널

시스템의 모든 작업을 제어하는 운영체제의 핵심으로, 운영체제의 대부분의 기능은 커널에서 실행된다. 운영체제에서 가장 중요한 요소로서 입출력을 관리하고, 소프트웨어로부터의 요청을 받아 필요한 자원을 할당해주는 역할을 한다.

Shell

운영체제에 접근하기 위해 거쳐야 하는 것으로 사용자가 터미널에서 입력한 명령을 해석하고 관리하여 사용자와 커널 사이를 연결하는 역할을 한다. 크게 명령어 해석기 기능, 프로그래밍 기능, 사용자 환경 설정 기능을 가지고 있다.


포트주소

어떤 프로그램에 접속할 것인지 파악하기 위해 네트워크 서비스나 특정 프로세스를 식별하는 논리 단위이며, IP주소와 함께 쓰여, 해당하는 프로토콜에 의해 사용된다. 예를들어 ftp://000.000.000.000:21 이라는 URL에서 맨 마지막에 있는 21이 포트번호 이다.

자주 사용되는 well-known port

-20 FTP -데이터 전송 포트
-21 FTP -데이터 제어포트
-53 DNS
-80: 월드와이드 웹, HTTP
-443L TLS/SSL 방식의 HTTP


가상화 기술과 도커

가상화

가상화 기술은 하드웨어에 종속된 컴퓨터 리소스를 추상화하여 서버, 스토리지, 네트워크 등의 소프트웨어 IT서비스를 생성하는 솔루션을 뜻한다. 이를 통해 한 대의 물리적 머신의 기능을 여러 사용자 또는 환경에 배포하거나, 여러 장비를 하나의 장비처럼 묶어서 사용하여 물리적 머신을 최대한 활용할 수 있다. 가상화 기술에는 서버 가상화, 데스크탑 가상화, 애플리케이션 가상화가 있다.

유틸리티 컴퓨팅(Utility Computing)

기업이 IT서비스가 필요할 때 IT 시스템을 직접 구축하지 않고, 전기나 수도처럼 빌려서 사용하고 사용량에 따라 요금을 지불하는 것이다.

클라우드 컴퓨팅

클라우드 컴퓨팅은 기존의 하드웨어와 이들을 연결하는 네트워크로 구성된 환경을 가상화를 통해 통합된 계산, 저장 및 처리가 가능한 환경으로 제공하는 것이다. 이를 통해 대부분의 작업을 온라인에 분산되어 존재하는 클라우드(데이터 센터)에 맡겨 수행하고, 사용자의 컴퓨터는 클라우드에 접속하여 상호작용하는 단말기 역할만 하는 것이다.

도커

도커는 간편한 사용법과 커뮤니티, 그리고 높은 모듈성과 확장성으로 누구든지 컨테이너의 이점을 쉽게 활용할 수 있도록 해주는 컨테이너 자동화 오픈소스 프로젝트이다.

하이퍼바이저

하이퍼바이저란 VM이 실행되는 소프트웨어나 펌웨어, 혹은 하드웨어를 뜻한다. 하이퍼바이저는 호스트 머신이라 불리는 물리적 기계 위에서 돌아가며, VM에 램과 CPU 등의 자원을 제공한다.

VM

컴퓨터의 에물레이션으로, 프로그램을 컴퓨터처럼 실행하게 해준다. 맥(IOS)에서 윈도우를 구동하거나, 윈도우에서 우분투(Linux)를 사용하는 등의 예가 있다.


CI와 CD

개발 - 빌드 - 테스트 - 배포까지의 전 과정을 자동화하는 것으로, 여러 서비스(CI/CD툴)이 있다.

CI(Continuous Integration)

여러 개발자가 작성한 코드를 합쳐지기 개발자의 코드가 합쳐지기 전, 수정한 소스를 지속적으로 통합하고 테스트하는 것을 뜻한다.

CD(Continuous Deployment)

개발, 통합, 배포, 릴리즈, 테스트를 자동화하여 지속적으로 배포하는 것을 뜻하며, 개발자의 코드를 운영환경에서 실행되기까지 자동화 한 것이다.


온보딩 프로세스

조직에 새로 합류한 사람이 빠르게 적응하도록 지원하는 과정을 뜻한다.


어떻게 공부해야 하는가

  • 개발하는 시간보다 코드를 읽는 시간이 더 많기 때문에 읽기 좋은 코드를 짜야 한다.
  • 포트폴리오는 하나를 집중해 디벨롭하여야 한다
  • 객체지향 → 테스트코드 → 아키텍처 순으로 공부하면서 프로젝트 디벨롭해야 한다.
  • 문제를 해결하면서 배우는 것들로 TIL 작성한다.
  • 공부한 것의 기준은 면접 때 자연스럽게 대답할 수 있을 정도가 되는 것.

참고사이트 커널과 쉘, 가상화기술 컨테이너, VM, 그리고 도커, CI와 CD, 온보딩 프로세스

profile
병아리 프론트엔드 개발자🐣

0개의 댓글