일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 최범균
- 큐시즘
- ddd
- 도메인 주도 개발 시작하기
- 교육기획팀
- Spring
- 영속성
- cicd
- rabbitmq-delayed-message-exchange
- reactive operaton
- delayed message plugin
- 자동처리
- JPA
- GitHub Actions
- JPQL
- java
- 밋업프로젝트
- 이펙티브자바
- Domain Driven Design
- RESTClient
- 30기
- 객체지향 쿼리 언어
- 한국대학생it경영학회
- jdbc
- scheduling messages with rabbitmq
- 교육기획팀원
- 자바 ORM 표준 JPA 프로그래밍
- Spring Batch
- springboot
- kusitms
- Today
- Total
목록분류 전체보기 (69)
코딩은 마라톤
오랜만에 블로그 작성하네요,,,회사 적응 중이라 개인 공부를 하기 쉽지 않네요.. 는 변명이고 퇴근하고 집에 오면 너무 졸려요...ㅜ 뜬금없이 작성하는 이유는? 어제 코드 리뷰를 받다가 제가 이러한 코드를 작성했습니다.// 예시public static Computer of(Cpu cpu) { cpu = cpu != null ? cpu : gpu; // gpu는 cpu와 다른 예시 값입니다. ...} 코드 작성할 때"새로운 객체 생성하는 것보다 매개변수 객체를 재사용 하는 것이 낫겠군..!" 과 같이 생각하고 짯는데 메소드 개발 시 매개변수에 값을 할당하는 로직은 위험합니다참조 객체에 메소드 실행 후 set처리 되어 값 조작이 발생 가능합니다 위와 같은 코드리뷰를 받았습니다. 곰곰이 생각..

요새 인프런에서 토비의 스프링부트 이해와 원리를 듣고 있는데 내가 스프링부트로 개발을 하고 있지만 서블릿, 디스패처 서블릿, 스프링 컨테이너, 빈 등에 대해 잘 모른다는 것을 알게 되었다.그중 서블릿과 서블릿 컨테이너는 거의 아는게 없었기 때문에 이번 기회에 정리하고자 한다. 서블릿 (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..
경로 표현식경로표현식이란 .(점)을 찍어 객체 그래프를 탐색하는 것이다.select m.usernamefrom Member m join m.team t join m.orders owhere t.name = '팀A' 위 쿼리에서 m.username, m.team, m.orders, t.name 모두 경로 표현식을 사용한 예다. 용어 정리상태 필드 : 단순히 값을 저장하기 위한 필드 (필드 or 프로퍼티)연관 필드 : 연관관계를 위한 필드, 임베디드 타입 포함 (필드 or 프로퍼티)단일 값 연관 필드 : @ManyToOne, @OneToOne, 대상이 엔티티컬렉션 값 연관 필드 : @OneToMany, @ManyToMany, 대상이 컬렉션경로 표현식과 특징상태 필드 경로 : 경로 탐색의 끝이다. ..

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..
지금 4일째? 블로그를 작성하지 않고 있습니다..그 말은 즉슨 책을 4일 동안, 총 12 아이템이나 놓쳐버린거죠.. 사실 지금 이펙티브 자바를 읽으면서 고민 거리가 생겼습니다.이펙티브 자바를 읽으면서 신기한 주제도 많지만 생각보다 많이 어렵습니다.. (제가 모르는 걸 더 찾고 공부해야하는데 하지 않음)책만 읽고 블로그를 쓴다고 지식이 느는 게 아닌데 말이죠,,,학습이라는 게 "배울 학 + 익힐 습" 인데 저는 배움만 실천하고 있습니다.. 회사를 다니면서 궁금한게 많이 생깁니다.예를 들면, 조회하는 클래스(메서드)에서 @Transactional(readonly=true)로 하면 성능상 이점이 생기는 이유라던가...Optional 객체를 스트림할 때 flatMap()을 통해 꺼내올 수 있다던가...왜 실무에..
아이템 29. 이왕이면 제네릭 타입으로 만들라Object 기반 스택 public class Stack { private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public Stack() { this.elements = new Object[DEFAULT_INITIAL_CAPACITY]; } public void push(Object e) { elements[size++] = e; } public Object pop() { if (size == 0) { throw..
5장 제네릭자바 5부터 사용 가능제네릭을 사용하면 컴파일러에게 타입을 알려주어 더 안전하고 명확한 프로그램을 만들어 준다. 아이템 26. 로 타입은 사용하지 마라제네릭 타입클래스, 인터페이스 선언에 타입 매개변수가 쓰인 것List 인터페이스는 원소의 타입을 나타내는 타입 매개변수 E를 받는다. 제네릭 타입은 일련의 매개변수화 타입(parameterized type)을 정의한다.클래스(혹은 인터페이스) 이름에, 꺾쇠괄호 안에 실제 타입 매개변수 나열ex) List : String이 정규 타입 매개변수 E에 해당하는 실제 타입 매개변수 로 타입(raw type)제네릭 타입에서 타입 매개변수를 전혀 사용하지 않는 타입타입 선언에서 제네릭 타입 정보가 전부 지워진 것처럼 동작private final List l..