일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 객체지향 쿼리 언어
- 이펙티브자바
- rabbitmq-delayed-message-exchange
- 30기
- delayed message plugin
- java
- RESTClient
- reactive operaton
- 교육기획팀
- 한국대학생it경영학회
- GitHub Actions
- 자바 ORM 표준 JPA 프로그래밍
- 도메인 주도 개발 시작하기
- ddd
- 최범균
- Domain Driven Design
- 밋업프로젝트
- kusitms
- JPA
- 큐시즘
- 영속성
- jdbc
- cicd
- JPQL
- scheduling messages with rabbitmq
- 교육기획팀원
- 자동처리
- Spring Batch
- springboot
- Spring
- Today
- Total
목록Backend (32)
코딩은 마라톤

주의제목은 거창하지만 내용은 그렇지 않을 수 있습니다.. 최근에 생긴 고민큐시즘 동아리를 하면서 스터디와 2달 간 진행하는 밋업 프로젝트를 진행하고 있습니다.여러 활동을 진행하고 다양한 사람들을 만나면서 여러 안목을 쌓고 있는 와중에 고민이 생겼습니다. 누군가에게 내가 아는 내용을 알려줄 때, 그러나 확실하지 않은 내용일 때, (내 주관대로 내용을 정의하였을 때)1. 내가 아는 선에서 최대한 설명을 해준다. 애매모호함을 곁들인,,2. 모른다고 한다. 위의 고민거리가 대체 무슨 말이지?! 라고 이해 못하실 독자분들도 계실 거 같아 두 가지 예시를 들어 설명하겠습니다. 예시 1. MSA에서 다른 도메인의 정보를 어떻게 가져와야할까요?백엔드 스터디인 "큐백" 에서 스터디를 진행하고 있습니다.큐백에서는 여러 도..

애그리거트개발할 때 상위 수준 개념을 이용해서 전체 모델을 정리하면 전반적인 관계를 이해하는 데 도움이 된다.↔ 도메인 객체 모델이 복잡해지면 개별 구성요소 위주로 모델을 이해하게 되고, 전반적인 구조나 큰 수준에서 도메인 간의 관계를 파악하기 어려워진다.→ 코드 유지보수성 및 확장성이 어려워진다.→ 복잡한 도메인을 이애하고 관리하기 쉬운 단위로 만들기 위해 상위 수준에서 모델을 볼 수 있어야 하는데 이 방법이 바로 "애그리거트" 다. 애그리거트는 모델 이해 뿐만 아니라 일관성을 관리하는 기준이 된다.애그리거트는 관련된 모델을 하나로 모았기 때문에 한 애그리거트에 속한 객체는 유사하거나 동일한 라이프 사이클을 갖는다.주문 애그리거트 생성 시 Order만 생성하면 안되고 관련 객체를 함께 생성해야 한다.애..

4개의 영역표현, 응용, 도메인, 인프라스트럭처 는 아키텍처를 설계할 때 출현하는 전형적인 4가지 영역이다.표현 : 사용자의 요청을 받아 응용 영역에 전달 및 처리 결과를 사용자에게 보여주는 역할스프링 MVC 프레임워크가 표현 영역을 위한 기술에 해당응용 : 시스템이 사용자에게 제공해야 할 기능 구현기능을 구현하는데 도메인 영역의 도메인 모델을 사용한다.public class CancelOrderService { @Transactional public void cancelOrder(String orderId) { Order order = findOrderById(orderId); if (order == null) throw new OrderNotFoundException(orderId); // 도..

책 선정개발 방법론은 여러 개있는 걸로 알고 있다.예를 들면, 테스트 주도 개발(TDD), 도메인 주도 개발(DDD), 리드미 주도 개발(?) 등등TDD나 DDD를 공부해서 동아리 프로젝트때 도입시키고 싶은 욕구? 욕망? 이 컸다. TDD와 DDD 중에 DDD를 선택한 이유는 TDD보다 쉽지 않을까..? 라는 생각이 가장 컸다.TDD는 아무래도 테스트 코드 작성하는 과정이 좀 복잡할 거라고 생각했다. (물론 DDD 공부 후에 할거지만,,)그리고 1달 뒤에 시작하는 프로젝트에서 도입하려면 TDD보다는 DDD가 더 낫지 않을까 생각했다. (프로젝트에 도입할 수 있을까,,,)또 다른 이유로는 전 회사에서 DDD로 프로젝트를 진행하셨던 거 같은데 이미 프로젝트가 완성된 상황에서 입사한 상태였어서 패키지 구조나 ..

요새 인프런에서 토비의 스프링부트 이해와 원리를 듣고 있는데 내가 스프링부트로 개발을 하고 있지만 서블릿, 디스패처 서블릿, 스프링 컨테이너, 빈 등에 대해 잘 모른다는 것을 알게 되었다.그중 서블릿과 서블릿 컨테이너는 거의 아는게 없었기 때문에 이번 기회에 정리하고자 한다. 서블릿 (Servlet)서블릿이란 무엇일까?서블릿에 대해 알아보기 전에 웹 서버, 웹 애플리케이션 서버(WAS)를 알아봅시다. 웹 서버 (Web Server)웹사이트를 제공할 수 있게 서버로 만들어주는 서비스클라이언트가 특정 주소를 입력 시 특정 화면을 브라우저에서 출력해주는 역할정적인 웹 사이트를 제공웹 애플리케이션 서버 (Web Application Server)자바, JSP 등으로 만든 웹 또는 API 애플리케이션을 실행할 ..
회사에서 ElasticSearch 조회할 때 CriteriaQuery 만들어봤는데 JPA에도 Criteria 쿼리가 있다니.. 신기방기 CriteriaJPQL을 자바 코드로 작성할 수 있게 도와주는 빌더 클래스 API코드로 JPQL을 작성함으로써 컴파일 단계에서 문법 오류를 잡을 수 있고 동적 쿼리를 안전하게 생성 가능코드가 복잡하고 장황해서 직관적으로 이해하기 힘든 단점 기초//JPQL: select m from Member mCriteriaBuilder cb = em.getCriteriaBuilder(); //Criteria 쿼리 빌더 O//Criteria 생성, 반환 타입 지정CriteriaQuery cq = cb.createQuery(Member.class);Root m = cq.from(Memb..

JPQL 소개JPQL(Java Persistence Query Language)은 엔티티 객체를 조회하는 객체지향 쿼리이다.테이블을 대상으로 쿼리하지 않고 엔티티 객체를 대상으로 쿼리한다.JPQL은 SQL을 추상화해서 특정 데이터베이스에 의존하지 않는다.JPQL은 SQL보다 간결하다.기본 문법과 쿼리 APIJPQL은 SQL과 비슷하게 SELECT, UPDATE, DELETE 문을 사용할 수 있지만 INSERT는 없다.(엔티티 저장 시 EntityManager.persist() 메서드 사용하기 때문이다.) SELECT 문예시SELECT m FROM Member AS m where m.username = ’Hello' 대소문자 구분엔티티와 속성은 대소문자를 구분하지만, SELECT, FROM과 같은 JPQL..

근황...요즘 블로그 쓰는게 뜸하죠... 제가 이번주부터 회사 인턴으로 백엔드 개발자로 근무하게 되었습니다 !!!!!많이 부족한 실력이지만 개인 공부도 열심히 하고 회사 일도 꼼꼼하게 해서 3개월 뒤에 좋은 개발자가 되었음 좋겠습니다~! P.S 회사에서 사용하는 제 영어 이름은 Koi (코이) 입니다. 책에서 읽고 저의 모토랄까나.. 가치관과 가장 잘 맞는다고 생각해서 지었습니당https://www.onday.or.kr/wp/?p=13410 (고른 이유가 궁금하시다면 이 글을 읽어보세요!) 회사에는 좋은 개발자들과 제가 성장할 수 있는 환경을 충분히 제공해주신 만큼 열심히 노력해서 코이처럼 대인이 되었음 좋겠습니다.또한 성장에 그치지 않고 주변의 개발을 꿈꾸는 분들에게 좋은 환경을 제공해서 또 다른 코..