Web/팁

    [h2 database] 데이터베이스 생성하기

    맨 처음에 데이터베이스가 생성되지 않았을 때는 위와같이 오류가 뜬다. 그러면 아래와 같이 jdbc:h2:~/{원하는 데이터베이스 이름} 으로 한번 connect 하면 데이터베이스 파일이 생성된다. 그리고 이후부터는 jdbc:h2:tcp://localhost/~/{데이터 베이스 명} 으로 접근하면 된다.

    로깅(Logging)을 알아보자

    보통 디버깅할때 System.out.prinln("")을 사용해왔다. 하지만 실무에서는 이런식으로 로깅을 하지 않는다! 로깅 라이브러리 SLF4J : http://www.slf4j.org SLF4J Simple Logging Facade for Java (SLF4J) The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logging frameworks (e.g. java.util.logging, logback, log4j) allowing the end user to plug in the desired logging framewor www.slf4j.org Logback : http:/..

    자바 다시 제대로 공부하기

    백기선님 온라인 스터디 따라해보기 github.com/whiteship/live-study/issues?q=is%3Aissue+is%3Aclosed whiteship/live-study 온라인 스터디. Contribute to whiteship/live-study development by creating an account on GitHub. github.com 각 주차별로 하트달린 블로그 참고하면서 진행해보면 좋을 것 같다.

    [Spring] HTTP 정보 로그 남기기

    application.properties에 logging.level.org.apache.coyote.http11=debug 적어주면 된다.

    [Spring & JPA] 데이터 수정시 변경감지(dirty checking) vs merge

    JPA는 기본적으로 데이터만 바꿔도 변경감지를 통해 트랜젝션 커밋시점에 sql이 나간다. 그런데 *준영속 엔티티 일때는 변경감지가 일어나지 않는다! 그러면 준영속 엔티티 상태일때는 데이터를 어떻게 변경해야할까? 준영속 엔티티의 데이터 변경에는 두가지 방법이 있다. 변경감지기능 사용 merge 사용 변경감지기능사용 방법은 트랜잭션이 있는 서비스계층에서 데이터를 수정하는 것이다. ItemService ... @Transactional public Item updateItem(Long itemId, String name, int price, int stockQuantity) { Item findItem = itemRepository.findOne(itemId); findItem.setPrice(price); ..

    [Spring & JPA] 프로젝트시 주의해야할 점 (에러발생시 확인해야할 부분)

    Many To Many 는 사용하지마라 -> (일대다 다대일 로 풀어라) enum타입 사용시 @Enumerated(EnumType.STRING) 으로 사용해라 양방향 연관관계는 되도록 사용하지마라 @Getter는 모두열어놓으면 편하다 @Setter는 사용하지않는다. (Setter는 생성자 주입으로 풀어라) 값 타입은 변경이 되면 안되기 때문에 생성자 주입을 열고 기본생성자(protected)도 만들어주어야 한다. (new로 생성 불가) ddl로 생성되는 테이블들이 맞게 되는지 확인하고 정제하는 작업을 거쳐야 한다. 모든 연관관계( @XToOne )는 지연로딩으로 설정해라 (N+1문제 해결방법) 컬렉션을 사용할때는 private List orders = new ArrayList(); 선언과 동시에 초기화 ..

    [IntelliJ] 인텔리제이 JPA Hibernate로 Provider 지정 (빨간줄 뜨게 설정)

    File -> Project Structure Modules -> main -> JPA -> Default JPA Provider -> Hibernate

    스프링부트 쿼리 파라미터 로그로 보기

    spring: datasource: url: jdbc:h2:tcp://localhost/~/jpashop username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: # show_sql: true format_sql: true logging.level: org.hibernate.SQL: debug # org.hibernate.type: trace application.yml 에서 이렇게 세팅하면 위와 같이 파라미터가 ? 로 찍힌다. 여기서 application.yml 에 org.hibernate.type: trace를 추가하면 ? 에 해당하는 파라미터가 무엇인지 찍힌..

    Gradle 인텔리제이로 실행속도 빠르게하기

    최근 IntelliJ 버전은 Gradle로 실행을 하는 것이 기본 설정이다. 이렇게 하면 실행속도가 느리다. 다음과 같이 변경하면 자바로 바로 실행해서 실행속도가 더 빠르다. Preferences -> Build, Execution, Deployment -> Build Tools -> Gradle

    서버 다시시작 안하고 html 변경 반영하기

    1. devtools 라이브러리를 넣는다 dependencies { implementation 'org.springframework.boot:spring-boot-devtools' } 이제 html 수정시 Recompile 만 해주면 반영된다.