본문 바로가기

전체 글121

JVM 내부 구조 & 메모리 영역 JVM(자바 가상 머신)은 자바 언어에서만 사용하는 것이 아니다. 코틀린, 스칼라 언어에서도 JVM 동작 방식을 그대로 따른다. 따라서 JVM을 정확히 이해하면 추후에 자바에서 파생된 모던 언어를 이해하는데 있어 수월하며, 내부에서 정확히 어떻게 동작을 해서 코드가 실행이 되는지 개념을 알면 코드 최적화나 리팩토링을 하는데 매우 도움이 된다. 위의 그림은 자바 어플리케이션 구동 원리를 간략하게 그려본 것인데, JVM 실행 부분은 빨간 박스를 친 부분인, 컴파일 된 .class 파일을 어떠한 처리를 거쳐 프로그램을 실행하는 과정이다. 자바 가상 머신(JVM) 의 동작 방식 자바 가상 머신인 JVM의 역할은 자바 애플리케이션을 클래스 로더를 통해 읽어 자바 API 와 함께 실행하는 것이다. 다음은 자바 소스.. 2024. 4. 3.
Iaas, Paas, SaaS 개념 및 차이점 IaaS : 서비스로서의 인프라 또는 IaaS는 온프레미스 인프라에서 한층 발전한 유형이다. 이는 종량제 서비스로, 필요한 경우 제3사가 스토리지와 가상화와 같은 인프라 서비스를 인터넷을 통해 클라우드로 제공한다. 사용자는 운영 체제 및 데이터, 애플리케이션, 미들웨어 및 런타임을 담당하고 제공업체는 사용자가 필요로 하는 네트워크, 서버, 가상화 및 스토리지의 관리와 액세스를 담당한다. 제공업체가 사용자를 대신해 온사이트 데이터센터를 유지관리하거나 업데이트한다. 대신, 사용자는 애플리케이션 프로그래밍 인터페이스(API) 또는 대시보드를 통해 인프라에 액세스하고 이를 제어한다. ex) AWS, Microsoft Azure, Google Cloud와 같은 퍼블릭 클라우드 공급업체 PaaS : 서비스로서의 플.. 2024. 1. 1.
[백준 2457번] 공주님의 정원 문제 풀이 (with Python) 날짜 비교를 편하게 하기 위해 날짜를 아래와 같이 정수로 나타내 주었다. calendar = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] # 각 달의 마지막 날짜 def calculateDate(x, y): date = 0 for i in range(x-1): date += calendar[i] date += y return date 각 꽃이 피고 지는 시기를 정수로 계산해 배열에 넣어 준후, 배열을 피는 시기로 먼저 오름차순 배열한 후, 지는 시기로 오름 차순 배열했다. blossom.sort(key=lambda x: (x[0], x[1])) TRY 1 - 이 전의 지는 시기보다 다음 꽃이 피는 시기가 작거나 같으면서, .. 2023. 11. 27.
[백준 6209번] 제자리 멀리뛰기 문제 풀이 - 시간초과 : 거리 배열을 구해, m번만큼 최솟값이 최대값이 되는 값을 거리배열로 바꿈 이때, 최대값 여부를 확인하는 과정에서 처음부터 배열의 크기를 모두 돌아 비교하니 시간초과가 났다. d, n, m = map(int, input().split()) where = [] for i in range(n): where.append(int(input())) where.sort() distance = [] distance.append(where[0]) for i in range(n-1): distance.append(where[i+1]-where[i]) distance.append(d - where[n-1]) for i in range(m): remove_index.. 2023. 11. 20.
[백준 1080번] 행렬 문제 풀이 3 X 3 크기의 행렬로만 바꾸어야 한다. 바꾼 곳을 체크하기 위해서 3 X 3에서 가장 첫번째 부분이 될 수 있는 인덱스를 배열에 추가하여 관리하기로 했다. 최솟값을 구해야 하므로, 가장 다른 것이 많은 부분부터 바꾸는 방법을 택했다. 2023. 11. 19.