• JPA 물리적인 테이블과 컬럼 이름 전략을 스프링부트와 똑같이 하고 싶다면

    스프링부트를 사용하지 않는데 스프링부트에서 사용하고 있는 기본 물리적 이름 전략을 사용하고 싶다면 어떻게 해야할까? 좀 뭐랄까 몰래 베끼는 느낌이지만 스프링부트의 코드를 그대로 카피해서 자신의 패키지에 담아주면 간단하게 가능합니다. 그래도 소스에 출처 정보는 남기는 것이 좋지 않을까요? public class PhysicalNamingStrategy implements org.hibernate.boot.model.naming.PhysicalNamingStrategy { @Override public Identifier toPhysicalCatalogName(Identifier name, JdbcEnvironment jdbcEnvironment) {...


  • ApplicationRunner-Spring Application 시작할 때 Query 실행하기

    이 포스트는 SprinBboot Application이 구동될 때 sql 파일을 직접 읽어서 실행하는 샘플을 보여드립니다. Springboot 는 모든 빈이 초기화되고 애플리케이션이 실행되기 전에 ApplicationRunner interface를 찾아서 실행시켜줍니다. 이 타이밍에 sql을 실행하는 구문을 넣어서 돌려봅니다. 아래 샘플은 샘플일 뿐 프로덕트에 그대로 사용하지는 마시기 바랍니다. @Component @Slf4j public class Runner implements ApplicationRunner { final...


  • Error creating bean with name 'dataSource'

    스프링부트 프로젝트를 만들고 springboot-starter-jpa 를 추가하고 바로 실행하면 바로 예외가 발생합니다. cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource datasouce bean 정의를 찾을 수 없다는 예외인데 이유는 당연하게도 jpa를 사용하기 위한 datasource 정보가 없어서 이겠지요. 속성파일 application.properties 에 아래 속성을 정의하시면 됩니다. spring.datasource.url...


  • npm install 할 때 예외가 발생될 때

    github와 같은 공개 소프트웨어 소스 사이트에서 Node.js 프로젝트를 clone 한 뒤 npm install 을 하면 해당 프로젝트에서 의존하고 있는 패키지를 모두 설치할 수 있습니다. npm이 사용하는 package.json 파일에는 해당 프로젝트가 의존하고 있는 다른 패키지의 버전 정보를 가지고 있는데 버전 정보가 대부분 범위로 지정이 되어있습니다. 이외 다르게 package-lock.json 에는 package.json 파일이...


  • git에서 트래킹 중인 파일을 로컬에서만 무시하기

    git이 트래킹하고 있는 파일을 내 로컬에서만 잠시 변경사항을 무시하고 싶다면 어떻게야 할까요? 이런 케이스는 생각보다 많이 있을 수 있습니다. git 리포지토리에 등록된 파일 중에는 소스 파일이 대부분이겠지만 로컬 환경마다 다를 수 있는 설정 파일도 존재하기 때문입니다. 로컬에서 테스트해보기 위해 설정 파일을 건들어야 하는 경우 스테이징 할 때 그 파일만 빼면...