💡 리뷰 활동을 하면서 디미터의 법칙을 상기시켜보라는 리뷰를 받게 되었습니다. 객체 지향 프로그래밍에서 중요하게 적용되는 디미터의 법칙에 대하여 학습하였습니다. 디미터의 법칙?Law of Demeter어떤 객체가 다른 객체에 대해 지나치게 많이 알다보니, 결합도가 높아지고 좋지 못한 설계가 발생합니다.이를 개선하고자 객체에게 내부 값을 숨기는 대신 함수를 공개하도록 하는 것이 디미터의 법칙입니다.다른 객체가 어떠한 내부 값을 가지고 있는지 속사정을 몰라아 햔다는 뜻으로, 아래와 같이 불리기도 합니다.Don’t Talk to Stranger (낯선 이에게 말하지 마라)Principle of lesat knowledge (최소 지식 원칙)또한 직관적인 이해를 위해서 여러 개의 .(도트)를 사용하지 않도록 ..
💡 프로그래밍 언어, 특히 Java 언어에서 사용되는 Compile, Decompile에 대한 내용과 코틀린 코드를 자바 코드로 Decompile하는 과정을 실습하였습니다. Compile?사람이 이해하는 언어를 컴퓨터가 이해하는 언어로 바꾸는 과정을 컴파일이라고 합니다.0과 1로 모든 명령어를 이해할 수 있는 컴퓨터에게 언어를 이해 시켜줄 수 있도록 번역해주는 과정을 거칩니다.또한 원시코드를 목적코드를 바꿔주는 과정을 컴파일이라 합니다.원시코드 : 인간이 알아볼 수 있는 코드 (.java..)목적코드 : 컴퓨터가 이해하는 코드, 기계어 (.class..)컴파일 과정이 필요한 이유JVM에서는 byte code(.class)를 실행할 때 compile 과정에서 진행한 일을 다시 진행하는 과정 없이 실행만 ..
5장 가독성 높은 코드를 작성하라서술형 명칭 사용서술적이지 않은 이름은 코드를 읽기 어렵게 만든다.주석문으로 서술적인 이름을 대체할 수 없다.주석문에 대한 유지보수도 필요해진다.클래스가 수백 줄의 길이를 가진다면, 주석을 찾기 위해 스크롤 해야한다.중복된 주석문은 유해할 수 있다.코드가 수행하는 작업을 설명하는 주석문을 추가한 경우 코드가 변경하면 주석문을 수정해야 하는 상황이 생긴다.주석문이 이해하기 어려운 코드가 있다.String generateId(String[] data) { // data[0]은 성이고, data[1]부터는 이름이다}헬퍼 함수를 사용하여 가독성이 높은 코드를 쉽게 작성할 수 있다.String generateId(String[] data) { return firstName(dat..
콘보이 현상(convoy effect) 콘보이 현상이란 작업 시간이 긴 프로세스가 먼저 큐에 도착해서 다른 프로세스의 실행 시간이 전부 늦춰져 효율이 떨어지는 현상입니다. FCFS(first- come firts served) 스케줄링은 비선점으로, 순차적으로 먼저 큐에 들어온 작업부터 실행하므로 콘보이 현상이 발생합니다. 선점형 스케줄링과 비선점형 스케줄링 선점형은 하나의 프로세스가 다른 프로세스 대신에 CPU를 차지할 수 있음을 말하고, 비선점형은 하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없음을 말합니다. 동기와 비동기 동기는 순차적, 직렬적으로 테스크를 수행하고, 비동기는 병렬적으로 테스크를 수행합니다. 동기(synchronous)는 서버에 데이터를 요청하고 데이터가 응답..