분류 전체보기46 [SQL] 서브쿼리란? 서브쿼리 종류 - 스칼라, 인라인 뷰, 중첩 📝 서브쿼리란? 서브쿼리는 메인쿼리에 종속해있으며 메인쿼리 없이는 단독적으로 실행될 수 없다.서브쿼리는 메인쿼리의 칼럼을 사용할 수 있지만, 반대로 메인쿼리는 서브쿼리의 칼럼을 사용할 수 없다. (자식클래스는 부모클래스의 메서드를 사용할 수 있지만 부모클래스는 자식클래스의 메서드를 사용할 수 없는 자바의 상속관계와 비슷)서브쿼리의 종류는 크게 3가지 (스칼라, 인라인 뷰, 중첩)로 어느 위치에서 사용하느냐에 따라 분류됨.종류설명스칼라 서브쿼리(Scalar Suquery)SELECT 절에 위치하며 한 레코드당 정확히 하나의 값을 반환하는 서브쿼리 (단일행, 단일칼럼을 반환)인라인 뷰(Inline View)FROM 절에 위치하는 서브쿼리로 결과는 반드시 하나의 테이블로 리턴되어야 한다.중첩 서브쿼리(Nes.. DB & SQL 2024. 5. 19. [DB] MySQL testdb 생성 GitHub - datacharmer/test_db: A sample MySQL database with an integrated test suite, used to test your applications and databaseA sample MySQL database with an integrated test suite, used to test your applications and database servers - datacharmer/test_dbgithub.com DB & SQL 2024. 5. 18. [DB] 터미널 명령어를 이용한 기본적인 MySQL 사용방법과 zsh 환경변수 설정 - macOS 이전 포스트에서 MySQL을 설치하고 접속해보았다. [DB] MySQL 설치와 DB 생성, 연결 과정 - macOS* MySQL 다운로드 MySQL :: Download MySQL Community ServerSelect Version: 8.4.0 LTS 8.0.37 Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Debian Linux SUSE Linux Enterprise Server Red Hat Enterprise Linux / Oracle Lidev-jk93.tistory.com 이후 기본적인 MySQL 터미널명령어를 학습하고자 했고 먼저 root 계정으로 접속하려 했다.환경변수가 적절하게 설정되어 .. DB & SQL 2024. 5. 18. [DB] MySQL 설치와 DB 생성, 연결 과정 - macOS * MySQL 다운로드 MySQL :: Download MySQL Community ServerSelect Version: 8.4.0 LTS 8.0.37 Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Debian Linux SUSE Linux Enterprise Server Red Hat Enterprise Linux / Oracle Linux Fedora Linux - Generic Oracle Solaris macOS Source Code Sedev.mysql.com 링크를 타고 들어가보면어떤 버전을 다운받아야 할지 고민이 될 수 있다. Select Version은 현재 8.0.37 과 8.4.0 LTS.. DB & SQL 2024. 5. 18. [Java] Reflection Java Reflection이란? 리플렉션은 구체적인 클래스 타입을 알지 못하더라도 그 클래스의 메서드, 타입, 변수들에 접근할 수 있도록 해주는 자바 API이며, 컴파일 시간이 아닌 실행 시간(런타임)에 동적으로 특정 클래스의 정보를 추출할 수 있는 프로그래밍 기법이다. JVM 힙 영역에 로드된 Class(대문자 'C') 타입의 객체를 통해, 원하는 클래스의 인스턴스를 생성할 수 있도록 지원하고, 인스턴스의 필드와 메소드를 접근 제어자와 상관 없이 사용할 수 있도록 지원하는 API 여기서 로드된 클래스라고 함은, JVM의 클래스 로더에서 클래스 파일에 대한 로딩을 완료한 후, 해당 클래스의 정보를 담은 Class 타입의 객체를 생성하여 메모리의 힙 영역에 저장해 둔 것을 의미한다. JVM 메모리 구조 .. Java 2024. 2. 21. Generics (Java) 강의를 듣던중 지네릭스 선언 방식, 사용방식이 기억이 나지 않았습니다. 지네릭스에 관한 전반적인 내용을 블로그에 정리해보겠습니다. // 강의 코드 @Slf4j @RequiredArgsConstructor public class TraceTemplate { private final LogTrace trace; public T execute(String message, TraceCallback callback) { TraceStatus status = null; try { status = trace.begin(message); // 로직 호출 T result = callback.call(); trace.end(status); return result; } catch (Exception e) { trace.e.. Java 2024. 2. 12. JVM 메모리 구조 (JAVA) JVM과 JVM 메모리 구조 JVM 메모리 구조를 알아야 하는 이유 대규모 프로젝트를 Java로 개발할 때, 메모리 관리에 따라 프로그램 성능이 월등히 차이날 수 있기 때문입니다. 이것이 어떤 상황을 의미하는지, 메모리 구조를 잘 알고 있다면 어떻게 프로그램 성능 개선에 활용할 수 있는지 아직 알 수 없지만 자바 개발자라면 기본적으로 알고 있어야 하는 덕목인 것 같아서 정리하는 시간을 가져봅니다. 우선 JVM이 무엇인지 알아보겠습니다. JVM이란? JVM은 Java Virtual Machine, 자바 가상 머신 자바와 운영체제사이에서 중계자 역할을 합니다. 그래서 자바가 운영체제 종류에 영향받지 않고 돌아갈 수 있습니다. 메모리 관리를 자동으로 해주는 가비지 컬렉터(GC)의 기능도 있습니다. 이 외의 기.. Java 2024. 2. 8. Statement 대신 PreparedStatement를 사용해야 하는 이유 1) 쿼리의 실행과정 쿼리의 실행과정은 위 그림과 같다. 1) Parsing & Normalization Phase - Query 문법 확인, Semantic check(?) 및 쿼리에 있는 테이블, 컬럼 존재여부 확인 2) Compilation Phase - 쿼리를 machine이 이해할 수 있는 형식으로 컴파일 3) Query Optimization Phase - 쿼리를 실행할 수 있는 방법들을 체크하고, 최적의 쿼리 실행 방법을 선택 4) Cache - 3) 단계의 최적의 방법을 저장 5) Execution Phase - 쿼리 실행 2) Statement, PreparedStatement의 동작 방식의 차이점 1️⃣ 캐시 사용 유무 // [Statement] Connection conn = Driv.. DB & SQL 2024. 1. 30. DB connection 에서 URL이 의미하는 것 김영한님의 스프링 DB 1편을 듣던 중 public abstract class ConnectionConst { public static final String URL = "jdbc:h2:tcp://localhost/~/test"; public static final String USERNAME = "sa"; public static final String PASSWORD = ""; } h2 database에 연결하기 위해 위와 같이 ConnectionConst를 만들고 있다. URL의 의미를 알기 위해 chatGPT에게 질문했다. jdbc: : 모든 JDBC 연결 URL에 공통되며, 이 문자열이 JDBC 연결을 나타낸다는 것을 나타낸다. h2: : 사용되는 DB driver 유형을 가르킨다. (DB dr.. DB & SQL 2024. 1. 10. BasicErrorController에서 @RequestMapping("${server.error.path:${error.path:/error}}")의 의미 [`김영한의 스프링 MVC 2` : `API 예외처리` 강의를 듣던 중 생긴 궁금증] chatGPT 에게 질문해봤다. Question : @RequestMapping("${server.error.path:${error.path:/error}}") what mean? Answer : In the context of a Java web application using the Spring Framework, the @RequestMapping annotation is used to map HTTP requests to a specific method or controller in your application. Let's break down the expression you provided: ```java @.. spring 2024. 1. 8. 이전 1 2 3 4 다음