이 글의 개념 및 코드들은 책을 읽으며 정리한 내용을 바탕으로 작성하였습니다.
클래스 로더가 .class 파일을 읽고
그 내용에 따라 적절한 바이너리 데이터를 만들고
Method 영역에 저장한다.
Method 영역에 저장하는 데이터
Type 정보 (클래스, 인터페이스, Enum)
메소드와 변수
FQCN (Fully Qualified Class Name)
package goodgid.gidhub;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class GidhubApplication {
public static void main(String[] args) {
// FQCN 사용
org.springframework.boot.SpringApplication.run(GidhubApplication.class, args);
// FQCN 사용 X
SpringApplication.run(GidhubApplication.class, args);
}
}
이 글의 개념 및 코드들은 책을 읽으며 정리한 내용을 바탕으로 작성하였습니다.
신문 기사를 떠올려보자.
독자는 위에서 아래로 기사를 읽는다.
최상단에 기사를 몇 마디로 요약하는 표제가 나온다.
독자는 표제를 보고서 기사를 읽을지 말지 정한다.
첫 문단은 전체 기사 내용을 요약한다.
세세한 사실은 숨기고 커다란 그림을 보여준다.
쭉 읽으며 내려가면 세세한 사실이 조금씩 나온다.
2019에 내가 추천서를 가장 많이 인입했던 사람으로 상을 받았다.
(= 2019 Received Referral AWARDS in LINE Corparation )
놀랍고도 신기하고 신선하고 재미난 소식이다.
이 글의 개념 및 코드들은 책을 읽으며 정리한 내용을 바탕으로 작성하였습니다.
함수의 의도나
인수의 순서와 의도를 제대로 표현하려면
함수 이름을 좋게 Naming할 필요가 있다.
이 글의 개념 및 코드들은 책을 읽으며 정리한 내용을 바탕으로 작성하였습니다.
명령 함수에서 오류 코드를 반환하는 방식은
명령 / 조회 분리 규칙을
미묘하게 위반한다.
if (deletePage(page) == OK)
위 코드는 여러 단계로 중첩되는 코드를 야기한다.
오류 코드를 반환하면
호출자는 오류 코드를 곧바로 처리해야한다는 문제에 부딪힌다.
if (deletePage(page) == OK) {
if (registry.deleteReference(page.name) == OK) {
if (configKeys.deleteKey(page.name.makeKey()) == OK) {
logger.log("page deleted");
} else {
logger.log("configKey nott deleted");
}
} else {
logger.log("deleteReference from registry failed");
}
} else {
logger.log("delete failed");
return E_ERROR;
}
오류 코드 대신
예외를 사용하면
오류 처리 코드가
원래 코드에서 분리되어 코드가 깔끔해진다.
try {
deletePage(page);
registry.deleteReference(page.name);
configKyes.deleteKey(page.name.makeKey());
} catch (Exception e) {
logger.log(e.getMessage());
}
이 글의 개념 및 코드들은 책을 읽으며 정리한 내용을 바탕으로 작성하였습니다.
함수는 뭔가를 수행하거나
뭔가에 답하거나
둘 중에 하나만 해야한다.
public boolean set(String attribute, String value);
이 함수는 이름이 attribute인 속성을 찾아
값을 value로 설정한 후
성공하면 true를 반환
실패하면 flase를 반환한다.
if (set("userName", "goodGid"))
userName이 goodGid으로 설정되어 있는지 확인하는 코드인가?
userName을 goodGid로 설정하는 코드인가?