목록웹개발/Java (12)
웹풀스택 공부 중
익명 클래스와 익명 구현 객체익명이란? = 일회용“익명”은 여러번 사용하기 위해 이름을 붙인 “가명”과 달리, 일회용의 개념이다익명 함수의 경우, Lambda로 표현한다자바에서도 일회용의 개념이 존재하나 자바에는 함수라는 개념이 없다!대신 Method가 있다Method: 클래스 안에 들어간 함수가 Method이다익명 함수를 구현하기 위해 익명 구현 객체가 생긴다익명 (상속) 클래스: 클래스를 상속 (Extends)한 익명 클래스이다동시에 객체를 생성한다익명 구현 객체: 인터페이스를 구현 (Implements)한 익명 클래스이다동시에 객체를 생성한다일급 함수 (First-Class function) 때문에 생겼다!일급 함수: 함수가 다른 데이터 유형과 동일한 방식으로 취급 될 수있음을 의미한다함수를 변수..

좋은, 객체 지향적 프로그래밍이란?중복의 최소화코드 변경의 용이성재사용성DRY: Don’t Repeat YourselfKISS: Keep It Simple and StupidYAGNI: You Ain’t Gonna Need It구현보다 인터페이스에 맞춰서 코딩하자구현은 언제든지 바뀔 수 있다. 인터페이스를 사용해서 유연하게 구현하자!상속 보다는 인터페이스 구성 (Composite)을 사용하자!상속이 아닌 인터페이스 구성 시 원하는 구현을 붙였다 떼었다가 할 수 있다!SOLID객체 지향의 정수“제대로된 분업화”목표: High Cohesion, Loose CouplingCohesion: 응집도관련된 작업을 하나로 묶는 행위 (높여야한다)Coupling: 결합도하나가 바뀌면 다른 하나가 또 바뀌는 현상 (낮춰..
ENUM분류된 객체 모음특정 타입의 객체들을 한곳에 묶어둔다. “Categorized 객체”사용목적메서드 수행 시, Parameter에 너무 많은 경우의 수가 발생하는것을 방지Parameter(값)의 종류나 Return value의 종류를 제약하고 싶을때 사용한다경우의 수? public static void createMessage(**String** message) { System.out.println("당신에게 메세지를 보냅니다. : " + message); }이런식 일때, String message에 모든 메세지를 보낼 수 있다예시.) “사랑합니다”나, “감사합니다” 만으로 줄이고 싶을 때 Enum을 사용하여 경우의 수를 줄일 수 있다@Getter@RequiredArgsCons..

Abstract Class vs InterfaceAbstract Class예시 @Slf4j public abstract class KafkaAbstractListener implements KafkaListener { @PostConstruct public void instantiated() { log.info("[Abstract Class] {} is created", this.getType().name()); } @PreDestroy abstract void destroy(); }더 쉬운 예시 abstract class MakingRamen implements RamenProcess { public ..
Generic귀에 걸먼 귀걸이, 코에 걸먼 코걸이…Generic은 에 우리가 원하는 타입을 넣으면 그에 맞게 클래스가 변화하는 것이다어떤 타입의 클래스도 정의할 수 있는 확장성을 보장한다예시 public interface JpaRepository { public abstract T findById(F id) public abstract F save(T user) public abstract void delete(F id) } public class PaymentRepository / PaymentTable implements JpaRepository { private Database psqlDatabase; public..
Static: 인스턴스화 없이 바로 사용 가능객체를 만들지 않고도 사용할 수 있는 Field, Method, Class 이다정적 Field: 이것은 Static Method에서 바로 사용이 가능하다static을 사용할때 주로 final 을 같이 쓴다값이 바뀌는걸 방어한다public 도 같이 사용한다어차피 넘기기 위한 용도이기에…비밀스럽게 Static Method에서만 사용하고 싶을땐 private을 붙여도 상관은 ㅇ정적 Method: 속한 클래스의 인스턴스 없이 사용 가능한 메서드이다유틸리티 관련 메서드를 만드는데 유용하게 사용된다Parameter만 받아서 사용하는 Method는 Static으로 사용하는게 좋다Field가 없는 Method를 뜻하는거다어떤곳에도 의존하지 않기에 객체를 만들 필요가 없다!@..