-
유데미 스타터스 취업 부트캠프 3기 - 백엔드 5주차스타터스 백엔드 3기 2022. 12. 23. 19:54
하루입니다.
221219. 컬렉션 프레임워크 (List, Set, Map), 제네릭<>
- ArrayList
- LinkedList
- queue
- stack
- hashset
- iterator
- hashmap
- Comparator

221220 멀티스레드, 람다식
멀티스레드 구현 방식
java.lang.Thread 클래스 java.lang.Runnable 인터페이스 다중상속 가능한 특징 사용한다.
class A extends Thread {
@override
public void run() {
다른 작업과 동시에 수행할 멀티스레드 수행 내용
}
}class A extends Thread B, implement Runnable {
@override
public void run() {
다른 작업과 동시에 수행할 멀티스레드 수행 내용
}
}
A a1 = new A();
a1.start();Runnable r1 = new A();
Thread t1 = new Thread(r1);
t1.start();
1. Thread 상속
2. run() 오버라이딩
3. Thread 객체 생성
4. start() 호출1. Runnable 상속(구현)
2. run() 오버라이딩
3. Runnable 객체 생성
4. Thread 객체 변환
5. start() 호출스레드 상태도
생성상태
new Thread()실행 가능 상태
start()
t1()
t2()
자바 스레드 스케줄러
스레드 실행순서 순위
1. 우선순위가 높다
기본으로 스레드는 우선순위 5를 가진다.
숫자가 클 수록 우선순위가 높다.
t1.setPriority(10);
t1.getPriority(); ==> 10
2. time slice 방법 - 시간을 일정하게 분할하기
OS 종류마다 다르다.
윈도우는 우선순위 무시, 일정한 시간 분배실행상태
run()일시중지상태
sleep(1/1000초)
join()
동기화 상태
wait설정한 시간이 경과하면 다시 실행된다.
join된 스레드의 실행이 완료된 후 다시 실행된다.
t1.run{ t2.join() }종료상태
https://harutocoding.tistory.com/194221220 자바 13 (스레드, 람다) : 람다식이 뭘까요?
하루입니다. 람다식이란? 메서드를 하나의 식으로 정리한 것이다. 함수를 간략하면서도 명확하게 표현할 수 있게 해준다. 메서드 -> 람다식 : 이 경우 이름과 반환값이 없어지므로, 익명 함수라
harutocoding.tistory.com
221221 입출력, file
java.oi의 class
입력스트림클래스 출력스트림클래스 입출력 1byte (byte stream) InputStream OutputStream 입출력 2byte (문자 stream) Reader Writer
1byte : 영문, 숫자, 특수문자의 일부
2byte : 다국어, char, 한글입출력 무관 class File
- 파일시스템 정보를 제공하는 클래스이다.
- 파일 +디렉토리를 관리하는 시스템이다.
- 모든 OS가 가지고 있으며,모두 다르게 작동한다.
- window는 탐색기...보조 스트림도 있음!
- BufferedReader, InputStreamReader 등
https://harutocoding.tistory.com/197[ JAVA ] 내가 생각하는 직렬화. 왜 직렬화를 사용하는 걸까?
하루입니다. 자바의 입출력을 다루다가 '직렬화' 를 배웠다. 정확히는 객체를 출력하기 위해서는 ObjectOutputStream을 사용하고, 이를 위해서는 객체를 직렬화해야 한다고 한다. 직렬화가 뭔데? 정말
harutocoding.tistory.com
221222 네트워크 (TCP, UDP)
tcp방식 자바클래스
전화한다고 하면
- 미리 연결하자
- 순서를 가지자. 메시지1(전달내용) 답1 메시지2 답2
- 끝나면 연결이 해제된다.
- 미리 연결을 해야 한다는 단점이 있다.
- 일정한 메세지의 순서가 필요하거나, 답장이 필요한 경우 사용하자.
- ss = ServerSocket(port) 생성한다. 반드시 어느 포트에서 동작하는지 알려줘야 한다. (연결해야 함)
- 클라이언트가 대기한다.
- Socket s = new Socket(ip, port); 서버와 연결한다.
- 클라이언트가 1번 게시물을 요청햔다. 누군가 접속하면 Socket s = accept(ss) 한다.
- s.getOutputStream()
- s.getInputStream()
- 1번 게시물 찾는 처리를 한다.
- 1번 게시물 찾는 응답을 한다. s.getOutputStream()
- s.getInputStream()
- 서버로부터 응답이 출력된다. 서버와의 연결이 종료된다.
- 클라이언트가 종료된다. s.close();
- 클라이언트와의 연결 해제
- 동시에 양쪽이 input하거나 output하지 않게 한다.

udp방식 자바클래스
우편을 보낸다고 하면
- 내 주소, 내 port, 상대주소, 상대port, 전달할 내용을 보낸다. (연결 개념 X)
- 나는 누구고 어디로 보내줘 라는 형태이다.
- 연결지향적이지 않다.
- 누가 먼저 받는지 모른다는 단점이 있다.
- 대량의 메세지를 여러 클라이언트에게 날릴 때 좋다.
- 서버가 시작된다.
- 클라이언트가 대기한다.
- 클라이언트가 서버를 찾아서 요청한다.
- 클라이언트가 1번 게시물을 요청햔다.
- 1번 게시물 찾는 처리를 한다.
- 1번 게시물 찾는 응답을 한다.
- 서버로부터 응답이 출력된다. 서버와의 연결이 종료된다.
- 클라이언트가 종료된다.
221223 MARIADB
- 데이터는 의미있는 정보이다.
- 데이터베이스는 연관된 데이터를 모은 것이다.
- 실행 순서 : from - where - group by - having - select - order by
sql 문법
DDL
Data Definition Language
데이터 구조 정의 언어
테이블 생성 : create table ...
학생 테이블 : 학번 이름 성적
student name char(40) ...
사용자 생성 : create user
데이터베이스 생성 : create database ...
테이블 변경 : alter table
테이블 drop tableDML
Data Mauipulation Language
데이터 조작 언어
insert / update / deleteDQL
Data Query Language
데이터 조회 언어
selectDCL
Data Control Language
데이터 제어 언어
테이블 조회/생성 권한 부여/회수
root는 가능하다.
GRANT / REVOKETCL
Transaction Control Language
트랜잭션
commit / rollback
후반부의 내용은 조금 어려웠지만 꼭 알아야 하는 내용이었다. 국비 교육을 받을 때에 비해서는 확실히 성장했지만, 아직도 모르는 부분이 많다는 걸 체감하기도 했다. 시간이 된다면 네트워크 관련 책으로 네트워크에 대해 더 자세히 공부하고 싶다.
* 유데미 바로가기 : https://bit.ly/3V220ri본 후기는 유데미-웅진씽크빅 취업 부트캠프 3기 백엔드 과정 학습 일지 리뷰로 작성되었습니다.'스타터스 백엔드 3기' 카테고리의 다른 글
221226. DB 4. 서브쿼리 (0) 2022.12.26 221226. DB 3. DML, 제약조건, ALTER TABLE (0) 2022.12.26 221223. DB 2. RDBMS, select (0) 2022.12.23 221221 자바15. 파일 (0) 2022.12.21 221221 자바 14. 입출력 (0) 2022.12.21