분류 전체보기4 3장. 가비지 컬렉터와 메모리 할당 전략 3.1 들어가며동적 메모리 할당과 가비지 컬렉션 기술을 가장 처음 사용한 언어는 1960년에 MIT에서 개발된 리스프다. '가비지 컬렉션이 처리해야 하는 문제' by 존 맥카시 (리스프 창시자)- 어떤 메모리를 회수해야 하나?- 언제 회수해야 할까?- 어떻게 회수해야 할까? 우리가 가비지 컬렉션과 메모리 할당의 내부를 이해해야 하는 이유는?-> 다양한 메모리 오버플로와 누수 문제를 해결해야하는 상황이나 더 높은 동시성을 달성하는 데 가비지 컬렉션이 방해가 되는 상황이 오면,이 '자동화된' 기술을 적절히 모니터링하고 조율할 수 있어야 하기 때문이다. 런타임 영역 중 자바 힙과 메서드 영역 에서 프로그램이 요구하는 메모리 크기는 불확실하다. (컴파일 타임에 알 수 없음)어떤 객체를 생성할지, 얼마나 많이 만.. 2025. 5. 13. Spring cloud gateway fallback 설정 시 405 응답 발생 이슈 fallback controller를 다음과 같이 만들었는데일부 요청들에 대한 폴백이 405 응답으로 떨어지는 이슈가 있었다.@RestController@RequestMapping("/fallback")public class GatewayFallbackController { @GetMapping("/default") public ResponseEntity> fallback(ServerWebExchange exchange) { Route route = exchange.getAttribute(GATEWAY_ROUTE_ATTR); Exception exception = exchange.getAttribute(CIRCUITBREAKER_EXECUTION_EXCEPTIO.. 2025. 4. 25. 깃 (git) 예전 커밋 (commit) 에 변경사항을 추가하고 싶을 때 깃을 이용해서 열심히 작업을 하다 보면 이전에는 생각지 못했던 변경 사항이 생겨서 예전 커밋에 이를 반영하고 싶을 때가 있습니다. 이럴 때는 rebase 명령어를 이용하면 쉽게 예전 커밋에 변경 사항을 추가할 수 있습니다. 1. 먼저 'git log' 를 입력하여 돌아가고자 하는 특정 커밋을 확인합니다. 여기서는 위에서 세번째 커밋 시점으로 돌아가기로 합니다. (977c033420fa13207cd10929c7c13622795dd13a) 2. 'rebase -i'를 이용해 과거의 특정 커밋 시점으로 돌아갑니다. 현재 HEAD 커밋으로부터 상대적인 위치를 주거나 커밋 코드를 줄 수 있습니다. git rebase -i HEAD~3 (현재 HEAD에서 3번째 전 커밋) 또는 git rebase -i 8819bd.. 2021. 10. 20. 인텔리제이 java: illegal character: '\ufeff' 에러날 때 예전에 윈도우 환경의 이클립스 IDE 로 작성했던 java 파일을 맥 환경의 인텔리제이에서 빌드 하려 하니 아래와 같은 에러가 발생했습니다. 구글링 해보니 해당 java 파일에 UTF-8 BOM이 추가되어 있어서 맥 환경의 IDE 상에서 이를 해석할 수 없어 나타나는 에러였습니니다. 아마도 윈도우 이클립스에서 java 파일을 작성할 때 자동으로 BOM이 추가되었던 것 같습니다. 따라서 BOM을 제거해준다면 정상적으로 파일을 읽을 수 있고 빌드도 가능합니다. 이를 위해서는 여러 가지 방법이 있으나 저의 경우에는 한 개가 아닌 다량의 파일을 처리해야 했기 때문에 아래처럼 Bash 스크립트를 통해 일괄 처리하였습니다. find . -type f -name '*.java' | xargs -I{} sed -i '.. 2021. 10. 15. 이전 1 다음