목록Language (73)
Coding Memo
본 포스팅은 인프런에 등록되어 있는 Rockiss 님의 강의를 보고 간단하게 정리한 글입니다. 변수를 선언 할 때, 타입 앞에 volatile을 붙여서 선언할 수 있다. volatile 변수는 C/C++ 만 아니라 Java 등의 다른언어에도 있는 개념이다. volatile 키워드가 붙은 변수는 컴파일러가 코드를 최적화 하는 과정에서 해당 변수에 대한 최적화를 하지 않도록 한다. 즉, 컴파일 과정에서 최적화에서 제외되어 프로그램 실행 시에 매번 값을 확인하러 메모리에 접근하도록 한다. 아래 코드를 실행 시킨다고 하자. int main() { int a = 0; a = 1; a = 2; a = 3; cout
본 포스팅은 인프런에 등록되어 있는 Rockiss 님의 강의에서 언급된 내용과 제 생각을 함께 정리한 글입니다. 미리 컴파일 된 헤더 파일 사용 Pre-Complied Header: 포함된 헤더 파일을 미리 컴파일 하여 미리 파일로 저장시켜놓기 때문에, 매번 해당 헤더를 실행이나 빌드시 마다 매번 처음부터 컴파일을 하지 않아도 된다. 즉, 프로젝트가 커지면 커질수록 미리 컴파일 된 헤더 파일을 사용하면 디버그나 테스트를 좀 더 빨리 할 수 있다. 장점: 실행 시 마다 매번 헤더파일을 파싱하지 않아도 되기 때문에 컴파일 시간을 줄일 수 있다. 단점: 해당 헤더 파일의 내용을 바꾸면 변경 후 처음 컴파일 시간이 길어질 수 있다. (무거워 질 수 있다.) 사용 방법은 간단하다. 1. 프로젝트 우클릭 - 속성 ..
※ 이 글은 '웹 크롤러 대마왕' 관련 강의를 듣고 메모한 내용이다. BeautifulSoupt 라이브러리(module) 설치: pip install beautifulsoup4 웹 상에서 html의 내용을 가져올 수 있는 기능을 제공하는 라이브러리로, HTML parser이명 XML 문서도 파싱할 수 있다. 안드로이드에서 사용했던 jsoup으로 html, xml, json을 파싱하는 것과 비슷한 것 같다. https://www.crummy.com/software/BeautifulSoup/ Beautiful Soup: We called him Tortoise because he taught us. www.crummy.com Selenium & Web driver 웹을 crawling 하기 위해서는 셀레니움..
트위터 크롤링 방법 1. 트위터 계정 필요 (개발자 인증 따로 필요) developer.twitter.com/en Use Cases, Tutorials, & Documentation Publish & analyze Tweets, optimize ads, & create unique customer experiences with the Twitter API, Twitter Ads API, & Twitter for Websites. Let's start building. developer.twitter.com 이것저것 작성할 것들이 있다. 핸드폰 번호 인증이 필요한 것 같고 개발자 계정을 어떻게 사용할 건지 간단하게 영어로 표기하면 된다. 2. 그 계정으로 부터 API Key(Consumer key), AP..
map 은 key에 대한 value를 1:1로 가지고 있는 집합이다. 맵에 key를 검색하면 value가 나온다. interface Map interface MutableMap : Map K는 키이고, V는 value이다. key와 value 값을 바로 줄 때는 'to'를 이용한다. (key to value) ex) var m: MutableMap = mutableMapOf("Korea" to "Seoul") put abstract fun put(key: K, value: V): V? map에 key와 value를 가진 아이템을 추가한다. 주의: list와 set은 add 였지만 map은 put이다! 참고: 위 함수는 map[key] = value와 같은 기능을 가진다. remove abstract fu..
Collections의 하위 클래스 중 하나로 Set이 있다. 집합으로 생각하면 편하다. 순서가 없는 데이터들의 집합. 중복을 허용하지 않는 데이터 공간이다. List와 마찬가지로 2가지가 있다. interface Set : Collection interface MutableSet : Set, MutableCollection mutableSet은 내용 변경이 가능하다. add abstract fun add(element: E): Boolean 아이템 E를 추가한다. addAll abstaract fun addAll(elements: Collection): Boolean Collecions E를 모두 set에 추가한다. clear abstract fun clear() 모든 아이템을 삭제한다. remove ..
Java와 마찬가지로 Collections 클래스에 List, Map, Set이 있다. 이 중 List는 순서가 있는 집합이다. 배열하고 리스트의 차이점을 간단하게 정리하면 Array List 연속적인 메모리 공간 불연속적인 메모리 공간 공간의 크기가 정해져있음 공간의 크기가 유동적임 (동적할당) 연속적인 메모리 공간에 대한 index 전의 데이터가 그 다음의 데이터를 포인터로 가리키고 있음 아래 함수들의 예시는 글 맨 아래에 한 번에 해놓았다. List Collection의 하위 클래스 중 하나이다. 각 데이터를 배열 처럼 index로 접근할 수 있다. interface List : Collection interface MutableList : List, MutableCollection 종류 List ..
Java에는 없는 좀 특이한 클래스를 제공한다. 데이터만을 가지고 있는 클래스를 data class로 만들 수 있다. 아래 링크는 공식문서이다. https://kotlinlang.org/docs/reference/data-classes.html Data Classes - Kotlin Programming Language kotlinlang.org Data Class 데이터클래스는 다음과 같은 조건을 충족해야 한다. 기본 생성자는 적어도 하나의 파라미터를 가져야 한다. 모든 기본 생성자의 파라미터는 val이나 var으로만 선언되어야 한다. abstract, open, sealed or inner가 될 수 없다. 데이터 클래스를 5가지 기능으로 나누어본다면 다음과 같다. equals() hashcode() ..