일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- BOJ
- 지연로딩
- 다대일
- SQL프로그래밍
- shared lock
- JPQL
- 이진탐색
- 동적sql
- 다대다
- querydsl
- 데코레이터
- 스토어드 프로시저
- execute
- 비관적락
- 낙관적락
- eager
- 힙
- FetchType
- 백트래킹
- PS
- 일대다
- 연관관계
- CHECK OPTION
- 유니크제약조건
- 스프링 폼
- 연결리스트
- dfs
- fetch
- exclusive lock
- 즉시로딩
- Today
- Total
목록All (557)
흰 스타렉스에서 내가 내리지
AUTO 전략 데이터베이스의 종류도 많고 기본 키를 만드는 방법도 다양하다. GenerationType.AUTO는 선택한 데이터베이스 방언에 따라 IDENTITY, SEQUENCE, TABLE 전략 중 하나를 자동으로 선택한다. 예를 들어 오라클을 선택하면 SEQUENCE를, MySQL을 선택하면 IDENTITY를 사용한다. @GeneratedValue.strategy의 디폴트값은 AUTO이다. 따라서 다름과 같이 사용해도 결과는 같다. @Id @GeneratedValue @Column(name = "ID") private String id; AUTO 전략의 장점은 데이터베이스를 변경해도 코드를 수정할 필요가 없다는 것이다. 특히 키 생성 전략이 아직 확정되지 않은 개발 초기 단계나 프로토타입 개발 시 ..
@Entity @Getter @Setter @Table(name="MEMBER", uniqueConstraints = {@UniqueConstraint( name = "NAME_AGE_UNIQUE", columnNames = {"NAME", "AGE"} )}) public class Member { @Id @Column(name = "ID") private String id; @Column(name = "NAME", nullable = false, length = 10) private String username; private Integer age; } alter table member add constraint NAME_AGE_UNIQUE unique (name, age) UNIQUE 제약으로 들어..
변경감지에서 JPA의 기본 전략은 엔티티의 모든 필드를 업데이트한다. 필드가 많거나 저장되는 내용이 너무 크면 수정된 데이터만 사용해서 동적으로 UPDATE SQL을 생성하는 전략을 선택하면 된다. 단 이떄는 Hibernate 확장 기능을 사용해야 한다. @org.hibernate.annotations.DynamicUpdate 이 어노테이션을 사용하면 수정된 데이터만 사용해서 동적으로 UPDATE SQL를 생성한다. 참고로 데이터를 저장할 때 데이터가 존재하는 (null 이 아닌) 필드만으로 INSERT SQL을 동적으로 생성하는 @DynamicInsert도 있다. + 상황에 따라 다르지만 컬럼이 대략 30개 이상이 되면 기본 방법인 정적 수정 쿼리보다 @DynamicUpdate를 사용한 동적 수정 쿼리..
logback 스프링부트의 기본으로 설정되어 있어서 사용시 별도로 라이브러리를 추가하지 않아도 된다. spring boot logback 설정 ▶ 스프링, 일반 자바 프로그램 - logback.xml ▶ 스프링 부트 - logback-spring.xml 참고 순서 1. resources 디렉토리에 logback-spring.xml 파일이 있으면 읽는다. 2. logback-spring.xml 파일이 없다면 .yml 파일의 설정을 읽는다. 3. logback-spring.xml 파일과 .yml 파일이 동시에 있으면, .yml 설정파일을 적용한 후 .xml 파일이 적용된다. 로그 레벨 순서 및 사용방법 ▶ TRACE < DEBUG < INFO < WARN < ERROR 1) ERROR : 요청을 처리하는 중..
application.yml # default 공통설정 spring: --- # local 설정 spring: config: activate: on-profile: "local" server: port: 8080 --- # dev 설정 spring: config: activate: on-profile: "dev" server: port: 8081
package com.general.gen.filters; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; import org.springframework.http.MediaType; import org.springframework.stereotype.Component; import org.springframework.util.StreamUtils; import org.springframework.web.filter.OncePerRequestFilter; import org.springframework.web.util.ContentCachingResponseWrapper; import javax.servlet.F..
CI (Continuous Integration - 지속적 통합) 코드 버전 관리를 하는 VCS 시스템 (Git, SVN 등)에 PUSH가 되면 자동으로 테스트와 빌드가 수행되어 안정적인 배포 파일을 만드는 과정 CD (Continuous Deployment - 지속적인 배포) 이 빌드 결과를 자동으로 운영 서버에 무중단 배포까지 진행되는 과정 지속적으로 통합하기 위해서는 무엇보다 이 프로젝트가 완전한 상태임을 보장하기 위해 테스트 코드가 구현되어 있어야만 한다. Travis CI 연동하기 Travis CI는 깃허브에서 제공하는 무료 CI 서비스이다. 젠킨스와 같은 CI 도구도 있지만, 젠킨스는 설치형이기 때문에 이를 위한 EC2 인스턴스가 하나 더 필요하다. 배포를 위한 EC2 인스턴스는 부담스럽기 때..
JPA가 사용될 엔티티 테이블과 스프링 세션이 사용될 테이블 2가지 종류를 생성하자. JPA가 사용할 테이블은 테스트 코드 수행 시 로그로 생성되는 쿼리를 사용. 스프링 세션 테이블은 schema-mysql.sql 파일에서 확인한다. FIle 검색 [Command+Shift+O] schema-mysql.sql 에서 긁어와서 RDS에 적용 스키마 생성확인 build.gradle 에 mariaDB 의존성 추가 implementation 'org.mariadb.jdbc:mariadb-java-client' 서버에서 구동될 환경을 하나 구성한다. application-real.yml 파일을 생성한다. 여기에는 실서버의 mariaDB 정보가 들어간다. application-real.yml 로 파일을 만들면, pr..
github에는 업로드되지 않은 설정파일들을 생성, 붙여넣기 vim /home/ec2-user/app/application-oauth.yml vim /home/ec2-user/app/application.yml shell 파일 생성 vim ~/app/step1/deploy.sh #!/bin/bash REPOSITORY=/home/ec2-user #1 PROJECT_NAME=termterm-BE cd $REPOSITORY/$PROJECT_NAME/ #2 echo "> git pull 시작" git pull echo "> 프로젝트 build 시작" ./gradlew build --exclude-task test #4 echo "> 홈 디렉토리로 이동" cd $REPOSITORY echo "> Build 파일..
** Amazon Linux 기준 ** git 설치 sudo yum install git git 버전 확인 : git --version 프로젝트를 저장할 디렉토리 생성 mkdir ~/app && mkdir ~/app/step1 생성한 디렉토리로 이동 cd ~/app/step1 git clone git clone [git 레포지토리 주소] 코드들이 잘 수행되는지 테스트로 검증하기 ./gradlew test 구글링해도 안나오는 오류 찾느라 엄청 고생했다. java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:98 OAuth2 test 를 위해 test 폴더에 application.yml을 따로 만들어 줬었는데 그게 git..