CLI, GUI
- CLI → DOS → 키보드
- GUI → Window → 마우스
언어
- 고급언어
- 사람이 알아듣기 쉬운 언어
- Java
- 중급언어
- C
- 고급과 저급(포인터 : 메모리애 직접 접근)이 가능
- C
- 저급언어
- == 기계어
- 어셈블리 언어 assembly
- 기계어와 1:1 대응시켜 코드화한 언어
- 어셈블러 assembler
- 어셈블리어로 작성한 프로그램은 어셈블러를 통해 오브젝트 코드(기계어)로 변환하는 과정(어셈블)을 거쳐야 함
LAMP
- Linux
- OS
- Windows-server(NT)로 대체
- Apache
- 웹 서버
- IIS로 대체
- Apache tomcat(WAS)
- MySQL
- DB
- SQL-Server로 대체
- Maria DB
- PHP
- 서버용 스크립트
- 서버에서 실행하여 클라이언트에 데이터 전달
- ASP, ASP .Net로 대체
- JSP, Spring, SpringBoot
- 타임리프 → 리액트
저렴, 중소에서 사용 | 유료 | eGOV | |
---|---|---|---|
OS | Linux | Windows-server(NT) | UNIX → Linux |
웹 서버 | Apache | IIS | Apache tomcat(WAS) |
DB | MySQL | SQL-Server | Maria DB |
서버용 스크립트 | PHP | ASP, ASP .Net | JSP, Spring, SpringBoot / 타임리프 → 리액트 |
MEAN 스택
MongoDB | MariaDB |
---|---|
Express | Tomcat |
Angular.js, React, Vue, svelte | JSP |
Node.js | Spring |
- js로 풀스택 가능 |
진수
16진수 | 간략함 | haxadecimal |
---|---|---|
10진수 | decimal | |
8진수 | 신속함 | octal |
2진수 | binary |
인터넷
- 인터넷 = 인트라넷 + 익스트라넷
- 인트라넷
- 내부 직원용
- 익스트라넷
- 외부용
- IP
- 숫자
- Domain
- IP를 기억하기 쉽게 문자 형태로 만듦
- DHCP
- 동적 IP
- NIC
- 고정 IP 신청
- 홈페이지 운영을 위해서는 고정 IP를 사용해야 함.
www : 프로토콜
ftp : filezilla
telnet : PuTTY
- DNS
- Domain Name System
- 도메인 네임 → IP 주소 변환
- URL
- 프로토콜://호스트(서버)주소 [:포트 번호][/파일 경로]
- 프로토콜
- 통신규약
TCP | UDP | |
---|---|---|
연결방식 | 연결형 (패킷 교환) | 비연결형 (데이터그램) |
전송 순서 | 순서 보장 | 순서 보장 X |
수신 혹인 | 수신 확인 | 수신 확인 X |
통신 방식 | 1:1 통신 | 1:1, 1:N, N:N 통신 |
신뢰성 | 높다 | 낮다 |
속도 | 느림 | 빠름 |
- TCP/IP
- 컴퓨터들 간에 데이터를 주고받을 수 있도록 하는 표준 프로토콜
- 전송 데이터의 흐름 제어와 데이터의 에러 유무를 검사
- 패킷을 추적 및 관리
- 패킷
- 네트워크를 통해 전송되는 데이터 조각
- 네트워크 계층 내의 데이터 단위
- 네트워크를 통해 전송된 데이터는 패킷으로 분할되고 대상 장치에서 재결합된다
- 헤더
- 패킷의 내용, 출발지 및 목적지에 대한 정보를 제공
- 페이로드
- 패킷의 본문
- 실제 데이터
- 트레일러
- 패킷의 끝에 도달했다는 신호
- 패킷
- 연결 지향 방식으로 패킷 교환
- 3-way handshaking
- 높은 신뢰성
- 파일 전송에 사용됨
- UDP보다 속도가 느리다
- UDP
- 비연결형 프로토콜
- 정보를 주고 받을 때, 신호절차를 거치지 않는다
- 데이터의 전송을 보장 X
- 신뢰성이 낮다
- CheckSum 필드를 통해 최소한의 오류만 검출
- TCP보다 속도가 빠르다
- 패킷
- 데이터그램
- OSI 7계층
- ISO
- 국제 규격
- KS
- 국내 규격
중앙집중식 | Host - Terminal |
---|---|
분산식 | Client - Server |
일대일 | P2P |
데이터 교환 방식
html → xml → json
spring (xml), springboot(.property → .yml)
테스트
종류 | 설명 |
---|---|
알파 | 회사 내에서 테스트 |
베타 | 출시하기 전, 일반인에게 공개 |
컴퓨터에 hdd 설치 가능한 개수
- 파티션
- C: - Z:
- 하드디스크를 여러 개의 논리적인 영역으로 나누는 작업
- 운영체제에서는 파티션이 하나의 드라이브로 인식된다.
데이터 용량 단위
데이터 단위
bit | nibble (4bit) | byte (8bit) | word | field | record | file | data | data bank | big data |
---|
- word
- CPU가 한 번에 처리할 수 있는 데이터 단위
- CPU는 명령어 실행O, 저장 X, 레지스터가 저장O
- 따라서 word 크기 == 레지스터 크기
- 32비트 CPU의 워드는 32비트
- record
- DB의 단위
- DB table에서 가로 행
- == tuple
- field = 항목 = item
- field 가 모여서 record
- 데이터 통신 속도
- bps (bit per second)
bcd | 영어, 숫자 | 6개 |
---|---|---|
ascii | 영어, 숫자, 특수문자 | 8개 |
ebcdic | 중, 대형 컴퓨터에서 사용 |
- 8bit == 1 byte 이유
- 아스키 문자 인코딩을 기준으로 1바이트가 8비트가 됐다.
- 7개 ascii + 1개 parity bit = 8 bit
한글조합 KSSM
초, 중, 종 조합
한글완성 KS
김 → 김 ? → 김
입력 문자가 있는지 탐색 후, 출력
- ASCII
- 영어/숫자 1 byte
- 한글/한문 2byte
- 1 바이트 = 7비트 + 1비트 parity bit
- parity bit
- 오류 탐지
- 7비트 내에 1이 홀수 개 → 1
- 7비트 내에 1이 짝수 개 → 0
- parity bit
- $2^7$개의 문자, 0
($2^7$-1), 0127
- Unicode
- 전 세계 문자 지원
- 모든 문자는 2 byte
- 인코딩 방식
- euc_kr : 한글, 영어
- utf-8 : 전세계 문자
- 컴퓨터가 어떤 글자를 만났을 때 얼만큼씩 읽어야 하는지 미리 말해주는 것
진수 변환
- 10진수 → 2, 8, 16 진수
- 2, 8, 16 진수 → 10 진수
- 2,8,16 진수 ↔ 2,8,16 진수
- 2진수 → 8진수
- 2진수 3개씩 8진수 1개로 표현
- 2진수 → 16진수
- 2진수 4개씩 16진수 1개로 표현
- 8진수 → 2진수
- 1개 숫자를 3자리의 2진수로 표현
- 8진수 → 16진수
- 8진수 → 2진수 → 16진수
- 2진수 → 8진수
문제
Q. 24(10)을 16진수로 변환
A. 18(16), 16으로 나눔
Tip. $Math.pow(2, 10)$ = 10^3
Q. 35(8) = 3*8 + 5 = 29(10)
Q. C3(16) = 12*16 + 3 = 195(10)
Q. 101100(2) ⇒ 16진수
A. 2C(16)
Q. 39(10) ⇒ 8진수
A. 47(8)
Q. D4(16) ⇒ 10진수
A. 212(10)
Q. 35(8) ⇒ 2진수
A. 11101(2)
Q. 45(10) ⇒ 16진수
A. 2D(16)
숫자
- 정수
- 부호와 절대치
- 고정소수점
- 1의 보수
- 1’s complement
- 원래 수에서 0과 1 반전
- 두 번 덧셈을 하여 느림
- 101의 1의 보수 = 010
- 첫 번째 비트는 부호 비트
- 2의 보수
- 2’s complement
- 1의 보수 + 1
- 한 번의 계산이 필요하여 빠름
- byte 데이터 타입의 표현 범위
- 1 byte = 8 bit
- -2^(n-1) ~ 2^(n-1) - 1
- 실수
- 소수점 있는 수
- 부동소수점
코드 표기법
- 카멜 표기법
- 첫 글자 소문자, 단어 구분을 대문자로, 낙타 모양
- 변수, 함수
- myJavaTest
- 파스칼 표기법
- 클래스
- MyName
- 스네이크 표기법
- DB : 대소문자 구분 X
- my_java_test
Java
GUI : AWT > Swing > FX
import java.util.* : java 기본 기능
import javax.~ : 추가된 기능, 웹 서버 관련
자바 17부터 javax → jakarta
jre(바이트코드 실행만)
jvm
jdk
패키지
- 도메인의 역순
- https://www.milkt.co.kr
- kr.co.milkt
- 자바 패키지 도메인형
- 클래스
- 함수 + 변수의 집합 = 객체
- 함수
- 기능
- 변수
- 값
[] 대괄호 | 배열 | 같은 속성의 데이터의 집합 |
---|---|---|
{} 중괄호 | 블럭 | 코드 블럭 |
() 소괄호 | 메서드 |
IntelliJ 단축키
단축키 | 설명 |
---|---|
F8 | 다음 라인 이동 |
F9 | 다음 브레이크 포인트까지 진행 |
Ctrl+Space | 기본 코드 자동 완성 |
Alt+Insert | getter, setter, 생성자 자동완성 |
Ctrl+O | 오버라이드 가능 메소드 자동생성 |
Ctrl+/ | 주석처리 // |
Ctrl+Shift+/ | 주석처리 /* */ |
ctrl+Alt+i | 들여쓰기 정렬 |
Shift+Enter | 아래 행에 라인 추가, 이동 |
Ctrl+D | 현재 라인을 아래 행에 복사 |
Ctrl+Y | 현재 라인 삭제 |
Shift+F6 | 이름 일괄 변경 |
Ctrl+Alt+O | 사용하지 않는 import 정리 |
ctrl+G | 이동할 라인 입력 |
Shift+F10 | 프로젝트 실행 |
ctrl+K | 커밋 |
- vi vs vim
- text editor
- vi
- visual
- POSIX 스탠다드의 한 부분으로 유닉스 구현
- vim
- Vi IMproved
- Linux에 포함되어 배포됨
Refs
https://www.mireene.com/webimg/linux_tip1.htm
dns
https://it-serial.tistory.com/entry/리눅스-DNS의-진행-과정-설정-Gateway게이트웨이
tcp
https://mangkyu.tistory.com/15
패킷 데이터그램
https://velog.io/@wejaan/Packet
부동소수점
https://code-lab1.tistory.com/184
record
'TIL' 카테고리의 다른 글
[TIL] chmod / Git 영역, 상태, commit, branch (1) | 2023.09.25 |
---|---|
[TIL] Linux 명령어 / main method (0) | 2023.09.23 |
[TIL] Unix / Linux / 대화형 시분할 시스템 / 커널 / Link (0) | 2023.09.20 |
[TIL] Computer HW / 컴파일러 / 인터프리터 (0) | 2023.09.19 |
[TIL] MLOps / ML Pipeline (0) | 2023.09.09 |