전체 글
-
spring boot querydsl study (2)카테고리 없음 2023. 4. 20. 09:53
우리는 어제 querydsl의 기본적인 API들을 살펴보고 변경사항도 같이 살펴봤다. 이번시간은 간단한 동적쿼리와 join에 대해 알아보자. 심도있는 것은 나중에 살펴보도록하고.. 일단 엔티티부터 코드로 보자. 아래 엔티티로 공부를 할 예정이라 포스팅도 같이 했다. 추가되면 그때 그때 추가 하겠다. @Entity public class Account { @Id @GeneratedValue @Column(name = "ACCOUNT_ID") private Long id; private String name; private String password; private String email; @OneToMany(mappedBy = "account") private List orders = new ArrayL..
-
spring boot querydsl study (1)카테고리 없음 2023. 4. 20. 09:53
오늘은 Spring 에서 지원해주는 querydsl을 사용해서 포스팅을 헤보겠다. querydsl은 필자도 공부중이라 공부하는 내용을 포스팅할 것이다. 예전에 한번 Spring boot querydsl을 포스팅한적이 있는데 아주 기초적 및 셋팅 정도만 하였다. 오늘도 마찬가지로 기본적인 것만 하겠지만 몇편으로 나누어서 차근차근 공부를 해보겠다. querydsl의 version이 올라가면서 약간 바뀐 API도 있는듯하다. 오늘은 그것부터 공부해보겠다. 또한 Spring boot 1.3.x는 최신버전 querydsl을 지원하지 않는다. Spring boot 1.4부터 현재 나온 querydsl을 지원한다. 이 포스팅은 Spring boot 1.4 M3 버전이고 querydsl은 현재 최신버전인 4.1.2 기..
-
자바스크립트(javascript) 클로저카테고리 없음 2023. 4. 20. 09:53
자바스크립트의 클로저에 대해 알아보자. 자바스크립트를 완전 복잡하게 다루지 않는다면 몰라도 되고 알아도 되는 내용? 인가? 알아두면 좋긴하지.. 클로저를 알아보기전에 잠깐 알아야 될 것이 있다. 자바스크립트의 내부함수와 외부함수의 개념이다. 의미 자체는 간단하다. 내부함수는 함수 함수안에 함수가 있는 것이고 외부함수는 내부함수를 갖고 있는 함수를 외부함수라 한다. 간단하게 코드로 보자. function outterFunction(){ var outterNum = 10; function innerFunction(num){ return num + outterNum; } return innerFunction; } var outter = outterFunction(); alert(outter(10)); aler..
-
Spring Boot admin ui카테고리 없음 2023. 4. 20. 09:53
예전에 페이스북에서 잠깐 봤었다가 링크만 저장시키고 넘어간 것이 하나 있었다. Spring의 actuator을 이용해서 admin ui를 누군가가 만들었다. ui 도 깔끔하고 나쁘지 않다. 다만 지금 버전이 spring boot 1.3.3 이 최신이지만 1.4가 나오면 업데이트 해주겠지 한번 어떻게 설정 하지는지 살펴보자. 일단 모니터링할 서버를 만들자. 아주 간단하다 디펜더시만 추가해주고 어노테이션만 설정해주면 된다. de.codecentric spring-boot-admin-server 1.3.3 de.codecentric spring-boot-admin-server-ui 1.3.3 디펜더시를 추가해줬다. 다음으론 어노테이션을 추가해주자. @SpringBootApplication @EnableAdmi..
-
[DDD] 도메인 모델 (1)카테고리 없음 2023. 4. 20. 09:53
DDD 의 첫번째 시간이다. 도메인 도메인이란 무엇인가? 온라인 서점을 예를 들어보자. 어떤 책이 나왔는지 검색을하고 평가로 하고 장바구니에 담고 구매도 한다. 구매를 할 때는 카드를 사용하기도 하고 가상계좌을 사용하기도 한다. 개발자 입장에서 온라인 서점은 구현해야 할 소프트웨어이다. 책을 판매하는데 조회, 구매, 결제, 배송등의 기능을 제공해야 하는데 이때 온라인서점은 소프트웨어로 해결하고자 하는 문제영역, 즉 도메인에 해당된다. 특정 도메인을 위한 소프트웨어라고 해서 도메인이 제공해야 할 모든 것을 구현해야 하는 것은 아니다. 배송시스템을 구축하기보다는 외부 배송업체의 시스템을 사용하고 필요한 기능만 일부 연동한다. 도메인 모델 도메인 모델에는 다양한 정의가 존재하는데 기본적으로 도메인 모델은 특정..
-
DDD 도메인 주도 설계 구현카테고리 없음 2023. 4. 20. 09:53
저번주에 최범균님의 DDD책 도메인 주도 설계 구현과 핵심 개념 익히기를 샀다. 몇 개월전부터 DDD에 관심이 있었고 한번 코드로 짜봤지만 영 시원찮고 맞는지도 모르는 아니 더 이상해진 코드를 보고 잠시 묵혀든 코드가 있다. 필자는 DDD 한개도 모르는 초짜다. 그런데 마침 DDD책이 나와서 샀다. 일단 최범균님이 쓴 책이니 더 볼 것도 없이 믿고 걍 질렀다. (최범균님 책이 2권이나 있어서 뭐.. 조금 옛날 책이긴 하지만) 아직 책은 읽지는 않았지만 대충 훓어봤는데 일단 맘에 쏙든다. 일단 그 이유는 DDD의 입문책이다. DDD를 한개도 모르는 나에게 아주 주옥같은 책인 것이다. 책에도 나와 있지만 3~4년 정도 개발 경험이 있으면 내용을 이해하는데 좋다고 하니 딱 나다. 하하하 더더더 맘에 드는 이유..
-
ThreadLocal 이란?카테고리 없음 2023. 4. 20. 09:53
ThreadLocal 이란 무엇인가. 지금 이걸 쓰는 동안에도 잘 이해가 가지 않는다. 최범균님의 블로그중에 ThreadLocal 관한 블로그가 있는데 봐도 잘 모르겠다. 물론 쓰는법은 잘 알겠는데 어디에 써야 될지.. 개발 하다보면 언젠가는 나오겠지 { int a = 10; ... // 블록 내에서 a 변수 사용 가능 } // 변수 a는 위 코드 블록이 끝나면 더 이상 유효하지 않다. (즉, 수명을 다한다.) 반면에 ThreadLocal을 이용하면 쓰레드 영역에 변수를 설정할 수 있기 때문에, 특정 쓰레드가 실행하는 모든 코드에서 그 쓰레드에 설정된 변수 값을 사용할 수 있게 된다. 이런 내용이 있다. 한마디로 말해서 스레드 환경에서 전역 변수는 공유가 되니 로컬변수 인거 마냥 전역변수를 쓰겠다? 이말..
-
AsyncRestTemplate (비동기 RestTemplate)카테고리 없음 2023. 4. 20. 09:53
Spring 4에 추가된 AsyncRestTemplate을 간단하게 사용해보자. 클래스이름 그대로 비동기 RestTemplate이다. 우리가 흔히 쓰던 RestTemplate에서 비동기 역할만 하는 것으로 추정된다. RestTemplate과 비슷하게 AsyncRestOperations 인터페이스가 있고 그 구현체에 AsyncRestTemplate이 구현하고 있다. RestTemplate 역시 RestOperations인터페이스를 구현하고 있다. 사용법 역시 RestTemplate와 비슷하다. getForEntity, headForHeaders, postForLocation, postForEntity, put, delete 등 RestTemplate에 있는 것들 또한 여기에 있다. 그럼 아주 간단하게 사용..