JVM에 대한 질문
644
작성자 없음
작성한 질문수 0
제가 JVM이 어떠한 구조인지 잘 모르겠는데
JVM에 새로운 객체들을 계속 생성하는 메모리 문제는 Java(JVM) 만의 문제인가요? 아니면
다른 언어들도 예를 들면 자바스크립트의 prototype, 파이썬에서도 Class로 객체를 만들 수 있고
go언어는 struct 로 객체를 만들 수 있는데 이러한 것들도 스프링처럼 싱글톤으로 관리해주는
프레임워크가 없으면 메모리가 가득 차게 되나요?
그러면 웹 어플을 만든다고 할 때 가능하면 객체들은 싱글톤 패턴으로 개발해야 좋은 건가요?
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
JVM은 Java Virtual Machine의 약자로, 자바 바이트 코드를 실행하는 가상 머신입니다. JVM은 Java 언어의 특성을 고려하여 설계되었고, Java 프로그램들을 실행하는 역할을 합니다.
JVM에서 새로운 객체를 계속해서 생성하는 메모리 문제는 자바만의 문제는 아닙니다. 다른 언어들도 메모리 관리에 대한 고려가 필요합니다. 예를 들어, 자바스크립트의 prototype이나 파이썬의 Class로 객체를 만들어도 메모리 관리에 신경을 써야 합니다. 언어마다 다른 메모리 관리 방식을 사용하며, 이를 개발자가 적절히 관리해야 합니다.
싱글톤 패턴은 객체를 한 번만 생성하여 프로그램 전역에서 공유하는 방식입니다. 웹 어플리케이션을 개발한다고 할 때, 객체들을 싱글톤 패턴으로 개발하면 메모리를 절약할 수 있을 수도 있습니다. 하지만 싱글톤 패턴은 주의해서 사용해야 합니다. 객체가 공유되기 때문에 멀티스레딩 환경에서 동기화 문제가 발생할 수 있기 때문입니다.
객체를 싱글톤으로 개발할 때는 필요성을 명확히 판단하고, 멀티스레딩 환경에서 안전하게 공유될 수 있도록 구현해야 합니다. 개발자의 판단과 상황에 따라 객체의 범위와 생명주기를 결정하는 것이 중요합니다.
더 자세한 내용은 JVM, 메모리 관리, 싱글톤 패턴 등에 대한 공부를 추천드립니다. 질문이 있으면 언제든지 물어보세요. 좋은 하루 되세요!
코드 자료
0
51
2
구현체가 동적으로 정해질 때, 팩토리 기법을 사용하나요?
0
58
2
MemberService의 인터페이스를 왜 사용하는지 궁금합니다.
0
80
1
롬복 @Setter를 써야 하는 상황이 있는건가요?
0
93
1
빈 등록 메서드의 파라미터가 빈이 아니어도 되나요?
0
81
1
테스트 속도가 나중에 영향이 있을까요?
0
77
1
gradle 설정 안떠서 질문 남깁니다!
0
122
2
build.gradle로 프로젝트를 여는 이유
0
87
1
provider 사용하는 이유
0
91
1
다음 강의 뭘 들어야 할까요
0
126
2
프로토타입 빈, 직접 destroy 호출 안 할 경우
0
66
1
beanB
0
82
2
퀴즈다시풀기
0
69
1
Gradle로 바꿔도 오류가 똑같이 발생하네요 ㅠㅠ
0
92
2
"중복 등록과 충돌" 강의에서 강사님과 다른 에러가 발생합니다.
0
67
3
run 실행했는데 결과창이 이렇게 뜨네요 왜 그런건가요>
0
106
2
도메인의 정의?
0
59
1
ApplicationContext 질문입니다.
0
63
1
@Scope의 proxyMode를 사용할때 단위 테스트 방법
0
91
2
ai api 선정하기 관련 질문
0
119
2
생성자 자동주입 관련해서
0
66
1
생성자 직접 호출 vs 팩토리 메서드 패턴
0
97
2
Spring에서 SessionScope와 RequestScope는 함께 사용되나요?
1
66
1
12:25
0
79
2





