Thread 3

2022.03.24 ⭐DB 그리고 객체지향의 문제점

DB가 죽는 이유 그리고 객체지향의 문제점에 대한 조금... 아니 어려운 이야기를 해주셨습니다 앞으로 진행될 강의와 우리가 고민해야 할 문제들도 포함된 중요한 이야기여서 정리해보겠습니다 DB가 죽는이유? DB는 기본적으로 여러 사람이 처리할 수 있게 만들어져 있다 그러다 보면 Close(); 를 해줘야 하는데 안 해줘도 처음에는 티가 안 나다가 점점 시스템이 느려지고 결국은 먹통이 된다 시스템이 먹통이 되는 여러 경우 중 하나가 Full GC이다 Full GC가 발생하는 순간, 자바 애플리케이션이 멈춘다. (Stop-the-world). 따라서 Full GC는 성능과 안정성에 아주 큰 영향을 미친다. 그래서 대부분의 경우에는 서버를 한대가 아닌 2대 이상을 보유한다 ⭐객체 하나에 Thread가 여러 개 ..

2022.03.24 수업일지

면접 팁 기능&개념 설명을 할 때 책 사전적 의미를 설명 후 내가 이 기능을 가지고 어떤 걸 만들었고 결과적으로 내가 생각하거나 느낀 점을 설명 하기!! Immutable Class는 변경이 불가능한 클래스이며, 가변적이지 않는 클래스입니다 Immutable Class는 레퍼런스 타입의 객체이기 때문에 heap영역에 생성 됩니다. 자바에서 이런 Immutable Class로 어떤 것들이 있을까요? 대표적으로 String, Boolean, Integer, Float, Long 등등이 있습니다. 이러한 Immutable Class들은 heap영역에서 변경 불가능한 것이지 재할당을 못하는 것은 아닙니다. 즉 String a = "aa"; 에서 a = "bb"로 재할당이 가능합니다. a가 참조하고 있는 heap..

2022.03.23 채팅 IO

3번 정도의 채팅 로직을 만들었고 이려 시행착오가 있었는데 오늘의 코드가 깔끔한 것 같아 정리 한번 해보려 합니다 이번 로직은 다중채팅은 아니고 소켓통신을 응용한 1:1 채팅입니다 Server import java.io.DataInputStream; import java.io.DataOutputStream; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; public class OneToOneServer { //bad code public static void main(String[] args) throws Exception { //서버 생성 ServerSocket serverSocket =new ServerS..