[2일차] CS, TOOL

유태형·2022년 4월 26일
0

코드스테이츠

목록 보기
3/77

컴퓨터라는 명칭은 먼저 계산한다는 의미의 Computare에서 유래되었습니다.
현대의 컴퓨터는 2차세계대전 당시 튜링의 보편만능기계(Universal Computing Machine)를 시초로 합니다.

컴퓨터란?

컴퓨터는 입력받은 데이터를 정해진 규칙대로 처리해서 결과를 저장하고 출력하는 장치입니다.

  • 입력받은 데이터
    컴퓨터는 데이터를 입력장치를 통해 입력받습니다.

  • 정해진 규칙대로
    규칙을 정의하는 소프트웨어 및 어플리케이션

  • 처리해서
    중앙처리장치(CPU)에 의해 처리됩니다.

  • 저장하고
    처리 결과를 기억장치에 저장합니다.

  • 출력하는
    모니터나 스피커, 랜선 등으로 결과를 전송합니다.

소프트웨어

물리적인 형태의 구성요소가 아닌 컴퓨터의 구성요소로서 물리적인 형태인 하드웨어가 어떻게 동작을 해야하는지를 정의해놓은 규칙의 집합입니다. 소프트웨어는 다시 시스템 소프트웨어응용 소프트웨어로 나누어 질 수 있습니다.

시스템 소프트 웨어

시스템 소프트웨어응용 소프트웨어하드웨어사이에서 둘간의 소통이 잘 이루어 질 수 있도록 중재자 역할을 수행합니다. 응용 소프트웨어의 실행환경이 되고 하드웨어의 리소스를 관리합니다.

응용 소프트 웨어

응용 소프트웨어는 소프트웨어에서 시스템 소프트웨어를 제외한 모든 소프트웨어를 의미합니다. 줄여서 애플리케이션 및 앱이라고도 하며, 일반적으로 프로그램이라고도 불립니다. 오늘날 매우 많은 분야에서 응용 소프트웨어가 사용됩니다.

하드 웨어

CPU(중앙처리 장치)

프로그램 실행과 데이터 처리를 위한 핵심 장치로 프로세서라고도 불립니다. CPU는 제어장치, 연산장치, 레지스터로 구성되어 있습니다.

주기억 장치(메모리)

CPU가 사용할 데이터들의 임시 저장소입니다. 단기적으로 저장하며 보조기억장치보다 속도가 빠르고 용량이 적은 반면에 CPU보다 속도가 느리고 용량이 많습니다.
DDRn xGB형식으로 메모리가 담당합니다.

보조기억 장치(디스크)

컴퓨터가 존재하는 동안 필요한 모든 데이터를 반 영구적으로 저장합니다.
용량이 매우 크고 속도가 매우 느립니다.
CPU나 캐시메모리에서 직접 통신하지 않고 메모리와만 통신을 합니다.

캐시메모리

메모리와 CPU사이에서 버퍼역할을 수행합니다.
캐시메모리에는 CPU가 자주 사용하거나 최근에 사용한 데이터 위주들로 구성됩니다.
주기억 장치인 메모리도 빠르지만 CPU의 레지스터와는 속도 차이가 매우 크기 때문에, 비용과 속도를 보완하기 위해 캐시메모리를 CPU와 메모리 사이에 위치 시킴으로써 계층형 구조를 채택하였습니다.

입력 장치

사용자나 다른 시스템으로부터 데이터를 입력받습니다.
사용자: 키보드, 마우스, 마이크, 트랙패드 등등
시스템: USB, 랜선, 무선네트워크 등등

출력 장치

사용자나 다른 시스템에게 데이터를 전달합니다.
사용자: 모니터, 스피커 등등
시스템: USB, 랜선, 무선네트워크 등등

시스템 버스

하드웨어간 통신을 위해 사용되는 통로입니다. 하드웨어 장치간에 물리적으로 연결된 전선이기 때문에 시스템 버스도 하드웨어 포함됩니다. 시스템 버스는 3가지로 이루어 져 있습니다.

  • 데이터 버스
    하드웨어간 데이터를 주고받습니다.

  • 주소 버스
    데이터가 어디로 가야할지 주고받습니다.

  • 제어 버스
    CPU가 다른 하드웨어를 제어하기위해 사용됩니다.

프로그래밍

프로그래밍이란 프로그램을 만드는 과정으로서, 특정 목적을 달성하기 위해 설계된 알고리즘을 프로그래밍 언어를 사용하여 코드로 작성하는 과정을 의미합니다.

프로그래밍 언어

컴퓨터와 사람이 사용하는 언어는 각각 기계어자연어 입니다. 컴퓨터는 기계어를 이해할 수 있지만 자연어는 이해할 수 없습니다. 반대로 사람은 기계어는 이해할 수 없지만 자연어는 이해할 수 있습니다. 컴퓨터와 사람간의 다른 언어를 연결하기 위해 사용되는것이 C나 JAVA와 같은 프로그래밍 언어로 작성된 소스 코드 입니다.

컴파일

프로그래밍 언어로 작성된 소스코드를 컴퓨터가 이해할수 있는 기계어로 변환하는 과정을 컴파일 이라고 합니다.

빌드

프로그래밍 언어를 기계어로 변환하는 컴파일을 하면 컴퓨터가 이해할수 있지만 프로그램을 실행할 수 없습니다. 즉 변환 + 실행을 위해선 빌드를 하여 실행가능한 파일로 변환하는 작업이 필요합니다.

웹 클라이언트와 서버

애플리케이션에서 모든 정보를 저장하고 관리하면 리소스의 새로운 수정이 있을때마다 애플리케이션을 업데이트를 해야만 실행가능한 단점이 존재합니다. 자주, 불필요하게 업데이트를 해야 할 수도 있습니다.
이러한 문제를 해결하기 위해 리소스는 인터넷 어딘가에 존재하는 서버에서 관리하고 애플리케이션에선 단순히 그 리소스를 참조하기만 하면 리소스에 변경이 일어나도 업데이트를 할 필요가 없을 것입니다.

이러한 애플리케이션 - 서버 구조를 2티어 아키텍처라고 부릅니다.

만약 관리해야할 리소스가 많거나 동시접속자가 많으면 서버에서 리소스를 실시간으로 관리하기엔 부하가 심할 수 도 있습니다. 데이터베이스라는 저장소에 리소스만 따로 저장하고 서버는 제공만 한다면 훨씬 더 원활하게 더 많은 리소스를 관리하고 사용자를 받을 수 있을 것입니다.

이러한 애플리케이션 - 서버 - 데이터베이스 구조를 3티어 아키텍처라고 부릅니다.

WSL2

Windwos Terminal

WSL2 사용을 위해선 윈도우 버전이 20H1, 20H2, 21H1 이상이어야 설치할 수 있습니다.

마이크로소프트 스토어에서 Windows Terminal을 설치합니다.

Windows Terminal을 관리자 권한으로 실행합니다.

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 을 입력합니다.

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart울 입력합니다.

압력이 완료되었다면 설정을 위하여 재부팅을 실행합니다.

리눅스 커널 업데이트 패키지

https://docs.microsoft.com/ko-kr/windows/wsl/install-manual페이지의 4단계로 이동하여 커널 업데이트 패키지를 다운로드 합니다.

설치 프로그램을 실행합니다.

windwos terminal을 실행시키고
wsl --set-default-version 2 명령어를 입력하였을때 아래와 같이 출력된다면 리눅스 업데이트가 정상적으로 진행되었습니다.

우분투 설치

실제로 OS를 설치해야 합니다. 마이크로소프트 스토어의 Ubuntu를 다운로드 받습니다.

다운로드 후 실행되는 우분투에 아이디, 비밀번호를 입력합니다. 아이디는 소문자만 가능한 규칙이 존재하는 듯 합니다.

windows terminalwsl -l -v 를 입력한 다음, 버전이 '2'라고 나타나는지 확인합니다.
만약, 버전이 1이라면 wsl --set-version Ubuntu 2를 입력하여 2로 바꿔줍니다

터미널을 종료하고 다시 실행한 다음 아래의 부분을 클릭합니다.

해당 화면이 출력되면 정상적으로 설치가 완료되었습니다.

어디에 설치되어있는지 wsl 2버전 부터는 윈도우에서 파일시스템으로 직접 접근할 수 가 없습니다. 따로 만들어진 서버에 접속해야하므로 내컴퓨터 - 우클릭 - 네트워크 위치 추가를 하여 아래와 같은 위치에 존재하는 우분투를 추가 하여야 합니다.

우분투 위치 : \\wsl$\Ubuntu

내컴퓨터에 설치된 것을 확인할 수 있습니다.

JDK 설치

https://www.azul.com/downloads/?version=java-11-lts&os=windows&architecture=x86-64-bit&package=jdk

Azul Zulu Builds of OpenJDK의 Download Now 선택

운영체재에 맞게 지정하고 .msi 파일 다운로드합니다.

설치를 진행합니다.

“windows + R” 키를 눌러 실행 창을 열고 cmd를 입력해 명령 프롬프트를 실행해줍니다.
java입력시 다음과 같이 출력된다면 JDK가 정상적으로 설치되었습니다.

IntelliJ 설치

https://www.jetbrains.com/ko-kr/idea/ 인텔리J 홈페이지

커뮤니티 버전을 다운로드 합니다.

체크박스에 체크합니다.

  • Create Desktop Shortcut: 바로가기 생성
  • Update PATH variable: bin 폴더 경로를 윈도우 환경변수 PATH에 추가
  • Update Context Menu: 프로젝트로 폴더 열기 메뉴 추가
  • Create Associations: 프로그래밍 언어 확장자 선택

New Project를 클릭하여 프로젝트 하나를 생성합니다.

Name은 프로젝트의 이름을 지정할 수 있습니다.
Create버튼을 누르면 프로젝트가 생성됩니다!

이클립스의 자바와 마찬가지로 인텔리J의 자바도 프로젝트의 src내에 자바클래스를 만들어서 실행합니다.
src 우클릭 - New - Java Class를 선택합니다.

자바 클래스 생성

Hello World를 출력하는 간단한 자바 프로그램을 만들고 실행합니다.

JetBrains Toolbox 설치

JetBrains Toolbox는 IDE들의 버전 업데이트와 플러그인, 프로젝트를 손쉽게 업데이트하고 관리할 수 있도록 도와주는 프로그램입니다.

https://www.jetbrains.com/lp/toolbox/ 제트브레인즈에 접속합니다.
Download the App을 선택하여 설치합니다.

주기적으로 버전을 관리할 수 있습니다.

환경변수 설정

검색 - 시스템 환경 변수 편집을 실행합니다.
환경 변수(N)... 버튼을 클릭합니다.

새로 만들기(W)...를 클릭합니다.

변수 이름 : JAVA_HOME
변수 값 : C:₩Program Files₩Zulu₩zulu-11

path를 찾아 선택하고 편집(I)...버튼을 클릭합니다.

새로 만들기(N) - %JAVA_HOME%₩bin입력 - 확인 클릭합니다.

새로 만들기(W)...를 클릭하여 JAVA_HOME과 같은 방식으로 환경변수 만듭니다.
변수 이름 : CLASSPATH
변수 값 : %JAVA_HOME%₩lib

환경변수 지정이 정상적으로 완료되었다면 아래와 같이 C:\Program Files\Zulu\\zulu-11이 포함되어 있습니다.

IntelliJ 한글화, 튜토리얼

File - Setting - Plugin 탭에서 korean을 검색하여 한글화 모듈을 다운받아 적용하면 한글로된 IntelliJ를 실행할 수 있습니다.

프로젝트를 닫고 처음 화면에서 IntelliJ IDEA 학습탭을 클릭하면 튜토리얼 진행 가능합니다.
단, 한글화 모듈 사용시 몇몇 단계의 튜토리얼이 안되니 그때는 잠시 한글 모듈을 잠시 끄시고 하셔야 합니다.

profile
오늘도 내일도 화이팅!

0개의 댓글