99클럽 코테 스터디 2일차 TIL + 2024-07-24

Yellta·2024년 7월 23일
0

TIL

목록 보기
37/73

1.Selenium이 자원을 많이 사용하는 이유

실제 브라우저를 실행

크롬, 파이어폭스 같은 실제 브라우저를 구동한다. 브라우저는 자체적으로 많은 시스템 자원을 소비한다. 페이지 로딩, 자바스크립트 실행 등 다양한 작업을 수행한다.

브라우저 인스턴스 관리

브라우저 인스턴스(하나의 윈도우 창)는 별도의 프로세스로 관리된다. 다수의 브라우저 인스턴스를 실행하면 메모리와 CPU사용량이 증가한다.

페이지 렌더링과 자바스크립트 실팽

복잡한 DOM구조와 자바스크립트 포함으로 셀레니움은 이 요소를 로드하고 실행해 많은 자원을 필요로 한다.

네트워크 사용량

페이지 로딩 시 다수의 네트워크 요청이 발생하고 자원을 소비한다. 특히 이미지, 비디오 같은 자원을 더 많은 네트워크를 소비한다.

2. DOM이란 무엇일까?

HTML,XML 문서의 프로그래밍 인터페이스로서 문서의 구조를 계층적 트리 형태로 나타내는 모델이다. 프로그래머는 스크립트를 사용하여 문서의 콘텐츠, 구조 및 스타일을 접근하고 수정할 수 있다.

<!DOCTYPE html>
<html>
  <head>
    <title>Document</title>
  </head>
  <body>
    <h1>Hello, World!</h1>
    <p>This is a paragraph.</p>
  </body>
</html>

이 HTML 문서는 다음과 같은 DOM 트리로 표현됩니다:

주요 개념

  1. 노드(Node): DOM은 노드로 구성된 트리 구조이다. 각 노드는 문서의 요소를 나타낸다.

    • 요소 노드(Element Node): HTML 태그를 나타냅니다. 예: <div>, <p>.
    • 텍스트 노드(Text Node): 요소의 텍스트 콘텐츠를 나타냅니다.
    • 속성 노드(Attribute Node): 요소의 속성을 나타냅니다. 예: id, class.
    • 주석 노드(Comment Node): HTML 주석을 나타냅니다.
  2. 트리 구조: DOM은 문서의 계층 구조를 트리 형태로 나타냅니다. 최상위 노드는 문서 자체이며, 모든 요소와 텍스트는 이 트리의 노드로 표현됩니다.

    • 루트 노드(Root Node): 최상위 노드로, HTML 문서에서는 <html> 요소가 됩니다.
    • 부모 노드(Parent Node)자식 노드(Child Node): 각 노드는 자신을 포함하는 부모 노드와 자신이 포함하는 자식 노드를 가질 수 있습니다.
    • 형제 노드(Sibling Node): 동일한 부모를 공유하는 노드들입니다.
  • html
    • head
      • title
        • Document (텍스트 노드)
    • body
      • h1
        • Hello, World! (텍스트 노드)
      • p
        • This is a paragraph. (텍스트 노드)

자바스크립트를 사용하여 DOM에 접근할 수 있다.

출처 : chat GPT

3. 유클리드 호제법

맨날 나오는데 맨날까먹는거 ㅠ

유클리드 호제법

두 수의 최대 공약수를 구하는 알고리즘이다.
[[MOD연산]]연산을 필요로 한다.

int gcd(int a, int b) {
    int c = 0;
    while(true) {
        c = a % b;
        if(c == 0) {
            break;
        }
        a = b;
        b = c;
    }
    return b;
}

최소 공배수를 구하기

두 수의 최대 공약수 * 두 수의 최소 공배수= 두 수의 곱

세 수의 공배수를 구하기

두 수를 묶어서 계산한다.
큰 수 -> 작은 수로 묶으면 되고 나머지 연산을 계쏙 수행하면 된다.

참고

유클리드호제법

4. MOD연산

두 값을 나눈 나머지를 구하는 연산

큰 수를 작은 수로 나눈 나머지를 구한다.

최대공약수를 구하는 예시

예를 들어 1112, 695 두 수의 최대 공약수를 구해보자

첫번째 : 1112(n1) MOD 연산 695(n2) = 417(n3) (1112를 695로 나눈 나머지)

나눴던 수와 나머지를 또 MOD 연산을 수행합니다.

두번째 : 695 MOD 연산 417 = 278

세번째 : 417 MOD 연산 278 = 139

네번째: 278 MOD 연산 139 = 0

마지막 계산에서 나머지가 0이되면 나눴던 수가 최대 공약수가 된다.

여기서 규칙이 있는데
나눈 다음에 결과 값은
n1 = n2가 되고
n2 = n3가 된다.
그리고 n1%n2 = 새로운 n3가 된다.


REVIEW

오늘의 코딩 테스트 문제는 익숙한데 맨날 까먹는 유클리드 호제법... 내일 꼭 복습해야겠다!! 그리고 이력서 쓰느라 너무 바쁘고 힘들당 ㅠ 오늘은 공부에 시간을 많이 못쏟아서 작성한 메모들이 별로 없당 힝 메모들을 모아서 TIL을 쓰는데 어ㅓㅓㅓㅓㅓㅓㅓㅓㅓㅓㅓㅓㅓ어엉어엉

#99클럽 #코딩테스트준비 #개발자취업 #항해99 #TIL

profile
Yellta가 BE개발해요! 왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜 가 제일 중요하죠

0개의 댓글