일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바기초
- Apollo GraphQL
- mvvm
- java
- PYTHON
- MVVM pattern
- unit test
- Android
- 안드로이드 디자인패턴
- flutter
- Kotlin
- 우분투 파이썬
- 유니티
- ubuntu python
- 안드로이드
- Dependency Injection
- Data structure
- 웹크롤링
- Nexus GraphQL
- Design Pattern
- graphQL
- 안드로이드 mvp
- dagger-hilt
- Apollo Server
- 파이썬 크롤링
- 자바
- LinkedList
- prisma
- Android test
- 안드로이드 테스트
- Today
- Total
목록Language/Kotlin & Java (11)
Hun's Blog
joaoalves.dev/posts/kotlin-playground/parcelable-in-kotlin-here-comes-parcelize/ Parcelable in Kotlin? Here comes Parcelize Hey everyone, welcome to article number 5 in the series where we’re going to look into how to handle Parcelables in Kotlin. joaoalves.dev 기본적으로 Parcelable이 사용되는 경우는 다른 Activity로 모델을 전달해야 할때이다. class ActivityA : Activity() { override fun onCreate(savedInstanceState: Bundle?)..
Generic 제네릭이란 데이터 타입을 일반화한다는 것을 의미한다. 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 것이다. *JDK 1.5 이전에는 여러 타입을 사용하는 클래스나 메소드에서 인수나 반환값으로 Object 타입을 사용했었다. 이 경우 반환된 Object 객체를 다시 원하는 타입으로 변환해야 했으며, 이때 오류가 발생할 가능성이 존재한다. JDK1.5 부터 도입된 제네릭을 활용하면 컴파일 시 미리 타입이 정해지므로, 타입검사나 타입 변환과 같은 번거로운 작업을 생략할수 있게 된다. 예제 1 2 3 4 5 6 7 8 9 class MyArray { T element; void setElement(T element){ this.element = element; } T ..
Hash? ArrayList는 내부 인덱스를 이용하여 검색이 한번에 이루어지기 때문에 빠른 검색 속도를 보장하는 반면 데이터의 추가/삭제시 많은 데이터가 밀리거나 당겨지기 때문에 많은 시간이 소요된다. LinkedList는 추가/삭제시 인근 노드들의 참조값만 수정해 줌으로써 빠른 처리가 가능하지만 데이터를 검색할 경우 해당 노드를 찾기 위해 처음부터 순회 검색을 해야하기 때문에 데이터의 수가 많아질수록 효율이 떨어지는 구조이다. *이러한 한계를 극복하기 위해서 제시된 방법이 Hash이다. Hash는 내부적으로 배열을 사용하여 데이터를 저장하기 때문에 빠른 검색속도를 갖는다. 그리고 데이터 추가/삭제시 기존 데이터를 밀어내거나 당기는 작업이 필요없도록 특별한 알고리즘을 이용하여 데이터와 연관된 고유한 숫자..
MAP 맵은 사전과 비슷하다. people이란 단어에 "사람", baseball이란 단어에 "야구"라는 뜻이 부합되듯이 Map은 Key와 Value라는 것을 한 쌍으로 갖는 자료형이다. 맵은 리스트나 배열처럼 순차적으로 해당 요소 값을 구하지 않고 Key를 통해 Value를 얻는다. *맵의 가장 큰 특징은 Key로 Value를 얻어낸다는 것이다. People이라는 단어의 뜻을 찾기 위해서 사전의 내용을 순차적으로 검색하는 것이 아니라 해당 단어가 있는 곳만을 펼쳐 보는 것이다. *맵도 리스트와 마찬가지로 인터페이스다. 맵 인터페이스를 구현한 Map자료형에 HashMap, LinkedHashMap, TreeMap등이 있다. HashMap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16..
Call by value = 값에 의한 호출 프로그래밍 언어에서 변수를 다른 메소드의 인자로 넘겨 줄 수 있다. 이때 변수의 '값'을 넘겨주는 호출 방식을 Call by value 라고한다. 자바는 Call by value 방식으로 동작한다. 예제 1 2 3 4 5 6 7 8 9 10 11 12 static void swap(int x,int y){ int tmp = x; x = y; y = tmp; } //main() 호출 및 결과 int a = 1; int b = 2; swap(a,b); System.out.println(a); // 1 System.out.println(b); // 2 swap() 은 입력값 x와 y의 값을 바꾸는 예제이다. a = 1, b = 2가 입력되고 바뀐것이니 println..
추상 메소드 (abstract method) 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드를 의미한다. 자바에서 추상 메소드를 사용하는 목적은 추상 메소드가 포함된 클래스를 상속받는 자식클래스가 반드시 추상 메소드를 구현하도록 하기 위함이다. 모듈처럼 중복되는 부분이나 공통적인 부분은 미리 다 만들어진 것을 사용하고, 이를 받아 사용하는 쪽에서는 자신에게 필요한 부분만을 재정의하여 사용함으로써 생산성이 향상되고 배포 등이 쉬워지기 때문이다. 추상 메소드는 선언부만 존재하며, 구현부는 작성되어 있지 않다. 이 작성되어 있지 않은 구현부를 자식 클래스에서 오버라이딩 하여 사용하는 것이다. 추상 클래스(abstract class) 자바에서 하나 이상의 추상 메소드를 포함하는 클래스를 추상 클래..
http://tcpschool.com/java/java_usingMethod_overloading 참고 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등 tcpschool.com 메소드 시그니쳐 (method signature) 메소드 오버로딩의 핵심 메소드의 선언부에 명시되는 매개변수 리스트 만약 두 메소드가 매개변수의 개수와 타입, 그 순서까지 모두 같다면, 이 두 메소드의 시그니처는 같은 것이다. 메소드 오버로딩 (method overloading) 같은 이름의 메소드를 중복하여 정의함 *자바에서는 클래스 내에 같은 이름의 메소드를 둘 이상 가질 수 없다. 하지만 매개변수의 개수나 타입을 다르게 하면, 하나의 이름으로 메소드를 작성 할 수..
Data Structure (자료구조) 데이터를 효율적으로 저장하고 꺼내기 쉽게 만드는 것을 의미한다. 꺼내쓰기 쉽게 데이터를 잘 정리 정돈 하는 것이라고 할 수 있다. 이정도의 정의로 시작하여 차차 자료구조에 대해 공부하면서 바라보는 시야를 넓혀가자. 거의 모든 언어에 있는 배열은 대표적인 데이터 스트럭쳐라고 할 수 있다. 배열 - Array 거의 모든 프로그래밍 언어에 포함되어 있다. 데이터를 하나의 변수에 그룹핑해서 관리하기 위한 방법 반복문과 결합하여 많은 정보를 효율적으로 처리 배열은 데이터 스트럭쳐이다. 매우 다양한 용도로 사용할 수 있는 데이터 스트럭쳐이다 ex)Array 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 //Array String[] student ..
Vector란 무엇인가? Vector 클래스 java.util.Vector List 인터페이스를 구현한 클래스 객체들을 삽입, 삭제, 검색 할 수 있는 콘테이너 클래스 배열의 길이 제한 단점을 극복 아이템을 맨 마지막이나 중간에 삽입할 수 있음 객체수가 많아지면 자동으로 크기 조절 맨 뒤에 객체 추가 : 공간이 모자르면 자동 늘림 중간에 객체 추가 : 뒤에 존재하는 객체 한칸씩 뒤로이동 객체 삭제 : 삭제 후 한칸씩 앞으로 자동이동 Vector 내부구조 add() 메소드로 요소 삽입 get() 메소드로 요소 검색 String, Integer, Person 등 다양한 타입의 객체 삽입 가능 요소들은 인덱스로 관리 (0부터 시작) Vector 주요 메소드 add(E e) : 벡터 맨 뒤에 요소추가 add(i..
참고 http://www.itworld.co.kr/news/110817 "JDK란 무엇인가" 자바 개발 키트 소개와 설치하기 - ITWorld Korea 자바 개발 키트(Java Development Kit, JDK)는 자바 애플리케이션을 구축하기 위한 핵심 플랫폼 구성요소다. 이 중심에는 자바 컴파일러(Compiler)가 있다.Credit: Nic McPhee (CC BY-SA 2.0)JDK는 자바 가상 머신(Java Virtual Machine, JVM), 그리고 자바 런타임 환경(Java Runtime Environment, JRE)과 함께 자바 프로그래밍에 사용되는 3대 www.itworld.co.kr JAVA란 무엇인가? Wikipedia를 먼저 살펴보자. 썬 마이크로 시스템즈의 제임스 고슬링과..