| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- 자바
- 스프링
- dfs
- python
- getreference
- Spring
- 심볼릭 레퍼런스
- 파이썬
- python list method
- 컴포넌트 스캔
- java
- 객체지향
- 다이렉트 레퍼런스
- AWS SAA-C03 합격후기
- 스프링 컨테이너
- 어플리케이션 클래스 로더
- 코딩테스트
- stop the world
- 알고리즘
- BFS
- 파이썬 리스트 메서드
- 자료구조
- 파이썬 문자열 메서드
- 플랫폼 클래스 로더
- 클래스 로더 계층
- 부트스트랩 클래스 로더
- 백준
- aws saa-c03
- 2026 AWS SAA-C03
- 딕셔너리
- Today
- Total
목록Programming Language (16)
클라우드 낚시꾼
STOP THE WORLD란? STW란 GC가 가비지 컬렉션을 수행하는 동안에 모든 어플리케이션 스레드를 중단하는 하는 것을 의미한다. STW로 인하여 모든 어플리케이션 스레드가 멈춰 모든 어플리케이션이 중단된다.STOP THE WORLD의 단점 1. 중단 시간 가비지 컬렉션 과정 중에 모든 프로그램이 일시 중단되어 응답 시간이 길어져 사용자 경험이 저하되는 현상이 발생한다. 특히, 실시간성이 중요한 시스템에서 이는 큰 문제가 된다. 2. 가비지 컬렉션 오버헤드 가비지 컬렉션 오버헤드 시간이 길어지면 이 작업을 수행하기 위한 추가적인 시간과 리소스가 소비된다.STOP THE WORLD가 발생해야 하는 이유GC는 객체의 참조 상태를 기반으로 메모리 회수 여부를 결정한다. 이때, 만약 모든 어플리케이션 스레..
심볼릭 레퍼런스와 다이렉트 레퍼런스심볼릭 레퍼런스: 클래스 파일 내에 사용되는 기호적인 참조를 의미한다. (클래스 이름, 메서드 이름 등)다이렉트 레퍼런스: 실제 메모리 주소나 런타임 시점에 참조할 수 있는 위치를 의미한다.심볼릭 레퍼런스를 다이렉트 레퍼런스로 변환하는 이유 심볼릭 레퍼런스는 메모리 주소나 위치를 직접 나타내지 않으므로, 실행 시 마다 이를 반복적으로 확인하면 성능이 저하될 수 있다. 다이렉트 레퍼런스는 JVM이 런타임 시점에 해당 참조를 빠르게 액세스할 수 있기에 심볼릭 레퍼런스를 다이렉트 레퍼런스로 변환한다. 심볼릭 레퍼런스를 다이렉트 레퍼런스로 변환하는 과정로딩 및 검증 단계: JVM은 클래스 파일을 읽어드린 후, 심볼릭 레퍼런스가 참조하는 대상이 존재하는 지 확인한다.해석 단계: ..
클래스 로더란? 클래스 로더는 클래스 파일을(바이트 코드) 동적으로 로딩 및 링크하여 JVM의 메모리 영역에 적재하는 역할을 한다.클래스 파일의 로딩 순서로딩: 클래스 파일을(바이트 코드) 가져와 JVM의 메모리 영역에 로드한다.링크: 클래스 파일을 사용하기 위해 검증하는 과정이다.검증: 읽어드린 클래스 파일이 JVM 명세에 명시된 대로 구성되어 있는 지 검사한다.준비: 로딩 단계에서 할당 받은 메모리를 초기화한다.분석: 심볼릭 레퍼런스를 다이렉트 레퍼런스로 변환한다.초기화: 정적 초기화 블록과 정적 변수를 초기화한다.Class Loader의 특징 및 원칙 1. Delegation(위임 원칙): 부모 클래스로더 방향으로 클래스 로딩을 위임한다. 2. Visibility(가시범위 원칙): 자식 클래스 로더..
appendlist의 마지막에 요소 삽입my_list=[1,2,3]my_list.append(4)print(my_list) extendlist의 마지막에 iterable 객체(list, tuple 등등)의 모든 요소들을 삽입my_list=[1,2,3]my_list.extend((4,5))print(my_list)insertlist의 특정 index에 요소를 삽입my_list=[1,2,3]my_list.insert(1,10)print(my_list)remove파리미터로 전달된 요소를 list에서 찾아 삭제, 첫 번째로 찾아진 요소가 삭제된다.my_list=[1,2,3,2]my_list.remove(2)print(my_list) poplist의 마지막 요소를 삭제하고, 그 요소를 리턴my_list=[1,2,..
split()s = "hello world python"result = s.split() # 공백을 기준으로 나누기s = "a,b,c"parts = s.split(',') # ',' 기준으로 나누기print(result, parts)문자열을 특정 구분자로 나누어 리스트 형태로 반환join()words = ['Hello', 'World', 'Python']result = " ".join(words) # 각 단어를 공백으로 연결print(result) # "Hello World Python"iterable(리스트, 튜플 등)에 있는 문자열들을 구분자를 이용해 하나의 문자열로 합치기replace()s = "ronaldo ronaldo is GOAT"new_s = s.replace("ronaldo","me..
딕셔너리 생성 # 딕셔너리 생성1: {} 사용tom = { "name": "tom", "age": 25, "city": "London"}# 딕셔너리 생성2: dict() 생성자 이용smith = dict(name="smith", age=24, city="Manchester")생성 방법1: {"key1": value1, "key2":value2}생성 방법2: dict(key1=value1, key2=value2)zip()을 이용한 딕셔너리 생성dic = dict(zip(["w","s","d","a"], [1,-1,10,-10]))# {'w': 1, 's': -1, 'd': 10, 'a': -10} zip() 함수는 각각의 iterable에서 같은 위치에 있는 요소들을 하나씩 묶어 주는 역..
1. lambda 개념 double = lambda x: x * 2 print(double(5)) # 출력: 10 파이썬의 lambda는 익명함수이다. 값을 받고 리턴하는 간단한 함수를 빠르게 작성할 수 있게 해준다. 위 예시 코드에서 x는 매개변수, x * 2는 리턴할 결과값이다. 2. lambda를 이용해서 딕셔너리를 정렬해보자. dict = { 2: 3, 1: 3, 3: 5, 6: 3, 5: 2 } 위와 같은 딕셔너리를 선언했다고 해보자. 딕셔너리의 key 값으로 오름차순 정렬하여 key 값 출력하기 ''' 딕셔너리의 키값들을 매개변수 x에 넣어 x로 정렬하며 키값을 출력한다. ''' print(sorted(dict.keys(), key=lambda x: x)) # 결과값 : [1,2,3,5,6] ..
파이썬에서 출력문을 다루는 방법은 다양하다. 주로 사용되는 몇 가지 방법을 정리해보자. 1. print() 함수 가장 기본적이고 단순한 출력 방법이다. 독자분들이 이것이 궁금해서 이 글을 읽으시지는 않을 거 같다. 빨리 넘어가겠다. 2. 포맷 문자열 문자열 내에 변수의 값을 삽입하여 출력할 때 사용한다. brace안에 넣고 싶은 변수를 넣자. name = "Alice" age = 30 // brace 안에 있는 name과 age에 실제 변수 값이 들어간다. print(f"My name is {name} and I am {age} years old.") 3. 서식 지정자 %를 사용하여 서식을 지정할 수 있다. %s 는 문자열, %d 는 정수, %f는 부동 소수점 숫자를 나타낸다. name = "Bob" a..