챕터1 Time and Change Software를 장기적으로 유지보수가능하게 하는 작업은 지속적인 전투(constant battle)이다. Hyrum’s Law API의 충분한 사용자가 있는 경우, 주어진 계약에서 무엇을 약속하는지는 중요하지 않다. : 모든 관찰가능한 당신의 시스템의 행위가 다른 누군가에 의해 의존될 것이다. ...
Finance TIL
2023-03-05 leverage : 부채를 갖고 하는 투자 stable coin : 가격 변동서어을 최소화하도록 설계된 암호화폐, 1달러를 예금할 경우 1코인을 발행해줌으로써 암호화폐의 1대 1가치를 유지하며, 이를 pegging 이라고 말한다.
Effective Go
Package name은 lower case, single-word names; there should be no need for underscores or mixedCaps Getters : Get을 prefix로 붙이지 않는다. Setter의 경우는 Set을 prefix로 붙일수 있다. Interface Names ...
9 Password Storage Best Practices
9 Password Storage Best Practices Protect your databases and containers : DB나 컨테이너에 대한 접근을 보호 Hash all passwords : hash는 encryption key가 없으므로 원문으로 되돌릴수 없다. Use a strong...
TIL
2022-09-13 new(T) vs Make(T) new(T) allocates zeroed storage for a new item of type T and returns its address as a value of type *T make(T) returns an initialized value of type ...
Concurrency in Go
1. 동시성 소개 라이브락이란 프로그램들이 활동적으로 동시에 연산을 수행하고는 있찌만, 이 연산들이 실제로 프로그램의 상태를 진행시키는데 아무런 영향을 주지 못하는 의미 없는 연산 상태를 의미한다. 동기화된 메모리 접근에는 비용이 많이 들기 때문에 임계 영역 너머까지 잠금을 확장하는 것이 유리할 수 있다. 반면에 이렇게 하면 다른 동시 프로세...
gRPC vs REST
gRPC vs REST REST 장점 additional technology 필요없음 단점 url path와 http method의 조합으로 디자인하는데 상당한 노력이 필요 ...
Passing Slice To Parameter
Go lang parameter에 slice 전달하기 Go function에 전달된 파라미터들은 기본적으로 value 이다. slice를 주소로 넘기느냐 값으로 넘기느냐에 따라서 결과가 달라지는데 아래 예시를 보자. func modifySlice(innerSlice []string) { fmt.Printf("%p %v %p\n", &am...
scala 코드예제
nscala를 사용해서 지난 시간 데이터 가져오기 import org.apache.spark.sql.DataFrame import com.github.nscala_time.time.Imports._ import org.apache.spark.sql.functions._ def getDataFrameForInterval(interval:Int) : ...