0. Generic:: 클래스, 인터페이스, 메서드에서 사용할 수 있는 타입 매개변수를 정의할 수 있는 기능:: 처리할 타입을 미리 정의하지 않고, 사용하는 시점에서 타입을 지정 가능// 제네릭 Exclass Box { private T value; public void setValue(T value) { this.value = value; } public T getValue() { return value; }}0.1 제네릭 네이밍 컨벤션:: 각각 제네릭에는 의미가 있음에 유의EElementKKeyNNumberTType?anyS, U, V2nd, 3nd, 4nd ...VValue0.2 VS 구분T?의미제네릭 타입 파라미터로 어떤 타입이든 가능와일드 카..
1. Array배열:: 길이가 고정된 값의 나열:: 길이가 고정되어 있기 때문에 add() , delete() 불가=> list로 전환 후에 작업해야 함=> 작업 이후 다시 배열로 전환 필요더보기Integer[] integer_array = new Integer[3]; // 길이 기반 Array 선언 (Integer 요소)Integer[] integer_array = new Integer[]{1, 2, 3}; // 값 기반 Array 선언 (Integer 요소)System.out.println(integer_array.length); Member[] members = { new Member(1, "Aaron"), new Member(2, "Baron"), new Me..
0. inferface0.1 inferface:: 추상화 + 다형성을 위해 사용:: 구현 클래스를 위한 메서드 타입에 대한 명시(제네릭을 포함한..):: 인터페이스 내에 정적 멤버와 정적 메서드 정의 가능 -> 정적 메서드 정의 시 static 생략 불가.인터페이스 추상화:: 가상 필요한 요소를 제외하고 모두 은닉 => 인터페이스(interface) :: 구현체는 가리고 메서드만 노출 => 추상 클래스(abstact class) :: 일부 구현체는 가리고 필요한 필드, 메서드만 노출default 메서드:: 구현 클래스에서 구현하지 않아도 되는 기본 메서드:: default 메서드의 출현으로 private 메서드 또한 사용이 가능해짐 -> default 메서드를 지원해주기 위해:: 그래서..
1. final- 필드 적용:: 해당 필드의 값이 변하지 않음을 의미:: 해당 값이 객체라면 객체 내부의 값은 변경 가능- 메서드 적용:: 상속(Overriding) X:: 해당 메서드가 꼭 한가지 구현으로만 사용되는 경우에 사용(Side-Effect 방지)- 클래스 적용:: 상속(extends) X:: 디자인 패턴의 원칙인 "상속보다는 합성"final int[] FINAL_ARRAY = new int[]{1, 2, 3};FINAL_ARRAY[0] = 10; // 결과 = [10, 2, 3]더보기final 필드 적용 예시final int[] FINAL_ARRAY = new int[]{1, 2, 3};FINAL_ARRAY[0] = 10; // 결과 = [10, 2, 3] 상속 보다는 합성 예시// 상속 ..
3. 정적 팩토리 메서드:: 객체를 생성할 수 있는 방법을 단 하나의 정적 메서드 방식으로만 가능하게 제한팩토리 메서드(Factory Method Pattern):: 캡슐화된 Factory 클래스가 대리하여 객체 생성 및 반:: 클라이언트에서 new 키워드를 통한 생성 X정적 메서드의 의의 => 기존 객체에서 새로운 객체로의 변환// 생성자를 Lombok 어노테이션으로 private 설정 가능@NoArgsConstructor(access = AccessLevel.PRIVATE)@AllArgsConstructor(access = AccessLevel.PRIVATE)// 적용@AllArgsConstructor(access = AccessLevel.PRIVATE)public class Member { p..
2. 빌더(Builder):: Builder 패턴은 3가지로 분리되어 호출// 1) 빌더 정의Member.MemberBuilder builder = Member.builder()// 2) 필드 설정builder.name("Aaron") .email("aaron@example.com") // 3) 객체 생성Member aaron = builder.build(); - 합쳐서 사용할 경우, 아래와 같이 사용한다.Member aaron = Member.builder() .email("aaron@example.com") .name("Aaron") .build();2.1 builder의 장점:: 생성자가 아닌 빌더를 통해 객체를 생성하는 이유1) 원하는..
1. 생성자:: 필요한 형태의 객체에 따라 각각의 방식으로 생성자를 만듦1.1 @NoArgsConstructor + @Setter:: 빈 객체 생성 후, 필요에 따라 필드 값 주입Member aaron = new Member(); // 빈 객체 생성aaron.setName("Aaron"); // 이후 값 주입aaron.setEmail("aaron@example.com");// ...public class Member { private String name; private String email; public Member() {} // 빈 객체를 생성하는 생성자 public void setName(String name) { this.name = name; } pub..
1. 객체의 종류1.1. DTO (Data Transfer Object):: 객체의 가변성 부여:: 주로 서비스 계층에서 Controller로 데이터 전달 or API 호출 결과를 클라이언트로 전달이 목적- 객체 내 데이터에 대한 Getter와 Setter 사용 가능1.2 VO (Value Object):: 객체의 불변성 부여:: 여러 도메인 객체 간의 값 비교 or 무결성 검증 역할:: 값의 동일성을 기준으로 비교 -> equlas() 와 hashCode() 메서드를 재정으하는 경우 사용- 객체 내 데이터에 대한 Getter 가능 , Setter 사용 X1.3 비교구분DTO (Data Transfer Object)VO (Value Object)목적데이터 전달을 위한 객체값 자체를 표현하기 위한 객체변경..

0. 객체 지향 프로그래밍(OOP)의 핵심 개념0.1. 캡슐화 (Encapsulation):: 객체의 상태(=데이터)와 그 상태를 변경하는 메서드를 하나로 묶는 원칙:: 정보 은닉 + 접근 제어를 통한 객체의 상태 보호 + 데이터 무결성을 제공더보기- 접근 제어자를 통해 데이터를 은닉- 외부에는 최소한의 메서드만을 노출하여 데이터의 변경 및 접근을 제한==> 단순히 숨기는 것이 아닌 "독립된 시스템 구축"에 있다 접근 제어자를 통해 구현- public : 어디서도 접근- protected : private + default의 접근성(상속 or 같은 패키지 내)- default : 같은 패키지 내 접근 가능- private : 동일한 클래스 내에서만 접근 가능, inner 클래스의 경우, 상위에서 접근 가..
8. useCallback: 인수로 넘겨 받은 "callBack" 을 캐싱 => 함수에 대한 저장(메모리제이션): 동일한 함수가 계속 재사용되므로 불필요한 리렌더링을 방지const cachedFn = useCallback(fn, dependencies)첫번째 인수로 캐싱할 함수두번째 인수로 의존성 배열: 자식 컴포넌트가 React.memo로 최적화된 경우, 자식으로 함수를 보낼 경우 callback을 통해 렌더링 방지: 자주 되는 함수일 경우 매번 재생성 하지 않고 메모리에 캐싱된 함수를 재사용더보기더보기const ChildComponent = React.memo(({ onClick }) => { console.log('Child component rendered'); return Click M..
- Total
- Today
- Yesterday
- useContext
- asac7기
- memo
- acas#acas7기
- useCallback
- ASAC
- Nginx
- useMemo
- react
- git
- asac7
- useState
- ssh
- asac#asac7기
- acac
- useReducer
- asac7#asac
- useLayoutEffect
- useEffect
- useRef
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |