본문 바로가기

개인적으로 공부한 것을 정리해 놓은 블로그입니다 틀린 것이 있으면 댓글 부탁 드립니다!


반응형

분류 전체보기

(160)
JAVA 스터디 3 - 연산자 목표 자바가 제공하는 다양한 연산자를 학습하세요. 학습할 것 산술 연산자 v 비트 연산자 v 관계 연산자 v 논리 연산자v instanceof v assignment(=) operator v 화살표(->) 연산자 v 3항 연산자 v 연산자 우선 순위 v (optional) Java 13. switch 연산자 1.산술 연산자 + - * / % 사칙연산을 다루는 연산자로 , 가장 기본적이면서 가장 많이 사용되는 연산자 중 하나이다 . 산술 연산자는 모두 두 개의 피연산자를 가지는 이항 연산자이며 , 피연산자들의 결합 방향은 왼쪽에서 오른쪽이다. 항이란 해당 연산의 실행이 가능하기 위해 필요한 값이나 변수를 의미하며 이항 연산자란 해당 연산의 실행을 위해서 두개의 값이나 변수가 필요한 연산자를 의미한다 . 1..
JAVA 스터디 2-자바 데이터 타입 , 변수 그리고 배열 목표 자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다. 학습할 것 프리미티브 타입 종류와 값의 범위 그리고 기본 값v 프리미티브 타입과 레퍼런스 타입v 리터럴v 변수 선언 및 초기화하는 방법v 변수의 스코프와 라이프타임 v 타입 변환, 캐스팅 그리고 타입 프로모션v 1차 및 2차 배열 선언하기v 타입 추론, var 데이터 타입을 기준으로 프로그래밍 언어를 나누면 1.c, c++ , Java와 같이 정적 데이터 타입을 사용하는 언어와 2.Ruby, Python과 같이 동적 데이터타입을 사용하는 언어가 있다. 1번 언어는 컴파일 타임에 각 변수와 표현식 유형이 알려지고 변수가 특정 데이터 유형으로 선언되면 다른 데이터 유형의 값을 가질수 없다 . 2번 언어는 컴파일 후에도 다양한 데이터..
JAVA 스터디 1-JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가. 목표 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기. 학습할 것 JVM이란 무엇인가 v 컴파일 하는 방법 v 실행하는 방법 v 바이트코드란 무엇인가 v JIT 컴파일러란 무엇이며 어떻게 동작하는지v JVM 구성 요소 v JDK와 JRE의 차이 1. JVM이란 무엇인가? 자바의 가상머신으로 자바 소스코드를 운영체제가 이해할 수 있는 기계어(바이트코드)로 변환하여 CPU나 운영체제에 상관없이 자바 파일을 실행해주는 역할을 한다. 자바의 클래스 파일 실행 순서는 아래의 그림과 같다. JRE에 포함되 잇으며 , 클래스로더 , excution engine , runtime data area , garbage collecotor로 이루어져 있다. 2. 자바 파일 생성 및 클래스파일로 컴파일 하는 ..
JAVA 스터디 0 - 자바의특징 Java 책 읽고 정리하기(명품 JAVA Programming 황기태,김효수 지음) 1 . 자바의 특징 1) 객체 지향 언어이다. 자바는 클래스 계층 구조 , 상속성, 다형성 , 캡슐화 등을 지원하는 객체 지향 언어이다. 객체 지향 프로그래밍이란 실제 세상의 객체와 객체 간의 상호 관계로 모델링하여 인간의 사고에 가깝게 표현하는 방식이다 2) 멀티스레드를 지원한다. 하나의 프로그램에서 다수의 스레드가 동시에 실행할 수 있는 환경을 지원한다. 멀티스레드 환경의 프로그램을 만들기 위해서는, 운영체제가 멀티스레드를 지원하고 멀티스레드와 관련된 API나 라이브러리를 제공해야 한다. C , C++ 같은 언어는 멀티스레드를 자체적으로 지원하지 않아 운영체제의 도움을 받아 멀티스레드를 수행한다. 하지만 자바는 운영체..
Spring boot -QueryDSL 과 JPQL 차이점 제목엔 차이점이라 적혀있지만 결국 QueryDsl은 JPQL bulider 역할을 한다. (결국엔 jpql로 변환된다) 샘플데이터 팀A.B와 멤버 1234가 persist 되었다 Test 코드에서 @BeforeEach를 사용하면 각 단위별 테스트가 실행되기 전에 @BeforeEach가 붙은 메서드를 먼저 실행한다. 이름이 memberA 인 회원을 JPQL과 queryDsl 로 찾아보았다 1. JPQL createQuery로 jpql을 생성하고 username을 파라미터 바인딩하였다 2.QueryDSL QueryDSL은 queryFactory와 Q-TYPE 객체를 사용하여 쿼리를 생성한다. queryFactory는 엔티티매니저를 파라미터로 받아야 하고 멀티쓰레드에 맞게 설계가 되어있어 필드레벨로 빼서 사용..
Spring boot 프로젝트에 QueryDSL 설정 및 검증 build.gradle로 가서 1.plugin에 id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" 입력 2.dependencies에 implementation 'com.querydsl:querydsl-jpa' 입력 3.맨아래에 아래코드 입력 -Q파일 자동 생성하는 코드 def querydslDir = "$buildDir/generated/querydsl" querydsl { jpa = true querydslSourcesDir = querydslDir } sourceSets { main.java.srcDir querydslDir } configurations { querydsl.extendsFrom compileClasspath } compileQuery..
Spring Data JPA 사용자 정의 Repository -스프링 데이터 JPA 리파지토리는 인터페이스만 정의하고 구현체는 스프링이 자동완성 인터페이스를 직접 구현하면 구현해야 하는 기능이 너무 많음 -인터페이스의 메서드를 직접 구현해서 사용하고 싶을 경우에 사용자 정의 repository를 사용한다 인터페이스를 만들고 그 인터페이스를 구현할 클래스를 따로 만들어 준 후 JpaRepository를 상속받는 인터페이스에서 JpaRepository와 함께 위의 직접구현한 인터페이스를 상속받게하면 JpaRepository의 메소드가아닌 직접구현한 인터페이스의 메소드가 실행됨 JpaRepository인터페이스 안에 메서드가 아니고 , 직접 customizing이 필요한 복잡한 쿼리를 사용하거나 Mybatis ,jdbc 템플릿, queryDSL 같은 것을 사용하고 싶을..
Springboot- JPA 페이징처리 위 메서드에서는 입력받은 나이를 갖는 유저의 리스트를 가져오는 쿼리이고 setFirstResult를 통해 시작점 setMaxResults로는 마지막을 지정해 페이징을 한다. 설정만 해주면 JPA에서 매우 편하게 SQL을 통한 페이징과 똑같은 쿼리를 날려준다.ㄴ 위 메서드에 age = 10 offset = 0 limit =3 을 임의로 지정하여 실행한 후 생성된 쿼리이다 *offset이 0이면 JPA는 따로 쿼리에 offsett을 넣지 않는다. *JPA는 지정해놓은 방언(Dialect)을 통해 쿼리를 생성하기 때문에 DB에 영향을 받지않고 쿼리가 생성된다.

반응형