자바 원시 타입과 참조 타입 [CS 면접 박살내기]
자바 원시 타입과 참조 타입 🎯 자바를 처음 배울 때 가장 헷갈렸던 부분이 바로 원시 타입과 참조 타입의 차이점이었다. int와 Integer의 차이, String이 왜 참조 타입인지, 메모리에서는 어떻게 저장되는지… 이번에는 자바의 데이터 타입에 대해 차근차근 알아보자. 자바의 데이터 타입 분류 📊 자바에서는 크게 두 가지 데이터 타입이 있다:...
자바 원시 타입과 참조 타입 🎯 자바를 처음 배울 때 가장 헷갈렸던 부분이 바로 원시 타입과 참조 타입의 차이점이었다. int와 Integer의 차이, String이 왜 참조 타입인지, 메모리에서는 어떻게 저장되는지… 이번에는 자바의 데이터 타입에 대해 차근차근 알아보자. 자바의 데이터 타입 분류 📊 자바에서는 크게 두 가지 데이터 타입이 있다:...
Set 입력 순서를 유지 X, 데이터 중복 허용하지 않음 데이터에 null 입력 가능하나, 한 번만 저장하고 중복 저장을 허용하지 않음 인덱스가 따로 존재하지 않기 때문에 Iterator를 사용하여 조회 Set은 무엇보다도 데이터가 중복되는 것을 허용하지 않으므로, 데이터가 같은지를 확인하는 작업은 Set의 핵심 작업입니다. 따라...
List in java (deepdive study) 서론 Spring을 사용하는 많은 사람들이 List 사용에 익숙할 것입니다. 하지만 List에 대해 깊게 신경쓰고 사용하기 보다는 대부분 습관적으로 사용하는 경우가 많다(제가 딱 그랬습니다). 특히 위와 같이 특정 Entity간의 N:1 매핑관계를 설정하는 경우가 많은데(N:M도 N:...
자바 main 메서드와 Spring 어노테이션 자바를 처음 배울 때 가장 헷갈렸던 부분이 바로 main 메서드의 역할이었다. 그런데 Spring을 배우면서 main 메서드에 붙는 어노테이션들이 뭔지, 왜 붙는지 궁금해졌다. 이번에는 자바의 main 메서드부터 Spring의 어노테이션까지 차근차근 알아보자. 자바에서 main 메서드란? main 메...
자바 기본 개념 정리 자바를 처음 배울 때 가장 헷갈렸던 부분이 바로 JDK, JRE, JVM의 차이점이었다. 이 세 개념이 어떻게 연결되어 있는지, 그리고 자바가 왜 이렇게 널리 사용되는지 차근차근 알아보자. 자바의 핵심 철학: WORA 자바는 플랫폼 독립적인 객체지향 프로그래밍 언어다. 여기서 핵심은 “플랫폼 독립적”이라는 부분이다. 한 번...
Facade 패턴 도입, 외부 연동과 DB 연동 Facade(퍼사드) 패턴이란? 우선 이 블로그를 읽는 사람들이라면 Facade pattern 자체를 모르는 사람도 있을 것이라고 생각한다. Facade 패턴이란 복잡한 서브 클래스들의 공통적인 기능을 정의하는 상위 수준의 인터페이스를 제공하는 패턴이다. 이렇게 말하면 사실 이해가 잘 안될테니 이미지...
조인(Join)이란? 관계형 데이터베이스에서는 데이터가 테이블로 쪼개져 있다. 조인이란 이 관계형 데이터베이스에서 복수의 테이블을 결합하는 것으로, 데이터 조회 시 다른 테이블의 데이터를 함께 조회해야할 때 이용한다. 관계형 데이터베이스는 수학 집합론의 관계형 이론에서 유래하여 데이터를 집합으로 간주해 다루기 때문에 조인에 대해 이해할 때 수학 집...
벌크성 수정 쿼리 벌크성 수정 쿼리란? if 우리 회사 직원의 연봉을 모두 일괄적으로 10%씩 올리고 싶다 쿼리를 한번씩 날리면? 개사고 → 그냥 DB에 update쿼리를 한방에 날리는 게 좋다 예를 들어 사용자 포인트를 일괄적으로 업데이트해야 하는 상황을 생각해보자. 만약 개별적으로 업데이트한다면 성능 이슈가 발생할 수 있다. 기본 JPA...
Page 사용과 count 분리 그리고 Slice 백엔드에서 Pagination을 구현하겠다고 해보자. 그러면 org.springframework.data.domain.Pageable 기능을 활용하여 Repository 함수의 파라미터로 전달할 것이다. 먼저 PageRequest 객체를 만들고 해당 객체를 전달하게 되고 Repository에서는 함...
JPQL로 DTO 조회하기 이전까지 나는 대부분의 조회로직에서 다음과 같은 방식을 사용했다: 일단 파라미터로 전달받은 필드값으로 해당 객체를 조회한다 Builder나 생성자로 DTO로 반환한다. 근데 이게 여간 귀찮은게 아니다. 매번 Controller에서 DTO 반환 로직을 작성해줘야 하기 때문에 간단해보이지만 코드가 늘어나고 보기가...