May 27, 2025
Serial GC Serial GC는 JDK에 도입된 최초의 가바지 컬렉터이며, 단일 스레드로 동작하는 가장 단순한 형태이다. 작은 힙 메모리와 단일 CPU 환경에 적합하며 Stop-The-World 시간이 가장 길게 발생한다. Parallel GC Parallel GC는 Java 5부터 8까지 default 가비지 컬렉터로 사용되었으며, Serial G…
May 24, 2025
싱글턴 패턴(Singleton Pattern) 이란 생성자를 여러 차례 호출해도 실제로 생성되는 인스턴스를 오직 하나만 존재하도록 유지 및 보장하는 패턴을 의미한다. 객체가 최초로 생성된 이후에 생성자나 객체 생성 메서드는 기존에 만들어진 객체를 반환한다. 이러한 싱글턴 패턴은 하나의 객체를 여러 상황에서 재사용할 수 있기 때문에 메모리 낭비를 방지 할 …
May 23, 2025
HTTP(Hypertext Transfer Protocol) 는 웹에서 클라이언트와 서버 간 통신을 위한 통신 규약인 프로토 콜 중 하나다. 하지만, HTTP는 암호화되지 않는 평문 데이터를 전송하기 때문에 제 3자가 정보를 조회할 수 있다는 위험이 있다. 예를 들어, 아래처럼 사용자가 로그인 정보를 입력할 때 HTTP를 통해 전송되면, 이 정보는 암호화되…
May 23, 2025
NOT IN 쿼리는 SQL에서 특정 조건을 만족하지 않는 레코드를 필터링하기 위해 사용되는 구문이다. 하지만 대규모 데이터셋에서 성능 저하를 일으킬 수 있는 몇 가지 문제점이 있다. 이 글에서는 NOT IN 쿼리의 문제점과 이를 해결하기 위한 최적화 방안을 살펴보겠다. NOT IN 쿼리의 문제점 아래와 쿼리와 같이 NOT IN을 사용한 쿼리는 직관적이고 …
May 21, 2025
URI(Uniform Resource Identifier), URL(Uniform Resource Locator), URN(Uniform Resource Name)은 모두 웹 자원을 식별하는 방법이다. 하지만 이들은 서로 다른 개념으로, 각각의 용도와 특징이 있다. URI (Uniform Resource Identifier) URI는 웹 자원을 식별하는 …
May 20, 2025
쿠키(Cookie)와 세션(Session)은 HTTP의 무상태(stateless) 특성을 보완하여 웹 애플리케이션에서 클라이언트와 서버 간의 상태를 유지하기 위해 사용되는 메커니즘이다. 하지만, 이 두 가지는 서로 다른 방식으로 작동하며 각각의 장단점이 있다. 데이터 저장 위치 쿠키는 클라이언트 측 브라우저에 저장되는 반면, 세션은 서버 측에 저장된다. …
May 19, 2025
최근 리마인드를 할 겸 Spring을 다시 톺아보고 있다. Spring Container에서 Bean으로 관리한다는 것은 보통 Spring Framework을 처음에 배우게 되는 내용이다. 그런데 왜 Bean으로 관리해야 하는지에 대해서는 잘 모르고 넘어가거나 잊는 경우가 있는 것 같다. 이번 글에서는 Spring에서 Bean으로 관리하는 이유에 대해서 …
May 01, 2025
이번 글에서는 아이디를 생성할 때 사용되는 방법들에 대해서 정리해보려고 한다. Sequence, Auto Increment 아이디를 생성할 때 가장 많이 사용되고 가장 쉬운 방법 중 하나는 데이터베이스 제공하는 기능을 사용하는 것일 것이다. Oracle의 Sequence, MySQL의 Auto Increment, PostgreSQL의 Serial 등이 이…
April 15, 2025
개발을 하다 보면 , , 등과 같이 객체를 생성하지 않고 정적인 메서드나 상수를 모아두는 **유틸리티 클래스(Utility Class)**를 사용하는 경우가 있다. 그런데 이때 흔히 저지르는 실수 중 하나가 바로 이러한 유틸리티 클래스에 생성자를 선언하거나, 아예 생성자를 생략해버리는 것이다. 이런 상황이 왜 문제가 되는지, 그리고 어떻게 해결할 수 …
April 02, 2025
Problem Flutter 환경에서 소셜 로그인 시도 시 301 에러가 발생했다. 에러 로그는 다음과 같다. Possible Causes MDN Web Docs에서 보면 301은 "Moved Permanently"라는 의미로, 요청한 URL이 영구적으로 다른 URL로 이동했음을 나타낸다. Flutter에서 로 보내는 요청 확인해보면, HTTP 요청이…