본문 바로가기

공부5

recoil 소개 https://recoiljs.org/ko/docs/introduction/installation 설치 | Recoil NPM recoiljs.org 사용동기 리액트 상태관리의 어려움 react context Context가 필요한 최상위 컴포넌트에 Context를 선언하고 사용하면 되지만 한 Context에 하나의 값만 사용가능하기 때문에 다수의 값을 사용하려면 Wrapper Hell에 빠집니다. 예시 redux 이해하기 상당히 어렵습니다. 리덕스만의 철학을 따르기 위해 만들어야 하는 부수적인 코드가 증가해 생산성이 좋지 않습니다. recoil 데이터 흐름이 직관적이고 이해하기 쉽습니다. 렌더링이 최적화되어 있습니다. (구독한 atom과 selector가 변경될 시 구독한 컴포넌트만 re-renderi.. 2022. 6. 22.
쿠버네티스 학습 쿠버네티스 쿠버네티스 사용이유? 각 서비스마다 장비를 설치 쿠버네티스 사용 전 기업 입장에서 미리 트래픽을 예측하기 어렵고 엄청 많은 자원을 준비하기에도 비용적으로 쉽지 않습니다. 시간과 날짜에 따라, 그리고 사회적인 사건에 따라 트래픽이 매우 달라집니다. 특히 네이버의 경우, 한 서비스만 운영하는 것이 아니라 여러 서비스를 운영하느라 자원을 관리하기 더욱 힘듭니다. 쿠버네티스 사용 후 필요한 자원의 양을 예측해서 적정 수준의 장비를 사용할 수 있습니다. 만약 특정 서비스에 더 많이 트래픽을 사용하게 된다면 Auto Scailing 기능을 통해 자원을 알아서 맞춰줍니다. 서버 장애 대응 쿠버네티스 사용 전 서비스 중 어떤서버가 고장난 경우 대비할 서버가 필요하기 때문에 각 서비스마다 장비가 추가로 필요합.. 2022. 3. 24.
RabbitMQ vs Kafka vs Redis 마이크로서비스 통신 : 동기 vs 비동기 마이크로서비스가 서로 통신하는 방법은 크게 동기식과 비동기식이 있습니다. 동기식 요청을 보내면 응답이 올 때까지 기다리고 처리합니다. HTTP 위에서 REST 프로토콜을 사용합니다. 비동기식 응답과 상관없이 요청을 보냅니다. 분산형 시스템에 적합하고, 메시지 브로커를 통해서 메시지를 관리합니다. 메시지 브로커: 송신자의 메시지 프로토콜 형식에서 수신자의 메시지 프로토콜 형식으로 변환하는 중간 모듈 동기식 vs 비동기식 무엇을 선택? 마이크로서비스를 구성하는 방법과 인프라, 대기시간, 규모, 종속관계 등 다양한 환경을 고려해서 선택해야합니다. 비동기식 통신이 설정하기 더 복잡하고, 더 많은 기술스택을 사용해야합니다. 하지만 마이크로서비스에서 더 많은 장점을 갖고 있.. 2022. 3. 11.
Log4j 학습 Log4j Log for Java Java기반 로깅 라이브러리, 디버그 용으로 주로 사용 장점 프로그램 문제 파악 용이: 코드 라인을 보여주기 때문에 어디서 문제가 발생한지 파악 가능 상황별 Level을 지정하여 Level 별 메시지 선택 가능 DEBUG, TRACE, INFO, WARN, ERROR 환경세팅이 간단함 출력 위치가 자유롭고, 다양한 출력 형식 지원 외부 파일에 로깅할 때 날짜/시간 패턴으로 롤오버할 파일 구성 가능, 그리고 파일 크기가 임계값에 도달하면 파일 롤링 비동기 로깅을 이용해 성능을 높일 수 있음 단점 비동기로 돌릴 경우 Queue나 Buffer의 용량이 많아지면 Log가 유실될 수 있음 최근 Log4j 일부 버전에서 JNDI(Java Naming and Directory Int.. 2022. 1. 28.
Apache vs NGINX, 그리고 NGINX 설정 소개 Apache와 NGINX는 현재 가장 폭넓게 사용되는 2가지 오픈소스 웹서버 현재 Apache와 NGINX의 점유율은 합쳐서 50%정도 됩니다. (NGINX가 무섭게 추격하고 있네요) 사실 전 Apache와 NGINX 점유율을 빼면 거의 안남을 줄 알았는데 50%는 다른 것을 쓴다고 하니 놀랐습니다. 이렇게 다양한 웹서버 중에서 왜 유독 Apache랑 NGINX가 많이 사용되는지 한번 알아보려고 합니다. 웹서버 Apache랑 NGINX는 결국 웹서버입니다. 웹서버에 대해 대부분 잘 알고 계시겠지만 정리하는 겸 한번 더 상기하려 합니다. 웹서버의 사전적 정의는 다음과 같습니다 웹 콘텐츠를 저장하거나 처리하는 컴퓨터 또는 소프트웨어. 일반적으로 웹서버가 되는 컴퓨터에 설치 되는 소프트웨어를 의미. 웹 .. 2022. 1. 26.