분류 전체보기

CS/운영체제

[운영체제] Docker는 MacOS, Windows 어디서 더 빠른가?

들어가기에 앞서해당 글은 OS Study 도중 생겼던 의구심을 해결하고자 자료를 수집하고 해석한 글이다.1. Mac OS에서 Windwos Docker Image를 띄울 수 있을까?먼저 Docker 즉, Container란 무엇인가 알아볼 필요가 있다. 실행 중인 컴퓨터의  커널에 라이브러리, 실행파일을 격리하고, 이 공간 내에 독립된 프로세스 및 네트워크를 실행시키는 기술과 이를 위한 소프트웨어 구성 일체를 이야기한다. 같은 버전 커널에서 동일한 동작을 보장한다. (출처 : 나무위키) 가상머신(VM)과 가장 큰 차이는 자원 사용 방식에 있다.컨테이너는 Hpyervizor와 Guest OS를 포함하지 않는다. 즉, 컨테이너에는 OS가 포함되지 않는다.우리가 사용하는 OS는 상당한 리소스(컴퓨터 자원)가 ..

책 리뷰

채식주의자를 읽다

한강 작가의 채식주의자라는 책을 읽었다. "그녀"의 작품을 읽었다.책을 읽고 서평을 써내려 가기 전 항상 작가의 이름과 책 제목을 쓰는 버릇이 있다.오늘도 어김없이 작가의 이름과 책 제목을 쓰던 도중 놀라운 점을 하나 발견했다.작년부터 이어온 책 읽기에서 내가 읽은 책 중 여성 작가는 없었다는 점이다. 서평을 쓰면서 처음으로 그녀라는 "단어"를 사용했다.놀랍지만 기쁘기도 했다. 그녀가 노벨 문학상을 받은 한국 사람이란 것에..   이 책은 몰입력이 강하고 자극적이다. 일상에서 느끼지 못하는 감정들을 느낄 수 있다. 왜냐하면 책의 인물들이 내가 된듯한 강한 착각 때문이다. 때로는 영혜가 독백을 할 때면 그녀의 안으로 들어갔다가 다른 인물들의 안으로 이동하기도 한다. 그녀의 독백은 그녀의 무의식에서 자의식이..

스프링

[Spring] MySQL DB Replication 설정하기

데이터베이스 다중화란 보통 서버 사이에주(Master) 부(Slave) 관계를 설정하고 데이터 원본은 Master, 사본은 Slave 서버에 저장하는 방식이다. 여기서 데이터 베이스 Insert, delete, update 쿼리들 (쓰기 연산)은 Master 서버에서, select Query는 Slave 서버에서 처리한다.대부분 애플리케이션은 읽기 연산의 비중이 쓰기 연산 비중보다 높다. 그러므로 보통 Slave 서버가 Master서버 보다 많이 존재한다. DB 다중화의 이점으로는 크게 3가지가 존재한다.1. 더 나은 성능 주-부 다중화 모델에서 읽기, 쓰기 연산을 분산 처리하기 때문에 처리할 수 있는 Query수가 많아져 더 나은 성능을 보장한다.2. 안정성 : DB서버의 장애가 발생해도 다른 DB 서..

책 리뷰

죽음의 수용소에서를 읽다

책에서 빅터프랭클은 피할 수 없는 고통의 가치와 그것을 극복할 수 있는 방법으로 삶에 대한 의미를 강조한다. 빅터는 아우슈비츠의 강제 수용소에서 우리가 쉽게 느낄 수 없는 부조리함을 모두 맛보았다.오늘은 가스실로 가지 않기를, 내일은 좀 덜 맞기를 기도하며 혹시 내일은 빵 한 쪼가리라도 더 나오지 않을까 하며 말이다.여기서 빅터는 카뮈가 말하는 부조리한 삶과 비슷한 가치관을 보여준다. 카뮈의 전제는 이렇다. 그전에 실존주의란?우리는 본질보다 앞선 실존으로 세상에 나왔다. 그렇기에 삶에 정해진 의미, 부여된 의미는 존재하지 않는다는 것이다. 카뮈의 부조리란?이렇듯 오늘 책을 읽는 것과 게임을 하는 것에 대한 가치는 그 사람이 어디에 가치를 크게 두고 있는가에 따라 달라질 뿐 사실 진정한 삶에 의미는 존재하..

스프링/JPA

[JPA] EAGER Loading Vs LAZy Loading N+1이란?

먼저 N+1문제란 무엇인지 알기 전에EAGER Loading (즉시 로딩), Lazy Loading (지연 로딩)에 대해 이해하고 넘어가야만 한다.예시를 살펴보며 이해해보자1. Member Entity, Post Entity가 존재한다.2. Member : Post -> 1 : N 연관관계를 맺는다. @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @OneToMany(mappedBy = "member", fetch = FetchType.LAZY) private List posts = new ArrayList();}  @Enti..

CS/네트워크

분산시스템속 브로드캐스트

오늘은 분산시스템속 어떤 브로드캐스트 알고리즘이 있는지 알아보고 어떤 것을 코드에 적용해볼까 선택할려고 한다.오늘 설정할 브로드캐스트 목표는 새로운 Peer가 등장할시 어떻게 새로운 Peer를 다른 Peer가 인식하도록 할까이다. 1. Flooding (플러딩)Flooding은 모든 Peer가 새로운 Peer에 대한 정보를 모든 이웃 피어에게 전송하는 방법이다.새로운 Peer A가 네트워크에 들어오면 -> Peer A는 자신의 정보를 인접 피어 B, C, D에게 전송 -> B, C, D는 연결된 피어에게 전송한다.장점 : 단순한 구현단점 : 네트워크 트래픽이 많아질 수 있다.인접한 피어는 또 어떻게 구할것인가? 문제가 있는 거 같다. 2. Gossip Protocl(가십 프로토콜)가십 프로토콜은 Peer..

CRDT

[CRDT]에 대하여

코로나 이후로 실시간 협업 애플이케이션이 많은 흥미를 끌었다.Figma, Notion Google Docs 등 많은 기업들이 실시간 협업 애플리케이션 등을 내고 VS Code 또한 동시 코딩 플러그인(느리긴함)이 존재한다.  그래서 제안된 기술들이 있는데 크게 두가지이다.  CRDT(Conflict-Free-Replicated Data Types), OT(Operational Transformation)이다.실시간으로 협업 한다고 생각해보자.OT의 방식은 아래와 같다. HeLo 사이에 L을 추가하고 , 다른 사람은 마지막에 !를 추가한다고 생각해보자.추가 했을 때 각자가 보고 있는 인덱스 위체에 따라 추가가 될 것이다.1번째 사람은 3번째 Inex의 "L"을 삽입했고, 2번째 사람은 4번째 Index의 ..

카테고리 없음

ElasticsearchException[failed to bind service]; nested: AccessDeniedException[/usr/share/elasticsearch/data/nodes]

오류 사진Likely root cause 현재 Docker-compose.yml 문제 발생이유 : AccessDenied -> 권한 문제찾아보니 usr/share은 도커 컨테이너 안에 있는 내용이지 로컬(우분투)에 공유되는 폴더가 아니다.그렇다면 권한은 elasticsearch폴더에게 주는 것이 맞다- 참고) elasticsearch폴더는 내 우분투 서버에 존재하는 폴더이다.명령어sudo chown -R 1000:root elasticsearch해당 명령어로 폴더에게 권한을 주면 해결된다! 참고https://stackoverflow.com/questions/65668188/elastic-search-accessdeniedexception-usr-share-elasticsearch-data-nodes-0-..

Sleeg
'분류 전체보기' 카테고리의 글 목록