Skip to content

Instantly share code, notes, and snippets.

### Keybase proof
I hereby claim:
* I am sungjaehong on github.
* I am sungjae89 (https://keybase.io/sungjae89) on keybase.
* I have a public key ASAUAMYhtKylBY6w9tjBuWBPthTtkC5YGmTox5twSi8mgAo
To claim this, I am signing this object:

./gradlew clean build git checkout test

@sungjaeHong
sungjaeHong / DDD(1).md
Created February 4, 2018 08:40
DDD(1/n)

도메인 영역의 주요 구성요소 앞서 네 영역에 대해 설명하면서 도메인 영역은 도메인의 핵심 모델을 구현한다고했다. 도메인 영역의 모델은 도메인의 주요 개녀을 표현하며 핵심이 되는 로직을 구현한다. 1장에서 살펴본 entity와 value타입은 도메인 영역의 주요 구성요소이다. 이 두 요소와 함께 도메인 영역을 구성하는 요소는 아래와 같다.

엔티티 : 고유의 실벽자를 갖는 객체로 자신의 라이프사이클을 갖는다. 주문(Order), 회원(Member), 상품(Product)과 같이 도메인의 고유한 개념을 표현한다. 도메인 모델의 데이터를 포함하며 해당 데이터와 관련된 기능을 함께 제공한다.

밸류 : 고유의 식별자를 갖지 않는 객체로 주로 개념적인 하나의 도메인 객체의 속성을 표현할 때 사용한다. 배송지 주소를 표현하기 위한 주소(Address)나 구매 금액을 위한 금액(Money)과 같은 타입이 밸류타입이다. 엔티티의 속성으로 사용될 뿐만 아니라 다른 밸류 타입의 속성으로도 사용될 수 있다.

@sungjaeHong
sungjaeHong / HATEOAS-example.php
Last active August 28, 2017 07:11
HATEOAS php parse
http://localhost:8080/contacts/pages?size=5&page=2
/*
{
"page": 2,
"message": null,
"status": "SUCCESS",
"errors": null,
"size": 5,
"content": [
{
@sungjaeHong
sungjaeHong / study.md
Created October 31, 2016 11:25
개념공부

#[ ORM ]

  1. 데이터베이스를 배제하고 비지니스 로직을 짤 수 있다.
  2. 자바는 OOP고 DB는 관계형이기때문에 구조설계가 중요하다.
  3. 차근차근 한단계씩 해결하며 고민해나간다.
  4. 객체를 기반으로 테이블이 자동으로 생성된다(pkey, fkey 등)
  5. 소스랑 DB랑 싱크를 맞출 수 있다.
  6. 개발 -> 운영으로 넘어갈 때 변경된 스키마를 하나하나 찾을 필요가 없다.

#[ DDD(Domain Driven Design) - Modeling ]

  • 모델링 기법

#5-2 프로그램은 나만의 언어를 만들어가는 과정이다.

  • 가장 중요한건 함수의 이름!

__proto__를 통해 Object에 바로 프로토타입 체이닝을 쓸 수 있다.

//기존의 체이닝
var ONLY_FOR_CHAIN = {}
parent = function(){

#5-1

Promise를 쓰면 callback지옥에서 벗어난다는건 틀리다.
벗어날 수 있다는 것이지 무조건적으로 벗어난 다는 것이 아님.
인터프리터가 제어하는 것이 아닌 개발자가 제어할 수 있다는 장점이 있음.

##Drag & Drop event handler

let mousedown = e => {
@sungjaeHong
sungjaeHong / ECMA script 2015(4-2).md
Created October 27, 2016 12:36
ES6 네번째 스터디

#Promise ##thenable의 의미

  • 기존의 모든 비동기처리는 즉발성이므로 비동기를 통보하는쪽이 주도권을 쥐고있음.
  • 수신하는쪽에서 원할 때 ㅓ리하려면 비동기를 시작하는 행위 자체를 객체화할 필요가 있음.
  • 이러한 포괄적인 비동기 행위에 대한 객체정의에 적용되는 프로토콜이 thenable이다.
ajax.load(url, listener);		//loaded가 이루어지면 listener를 호출한다.

//thenable
@sungjaeHong
sungjaeHong / oop.md
Created October 11, 2016 10:09
객체지향프로그래밍(OOP)의 특징.md

#객체지향(OOP)의 특징

##추상화

  • 공통의 속성이나 기능을 묶어 이름을 붙이는 것
  • 추상화가 가능한 개채들은 개체가 소유한 특성의 이름으로 하나의 집합(class)를 이룬다.
  • 객체지향적 관점에서 클래스를 정의하는 것도 추상화라고 정의가 가능하다.
  • 예를들어 사과, 배, 포도라는 객체가 있을 때 이것들을 과일으로 묶으며 추상화가 가능하다.

#캡슐화

  • 낮은 결합도를 유지할 수 있도록 해주는 객체지향 설계원리.

#ECMA Script 2015 둘째날 ##Execution Context

  • 함수는 호출시마다 고유한 실행컨텍스트를 생성한 뒤, 이를 활용하여 함수의 내용을 실행해간다.
  • c의 함수는 메모리를 할당했다가 풀면 되지만 javascript의 함수는 c에서 제공한 가짜메모리를 사용하므로 매우 무겁다.
  • javascript의 핵심은 chain이다.
const test = function(){};
test(); new EC_test()	//함수를 호출하면 EC객체를 만들어낸다. 호출100번하면 EC객체는 100개만들어진다.