일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바기초
- ubuntu python
- 파이썬 크롤링
- LinkedList
- Android test
- 자바
- dagger-hilt
- Data structure
- 안드로이드
- 웹크롤링
- 유니티
- 안드로이드 디자인패턴
- 우분투 파이썬
- PYTHON
- graphQL
- prisma
- Kotlin
- unit test
- MVVM pattern
- Apollo GraphQL
- mvvm
- Design Pattern
- java
- Apollo Server
- Nexus GraphQL
- 안드로이드 mvp
- flutter
- 안드로이드 테스트
- Android
- Dependency Injection
- Today
- Total
목록Language (22)
Hun's Blog

참고 파이썬 레시피 - 웹 활용 입문편을 공부하면서 정리한 내용 https://wikidocs.net/36472 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net Beautifulsoup ? HTML 및 XML 파일에서 데이터를 가져오는 Python 라이브러리 이다. Beautifulsoup 가 가져올 수 있는 page source 는 정적 스크립트이다. javascript 로 생성되는 동적 스크립트는 python 의 또다른 라이브러리인 selenium 을 이용해 pulling 한다. 웹의 어지간한 data 는 beautiful soup 과 selenium 을 통해 가져올 수 있다. requests ? HTTP Request를 웹 브라우저가 아닌 python에서 가능하게 해주는 모..

참고 파이썬 레시피 - 웹 활용 입문편을 공부하면서 정리한 내용 https://wikidocs.net/36472 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net 크롤링을 구현해야해서 파이썬에대해 공부를 시작했다. 위의 참고 링크에서 파이썬 입문자용 강의를 제공하고 있어서 해당 강의를 따라하면서 구현한 예제를 정리해 볼 생각이다. 먼저 예제 구현을 위해 파이썬을 셋팅한 부분부터 정리해보도록 하겠다. APM 에서 PHP와 MariaDB 는 예제에서 사용되지 않았지만 간단하게 자동설치 한 부분도 정리해 보았다. 설치환경 Ubuntu 18.04.3 Python 3.7.4 VirtualBox 6.1 Apache 2.4.29 PHP 7.2.24 Mariadb 10.1.44 VirtualBo..
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..