분류 전체보기 234

쿠버네티스(Kubernetes) Pod란?

1. 포드(Pod)란? 쿠버네티스 포드는 Linux 컨테이너를 하나 이상 모아 놓은 것으로, 쿠버네티스 애플리케이션의 최소 단위이다. 강하게 결합된 여러 개의 컨테이너로 구성된 포드도 있고(고급 활용 사례), 단일 컨테이너로만 이루어진 포드도 있다.(더 일반적인 활용 사례). 컨테이너를 쿠버네티스 포드로 그룹화하는 이유는 아래의 설명과 같이 리소스를 더 지능적으로 공유하기 위해서이다. 쿠버네티스 시스템에서는 같은 포드에 속한 컨테이너끼리 동일한 컴퓨팅 리소스를 공유한다. 이러한 컴퓨팅 리소스를 쿠버네티스에 풀링하여 클러스터를 만들고, 이를 바탕으로 더 강력하고 지능적으로 분산된 애플리케이션 실행 시스템을 제공할 수 있다. 쿠버네티스 포드의 장점을 이해하는 데 가장 중요한 요소가 아래에 정리되어 있다. 하..

Server/Kubernetes 2022.12.11

클린 아키텍쳐(Clean Architecture) 에 대해

클린 아키텍쳐에대해 공부하기 위해 포스팅을 찾던 중, 잘 정리된 외국 포스팅이 있어서 이를 번역하여 포스팅하고자 한다. The Clean Architecture Diagram 지난 몇 년 동안 우리는 시스템 아키텍처에 관한 다양한 아이디어를 보았다. 여기에는 다음이 포함된다. Hexagonal Architecture (a.k.a. Ports and Adapters) by Alistair Cockburn, Steve Freeman, Nat Pryce가 멋진 책 Growing Object Oriented Software에서 채택 Jeffrey Palermo의 Onion Architecture Screaming Architecture James Coplien 및 Trygve Reenskaug의 DCI. Iva..

[NPM] 사용했던 Package가 업데이트되면서 발생되던 버그 해결

1. 개요 몇 달 전 npm의 의존성 관리 파일 (package.json)에 대해 포스팅 한 적이 있었다. (=> 해당 포스팅) 근데 며칠 전 포스팅에서 우려사항으로 적었던 상황이 실제로 발생되어 포스팅하고자 한다. 2. 문제 상황 웹에서 영상을 녹화한 후, 녹화한 파일을 처리한 뒤에 blob으로 변환하여 firebase storage에 업로드하는 기능을 구현했었다. 그런데, 잘 되던 영상 처리가 어느 순간부터 무한루핑이 돈다는 제보가 있어서 살펴보게 되었는데, firebase 패키지 내에서 오류가 나고 있었다. 그러나, 로컬 개발환경에서는 해당 문제가 발생하지 않았다. 그렇다면.. 변경된 로직이 없다면, 촬영 환경이나 값이 바뀌었을 수도 있다 생각하여 여러가지 원인을 찾아보기 시작했었는데... 희한하게..

프론트 엔드의 상태(state)에 대해

1. 상태(state)란? 상태는 한국어로 번역하면 잘 와닿지 않을 것이다. 대신 '데이터' 라는 말로 이해하기 쉬울 것이다. 객체 지향 프로그래밍에서는 프로그램의 기본 단위가 객체이고, 객체 간의 메시지 상호작용을 통해 프로그램을 구현하게 된다. 이때 객체가 가지고 있는 데이터 또한 상태라고 할 수 있다. (예를 들어 Employee 클래스를 만든다고 가정하면 Employee의 상태는 name과 age가 될 수 있다.) 상태에서 중요한 부분은 바로 값이 변한다는 것이다. 이 값이 변하는데 예측된 값으로 변해야 의도한 대로 동작을 수행할 수 있으니, 예측 범위 내에서 변하게 하는 것이 중요하다. 그래서 그 예측된 범위를 만들기 위해서, 여러 가지 제약조건이나 구조적인 설계를 고민할 수 있을 것이다. 또한..

FrontEnd 2022.12.05

HackerRank 문제풀이 - 5 (2D Array - DS)

1. 문제 임의의 2차원 배열(6x6)이 주어진다. 위의 문제에서 주어진 패턴에 해당하는 인덱스의 값들을 모두 더한다. 각 패턴별 더한 값들중 가장 높은 값을 결과로 도출한다. 2. 1차 풀이 2.1 풀이 과정 function hourglassSum(arr) { // Write your code here let hourGlassSumArr = []; const maximumMoveXYPos = 4; for (let yPos = 0; yPos < maximumMoveXYPos; yPos++) { for (let xPos = 0; xPos < maximumMoveXYPos; xPos++) { let sum = arr[xPos][yPos] + arr[xPos + 1][yPos] + arr[xPos + 2][y..

HackerRank 문제풀이 - 4 (Jumping on the Clouds)

1. 문제 구름의 값(0, 1)이 들어있는 무작위 배열이 주어진다. 0은 밟을수 있는 구름이고, 1은 밟을 수 없는 구름이다. 첫번째 구름과 마지막 구름은 무조건 밟을수 있는 구름이다. 점프를 한 칸이나 두 칸을 할 수있다. 마지막 구름까지 최소 몇번의 점프를 해야 도달할 수 있는지 구하면 된다. 2. 풀이 2.1 풀이 과정 function jumpingOnClouds(c) { // Write your code here // const tokens = c.split("\n"); // const size = tokens[0]; // const list = tokens[1].split(","); // const list = c.split(","); const list = c; let currentIndex ..

[Visual Studio] IntelliSense(인텔리센스)에 대해

1. IntelliSense란? Intelligent(지능적) + Sense(감지) 의 합성어 메서드, 개체, 속성 등을 드롭다운 리스트 형식으로 제공하고 이것을 개발자가 선택할 수 있도록 하여, 방대한 기능을 찾기 쉽도록 해주며, 코드 입력 시간을 줄이고 철자 오류를 미연에 방지하여 생산성을 향상시킬 수 있는 기능이다. IntelliSense기능을 구현하기 위한 데이터파일이 존재하는데, 작업프로젝트 디렉토리에 있는 *.ncb파일이다. 이 파일을 지운후 Visual Studio를 재시동하면 새로 업데이트 된 새 파일이 생성하고, 이후에 모든 동작이 정상적으로 이루어진다. 그러나 이 기능은 일정시간동안은 제대로 작동하다가 프로젝트에 포함된 파일을 제거하거나 수정하거나 하는 등 여러가지 작업을 하다보면 때때..

ETC 2022.11.26

[Unity] Visual Studio에서 Intellisence가 적용되지 않을 때

1. 개요 Unity Script를 수정하기 위해 Visual Studio를 켰는데 Intellisence가 작동되지 않을 때 해결방법을 포스팅해보고자 한다. [작성 환경] Windows 10 Home Unity 2021.3.11f1 Microsoft Visual Studio 2022 [17.3.32929] 2. 해결방법 Step1: 열려있는 Visual Studio를 끈다. Step2: Unity에서 Edit → Preferences → External Script Editor항목으로 간다. Step3: External Tools에서 External Script Editor라고 표시된 부분을 살펴본다. (이것이 사용 중인 Visual Studio 편집기로 설정되어 있어야 한다. 기본적으로 “파일 확장명..

Unity 2022.11.26

[Java] Null Check

1. 개요 우리가 자바로 프로그램을 개발하다보면 가장 쉽게 마주할 수 있는 오류는 NullPointerException(java.lang.NullPointerException)일 것이다. 이는 보통 객체 값이 null이거나 초기화가 안되어 있는 인스턴스를 사용할때 발생하게 된다. Null 객체에서 method를 호출하는 경우 Null 객체의 필드에 접근하거나 값을 변경하는 경우 Null 의 길이를 배열처럼 취하는 경우 Null을 throw하는 경우 Null을 통해 동기화 할 경우 public class Sample { public static void main(String[] args){ Foo foo = null; foo.toString(); // NullPointerException foo.equal..

Java 2022.11.25

판교 데이터센터 화재사건으로 보는 서버 이중화의 중요성

1. 개요 2022년 10월 15일 오후 3시경 판교 데이터센터의 무정전 전원장치 부근에 화재가 났다. 그래서 이곳에 입주한 몇몇의 기업들의 서비스가 중단되었었다. 여기서 주목할점은, 어떤 기업은 비교적 빠르게 서비스를 복구하는데에 성공하였지만, 어떤 기업은 밤새토록 복구를 해서야 일부 서비스를 복구할 수 있었고, 완전 정상 복구까지는 수 일이 소요되었다. 업계에서 이 국내 빅테크 ‘투 톱’의 위기대응이 달랐던 점은 메인 서버의 확보와 서버 이중화 구축으로 꼽았는데, 비교적 복구에 능하였던 A기업과 복구에 많은 시간 애를 먹었던 B기업을 두고 차이점을 살펴보자. 2. 서버 이중화란? 서버 이중화 HA(High Availability)는 직역하자면 “고가용성”이다. 가용성이 높다라는 뜻은, 고장날 확률이 ..

ETC 2022.11.25
반응형