전체 글
![[코틀린 완벽 가이드] 1장 : 강력하고 실용적인 코틀린](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FkCrR7%2FbtrzYFBrilL%2FAAAAAAAAAAAAAAAAAAAAAOrRa966vrRs98X-HnlMNC71gGs5H3RZEskAJwdkJrSL%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DbeE8iJfo%252FqaKDTWV1C5lSFRewlU%253D)
[코틀린 완벽 가이드] 1장 : 강력하고 실용적인 코틀린
코틀린이란 무엇인가? 코틀린은 안전성, 간결성, 상호 운용성을 강조하는 다중 패러다임, 다중 플랫폼 프로그래밍 언어이며 자바 가상 머신(JVM), 안드로이드, 자바스크립트, 네이티브 애플리케이션 등과 같은 여러 플랫폼을 지원한다. 안전성 코틀린의 설계 목표 중 하나는 언어의 안전성에 관한 트레이트 오프의 황금비를 찾아내는 것이었다. 즉, 자바보다 더 안전성을 보장하는 언어를 설계하되, 자바보다는 개발자의 생산성을 덜 해치는 언어를 만드는 것이었다. 타입 추론(type inference)으로 인해 개발자가 명시적으로 타입을 지정하지 않아도 된다. Null 이 될 수있는 타입(nullable type)을 통해 null 의 사용을 제한할 수 있고, 악명 높은 NullPointerException 예외를 좀 더..

막쓰는 기록
#코로나_확진 결국 3월 말에 코로나에 걸렸다. 증상이 심하지는 않았고 목감기 정도였지만 강제로 일주일 넘게 방 안에 갇히니까 힘들었다. 코로나 아니어도 원래 집에서 잘 안 나오는데 자의가 아니고 갇히니까 나가고 싶어서 몸이 근질근질했다. 그리고 한창 증량중이었는데 체중도 2kg 정도 빠졌다. 후... 그나마 다행인 건 내장지방 위주로 감소했다는 거? 할 게 없어서 넷플릭스로 귀멸의 칼날을 정주행 했다. 사실상 호흡의 칼날이라고 부르는 게 맞는 듯. 재미는 있다. #격리해제 #여의도 #클라이밍 자가격리가 끝난 뒤가 마침 생일이라 친구들과 한강으로 놀러 갔다. 평일이었는데도 사람이 진짜 많았다. 아니 이 사람들은 출근 안 하나... 별거 한건 없고 그냥 돗자리 펴고 앉아서 먹고 떠들었다. 꽃은 많이 폈더라..

Onion Architecture란?
Onion Architecture 란? Onion Architecture는 제어의 역전 원칙을 기반으로 도메인 및 서비스 계층을 애플리케이션의 중심에 배치하고, 인프라스트럭쳐를 외부에 배치하는 아키텍처입니다. Onion Architecture는 기존의 3 계층 아키텍쳐와 같이 데이터 계층에 의존하지 않고 실제 도메인 모델에 의존합니다. 기존의 3계층 아키텍처는 모든 계층이 Data Access 레이어 위에 존재해 해당 레이어에 변경사항이 발생하면 모든 레이어에 변경이 발생하는 단점이 있습니다. 반면, Onion Architecture에서는 데이터베이스 유형에 따라 달라지지 않는 저수준의 객체 모델만이 존재하며, 데이터베이스의 실제 유형과 데이터 저장 방법은 Infrastructure 계층에서 결정됩니다...
![[찍어먹기] Spring Boot 부터 ELK Stack 까지 :: 트러블슈팅 (1) - Elasticsearch](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fc9uu6l%2FbtrvQf0EKAN%2FAAAAAAAAAAAAAAAAAAAAADNOYDJdIE0JsZVck6Uk-os8thbWQlwmPMLCnYZlRYPM%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D67%252F7l22axk2pHlxMn9geqtSbLJM%253D)
[찍어먹기] Spring Boot 부터 ELK Stack 까지 :: 트러블슈팅 (1) - Elasticsearch
앞선 포스팅에서는 로컬 develop 환경이어서 아무런 문제없이 Elasticsearch를 구성할 수 있었는데요. 다수 서버의 프로덕션 환경에서는 많은 문제가 발생해 꽤나 고생했습니다. 이번 포스팅에서는 Elasticsearch를 프로덕션 환경에 구성하면서 겪었던 문제와 해결 과정을 소개하려고 합니다. Elastic Stack 구성 우선 제게 허락된 서버는 2대였습니다. 그런데 Elasticsearch는 최소 3개의 노드가 필요하기 때문에 좀 더 성능이 나은 서버에 두 개의 노드를 구성했습니다. External Network 🟩 외부망에서 접근 가능한 루트입니다. L4 스위치를 경유해 두 개의 서버에 로드 밸런싱이 되도록 했습니다. Internal Network 🟥 내부망에서만 접근 가능한 루트입니다. ..
![[Elasticsearch] 마스터노드 선출 실패 오류](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FuL9xi%2FbtrwagzkDtM%2FAAAAAAAAAAAAAAAAAAAAAJ0u931CZErSpyi4yu8K8owslBnDHe1yUbCzeI_65Xeu%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DZ78UwmAuRBUkLBSm9mddmel7z0o%253D)
[Elasticsearch] 마스터노드 선출 실패 오류
Elasticsearch 클러스터는 하나 이상의 노드들로 이루어집니다. 이 중 하나의 노드는 인덱스의 메타 데이터, 샤드의 위치와 같은 클러스터 상태 정보를 관리하는 마스터 노드의 역할을 수행합니다. 만약 클러스터에 마스터 노드가 존재하지 않는다면 클러스터는 작동이 정지됩니다. Elasticsearch를 Docker 환경에서 구동하는 경우, 공식 가이드에서 아래와 같이 클러스터의 마스터 노드 후보를 지정하도록 가이드하고있습니다. cluster.initial_master_nodes=노드명,노드명,노드명 아래는 Docker 환경에서 클러스터의 마스터 노드가 선출되지 못한 오류와 그 해결 과정입니다. 오류 내용 master_not_discovered_exception http://엘라스틱서치노드:9200/ 접..
![[Elasticsearch] X-Pack Security 활성화 시 오류](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbFCQ76%2FbtrvUBRfDjk%2FAAAAAAAAAAAAAAAAAAAAAARtdWeLjGQ0__r5V6lqi90I-WaOcuNXi-RNuqABXSQo%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Dd4Lh%252BQZnrNQneHrI4SxIcRyCPoU%253D)
[Elasticsearch] X-Pack Security 활성화 시 오류
Elasticsearch 에서 보안 관련 기능을 사용하려면 X Pack Security를 활성화 해야합니다. docker-compose.yml 에서는 xpack.security.enabled=true 로 X Pack Security를 활성화 할 수 있는데요, 활성화 후 컨테이너를 여러 차례 재기동하게 되면 아래와 같은 오류가 발생하고 Elasticsearch 노드가 종료되는 현상이 발생합니다. ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch. bootstrap check failure [1] of [1]: Transpor..