
Static?자바에서 Static를 사용한다는 것은 메모리에 한 번만 할당되고 프로그램이 종료될 때 해제되는 것을 의미합니다.이를 정확히 이해하기 위해선 메모리 영역에 대한 이해가 필요합니다.Static의 메모리일반적으로 우리가 만든 Class는 Static 영역에 생성되고, new 키워드를 통해 생성된 객체는 Heap 영역에 생성됩니다. 객체 생성 시 할당된 Heap 영역의 메모리는 GC(Garbage Collector)에 의해 관리되어 집니다. 하지만 Static를 통해 Static 영역에 할당된 메모리는 모든 객체가 공유하는 메모리 라는 장점을 지니지만, Garbage Collector의 관리 영역 밖에 존재하기 때문에 Static을 자주 사용하면 프로그램의 종료 시까지 메모리가 할당된 채로 존재하..

배경attribute와 property 두 단어는 '속성', '성질'이라는 비슷한 의미를 가지고 있습니다. 그래서 get_attribute()와 get_property()는 무슨 차이가 있는지 궁금해서 두 메서드 간의 차이점을 알아보게 되었습니다. 우선 get_attribute()와 get_property()는 Selenium에서 웹 요소의 속성을 가져오는 2가지 방법입니다. 이 두 메서드는 비슷해보이지만, 몇 가지 중요한 차이점이 있습니다.get_attribute()와 get_property()의 차이get_attribute()DOM에서 요소의 속성(attribute)을 가져옵니다.HTML 요소의 속성 값을 문자열로 반환합니다. 예를 들어, 와 같은 요소에서 get_attribute('value')를..

StaleElementReferenceExceptionStaleElementReferenceException은 요소가 더 이상 DOM의 존재하지 않거나 업데이트 된 경우에 발생하는 오류입니다.웹 페이지가 변경되거나 요소가 업데이트될 때 발생할 수 있습니다. 예시 코드다음은 UNIQLO의 상품 데이터를 크롤링하는 예시 코드입니다.def crawling(): browser = webdriver.Chrome(options = options) browser.get(url_list[0]) WebDriverWait(browser, 10).until(EC.presence_of_all_elements_located((By.XPATH,"//*[@id='root']/div[3]/div[2]/div[2]/s..

pymysql 라이브러리 설치하기우선, MySQL과 연결하기 위한 라이브러리인 pymysql이 필요합니다.pip install pymysql 명령어를 입력하여 라이브러리를 설치합니다.DB 데이터 입력 프로세스1. 데이터베이스(MySQL) 연결하기import pymysqlconn = pymysql.connect(host=’서버 IP주소′, user=’사용자’, password=’암호′, db=’데이터베이스’, charset=‘사용할 문자셋’)2. 커서 생성하기cur = conn.cursor()3. 명령어 전달하기cur.execute(CREATE TABLE table(id char(4), userName char(15), email char(20), birthYear int))execute()를 통해 실행하..

ReflectionReflection은 구체적인 클래스 정보를 알지 못하더라도, 그 클래스의 메서드, 타입, 변수들에 접근할 수 있도록 도와주는 자바 API입니다.컴파일 시간이 아닌 실행 시간에 동적으로 특정 클래스의 정보를 추출할 수 있는 프로그래밍 기법입니다. 이는 동적 바인딩과 관련이 있습니다. Reflection은 언제 사용하나요?1. 동적으로 클래스 로드 시코드 작성 시점에는 어떤 Class를 사용해야 할지 모르지만, Runtime에 Class를 가져와서 실행해야 하는 경우입니다.대표적으로 Spring의 Annotation 기능의 Reflection을 이용하여 프로그램 실행 도중 동적으로 클래스의 정보를 가져와 사용합니다.2. 테스트 코드 작성 시private 변수를 변경하고 싶거나 privat..

프로세스와 쓰레드프로세스시스템에서 실행 중인 프로그램을 이야기합니다. 자신만의 메모리 공간을 포함한 독립적인 실행 환경을 가지고 있습니다. 우리가 사용하는 프로그램들의 일부는 여러 프로세스 간 상호 작용하는 것일 수 있습니다.JVM은 하나의 프로세스로 실행되며, 동시에 여러 작업을 수행하기 위해 멀티 쓰레드를 지원하고 있습니다. 쓰레드프로세스 안에서 독립적으로 실행되는 작은 실행 단위를 의미합니다.쓰레드는 JVM에 의해 관리되며, 프로세스에는 적어도 한 개 이상의 쓰레드가 존재합니다. Main 쓰레드 하나로 시작하여 쓰레드를 추가 생성하게 되면 멀티 쓰레드 환경이 됩니다.이러한 쓰레드는 프로세스의 리소스를 공유하기 때문에 효율적이긴 하나, 리소스 동기화와 같은 문제점이 발생합니다.JAVA의 쓰레드Java..

Objects 클래스Object 클래스와 유사한 이름을 가진 java.util.Objects 클래스는 객체 비교, HashCode 생성, null 여부, 객체 문자열 리턴 등의 연산을 수행하는 정적(static) 메서드들로 구성된 Object 클래스의 유틸리티 클래스 입니다.Objects 클래스의 메서드compare(a, b) - 객체 비교 메서드equals(), deepEquals() - 객체 동등 비교 hash(), hashCode() - 해시 코드 생성isNull(), nonNull(), requireNonNull() - null 여부 조사toString() - 객체 문자 정보 compare(T a, T b, Comparator c) : 객체 비교 메서드두 객체 a, b를 Comparator(=비..
- Total
- Today
- Yesterday