본문 바로가기

알면 좋은것

(5)
Network 정리 김영한님의 IO, Network,  Reflection의 강의에 대해 수강했다. 이중 중요하다고 생각하고 느꼈던 것에 대해 정리한다. 1. IO자바에서 Input과 Output은 Stream(추상)클래스를 통해 이루어진다.  IO Stream은 Stream에 보조기를 Chaining 형식으로 연결하여 사용하는것이 일반적이다.ex) BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // System.in은 InputStream의 구현체이다 ex) BufferedWriter wr = new BufferedWriter(new InputStreamWriter(System.out)); // System.out은 OutputStrea..
MultiThread 정리 김영한님의 MultiThread의 강의를 수강했다.그동안 여러 프로젝트를 진행하며 느꼈던 점과 공부하면서 배운점을 간단하게 정리한다. 아래의 개념을 잘모르겠으면 보고오자.쓰레드,프로세스,코어 간단 정리 [CS] 멀티 프로세서? 멀티 프로세스? 멀티쓰레드?멀티 프로세서, 멀티 프로세스, 멀티쓰레드는 CS를 학습하면서 잘 안와닿아서, 헷갈렸던 개념들이다.여태까지 경험하고 학습해온 내용을 바탕으로 가장 이해하기 쉽게 설명하고자한다.먼저 위hjustin.tistory.com public static void main(String args)  1. Main 스레드 생성우리는 코딩 테스트를 할때나, Springboot를 이용한 프로젝트를 진행할때항상 위의 메서드를 실행한다.이때 public static void m..
가장 좋은 최적화란 뭘까 개발자는 항상 새로운 비즈니스 로직과 레거시 코드의 최적화중 하나를 선택해야한다.어떤 최적화가 가장 좋은 최적화일까? 김영한의 강의를 듣다가 정말 좋은 문구가 있어서 발췌해왔다. 가장 좋은 최적화는 최적화하지 않는 것이다.많은 개발자가 미래에 발생하지 않을 일 때문에 코드를 최적화하는 경우가 많다. 예를 들어서 초기 서비스이고, 아직 사용자가 많을지 예측이 되지 않는 상황인데, 코드 최적화에 너무 많은 시간을 사용할 수 있다. 이것은 사용자는 얼마 없는데 매우 비싼 서버를 구매하는 것과 같다. 물론 이 이야기가 극단적으로 최적화를 하지 말자는 말이 아니다.예를 들어서 A와 관련된 기능을 매우 많이 최적화 했는데, 사용자가 없어서 결국 버리게 되는 경우도 있다. 반면에 별로신경쓰지 않은 B와 관련된 기능에..
박싱과 언박싱 String은 참조형 변수인가? 지난 포스팅을 안본 사람은 보는걸 추천한다. 기본형 타입과 참조 타입의 차이를 알고 있는가? 아래의 선언중 2개는 문제가 있다. //1번 int s1 = 5; int s2 = 10; int ss1 = new int(5); int ss2 = new int(10);//2번 Integer s1 = 5; Integer s2 = 10; int ss1 = new Integer(5); int ss2 = new Integer(10);//3번 int s1 = 5; int s2 = 10; Integer ss1 = new int(5); Integer ss2 = new int(10);정답은 1번과 3번이다 기본 타입은 객체로 사용할 수 없다. 객체로 사용하기 위해 래퍼클래스가 따로 존재하며 이..
String은 참조형 변수인가? 아래의 결과를 예측할 수 있는가? public class Main { public static void main(String[] args) { String a1 = new String(); String a2 = a1; a1 = "hello"; a2 = "hi"; System.out.println(a1); System.out.println(a2); } }정답 : hello hi어 ? String은 참조타입이라고 들었는데 왜 Hello가 두번 안나오지? 기본형 타입과 참조 타입의 차이를 알고 있는가? 아래의 선언중 2개는 문제가 있다. //1번 int s1 = 5; int s2 = 10; int ss1 = new int(5); int ss2 = new int(10);//2번 Integer s1 = 5; In..