본문 바로가기
반응형

분류 전체보기122

Item8 finalizer와 cleaner 사용을 피하라 자바는 두 가지 객체 소멸자를 제공 `finalizer` finalizer는 예측할 수 없고, 상황에 따라 위험할 수 있어 일반적으로 불필요 오동작, 낮은 성능, 이식성 문제의 원인이 되기도 함 자바 9에서는 finalizer를 deprecated API로 지정 기본적으로 `쓰지 말아야`한다 `cleaner` finalizer보다 덜 위험하다 예측할 수 없다 (언제 실행되는지) 느리고, 일반적으로 불필요 `finalizer와 cleaner의 문제점 불확실성 (수행 보장 X) 자바에서는 접근할 수 없게 된 객체를 회수하는 역할을 GC가 담당 finalizer나 cleaner를 수행할지는 적적으로 `GC 알고리즘`에 달렸고, 구현마다 천차만별 객체에 접근할 수 없게 된 후 finalizer나 cleaner가.. 2023. 1. 15.
Item7 다 쓴 객체 참조를 해제하라 자바를 사용하면서 GC(가비지 컬렉터)가 있기 때문에 메모리 관리에 소홀히 한 것은 사실이다. 그런데, 자바에서도 메모리 누수가 발생할 수 있으며, 다른 언어와 마찬가지로 메모리 관리에 신경을 써야한다고 한다. 사실 자바의 컴파일 방식이나 JVM, jdk, jre, 가비지 컬렉터의 동작도 한 번 정리해보려고 한다. 백기선 님의 자바 스터디에서 정리한 글들을 본 적이 있긴 한데 꽤나 어렵고 중요한 내용들이 많았다. 아래의 코드를 보고 메모리 누수가 어디서 일어나는 지 알아보자. public class Stack { private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; pub.. 2023. 1. 12.
카카오 OAuth2.0 적용하기 - 1 게시판 프로젝트를 진행하면서 너무나도 많이 사용되는 OAuth 기능을 사용해보고자 KaKao OAuth2.0을 적용하여 사용자 인증 서비스를 제공하려고 한다. 프로젝트에 도입하면서 과정을 기록해놔야 다음에 적용할 때 참고하기 좋을 것 같다! ( 꽤 길다..) 그럼 순차적으로 진행해 보겠다. 이 글은 Spring Security에 OAuth2.0을 적용하는 과정이며 OAuth2.0의 작동원리나 자세한 스펙은 KaKao Developers의 문서를 꼭꼭 참고하길 바란다. -정말 자세히 친절하게 설명되어 있음. + full code change는 github pr을 참조하면 좋을 것 같다. 1. KaKao Developers에서 카카오 API를 사용하기 위한 설정 진행. 1.1 애플리케이션 등록하기 카카오 디.. 2023. 1. 9.
Spring Security와 CORS 에러 대응 이전 글에 이어서 CORS가 또 발생하였다. 이전에는 어찌어찌 해결했었지만, 프론트 쪽에 웹 도메인을 부여하고 나서 다시 발생하였다. 확실하게 HTTP 통신을 이해하고 있지 못했던 것 같다. 여기서 나오는 용어나 개념은 이전글을 참고하거나, 검색해보시길 바랍니다.! 1. 재 발생 이유 스프링 시큐리티 FilterChain에 cors를 활성화하고, cors에 allow origin, method, header를 설정하였다. 이렇게 설정을 해놓으니, 프론트 팀 로컬에서 작업하던 localhost:3000에 대한 요청은 cors가 발생하지 않고 잘 해결되었었다. 그런데, Stage 서버에서 Swagger가 작동하지 않아 알아본 결과, Filter에서 AllowOrigin에 도메인을 적지 않았기 때문이었다. /.. 2023. 1. 3.
반응형