Keyword - 컴퓨터의 구조, 웹 클라이언트와 웹 서버, intellij
중앙처리장치는 cpu를 통제하고 운영체제와 소통하는 제어장치와 실제 연산을 수행하는 연산장치 그리고 데이터를 임시로 저장하는 레지스터로 나누어진다.
기억장치는 보조기억장치와 주기억장치의 2가지 종류가 있는데, '보조'기억장치가 장기간 데이터 보관에 쓰이고 속도가 느린 반면에, '주'기억장치는 단기간의 데이터 보관에 쓰이며 속도가 빠르다.
입출력장치는 키보드, 마우스 모니터 등에 해당한다.
시스템버스는'cpu를 포함'한 각 하드웨어들의 연결통로이다.
시스템소프트웨어는 하드웨어와 직접적으로 소통하며 관리하는 응용프로그램 실행 플랫폼
응용소프트웨어는 시스템소프트웨어를 제외한 모든 소프트웨어
프로그램을 실행하면 운영체제가 보조기억장치에 있던 프로그램을 메모리로 load함. 이때 실행중인 프로그램을 프로세스라고 한다. cpu(프로세서)에 의해 주어진 작업을 함.
이렇게 두 부분으로 나눈 이유를 쇼핑몰 앱이 서버가 없는 상황으로 생각해보자. 상품정보의 업데이트를 위해 앱을 업데이트를 시켜야만 한다. 업데이트를 하지 않으면 가격이 바뀌지 않고 판매자는 판매할 수 없는 상황이 발생할 수도 있는 것이다. 서버가 있다면 웹사이트의 리소스를 실시간으로 업데이트하는 것이 가능해진다. 정보를 주고 받을 수 있게 되면서 비로소 로그인이 되는 것이다. 이러한 구조를 클라이언트-서버의 2tier architecture라고도 한다. 여기서 웹 프론트엔드와 백엔드의 구분도 할 수 있다.
프론트엔드
사용자가 직접 마주하게 되는 어플리케이션의 디자인적인 부분이라고 할 수 있다. 리소스를 요청하고 받아서 사용하는 부분이다.
백엔드
사용자에게 보이지 않으며 리소스를 요청받아 보내주는 역할을 하며, 상품정보 저장, 사용자 데이터베이스 저장 등의 역할을 한다.
Integrated Development Environment(IDE) 프로그램 중의 하나다. 나는 Eclipse라는 IDE를 사용하고 있었는데, 코드스테이츠 백엔드 코스는 intellij를 사용한다. 개발에 유용한 도구들을 하나로 모은 편리한 프로그램이라고 볼 수 있다.
시스템 환경변수 설정
프로그램을 설치하고 한 작업이다.
환경 변수라는 것은, 운영체제가 사용하는 '설정 정보'들이 담겨있는 곳인데, 이 환경변수의 path에 java가 제대로 설정되어 있다면 내 컴퓨터의 어디에서든지 운영체제가 java 관련 파일을 실행시켰을 때 문제없이 컴파일을 할 수 있다.
특히 jdk bin폴더에 있는 javac 컴파일러의 경우 .java 파일을 jvm에서 실행시킬 수 있는 .class 파일로 컴파일해주는 중요한 프로그램인데 환경변수 세팅이 제대로 안되어있으면 이클립스와 같은 IDE에서 컴파일이 제대로 안 되는 현상이 발생할 수 있습니다. 그렇기 때문에 자바 환경 변수를 설정할 때 jdk의 bin 디렉터리 경로를 등록하게 됩니다. bin 폴더 안에 javac를 비롯한 각종 실행파일이 있기 때문입니다.
출처 : https://coding-factory.tistory.com/838