📄 학습내용
컴퓨터의 구성 요소
- 하드웨어 : 컴퓨터 자원
- CPU
- 제어장치 : CPU 동작 및 데이터 흐름 관리, 운영체제와 소통 및 컴퓨터 자원 관리
- 연산장치 : 코드를 실질적으로 실행시키는 장치
- 레지스터 : 연산장치에 필요한 정보를 임시적으로 저장하는 기억장치, 속도가 빠름
- 기억장치
- 보조기억장치 : 큰 용량을 장기적으로 저장하는 기억장치로 데이터 읽기&쓰기 속도가 느림
ex) SSD, HDD - 주기억장치 : 프로그램 동작에 필요한 모든 데이터를 단기적으로 저장, 데이터 읽기&쓰기 속도가 CPU만큼 빨라 속도가 빨라서 CPU와 직접적으로 소통
ex) Dynamic RAM, ROM
- 보조기억장치 : 큰 용량을 장기적으로 저장하는 기억장치로 데이터 읽기&쓰기 속도가 느림
- 입력장치
- 출력장치
- 시스템 버스
- 데이터 버스 : 하드웨어 간에 서로 데이터를 전달하는 통로
- 주소 버스 : 데이터가 도착해야하는 정보를 전달하는 통로
- 제어 버스 : CPU 제어장치에서 생성된 제어 신호를 다른 하드웨어로 전달하는 통로
- 소프트웨어 : 하드웨어가 어떻게 동작해야 하는지 규정해놓은 명령어의 집합
- 시스템 소프트웨어 : 하드웨어 장치 관리, 응용 소프트웨어의 실행환경
- 응용 소프트웨어 : 시스템 소프트웨어를 제외한 모든 소프트웨어, 즉 프로그램
- CPU
프로그램 실행 시 컴퓨터 내부 상황
- 로딩 : 프로그램 실행 시 보조기억장치의 프로그램 데이터를 주기억장치인 RAM으로 옮기는 과정
- 프로세스 : 실행 중인 프로그램
프로그래밍과 관련된 개념
- 프로그램 : 프로그래밍을 통해서 작성된 컴퓨터 명령문의 집합체
- 프로그래밍 : 특정 목적을 달성하기 위해 사용한 알고리즘을 프로그래밍 언어를 이용해서 코드로 작성하는 과정
- 프로그래밍 언어 : 컴퓨터와 프로그래머 사이에서 소통하기 위한 언어
- 컴파일 : 빌드의 과정 중 하나로, 프로그래밍 언어로 작성된 소스코드를 컴퓨터가 읽을 수 있는 기계어 코드로 변역하는 과정
- 빌드 : 컴파일한 후 실행할 수 있는 형태로 변환
- 통합개발환경(IDE, Intergrated Development Environment) : 개발을 위한 코드 작성, 빌드, 디버깅 등이 모두 갖추어진 컴퓨터 프로그램
웹 클라이언트 & 웹 서버
- 웹 클라이언트 : 리소스를 사용하는 곳
플랫폼으로 종류 구분 : 웹 사이트/웹 앱, 스마트폰/데블릿용 앱, 데스크탑 앱 - 웹 서버 : 리소스를 제공하는 곳
하는 일에 따라 종류 구분 : 웹 서버, 파일 서버, 메일 서버, 데이터베이스 서버 - 2티어 아키텍처 : 클라이언트-서버 아키텍처
- 3티어 아키텍처 : 2티어에 데이터베이스가 추가된 형태로, 클라이언트-서버-데이터베이스 형태로 이루어져있다.
WSL2 설치
- Windows 사양 : 21H2
- microsoft store에서 windwos terminal 설치 후 관리자 권환으로 실행
- windwos terminal 명령어
- dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
- dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- 리눅스 커널 업데이트 패키지 설치
- windwos terminal 명령어
- wsl --set-default-version 2
- microsoft store에서 ubuntu 설치
JetBrains ToolBox 이해 및 설치
- IDE를 손쉽게 설치할 수 있게 해주고, 설치한 IDE의 버전을 관리해주는 프로그램
IntelliJ 단축키
- alt+enter : 경고와 제안 표시
- ctrl+shift+enter : 자동완성 ex) if나 for문에서 활용 가능
- ctrl+w : 영역 선택, 계속 누르면 영역이 넓어진다.
- ctrl+shift+alt+t : 자동화된 리팩토링 ex) 변수명 변경을 한번에 가능
- F2 : 다음 오류, 경고, 제안으로 점프
- ctrl+e : 최근에 실행했던 파일의 위치 확인 가능
- ctrl+b : 심볼이 선언된 곳으로 이동
- alt+F7 : 어떤 항목이 사용된 모든 곳이 표시
- ctrl ctrl : 파일의 열림 여부와 상관없이 어떤 항목이든 실행 가능
- shift+ctrl+a : 모든 액션 검색, 단축어도 나와있음
- shift shift : 전체 검색
⭐ 공부 난이도
CS 기초 ☆☆☆☆★
🌕 느낀점
오늘은 기본적인 CS를 공부해서 복습한 느낌이었다. 그리고 환경설정 및 환경세팅을 했다. IntelliJ는 많이 들어봤지만 처음 사용해보았고, 기본적인 단축키나 어떤 기능이 있는지 계속 연습하면서 익혔다. 다른 IDE에서도 이런 기능이 존재할 것 같고, 이를 미리 알았다면 훨씬 더 편리하게 코딩을 진행했을거 같다는 생각이 들었다. 다음에 새로운 프로그램을 사용할 때에는 단축키같은 것도 어느 정도 알고 시작해야겠다고 생각했다. 내일 기본적인 웹에 대해서 공부를 한다. HTML이랑 CSS에 대해서 공부를 하는데, 오랜만에 해서 기억일 잘 날지는 모르겠지만 기대가 된다. 아직까지는 널널하거나 딱 괜찮은 정도의 속도로 수업이 진행되는 것 같다. 아직 시간이 있을때 코틀린 공부나 미룬 일정을 소화해야겠다.
'코드스테이츠 - 3회차 백엔드 부트캠프 > Section 1' 카테고리의 다른 글
2022.08.26 금 - 리눅스 (0) | 2022.08.26 |
---|---|
2022.08.25 목 - 첫번째 페어프로그래밍 (0) | 2022.08.25 |
2022.08.24 수 - Flexbox, 와이어프레임 (0) | 2022.08.24 |
2022.08.23 화 - HTML, CSS (0) | 2022.08.23 |
2022.08.19 금 첫째날 - 공부를 시작하기 앞서서... (0) | 2022.08.19 |