변성이란? 변성(Variance)은 서로 다른 타입 간에 어떤 관계가 있는지를 나타내는 개념이다. 변성에는 공변, 반공변, 무공변(불공변)이 있는데 각 변성의 특징은 다음과 같다. Child가 Parent의 하위 타입일 때, 공변 Child[]는 Parent[]의 하위 타입이다. List는 List의 하위 타입이다. 반공변 Parent[]는 Child[]의 하위 타입이다. List는 List의 하위 타입이다. 무공변(불공변) List와 List는 서로 다른 타입이다. // 공변성 Number[] covariance = new Integer[5]; // 반공변성 Integer[] contravariance = (Integer[]) covariance; 마치 업캐스팅, 다운캐스팅의 개념과 유사하다고 볼 수 ..
타입 형 변환 int x = (int) 10.0; 대입 연산자를 기준으로 오른쪽 값을 왼쪽 값에 맞추는 것이 기본 규칙이다. 10.0의 기본 타입은 double인데 왼쪽 타입이 int 이므로 캐스팅을 통해 타입을 맞춰주게 된다. 이 타입 형변환을 객체간에서도 구현해줄 수 있다. Strongly typed language 자바는 데이터 타입을 미리 정의해서 사용하고 한 번 정의된 데이터 타입은 프로그램 종료까지 변하지 않는 강한 타입의 언어이다. 프로그램 개발에 있어서 명확함과 구체성을 제공한다는 장점과 유연성이 제약된다는 단점이 있다. 여기에 대한 예외가 하나 존재하는데 그것이 객체간 타입 형변환을 가능하게 하는 지점이다. 객체간 타입 형변환 상속 관계에서 자식 클래스가 부모 클래스 타입으로 참조되는 것..
제네릭이란?! 제네릭은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법이다. ArrayList list = new ArrayList(); 주로 Collection Framwork를 선언할 때 꺽쇠 괄호() 를 함께 사용하는데 그 꺽쇠 괄호가 제네릭이다. 괄호 안에 타입을 쓰면 해당 컬렉션의 자료형 타입이 지정되는데 위 예제의 경우 list에는 Integer 타입만 저장할 수 있게 된다. 제네릭에 대해 공부하기 전에는 변수에 타입을 지정하듯이 컬렉션에 타입을 지정하는 것이라고 추측하였었는데 맞는 말이긴 하지만 변수 타입보다 더 깊은 내용이 있다. String[] str = new String[5]; ArrayList list = new ArrayList(5); 제네릭 타입 매개변수 정의 제네릭..
프로젝트 소개 프로젝트명: TO-DO-IT 리액트와 스프링부트를 연동한 투두리스트 어플리케이션 기술 스택 주요 기능 투두리스트 CRUD 완료시 목록의 하단으로 이동, 완료 날짜 출력 목표 달성도 실시간 반영 히스토리 날짜별로 완료한 투두리스트 확인 데이터베이스 연동 주요 코드 내용 오늘의 투두리스트 const [todos, setTodos] = useState([]); const [complete, setComplete] = useState(true); // axios 호출 성공시 true const [attain, setAttain] = useState(0); // 달성한 todo 개수 const [checked, setChecked] = useState(false); const day = dayjs(..
등장배경 콜백 함수가 중첩될 수록 코드가 복잡해진다는 콜백 지옥을 해결하기 위해 Promise가 등장하였는데 Promise 또한 체인이 반복되면 프로미스 지옥이 펼쳐진다. Promise Hell 예시 fetch("URL") .then((response) => { if (response.ok) { return response.json(); } else { throw new Error("Error"); } }) .then((users) => { return users.map((user) => user.login); }) .then((logins) => { return logins.join(", "); }) .then((result) => { console.log(result); }) .catch((error..
- Total
- Today
- Yesterday
- Spring
- 프로그래머스
- 타입스크립트
- Algorithm
- SQL
- 자바트리
- 자바스크립트
- 백준
- 리액트
- Queue
- 정렬
- DP
- 스프링부트
- 자바bfs
- SQLD
- 알고리즘
- 이분탐색
- Comparator
- 해시맵
- java
- 형변환
- dfs
- Nest
- BFS
- CS
- 자바
- 자바dp
- JavaScript
- 스프링
- JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |