Java (6) 썸네일형 리스트형 [이펙티브 코틀린] 4장 추상화 설계 추상화(abstraction)는 프로그래밍 세계에서 가장 중요한 개념 중 하나이며, OOP에서 캡슐화와 상속과 함께 세 가지 주요 개념 중 하나이다.컴퓨터 과학에서 추상화(abstraction)는 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것을 말한다. 조금 간단하게 표현하면, 추상화는 복잡성을 숨기기 위해 사용되는 단순한 형식을 의미한다.e.g. 복잡한 클래스에서 메서드와 프로퍼티만 추출해서 간단하게 만든 인터페이스 프로그래밍에서의 추상화추상화를 설계한다는 것은 단순하게 모듈 또는 라이브러리로 분리한다는 의미가 아니다. 함수를 정의할 때는 그 구현을 함수 시그니처 뒤에 숨기게 되는데, 이것이 바로 추상화다. fun maxOf(a: Int, b: Int) = if (a.. 아임포트 일반결제 연동하기 ※ 2021년 12월 21일에 작성된 글입니다.PG(Payment Gateway)?온라인 상에서 결제를 할 때 주로 신용카드를 이용한다. 그런데 카드사는 한 곳만 있는 것이 아니고, 각각의 카드사마다 API가 다를 것이기 때문에 모든 카드사와 직접 연동을 하는 것은 매우 비효율적이다.따라서 PG 사에서는 각 카드사와 직접 연동을 하고 하나의 API로 통합하여 가맹점에 제공해준다.오프라인에서는 VAN 사가 비슷한 역할을 한다.또한, 결제 수단이 신용카드뿐만 아니라, 실시간 계좌이체, 가상계좌, 휴대폰 소액결제 등이 있는데, 이 역시 PG사에서 한 번에 연동할 수 있도록 해준다.PG 연동 솔루션?여러 카드사와의 연동을 PG 사가 해결해줬지만, 아직 문제가 남아있다.신용카드로 직접 결제하는 경우도 있지만, 요.. [Java] JDK 버전별 차이점 정리 (1.5~17) ※ 2021년 11월 26일에 작성된 글입니다.JDK 1.5추가된 기능GenericMetadataAutoboxing/unboxingEnumerationsVarargsEnhanced for each loopImproved semantics of execution for multi-threaded Java programsStatic imports표준 라이브러리 개선Automatic stub generation for RMI objectsSwingThe concurrency utilities in package java.util.concurrentScanner class for parsing data from various input streams and buffersJDK 1.6Support for olde.. [Java] Pattern Matching for instanceof ※ 2021년 11월 23일에 작성된 글입니다.Pattern Matching for instanceofinstanceof에서 객체 타입 확인뿐만 아니라 캐스팅까지 할 수 있다.ReleaseJDK 14: previewJDK 15: second previewJDK 16JEP 394 Pattern Matching for instanceof코드로 비교해보자Beforeif (animal instanceof Cat) { Cat cat = (Cat) animal; cat.meow();} else if (animal instanceof Dog) { Dog dog = (Dog) animal; dog.woof();}instanceof를 이용해 객체 타입을 확인하고 추가로 캐스팅을 해줘야 했다.Afte.. [Java] Switch Expression ※ 2021년 11월 23일에 작성된 글입니다.🕹 Switch Expressionswitch를 명령문(statement) 뿐만 아니라 표현식(expression)으로도 사용할 수 있도록 확장JDK 12, 13에서 preview, JDK 14에서 standard로 제공된다.JEP 361 Switch Expressions코드로 비교해보자Beforeswitch (day) { case MONDAY: case FRIDAY: case SUNDAY: System.out.println(6); break; case TUESDAY: System.out.println(7); break; case THURSDAY: case SATURDAY: .. [Java] 레코드(Record) ※ 2021년 11월 21일에 작성된 글입니다.레코드(Record)변경할 수 없는 데이터의 투명한 전달자 역할을 하는 클래스Kotlin의 data class와 비슷한 것이라고 보면 될 것 같다.JDK 14에서 preview로 도입되었으며, JDK 16에서 정식으로 도입되었다.JEP 395 Records코드로 비교해보자Beforeclass Point { private final int x; private final int y; Point(int x, int y) { this.x = x; this.y = y; } int x() { return x; } int y() { return y; } public boolean equals(Object o).. 이전 1 다음