11건의 항목
소프트웨어의 혁신과 함수형 프로그래밍 소프트웨어를 통한 혁신은 왜 발생했는가? 인간의 추상적인 사고를 통해 발생한 아이디어를 컴퓨터의 극대화된 연산력을 통해 사용할 수 있게 되었기 때문. 이러한 시각은 크게 봐도 그렇고 개발자가 언어를 바라보든 작은 시각에서도 맞다.
Java에서의 Nested Class를 알아보며, 어떻게 변화해 왔을지 한번 생각해보자. Nested Class 클래스 안에 다른 클래스 Java에서는 둘로 나뉜다.
추상클래스는 왜 필요할까? 다형성은 멋지고 강력한 개념 OO 4대 특성인 이유 (상속, 캡슐화, 다형성, 추상화) 다형성은 상속에 기반 상속과 다형성은 추상화에 기반 공통된 것을 뽑아내어 일반화된, 범용적인 것으로 적용 여러 클래스에서 공통 분모를 뽑아 부모 클래스로 제작 자식마다 달리 작동하는 구현을 부모의 method signature로 일반화 추상화는 조금더 복잡한 문제를 해결하기 위한 것 새로운 개념은 새로운 문제도 가져온다 추상화는 막강하지만 그로 인해 생각지 못한 문제가 발생 역시 사람은 직접 해보고 당해봐야 답을 찾음 ...
인터페이스는 왜 필요할까? 그리고 무엇일까? Interface의 사전적 의미 inter-(상호간의) + -face(면) = interface 접해있는 두 물체나 공간 사이의 경계 사용자는 스위치를 키는 버튼에 집중 이걸 누르면 어떤 일이 일어날지를 앎 (what) 어떻게 그런일이 일어나는지는 모름 (how) 실제 동작은 구현 공간에서 일어남 배선의 연결 사용자는 잘 알지 못하는 공간 구현자만 알고 있음 이미 알고 있는 개념 = 함수 함수는 블랙박스임: 호출자는 내부가 어떻게 도는지 이해하려 하지 않는다.
빌더 패턴은 무엇일까? 무엇을 조심해야 할까? 어떤식으로 활용하는 것이 좋을까? Builder 개체의 생성과정을 그 개체의 클래스로부터 분리하는 방법 개체의 부분부분을 만들어 나가다 준비가되면 그제서야 개체를 생성 StringBuilder 단순한 것은 이걸 사용해서 원하는 문자열을 만들 수 있다.
Adapter 패턴으로 알려져있는 Wrapper 패턴에 대해 알아보자. 이름의 문제 GoF: 09.
개체 지향을 얘기하면 꼭 나오는 단어인 예외에 대해서 알아본다. Exception 사실 예외는 개체지향의 일부가 아니다.
예외 처리를 제대로 하지 못하는 이유는 무엇일까? 예외 처리를 제대로 하지 못하는 이유 과거에 주류이던 예외 처리 방식은 지속적으로 작동이 보장되어야 하는 프로그램에 대해 “하드웨어가 멈추는 크래시”가 무서워서 그랬을 수 있다.
그래서 예외는 어떻게 처리하는 것이 좋은걸까? 오류 상황 예외 상황과 오류 상황을 다른 의미로 사용할 것 오류 상황은 error condition을 말함 이 오류 상황을 처리하는 방법 중에 예외가 있음 오류 상황은 예측 가능한 상황을 의미함 프로그램 실행 중에 기본적으로는 일어나지 않음 하지만 일어날 수 있는 일 따라서 이러한 상황을 처리하는 코드는 프로그램 기능의 일부임 프로그래머가 이를 예측하지 못했다면? 버그 오류 상황을 처리하는 4가지 방법 무시 곧바로 크래시 일단은 작동하는데 언젠가는 크래시 안정적이지 못한 상태로 계속 동...
해당 부분은 너무 코드가 많아, 이전 상태와 이후 상태를 놓고 그 사이에서 저자가 어떠한 흐름으로 이를 처리했는지 간략하게 정리하는 것을 목적으로 한다. Intro 해당 부분에서는 출발은 좋았으나, 확장서잉 부족했던 모듈을 소개한다.
고급언어 > 가상 머신 > 실제 머신 이 이해하는 방식으로 추상화된 코드가 구체화 된다. 이 단계에서 가상 머신이 이해할 수 있을 정도의 형태로 변환한 코드를 바이트 코드라 한다. 이렇게 중간단계를 둚으로서 다양한 머신에 대응할 수 있다.