전체 글
-
Spring boot jooq카테고리 없음 2023. 4. 22. 14:39
오늘은 Spring boot로 jooq를 사용하는 방법을 간단하게 살펴보도록 하자. jooq를 간단하게 설명하자면 Java Object Oriented Querying의 약자로 자바코드로 Sql을 작성할 수 있게 도와주는 프레임워크이다. 이 또한 자바 코드를 작성하기 때문에 타입세이프하다. JPA/hibernate를 사용하다보면 ORM으로 사용하기 어려운부분들을 jooq를 사용해서 해결하는 방법도 나쁘지 않다. 이와 비슷한 타입세이프한 프레임워크로는 ORM을 사용할 때 자주 등장하는 빌더로 QueryDsl, jinq도 있다. 그렇긴 하지만 jooq의 경우에는 ORM은 아니니 주의(?)해야 한다. JPA와 같이 사용할 수는 있는거 같다. 개발자 마음이긴 하지만 JPA(ORM)을 사용하다보면 복잡한 쿼리 혹..
-
Spring Boot 1.5카테고리 없음 2023. 4. 22. 14:39
오늘은 대략 2주전에 릴리즈 되었던 Spring boot 1.5의 변화에 대해서 알아보도록 하자! 필자도 회사 프로젝트를 1.5 로 업그레이드 했다. 아직 개발 단계라서 많은 영향이 없을 것으로 판단해서 올린 후 테스트를 해봤는데 잘 동작했다. 물론 개발단계라서 쉽게 올렸지만 만약 릴리즈된 상태였다면 쉽게 올리지 못했을 듯 하다. 올릴 때 별다른 문제는 없었는데 두가지 때문에 코드를 조금 수정하였다. 첫 번째는 @ConfigurationProperties 어노테이션의 locations() 속성이 삭제되면서 해당 속성을 사용하지 않고 다른 방식으로 작성하고, 또 다른 하나는 테스트 때문에 작성해둔 HibernateJpaAutoConfiguration 클래스를 상속하던 클래스가 있었는데 생성자의 속성이 추가..
-
lombok을 잘 써보자! (2)카테고리 없음 2023. 4. 22. 14:39
오늘은 lombok 관련해서 포스팅하는 두 번째 시간이다. 저번시간에는 특히나 자주 사용하는 것에 대해 설명 하였는데 오늘은 자주 사용하지는 않을 거 같지만(필자 생각) 있는 기능이니 필요하다면 사용해도 괜찮을 것 같은 기능들을 살펴도록 할텐데 그 전에 어제 자주 사용하는 것 중에 설명하려고 했던 기능이 있는데 어제 깜빡하고 못해서 오늘은 자주 사용할 것 같은 기능 위주로 처음에 작성해보겠다. 흠..말이 이상한데.. 아무튼 그냥 설명하겠다. 참고로 IDEA 기준으로 설명한다. 다른 툴들은 각자가 인터넷에서 구글링 해보면 잘 나와있다. 그럼 시작해보자! @Log 이 이노테이션 역시 자주 사용할 것 같은 기능에 속한다. 어노테이션 명 그대로 log를 출력할 수 있도록 도와준다. 이 어노테이션은 log라는 변..
-
lombok을 잘 써보자! (1)카테고리 없음 2023. 4. 22. 14:39
java 개발자에 있어 lombok은 아주 좋은 라이브러리이다. 어노테이션 하나로 자동으로 바이트코드를 만들어주니 더 할 것이 없는 라이브러리이다. 다른 언어들은 언어 자체에서 지원해주긴 하지만.. 필자도 아주아주 잘 쓰지는 못하지만 필자가 아는 것만큼 포스팅을 해보자! @Data lombok을 사용한다면 제일 많이 사용하는 어노테이션이다. 이 어노테이션은 다재다능한 기능이다. 사용하는 사람은 알겠지만 getter, setter, toString, hasCode, equals, constructor 등 많은 부분을 자동으로 생성해준다. 각각 부분적으로는 밑에서 설명하도록 하겠다. @Data 어노테이션에는 속성이 한개 있는데 staticConstructor 라는 속성이다. 말그대로 static한 생성자? ..
-
Spring boot configuration카테고리 없음 2023. 4. 22. 14:39
오늘은 Spring boot 의 설정에 관하여 알아보자. 대단한건 아니고 Spring boot의 설정에 대해서 몇가지만 알아보자. @SpringBootApplication Spring boot의 없어서는 안될 어노테이션 설정이다. 물론 해당 어노테이션은 Spring boot가 처음 나올 때는 존재 하지 않은 어노테이션이다. 주석을 보니 1.2에 만들어졌다. 해당 어노테이션은 @EnableAutoConfiguration과 @ComponentScan 두 가지를 메타 어노테이션으로 가지고 있다. @SpringBootApplication 어노테이션은 속성이 4가지가 있는데 2개의 속성은 @EnableAutoConfiguration 어노테이션의 속성이고 나머지 2개는 @ComponentScan어노테이션의 속성이다..
-
javax.annotation.* (jsr 305)카테고리 없음 2023. 4. 22. 14:39
오늘은 jsr305 스펙에 대해서 몇가지 알아보자. jsr305 는 소프트웨어 결함 탐지를 위한 어노테이션이다. 이렇게 말하면 뭔말인지 모르니 한번 해보도록하자. com.google.code.findbugs 의 jsr305를 디펜더스 받자. 왜 google로 되어있는지는 모르겠다. 만든 사람이 구글에 다니던 시절에 만들어서 그런가? findbugs 프로젝트보면 다양한게 많이 있는 듯한데.. 자세히는 보지 않았다. 일단 아래와 같이 디펜더시를 받자. com.google.code.findbugs jsr305 3.0.1 provided 그리고 나서 하나씩 살펴보도록 하자. 일단 기준은 IDEA이다. 이클립스나 넷빈즈는 어떻게 동작하지는 잘 모르겠다. 스펙들은 아주 많은데 그 중에 IDEA가 지원해주거나 혹은 ..
-
Spring mvc (2) 그리고 Spring boot카테고리 없음 2023. 4. 22. 14:39
저번에 Spring mvc 중에 DispatcherServlet에 대해서 알아봤다. 물론 저 설명은 핵심만 살펴본 내용이라 딱 와닿지 않을 수 있다. 인터페이스의 역할을 알아봤으니 각자가 구현클래스에 대해서 살펴보고 클래스가 어떤 역할을 하는 지 살펴보면 좋을 듯하다. Spring 문서에도 아주 잘 나와 있으니 참고하면 되겠다. 이번시간에 알아볼 내용은 Spring mvc의 설정과 spring boot의 설정도 같이 볼 예정이다. 우리는 예전에 Spring mvc로 개발할 때에는 web.xml을 사용해서 DispatcherServlet을 servlet으로 등록을 했다. 아주 예전에 servlet으로 개발할 때는 xml에 각각의 servlet을 등록하고 HttpServlet 상속받아 구현하였다. 아주 옛날..
-
Spring mvc (1)카테고리 없음 2023. 4. 22. 14:39
벌써 새해가 밝았다. 1년이 후딱 지나갔다. 벌써 2017년이라니.. 오늘은 새해들어서 첫 포스팅은 한다. 어느덧 포스팅 개수도 200개가 넘었고 블로그를 시작한지도 1년이 다 되어간다. 작년 2월말부터 시작했으니 담달이면 1년이 된다. 생각보다 포스팅을 많이 한 것같다. 오늘은 Spring mvc에 대해서 살펴보도록 하자. mvc를 한다고해서 아주 많은 부분을 하는 건 아니고 핵심적인 부분이나 중요한 부분정도면 간단하게 살펴보자. Spring mvc의 핵심적인 클래스는 뭘까? 뭐 필자와 다르게 생각할 수도 있겠지만 필자는 DispatcherServlet이 Spring mvc의 핵심적인 클래스라 생각한다. Spring mvc의 DispatcherServlet만 잘 알아도 쉽게 개발 할 수 있을 듯 하다...