22.04.26 TIL

귀찮Lee·2022년 4월 26일
0

TIL / 회고록

목록 보기
2/35

22.04.26 / Today I Learned

◎ 학습 전

  • 오늘 나의 학습 목표는 무엇인가요?

    • 컴퓨터의 구성 요소에 대해서 설명할 수 있다.
    • 프로그램을 실행하면 컴퓨터 내부에서 어떤 일이 일어나는지 이해할 수 있다.
    • 프로그래밍과 관련된 개념들을 설명할 수 있다.
    • 프로그램, 프로그래밍, 프로그래밍 언어, 컴파일, 빌드, 통합개발환경
    • 웹 클라이언트웹 서버가 무엇인지 설명할 수 있다.
    • 자신의 운영체제에 맞는 개발 도구를 설치하고, 환경설정을 할 수 있다.
    • IntelliJ의 기본적인 기능들을 사용할 수 있다.
  • 오늘 학습할 내용 중에 이미 알고 있는 내용은 무엇인가요?

    • 프로그래밍과 관련된 개념을 직접 몇번씩 해보았다(컴파일, 빌드) : 정확한 개념은 모름
    • 웹 클라이언트와 웹 서버가 무엇인지 나만의 언어로 설명 가능하다.
      • 웹 클라이언트 : 사용자가 직접 경험하는 부분
      • 웹 서버 : 클라이언트에서 요청시에 데이터를 전달해주는 부분(html, JSON ...)
    • 여러가지의 개발도구를 설치해 보았고, 환경설정을 해 보았다.
    • 컴퓨터 자격증 준비할 때 배웠던 것 (입력장치, 출력장치 ...) 의 일부지식

◎ 학습 후

  • 오늘 학습 내용 중 새롭게 배운 내용은 무엇인가요?
    : 어디선가 들어보았던 용어들을 구체적으로 정리할 수 있게 되었다.

  • 오늘 학습한 내용 중 아직 이해되지 않은 불확실한 내용은 무엇인가요?
    : WSL2가 어떤일을 하는지 알아보야야 겠다.

  • 이해되지 않은, 불확실한 내용을 보완하기 위해서 나는 무엇을 할 수 있을까요?
    : 가벼운 구글링 (아마 검색하면 바로 나오지 않을까?)

  • 나의 오늘 학습 만족도는 몇 점인가요?

    • 학습 태도 25점 : 오늘 해당하는 분량이 매우 적다보니까 계속 놀았던것 같음. 앞으로는 미리 궁금한 점을 찾아보고 TIL까지 마무리하고 쉬자
    • 이해도 95점 : 배우는 첫날이니까 점수가 후하다. 딱히 콕찝어 무언가 이해 안된다는 느낌은 들지 않았다.
    • 학습 만족도 90점 : 더 멀리가기위해 시작은 가볍게

◎ 생각 정리

  • 오늘의 나의 점수 95점 : 항상 무언가를 한다면 전력질주 하듯이 살아야한다고 생각했지만 그게 아니다. 멀리가기 위해서는 시작을 여유롭게 해야 마지막에 스퍼트를 낼 수 있다. 일단은 무언가 더 하려고 자기자신에게 채찍질 하기보다는 오늘 할일을 모두 끝낸 나를 칭찬하고 게임으로 보상을 주자 (해야할 일은 먼저 하고)

  • 해야할 일

    • WSL2 의 역할,기능 가볍게 정리
    • TIL 탬플릿 만들기

◎ 오늘 배운내용들 정리

  • 컴퓨터 : 인풋 - 명령한대로 처리 - 아웃풋 [스스로 무언가를 할 수 없다.]

    • 구성요소 : 하드웨어(여러가지) + 소프트웨어(코드들의 묶음)
    • 하드웨어 : 컴퓨터에서 물리적으로 존재하는 부품들
      • 저장장치 : 저장할 수 있는 데이터양 多 / 읽고 쓰는 속도 느림 (SSD, HDD)
      • RAM : 저장장치와 CPU의 중간다리, 현재 실행중인 프로그램들을 저장중 (이외 여러가지 기능)
      • CPU : 컴퓨터의 일처리하는 부분(두뇌를 담당), 읽고 쓰는 속도 빠르지만 저장할 수 있는 데이터양 少
      • 입력장치(키보드,마우스), 출력장치(모니터,스피커) ...
    • 소프트웨어 :
      • 시스템 소프트웨어(System Software) : 하드웨어들이 동작할 수 있게 해줌, 응용 소프트웨어가 돌아갈 수 있게 해줌
        ex) Window, Mac, Linux
      • 응용 소프트웨어(Application Software) : 시스템 소프트웨어를 기반으로 여러가지 동작을 함. (일반적인 프로그램)
    • 컴퓨터의 동작 :
      • 로딩 : 입력장치에서 데이터를 불러와서 RAM으로 가져오고 CPU에서 돌리는데 걸리는 시간
      • 프로세스: 실행 중인 프로그램
  • 프로그래밍

    • 프로그램 : 응용 소프트웨어, 코드들의 집합

    • 프로그래밍 언어 : 컴퓨터(기계어 사용)에게 명령을 내리기 위해 사용하는 언어

    • 컴파일(Compile) : 프로그래밍 언어를 기계어로 번역하는 과정

    • 빌드(Build) : 명령어들을 실행할 수 있는 파일로 만드는 것 (컴파일 포함)

    • IDE(Integrated Development Environment) : 코드를 작성하기 쉽도록 도와주는 프로그램 (한글문서의 "한글" 같은 느낌)

  • 클라이언트 서버 아키텍처(2티어 아키텍쳐)

    • 클라이언트 : 사용자가 직접 경험하는 부분
    • 서버 : 클라이언트에서 요청시에 데이터를 전달해주는 부분
    • 여기에 DB(Database)를 포함하면 3티어 아키텍쳐 라고 한다.
    • 백엔드 개발자는 서버와 DB를 관리, 그리고 서버와 DB 사이 통신과정 등을 담당
  • 개발 환경 세팅

    • IntelliJ, JDK 설치, 환경변수 설정 : 해당 velog 참고
    • WSL2 설치 (Windows Subsystem for Linux 2)
      : Windows에서 리눅스 터미널을 실행시킬 수 있게 해줌

◎ 추가 학습 내용

  • WSL2 (Windows Subsystem for Linux)

    • 윈도우 10에서 네이티브로 리눅스 실행 파일을 실행하기 위한 호환성 계층
    • 특징: 가상 머신을 사용해서 Linux 커널이 동작하는 "실제 Linux 환경"
  • Docker

    • 가벼운 컨테이너형 어플리케이션 실행환경을 의미한다. 독립된 실행환경
    • 컨테이너란 액세스할 수 있는 리소스나 권한 등을 제한, 분리한 "프로세스"이다. 컨테이너를 관리하는 코스트는 프로세스를 관리하는 코스트와 거의 동일하며, 가상 머신을 관리하는 코스트와 비교하면 매우 가볍다.
  • 출처: https://engineer-mole.tistory.com/255 [매일 꾸준히, 더 깊이]

profile
배운 것은 기록하자! / 오류 지적은 언제나 환영!

0개의 댓글