JAVA
-
책 스터디 <JVM 밑바닥까지 파헤치기> - 2장 자동 메모리 관리JAVA/Java 2025. 1. 22. 23:47
자바 메모리 영역과 메모리 오버플로자바 개발자는 가상 머신이 제공하는 자동 메모리 관리 메커니즘 덕에 메모리 할당과 해제를 짝지어 코딩하지 않아도 메모리 누수나 오버 플로 문제를 거의 겪지 않음요즘은 C++만큼 성능을 낼 수 있고 메모리를 안전하게 관리할 수 있는 Rust도 있음 2.2 런타임 데이터 영역https://medium.com/@ervinitraj/all-about-jvm-java-virtual-machine-bdeecd6eaa1dhttps://igorski.co/all-you-need-to-know-as-a-java-developer-about-the-jvm-and-gc/자바 프로그램을 실행하는 동안 필요한 메모리 데이터 영역각각의 영역들은 각각의 목적과 생성 / 삭제 시점이 있음스레드 공..
-
인프런) 실습으로 배우는 선착순 이벤트 시스템JAVA 2024. 6. 5. 00:36
이번에는 실습으로 배우는 선착순 이벤트 시스템 강의를 듣고 실습해보았다. https://www.inflearn.com/course/%EC%84%A0%EC%B0%A9%EC%88%9C-%EC%9D%B4%EB%B2%A4%ED%8A%B8-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EC%8B%A4%EC%8A%B5/dashboard 실습으로 배우는 선착순 이벤트 시스템 | 최상용 - 인프런최상용 | 선착순 이벤트 시스템을 구현할 때 어떤 문제가 발생할 수 있고 어떻게 해결할 수 있는지 배워봅니다., 선착순 이벤트 시스템도 자신있게! 예제를 통해 실전 감각을 잡아보세요. [임www.inflearn.com 선착순 시스템 문제와 해결 실시간으로 100개의 쿠폰만을 발행해야하는 선착순 이벤트 시스템에서..
-
인프런) 재고시스템으로 알아보는 동시성 이슈 해결 (2)JAVA 2024. 6. 5. 00:18
지난 글에 이어서 다음의 인프런 강의를 실습해본다. https://www.inflearn.com/course/%EB%8F%99%EC%8B%9C%EC%84%B1%EC%9D%B4%EC%8A%88-%EC%9E%AC%EA%B3%A0%EC%8B%9C%EC%8A%A4%ED%85%9C/dashboard 재고시스템으로 알아보는 동시성이슈 해결방법 | 최상용 - 인프런최상용 | 동시성 이슈란 무엇인지 알아보고 처리하는 방법들을 학습합니다., 동시성 이슈 처리도 자신있게! 간단한 재고 시스템으로 차근차근 배워보세요. 백엔드 개발자라면 꼭 알아야 할 동www.inflearn.com 지난글 https://dodop-blog.tistory.com/463 인프런) 재고시스템으로 알아보는 동시성 이슈 해결 (1)동시성 이슈 해결을..
-
인프런) 재고시스템으로 알아보는 동시성 이슈 해결 (1)JAVA 2024. 6. 4. 23:10
동시성 이슈 해결을 위한 인프런 강의를 듣고 실습해보았다. https://www.inflearn.com/course/%EB%8F%99%EC%8B%9C%EC%84%B1%EC%9D%B4%EC%8A%88-%EC%9E%AC%EA%B3%A0%EC%8B%9C%EC%8A%A4%ED%85%9C/dashboard 재고시스템으로 알아보는 동시성이슈 해결방법 | 최상용 - 인프런최상용 | 동시성 이슈란 무엇인지 알아보고 처리하는 방법들을 학습합니다., 동시성 이슈 처리도 자신있게! 간단한 재고 시스템으로 차근차근 배워보세요. 백엔드 개발자라면 꼭 알아야 할 동www.inflearn.com 학습 환경 구성 먼저 실습 환경을 구성한다.실습은 mysql, spring web, jpa를 사용한다. docker로 mysql을 ..
-
인증 예외 처리 문제 해결 (2) - Spring Security의 인증 / 인가 예외 처리JAVA/Java 2023. 8. 21. 22:54
(지난 편,,,) ↓ https://dodop-blog.tistory.com/447 AuthenticationEntryPoint와 ControllerAdvice 최근에 sprign security를 이용한 인증 처리 과정을 구현하다가 리더님께 다음의 코드에서 예외처리가 예상한대로 동작하지 않을 것이라는 리뷰를 받았다. 내가 구현한 예외처리 코드를 예시로 보 dodop-blog.tistory.com 지난 편에서는 Filter에서 발생한 예외는 이를 처리하는 또 다른 Filter를 구현하여 예외를 처리할 수 있다고 하였다. 그런데, 이번에 발생한 문제는 Filter구현이 아닌 AuthenticationEntryPoint 구현만으로 원하는 에외 처리를 할 수 있었다. 어떻게 된 걸까? 이와 관련해서 Sprin..
-
인증 예외 처리 문제 해결 (1) - Filter와 InterceptorJAVA/Java 2023. 8. 20. 17:31
최근에 spring security를 이용한 인증 처리 과정을 구현하다가 리더님께 다음의 코드에서 예외처리가 예상한대로 동작하지 않을 것이라는 리뷰를 받았다. 내가 구현한 예외처리 코드를 예시로 보자면 예외 발생시 Controller Advice에서 예외를 정해진 ErrorResponse의 타입으로 반환하는 코드였다. @ControllerAdvice class ApiControllerAdvice { @ExceptionHandler(Exception::class, RuntimeException::class) fun exceptionHandle(exception: Exception): ResponseEntity { val standardError = ErrorResponse.of(exception) retu..
-
가비지 컬렉션 GC(Garbage Collection)JAVA 2022. 8. 5. 19:20
GC 란? 가비지 컬렉션은 자바의 메모리 관리 방법 중의 하나로 JVM의 Heap 영역에서 동적으로 할당했던 메모리 영역 중 필요 없게 된 메모리 영역을 주기적으로 삭제하는 프로세스를 말한다. 장점 C나 C++에서는 이러한 가비지 컬렉션이 없어 프로그래머가 수동으로 메모리 할당과 해제를 일일이 해줘야 한다 Java는 JVM에 탑재되어 있는 가비지 컬렉터가 메모리 관리를 대행 개발자 입장에서 메모리 관리, 메모리 누수(Memory Leak) 문제에서 대해 완벽하게 관리하지 않아도 되어 오롯이 개발에만 집중 단점 개발자가 메모리가 언제 해제되는지 정확하게 알 수 없음 가비지 컬렉션(GC)이 동작하는 동안에는 다른 동작을 멈추기 때문에 오버헤드가 발생 GC가 너무 자주 실행되면 소프트웨어 성능 하락의 문제 발..
-
JVM 구조와 자바의 실행방식JAVA/Java 2022. 8. 5. 18:40
JVM이란 ? JVM(Java Virtual Machine)이란 스택 기반의 자바 가상 머신으로 컴파일러를 통해 바이트 코드로 변환된 자바 애플리케이션 파일을 클래스 로더를 통해 읽어 자바 API와 함께 실행하는 것으로 자바 프로그램 실행환경을 만들어 주는 소프트웨어을 수행한다. 자바 코드를 컴파일하여 .class 바이트 코드로 만들면 코드가 자바 가상 머신 환경에서 실행된다. JVM은 자바 실행 환경 JRE(Java Runtime Environment)에 포함되어 있습니다 .다른 하드웨어와 다르게 레지스터 기반이 아닌 스택 기반으로 동작한다. JVM을 사용함으로서 하나의 바이트 코드(.class)로 플랫폼에 영향받지 않고 모든 플랫폼에서 동작하도록 할 수 있다. 만약 C / C++에서는 컴파일 플랫폼과..