Home

[비즈니스 IT/개발 용어 정리] Infra/Server 프로비저닝(Provisioning)이란? 개념정리

1. 프로비저닝(Provisioning)이란? 개발을 하다보면 프로비저닝(Provisioning)이라는 용어를 많이 접할 수 있습니다. 프로비저닝(Provisioning)은 무엇일까요? 프로비저닝(provisioning)은 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다. 서버 자원 프로비저닝, OS 프로비저닝, 소프트웨어 프로비저닝, 스토리지 프로비저닝, 계정 프로비저닝 등이 있다. 수동으로 처리하는 ‘수동 프로비저닝’과 자동화 툴을 이용해 처리하는 ‘자동 프로비저닝’이 있다. 위키피디아에 따르...

Read more

[React/Javascript] Js에서 동작하는 setInterval/setTimeout 함수 중지/제거하는 방법(clearInterval, clearTimeout, unMount, useEffect)

1. 문제 JS 나 React 를 사용할 때, setInterval/setTimeout 함수를 자주 사용하게 됩니다. 사용하던 두 함수를 필요 없는 시점에는 제거해야 하는데요. 예를 들어, React 같은 경우에는 컴포넌트가 마운트 될 때 동작시키고, 언마운트 될 때 제거하고 싶을 수 있을 것입니다. 이 때, 동작하고 있는 setInterval, setTimeout 를 중지하고 싶을 때 어떻게 해야 할까요? 2. 해결방법 setInterval/setTimeout 함수를 호출하면 id를 return 해줍니다. 이 id 를 clearInterval, clearTimeout 에 각각 넣어주면 손쉽게 동작하고...

Read more

[NVM & Xcode error Solution] node: command not found _ Command PhaseScriptExecution failed with a nonzero exit code - Permission denied

1. Problem When i make a program on Xcode, i saw a error. This makes problem. I cannot build because of this problem. Command PhaseScriptExecution failed with a nonzero exit code" - "Permission denied" 2. Solution In my case, i used nvm on my laptop. Under command solve this problem. I saw this(node: command not found) comments and found ...

Read more

[Android Studio/React Native] 에뮬레이터 AVD is already running, delete *.lock and try again 오류 해결하기

1. 문제 Android Studio/React Native 를 이용하여 개발을 하다보면 에뮬레이터(시뮬레이터)를 사용하는 경우가 많습니다. 에뮬레이터를 사용하다가 아래와 같은 에러 메시지를 볼 수 있는 경우가 있습니다. 가상 디바이스를 반복적으로 실행하거나 종료가 제대로 되지 않았을 때 새로운 시뮬레이터를 실행시키면, 이러한 에러가 발생하게 됩니다. Device Manager AVD Pixcel_5_API_33 is already running. If that is not the case, delete the files at /Users/user/.android/avd/Pixcel_5_API_33.av...

Read more

[비즈니스 IT/개발 용어 정리] 이미지/메일에 쓰이는 Base64(인코딩) 이란? 개념정리

1. Base64(인코딩) 이란? Base64 는 64진법이라는 뜻입니다. 8비트 이진 데이터(Binary, 이미지/오디오 등)를 플랫폼 or 시스템에 영향을 받지 않는 공통 ASCII 문자열로 바꾸는 인코딩(encoding) 방식입니다. Web 에서 이미지를 표현하거나, 전자 메일을 통한 이진 데이터(Binary)를 전송하는 등의 역할로 쓰이고 있습니다. Base64 인코딩(encoding)을 하게 되면, 전송해야 할 데이터의 용량이 약 1/3(33%) 정도 늘어납니다. 6bit당 2bit의 Overhead가 발생하기 때문입니다. 이진 데이터(Binary) 데이터를 텍스트 기반 규격으로 다룰...

Read more

[DB/Infra] Mongodb(몽고DB)에서 사용하는 BSON(binary JSON) 이란? JSON 과의 차이점과 개념정리

1. JSON(JavaScript Object Notation) JSON(JavaScript Object Notation)은 데이터를 저장하거나 전송할 때 많이 사용되는 데이터 형식 Javascript의 객체 형태가 곧 JSON 입니다. JSON 표현식은 사람과 기계 모두 이해하기 쉽습니다. 기존에는 XML을 많이 사용했으나, 현재는 JSON 이 대체해서 많이 사용되고 있습니다. 아래와 같은 형식으로 많이 사용됩니다. { "users": [ { "name": "James", "age": 20 }, { "name": "Mark", ...

Read more

[AWS/Infra] EC2 서버 instance(인스턴스)가 운영 중 죽을 때, Out of memory: kill process 메모리 부족 해결 방법(swap memory)

1. 문제 AWS 서버 호스팅(혹은 다른 클라우드 서비스도 동일합니다)을 사용하다보면, EC2 서버 instance(인스턴스)가 운영 중 죽을 때가 있습니다. 저는 이전에 다른 클라우드 서비스와 aws ec2 를 사용하면서 이러한 문제를 겪었습니다. aws 의 첫 가입자들에게는 ec2 t2.micro 를 1년 무료로 제공해주는데, 이 때 대여해주는 서비스의 자원이 넉넉하지 않다보니 이러한 현상을 겪을 가능성도 더더욱 높아지는 것 같습니다. 저는 기존 서비스 운영의 경우에 트래픽이나 서비스가 무겁지 않은 서비스인데 이러한 현상이 발생하여, 원인을 찾아보게 되었습니다. 처음에는 이유를 잘 모르는 상태에서 서비스가 ...

Read more

[Spring Boot] 스프링 서버 Persistence(영속성), ORM, JPA, Hibernate, JDBC 이란? 용어/개념정리

스프링이나 스프링 부트를 사용하면서 프로그래밍을 하면 Persistence(영속성), ORM, JPA, Hibernate, JDBC 에 대한 이야기를 많이 들을 수 있습니다. 이러한 개념들에 대하여 간단하게 이해할 수 있게 한 포스팅에서 정리해보았습니다. 1. Persistence(영속성) 프로그램이 데이터를 생성하고 종료되었을 때, 메모리에만 가지고 있으면 데이터가 보존되지 않습니다. 데이터를 생성한 프로그램이 종료되더라도 데이터가 사라지지 않는 특성을 Persistence(영속성)이라고 합니다. 대부분의 프로그램들은 지속적으로 데이터를 보유하고 있어야 되는 필요성이 있어, Persistenc...

Read more

[AWS/Infra] EC2 서버 instance(인스턴스) 종류(크기/사양/타입/유형) 변경하는 방법

1. instance 변경 방법 AWS 에서 EC2 를 생성한 후에 필요한 성능이 기존보다 커지거나 작아져서 EC2 사양을 변경해야 하는 종류(사양/타입/유형)가 있습니다. 사이즈를 적절히 교체해야 각 서비스에 맞는 비용을 적절하게 지출하면서 효율적으로 운영할 수 있습니다. aws에는 아래와 같이 수많은 EC2 타입(맨 처음 사용하는 T2.micro 1년 무료 이외에도 매우 많이 존재함)들이 존재합니다. 기존의 EC2 내부의 이미지(os 및 다양한 환경 세팅)를 동일하게 유지하면서 EC2 를 교체하려면 어떻게 해야 할까요? 하기와 같은 방법으로 손쉽게 해결할 수 있습니다. 1.1. 인스턴스 정지 후 변경 ...

Read more

[Server/MSA] RabbitMQ, Redis, Kafka 란? 메시지/이벤트 브로커 비교, 특징 및 개념정리

요즘 많은 서비스들은 메시지/이벤트 브로커(RabbitMQ, Redis, Kafka) 를 사용합니다. 메시지/이벤트 브로커(RabbitMQ, Redis, Kafka) 에 대한 개념을 정리해보았습니다. 0. 핵심 서버에서 많은 요청이 한 번에 들어오면 처리하지 못할 수 있습니다. 처리하지 못한 데이터는 손실되어 서비스에 치명적인 영향을 줄 수 있습니다. 따라서, 유저의 요청이 들어오면 일단 요청을 Queue에 넣어 놓고(요청을 쌓아놓고), 서버가 처리할 수 있을 때 데이터를 가져갑니다. 메시지는 삭제되지만 이벤트는 삭제하지 않습니다. 메시지 브로커는 이벤트 브로커가 될 수 없으나, 이벤트 브로커는...

Read more