Kotlin을 개발하다 보면 listOf()와 emptyList()를 자주 사용하게 되는데, 두 함수의 내부가 궁금해졌다. 결론부터 적어보자면, 표현식이 다를 뿐 listOf()와 emptyList()는 Immutable List를 만들어내는 함수들이다. 아래는 이에 대해 알아본 내용이니 시간 있다면 한 번 보는 것도 나쁘지는 않다. 일단 emptyList와 listOf는 모두kotlin.collections 패키지 안에 포함되어있다. Kotlin에서 제공하는 Collection 지원들인데, 그렇다면 어떤 것이 다를까? 일단 emptyList의 코드는 아래와 같다. /** * Returns an empty read-only list. The returned list is serializable (JVM)..
본 글은 해석한 내용이며 원문 링크는 하단에 있습니다. Cassandra vs. MongoDB Cassandra나 MongoDB를 다음 프로젝트의 데이터베이스로 생각하고 있으신가요? 두 데이터베이스를 비교하고 싶으신가요? Cassandra 와 MongoDB 모두 NoSQL 데이터베이스이지만 사실 둘은 매우 다릅니다. 그들은 매우 다른 능력과 방향성을 갖고 있으므로 미묘한 차이를 갖고 있습니다. 두 데이터베이스 중 어느 것도 RDBMS를 대체하지는 않으며 ACID를 보장하지도 않습니다. 만약 당신이 이러한 트랜잭션 단위의 작업이 주된 요구사항이라면 이러한 데이터베이스는 적합하지 않습니다. 이러한 경우에는 MySQL이나 PostgreSQL, Oracle과 같은 트랜잭션을 지원하는 관계형 데이터베이스를 사용하..
Atlassian의 Confluence를 세팅하는데 에디터 부분에서 자꾸 에러가 났다. 개발자 콘솔로 뜯어본 결과 통신형태에서 http 프로토콜 뿐만 아니라 websocket도 병행적으로 요청이 일어났으며 데이터 동기화를 유지하도록 하는 것이 목적인듯 보였다. Confluence는 기본적으로 8090번 포트를 사용하는데 http뿐만 아니라 websocket의 경우도 Apache의 Reverse Proxy기능을 이용하여 80에서 8090으로 포워딩이 필요했다. 결론부터 말하자면 proxy_wstunnel 뿐만 아니라 rewirte 모듈도 필요한 케이스였다. (ProxyPass로는 별 짓을 다 해봤는데 못찾은건지 몰라라도 안됐음) Web Socket 요청이 들어갈 때 Http Request Header에 C..