일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- annotation
- double dispatch
- 토비의 봄
- Modelmapper
- ngrok
- line messaging api
- Visitor pattern
- spring
- springboot
- Optional
- enum
- NullPointerException
- webhook
- java
- linebot
- Dynamic dispatch
- DtoToEntity
- 챗봇
- reflection
- Controller
- mapping
- EntityToDto
- getOrCreate
- visitor proxy pattern
- static dispatch
- Today
- Total
목록전체 글 (16)
database by narae :p
Objective 💡 JPA 연관 관계가 있는 엔티티를 생성하기 위해서는 연관 엔티티를 var nullable 타입으로 선언하여 생성해야 합니다. 하지만 데이터로 보았을 때 해당 엔티티는 var 타입도 nullable 타입도 아니길 원하는 경우 val non-nullable 타입으로 설정하고 JPA 엔티티를 생성하는 패턴에 대해 공유합니다. Background OrderEntity.kt OrderProductEntity.kt OrderService.kt @Service class OrderService( private val orderRepository : OrderRepository ) { fun saveOrder(param : OrderCreateParam) { val order = OrderEnti..
Objective 💡 JPA의 @OneToMany 연관 관계에서 연관 엔티티가 open class 인 경우 read-only 컬렉션을 사용하지 못하고 Mutable 컬렉션을 사용하도록 하는데, 원인과 read-only 컬렉션을 사용할 수 있는 해결 방안을 공유합니다. Background build.gradle.kts allOpen { annotation("javax.persistence.Entity") annotation("javax.persistence.MappedSuperclass") annotation("javax.persistence.Embeddable") } OrderEntity.kt OrderProductEntity.kt Error Message One To Many 속성 값의 데이터는 ‘? ..
테스트 주도 개발로 배우는 객체 지향 설계와 실천 5장. 테스트 주도 개발 주기의 유지 5.1. 각 기능을 인수 테스트로 시작하라 실패하는 인수 테스트를 작성하는 것으로 신기능을 작업하는데 착수한다. 인수테스트는 우리가 작성하려는 기능을 아직 시스템에서 갖추지 못했다는 사실을 보여주고 그 기능이 완성되기까지 진행 상황을 반영한다. 인수 테스트 : 응용 도메인에서 나온 용어만 이용한다. (기반 기술. db 등 용어가 아닌) => 자동으로 확인 가능한 형태로 요구 사항을 정확하게 표현하면 분명하게 드러나지 않는 가정을 밝히는데 도움이 된다. => 실패하는 테스트 덕에 요구사항을 충족하는 데 필요한 만큼의 기능만 구현하는 데 집중할 수 있어 기능을 완성할 가능성이 높아진다. => 사용자 관점에서 시스템을 바라..
테스트 주도 개발로 배우는 객체 지향 설계와 실천 4장. 테스트 주도 주기 시작 테스트는 인수테스트의 일환으로 전 구간을 대상으로 실행되어 시스템의 외부 인터페이스에 관해 필요한 피드백을 줘야하는데, 이는 자동화된 빌드/배포/테스트 주기 전체를 구현해야 함을 의미한다. 4.1. 우선 동작하는 골격을 대상으로 테스트하라 ‘동작하는 골격’을 대상으로 빌드, 배포, 테스트하는 방법을 파악한 다음, 그 기반 구조를 이용해 유의미한 첫 기능에 대한 인수 테스트를 작성한다. 그 후에는 시스템의 나머지 부분을 대상으로 테스트 주도 개발을 진행할 수 있게 모든 것이 제자리에 놓일 것이다. 동작하는 골격 : 전 구간을 대상으로 자동 빌드, 배포, 테스트를 할 수 있는 실제 기능을 가장 얇게 구현한 조각을 말한다. 테스트..
테스트 주도 개발로 배우는 객체 지향 설계와 실천 3장. 도구 소개 3.2. JUnit4 리플렉션을 통해 클래스 구조를 파악한 후 해당 클래스 내에서 테스트를 나타내는 것을 모두 실행 테스트 케이스 : @Test Junit4에서는 테스트를 실행할 때 테스트 클래스의 새 인스턴스를 생성한 후 적절한 테스트 메서드를 호출한다. 매번 새 테스트 객체를 생성하기 때문에 각 테스트 간의 격리성을 확보할 수 있다. 단정 테스트 대상 객체를 호출하고 그 결과를 단정(aseertion) - assertTrue() - aseertNull() - aseertEquals() 예외 예상 @Test(expected=….Exception.class) 테스트 픽스처 : 테스트가 시작할 때 존재하는 고정된 상태 - 테스트가 반복 가..
테스트 주도 개발로 배우는 객체 지향 설계와 실천 2장. 객체를 활용한 테스트 주도 개발 2.1. 객체망 객체지향설계 : 객체 간의 의사소통에 집중. 협업하는 객체의 망 2.2 값과 객체 값 : 변하지 않는 양이나 크기 객체 : 시간이 지남에 따라 상태가 변할지도 모르지만 식별자가 있는 계산 절차 2.3. 메시지를 따르라 다른 객체와 쉽게 관계를 맺을 수 있게 객체를 설계하면, 고수준의 선언적 접근법이 주는 혜택을 누릴 수 있다. 객체가 일반적인 의사소통 패턴을 따르고 객체 간의 의존성이 명시적임을 의미한다. 의사소통 패턴 : 객체들이 다른 객체와 상호작용하는 방법을 관장하는 각종 규칙으로 구성 객체 역할 : 관련된 책임의 집합 책임 : 어떤 과업을 수행하거나 정보를 알아야할 의무 협력 : 객체나 역할의..
테스트 주도 개발로 배우는 객체 지향 설계와 실천 1장. 테스트 주도 개발의 핵심은 무엇인가? 1.1 학습 과정으로서의 소프트웨어 개발 소프트웨어 프로젝트 : 사람 + 응용 분야 + 기술 등 미처 예상하지 못한 요소가 많음 개발자들은 구성 요소의 동작 방식을 배우면서 프로젝트를 마무리한다. : 불확실한 변화를 예측하려면 경험이 늘어남에 따라 불확실성을 해결하는데 도움이 될 프로세스가 필요하다. 1.2. 피드백은 가장 기본적인 도구다 경험에 의거한 피드백을 이용해 시스템과 그 용도에 관해 배운 후, 그 배운바를 시스템에 적용 배포 : 내린 가정을 검사할 기회 => 실제 진행 상황을 측정하고, 오류를 탐지하고 수정하고, 배운 바에 따라 현재 계획을 조정한다. 점진적이고 반복적인 개발 : 중첩된 피드백 고리의..
# 단일 서버 git clone https://github.com/deviantony/docker-elk.git cd docker-elk vi elasticsearch/config/elasticsearch.yml xpack.security.enabled: false docker stack deploy -c docker-stack.yml elk docker ps docker service ls ## 레플리카 모드 vi docker-stack.yml elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.6.2 ports: - "9200" - "9300" configs: - source: elastic_config target: /usr/..