[Git] 🔔 RPC failed; HTTP 400 curl 22 The requested URL returned error: 400 send-pack: unexpected disconnect while reading sideband packet
·
Git
개인 github의 TIL 레퍼지토리에 공부한 docs를 Push 하다가 발생한 Git Push Error에 대해 포스팅 해본다. 위 error는 찾아보니, 너무 많은 이미지 혹은 동영상을 Commit하게 되면 전송 타이밍에 가능한 packet용량을 초과한 것으로 보인다. 상황은 이렇다.(1) docs에 필요한 각 692KB, 401KB 크기의 png파일을 commit하고,(2) md 파일에 90 라인을 추가하고 commit한 것을 push 하였다. 아마도 png 파일 두 개의 용량으로 인한 git push error일 것으로 보인다. 참조 [1]번의 git config http.postBuffer 524288000 를 통해서 buffer size를 늘려준 뒤, 소스트리에서 다시 push를 하니 정상적으..
[DDD/도메인 주도 설계] 🏛️ chap2. 아키텍처 개요 - DIP
·
DDD
CHAPTER 2. 아키텍처 개요2. DIP| Dependency Inversion Principle, 의존 역전 원칙 고수준 모듈이 제대로 동작하려면 저수준 모듈을 사용해야 한다. 그런데, 고수준 모듈이 저수준 모듈을 사용하면 앞서 계층 구조 아키텍처에서 언급했던 두 가지 문제(구현 변경과 테스트가 어려움)가 발생한다. DIP는 이 문제를 해결하기 위해 저수준 모듈이 고수준 모듈에 의존하도록 바꾼다. 고수준 모듈을 구현하려면 저수준 모듈을 사용해야 하는데, 반대로 저수준 모듈이 고수준 모듈에 의존하도록 하려면 추상화한 인터페이스를 사용해야 한다. CalculateDiscountService 입장에서 룰 적용을 Drools로 구현했는지, Java로 직접 구현했는지는 중요하지 않다.단지, '고객 정보와 구..
[DDD/도메인 주도 설계] 🏛️ chap 2. 아키텍처 개요 - 아키텍처
·
DDD
CHAPTER 2. 아키텍처 개요1. 아키텍처🏛️ 네 개의 영역아키텍처의 전형적인 영역, '표현', '응용', '도메인', '인프라스트럭처'의 네 영역이다.웹 애플리케이션에서 표현 영역은 HTTP 요청을 응용 영역이 필요로 하는 형식으로 변환해서 전달하고, 응용 영역의 응답을 HTTP 응답으로 변환해서 전송한다.예를 들어, 표현 영역은 웹 브라우저가 HTTP 요청 파라미터로 전송한 데이터를 응용 서비스가 요구하는 형식의 객체 타입으로 변환해서 전달하고, 응용 서비스가 리턴한 결과를 JSON 형식으로 변환해서 HTTP 응답으로 웹 브라우저에 전송한다.표현 영역을 통해 사용자의 요청을 전달받는 응용 영역은 시스템이 사용자에게 제공해야 할 기능을 구현한다. 주문 취소 기능을 제공하는 응용 서비스를 예로 들면..
[JAVA] 객체지향 프로그래밍 - 클래스 기초
·
JAVA
(이 포스팅은 제대로 파는 자바 강의를 수강하고 공부한 내용을 올립니다.)1. 클래스 기초객체 object / 인스턴스 instance : 속성(프로퍼티)들과 기능(메소드)들의 묶음자바에서는 객체와 인스턴스를 같은 것으로 이해해도 됨인스턴스는 클래스에서 정의한 방식으로 양산됨 💡클래스 & 인스턴스 -> 프랜차이즈 본사 & 매장ex02☕️YalcoChicken.java// 본사의 코드public class YalcoChicken { // 인스턴스가 가질 필드(field)들 int no; String name; // 인스턴스가 가질 메소드 - 💡 static을 붙이지 않음 String intro () { // no와 name 앞에 this를 붙인 것과 같음 return ..
[DDD/도메인 주도 설계] 🏛️ chap 1. 도메인 모델 시작 - 도메인 용어
·
DDD
이 포스팅은 [DDD START! 도메인 주도 설계 구현과 핵심 개념 익히기 - 최범균]를 읽고 난 후에 이에 대한 내용을 정리하여 기록을 남기려고 합니다._Chapter 1. 도메인 모델 시작이번 포스팅은 chap 1. 의 마지막으로 도메인 용어에 대해 정리해보았습니다.도메인 용어코드를 작성할 때 도메인에서 사용하는 용어는 아주 중요하다. 도메인에서 사용하는 용어를 코드에 반영하지 않는다면 그 코드는 개발자에게 코드의 의미를 해석해야 하는 부담을 준다.ex) OrderState를 다음과 같이 구현했다고 가정해보자.public OrderState { STEP1, STEP2, STEP3, STEP4, STEP5, STEP6}실제주문상태는 '결제 대기중', '상품 준비중', '출고 완료됨', '배송중'..
[DDD/도메인 주도 설계] 🏛️ chap 1. 도메인 모델 시작 - 엔티티와 밸류
·
DDD
이 포스팅은 [DDD START! 도메인 주도 설계 구현과 핵심 개념 익히기 - 최범균]를 읽고 난 후에 이에 대한 내용을 정리하여 기록을 남기려고 합니다._Chapter 1. 도메인 모델 시작이번 포스팅은 chapter 1. 의도메인 모델엔티티와 밸류도메인 용어중에서 두 번째 엔티티와 밸류에 대해 정리해봤습니다.엔티티와 밸류엔티티엔티티의 식별자 생성밸류 타입엔티티 식별자와 밸류 타입도메인 모델에 set 메서드 넣지 않기엔티티와 밸류도출한 모델은 크게 엔티티(Entity)와 밸류(value)로 구분할 수 있다. 엔티티와 밸류를 제대로 구분해야 도메인을 올바르게 설계하고 구현할 수 있다. 그래서 이 둘의 차이를 명확하게 이해하는 것이 도메인을 구현하는데 있어 중요하다.엔티티엔티티의 가장 큰 특징은 식별자를..
[DDD/도메인 주도 설계] 🏛️ chap 1. 도메인 모델 시작 - 도메인 모델
·
DDD
이 포스팅은 [DDD START! 도메인 주도 설계 구현과 핵심 개념 익히기 - 최범균]를 읽고 난 후에 이에 대한 내용을 정리하여 기록을 남기려고 합니다._ Chapter 1. 도메인 모델 시작이번 chapter를 통해서 아래의 내용을 알아보았습니다. 도메인 모델엔티티와 벨류 도메인 용어이번 포스팅에서는 도메인 모델에 대해 정리해봤습니다. 도메인도메인 모델도메인 모델 패턴도메인 모델 도출도메인저는 저자분과 같이 책을 구매할 때 온라인 서점을 자주 이용한다. 개발자 입장에서 온라인 서점은 구현해야 할 소프트웨어의 대상이 된다. 온라인 서점 소프트웨어는 온라인으로 책을 판매하는 데 필요한 구매, 결제, 배송추적 등의 기능을 제공해야 한다.이 때, [온라인 서점]은 소프트웨어로 해결하고자 하는 문제 영역, ..
[Java] 📚 문자열 형변환 Object to String : Casting, valueOf, toString
·
JAVA
valueOf(Object obj) Returns the string representation of the Object argument. (Java docs) : 파라미터에 들어가는 Object (int, double ...)를 String 문자열 표현으로 바꿔서 반환한다. if the argument is null, then a string equal to "null"; otherwise, the value of obj.toString() is returned. (Java docs) : 파라미터가 null 이라면, String 문자열로 "null"이 반환되며, null 이 아니라면 toString() 함수값을 반환한다. Object.toString() In general, the toString me..
[Spring] 🌱ResponseEntity란 / Spring Boot에서 Response하기
·
Spring
웹 서비스에서는 많은 정보를 송수신하게 된다. 각각의 다른 웹 서비스들이 대화하려면, 서로 정해진 약속에 맞게 데이터를 가공해서 보내야 한다. 보내는 형식을 우리는 HTTP(HyperText Transport Protocol)이라고 한다. Spring에서도 마찬가지로 HTTP에 맞게 데이터를 송수신해야 한다. 요청에 대한 응답을 HTTP형식으로 코드로 직접 작성하는 것은 쉬운 일이 아니다. 이를 만들어주는 ResponseEntity를 통해서, 빠르게 쉽게 규격에 맞는 HTTP응답을 생성해보자. HTTP란? HTTP는 HyperText Transfer Protocol의 약자로, Client와 Server사이에 요청과 응답을 처리하는 규약이다. 해당 규약을 지키게 된다면 살펴보는 것만으로도 어떤 요청을 하는..
[MySQL]🐬GROUP BY 그룹화하여 데이터 조회
·
MySQL
GROUP BY MySQL에서 유형별로 개수를 가져오고 싶은데, COUNT함수로 데이터를 조회하면 전체 개수만을 가지고 온다. 유형별로 개수를 알고 싶을 때는 컬럼에 데이터를 그룹화할 수 있는 GROUP BY를 사용해야 한다. GROUP BY를 사용할 때는 두가지를 기억해야 한다. 특정 컬럼을 그룹화하는 GROUP BY, 특정 컬럼을 그룹화한 결과에 조건을 거는 HAVING. ※ WHERE과 HAVING을 헷갈리는 경우가 많은데 WHERE은 그룹화하기 전이고, HAVING은 그룹화 후의 조건이다. 사용법 컬럼 그룹화 SELECT 컬럼 FROM 테이블 GROUP BY 그룹화할 컬럼; 조건 처리 후에 컬럼 그룹화 SELECT 컬럼 FROM 테이블 WHERE 조건식 GROUP BY 그룹화할 컬럼; 컬럼 그룹화..