본문 바로가기

카테고리 없음

멘토 수업(1,2회차)

1회차

 

## 백엔드 개발자
  ㄴ Java (젤 많이 씀)
    ㄴ 유연하다
    ㄴ 확장성 있다
  ㄴ 자바로 웹개발을 할거다.
  ㄴ Spring 프레임워크
  ㄴ Spring 개발자
  ㄴ 소프트웨어 엔지니어
  
## 컴퓨터라는 기계

요리사(CPU)가 작업대(RAM) 위에서 창고(저장장치)의 재료를 가져와서 요리하는 것

컴퓨터 본체 안에는 뭐가 들었을까?

- CPU(뇌): 계산과 명령 실행 담당 (빠른 요리사 비유)

- RAM(작업대-메모리): CPU가 당장 작업해야 할 데이터와 프로그램들을 잠시 올려두는 '임시 작업 공간'(도마/작업대) (빠르다)

- 저장장치(HDD/SSD): 우리가 만든 파일, 설치한 프로그램, 운영체제 등 모든 데이터를 '영구적으로 보관'하는 곳 (비교적 느리다)

- HDD(하드 디스크 드라이브)/SSD(솔리드 스테이트 드라이브)

- 입력/출력 장치(Input/Output - I/O)
- 입력: 키보드, 마우스, 마이크 등
- 출력: 모니터,


2회차

 

오늘의 목표: 우리가 어떻게 이 컴퓨터에게 우리가 원하는 일을 시킬 수 있는지(프로그래밍 언어), 그리고 내 컴퓨터가 어떻게 다른 컴퓨터(네이버 서버, 카카오톡 서버..)와 정보를 주고 받는지(네트워크/인터넷) 알아보자.

## 프로그래밍 언어(Promgramming Language)

"사람이 컴퓨터에게 명령을 내리기 위해 만들어진 약속된 언어"
언어: C, C++, C#, Java, Python, go, kotlin, dot, Javascript ...

기계어: 0 1 0 1 1 1 0 1 0 1 000, 111

어셈블리어: ADD 101010 1010110 

C언어 -> Java -> kotlin

Python -> AI(Chat GPT)

Chat GPT -> AI 서비스 (지브리) -> ???



public void static main(String[] args) {
    String name = "김동욱";
}

### 컴파일

우리가 쓴 코드를 컴퓨터가 알아 들을 수 있는 언어로 "번역"해주는 과정

- 컴파일: 코드를 실행하기 전에 "통째로"번역해서 실행 파일을 만들어두는 방식
- 인퍼프리터: 코드를 "한 줄씩" 읽으면서 바로 번역하고 실행하는 방식

- Java의 방식: 
    - 코드를 '바이트코드'라는 중간 언어로 번역(컴파일)
    - 이 바이트 코드는 "자바 가상 머신(JVM)"이라는 특별한 프로그램이 읽어서, 어떠한 컴퓨터(windows, linux, mac..)에서든 실행될 수 있도록 번역 및 실행
    - Write Once, Run Anywhere


## 네트워크

두 대 이상의 컴퓨터를 연결해서 서로 데이터를 주고받거나 프린터 같은 자원을 공유할 수 있게 만든 시스템

## 인터넷

전 세계에 퍼져 있는 수많은 네트워크들을 다시 서로 연결한, 굉장히 거대한 네트워크들의 네트워크

## IP 주소

인터넷에 연결된 모든 컴퓨터(정확히는 장치)가 가지는 고유한 '숫자 주소'
ex) 172.217.159.123) 컴퓨터끼리는 이 주소를 보고 찾아감

## DNS(Domain Name System)

http://www.naver.com (111.222.111.100)

## 클라이언트 - 서버 모델 (Client-Server Model)

요청: 클라이언트
응답: 서버

클라이언트: 우리가 주로 사용하는 웹 브라우저(크롬, 엣지 등), 스마트폰 앱, 게임 프로그램 등이 클라이언트, 사용자가 정보를 보거나 뭔가를 요청하기 위해 사용되는 도구

서버: 웹 사이트 파일, 데이터베이스, 복잡한 프로그램 로직 등을 가지고 있으면서 클라이언트의 요청을 기다리고 처리해주는 컴퓨터

백엔드 개발자 = 서버 개발자

## HTTP (HyperText Transfer Protocol)

Protocol 규약 = 약속

웹에서 클라이언트(웹 브라우저)와 서버가 서로 데이터를 주고 받을 때 사용하는 약속.
이런 형식으로 요청을 보내라, 저런 형식으로 응답을 주겠다~