개발공부 & 부트캠프/[부트캠프] 회고

[데이터 엔지니어링 부트캠프]9월 1주차 회고

포리셔 2023. 9. 10. 17:25

좋았던 점

  • 수업용으로 같이 제공해주시는 PPT 자료가 굉장히 자세하게 서술되어 있습니다. 미리 PPT를 보면서 설명을 듣고 실습 시간을 주는 형태로 진행이 되었는데, 설명 중에 조금 놓친 부분이 있어도 실습 도중 ppt를 보면서 충분히 따라갈 수 있을 만큼 준비가 잘 되어 있었습니다.
  • 리눅스와 클라우드 서비스 간의 설명이 잘 연계되어 있는 것 같았습니다. 그 전에 수업 들었던 내용들도 복습 삼아서 중간중간 등장하는 것도 다시 기억을 떠올릴 수 있는 점에서 좋았습니다.

아쉬웠던 점

  • 수업 내용 외에도 취업이라든가 인생 관련 조언을 해주셨던 다른 강사님들과 달리 오로지 미리 준비된 수업 내용과 센터에서 제공한 커리큘럼에 충실하려는 게 다소 아쉬웠습니다. 그렇다고 수업 중에 수강생들을 세심하게 케어해주냐면 그것도 아니고... 질문을 해도 두루뭉술하게 답변한다든가, 솔직히 강의를 많이 다녀보신 스타일은 아니라는 생각이 듭니다.

배운 점

리눅스 입문

  • WSL - 우분투: Windows의 WSL을 기반으로 우분투를 CLI 환경에서 실행하는 법을 배웠습니다.
  • 리눅스 기초: 각 디렉터리의 구조와 파일의 개념을 배웠습니다.
  • 리눅스 기본 명령어
    • date: 오늘 날짜 출력.
    • man: 어떤 명령어에 대한 설명(도움말) 출력. 예를 들어, man clear를 입력하면 clear 명령어에 대한 설명이 출력됩니다. 설명 창에서 다시 터미널로 돌아올 때는 q를 입력하면 됩니다.
    • clear: 현재 터미널에 출력된 내용들을 지웁니다.
    • pwd: 현재 작업 중인 디렉터리 주소 출력. print working directory의 준말입니다.
    • cd: 디렉터리 변경. 상위 폴더로 이동 시에는 cd ..을 사용합니다.
    • ls: 현재 디렉터리 안에 있는 하위 디렉터리와 파일의 목록 출력.
    • mkdir: 디렉터리 생성.
    • rm: 디렉터리 또는 파일 삭제.
    • cp: 파일 복사.
    • mv: 파일 이동 또는 파일의 이름 변경.
    • 관리자 권한, 즉 root 권한으로 실행할 때는 명령어 앞에 sudo를 붙입니다.
  • vi 에디터의 기본적인 사용 방법을 배웠습니다.
    • i, o 등의 명령어는 입력 모드로 전환할 때 사용합니다.
    • Esc 키는 명령 모드로 전환합니다.
    • 작성 중인 파일을 저장 후 vi 에디터를 닫을 때는 명령 모드에서 :wq를 입력합니다. 단, 새 파일을 작성한 것이 아니라 기존의 존재하던 파일을 수정한 경우에는 :wq!를 입력해야 나올 수 있습니다(이 차이는 우분투 버전에 따라 조금씩 다를 수 있습니다).
  • 리눅스에서의 권한 변경: ls -l 명령어 등으로 확인할 수 있는 각 파일 및 디렉터리의 권한을 읽는 방법을 배우고, 이를 chmod 명령어를 이용해 변경하는 방법을 배웠습니다.

AWS EC2

  • EC2: Elastic Compute Cloud의 줄임말로, 가상 서버 기능을 제공하는 클라우드 서비스입니다.
  • AWS의 계정을 생성한 뒤 퍼블릭 IPv4 주소를 이용해 키를 생성하고 PuTTY를 이용해 가상 서버 접속 및 환경 설정을 했습니다.
  • 윈도우 - 리눅스 간 파일 전송: FileZilla를 이용해 PuTTY로 연결한 AWS EC2 서버에 파일을 전송합니다. 수업에서는 간단한 스프링 부트 프로젝트를 만들어 EC2 서버에 올린 뒤, 실행시키는 예제를 실습했습니다.

도커 (Docker)

  • 하나의 컴퓨터에서 여러 대의 서로 다른 컴퓨터가 있는 것처럼 실행하는 가상화 기술의 일종으로, 도커가 제공하는 가상의 리눅스 컴퓨터에서 개발을 진행한 후 해당 소스 그대로 클라우드 환경에서 실행할 수 있습니다.
  • 도커 이미지: 프로그램 실행 환경을 만들기 위한 설정이 있는 파일입니다.
  • 도커파일(Dockerfile): 도커 이미지를 작성할 수 있는 기능으로, 도커파일 문법으로 이미지 생성을 위한 스크립트를 작성, 이를 기반으로 이미지를 생성합니다. 앞서 실습한 스프링 부트 프로젝트 폴더에 도커파일을 생성해 실행 환경, 필요한 라이브러리 및 프레임워크 설치, 사용할 포트 설정 등을 실행했습니다.

웹 데이터베이스 구축

  • AWS MySQL: AWS의 RDS(관계형 데이터베이스 서비스) 서비스를 이용해 웹 서버를 만들고, 네이버에서 웹 크롤링을 통해 영화 정보 DB를 구축해 업로드하는 실습을 진행했습니다.

앞으로 바라는 점

  • 파이널 프로젝트가 되면 대용량 데이터도 DB에 올리고 연산을 돌려야 할 때가 올 텐데, 시기 적절하게 리눅스와 도커, AWS를 함께 배울 수 있게 되었습니다. 이런 기능들을 십분 활용해서 프로젝트에서 써먹을 수 있을 만큼 소화시키고 프로젝트에 대한 새로운 아이디어가 떠오르는 계기가 되었으면 합니다.
  • 한편으로는 이 정도로 강력한 툴의 기능을 최대한 활용할 만큼 좋은 주제, 데이터셋과 분석 기법 등을 잘 선택할 수 있을까 하는 우려가 되기 시작했습니다. 이제 9월이 되면서 파이널에 대한 이야기도 슬슬 나오고 있는 중이고, 개중에는 같은 수강생들 사이에서도 꽤 규모를 크게 가져가려는 생각도 있어서 지금부터 다 같이 얘기를 하면서 심사숙고해야겠다는 생각이 들었습니다.