Home

[Javascript/js] 문자열(string) 내부(안)에 변수/상수 값 넣는 방법, 삽입하기. Template literals과 여러줄 문자열, 백틱(`)

1. 문제점 Javascript 를 사용하면서 문자열 내부(안)에 변수/상수 값을 넣고 싶은 케이스가 존재합니다. 가장 간단하게는 아래와 같이 사용할 수 있는데요. let a,b; a = 1111; b = "any value"; console.log("a = " + a + ", b = " + b); // 결과 // a = 1111, b = any value 이렇게 사용하면 문자열이 많아지면 사용하기도 복잡해지고 가시성도 떨어집니다. 어떻게 해야 손쉽게 문자열 내부에 변수를 사용할 수 있을까요? 2. 해결방법 JS가 ES6 버전부터는 더 사용하기 쉽게, 문자열에서 변수명을 사용할 수 있도록 하는 기...

Read more

[Javascript] json (js object) 값을 String으로 만들기(toString), JSON.stringify 사용과 console 출력하는 방법

1. 문제점 json 형태로 얻은 data 값을 출력할 때, 정상적으로 출력이 되지 않고 [object Object] 와 같이 출력되는 경우가 있습니다. toString을 하면 아래와 같이 출력되는 것을 확인할 수 있습니다. let abc = { "name": "james", "age": 29, "powers": [ "1", "2", "3" ] } const result = abc.toString() '[object Object]' // 결과 // '[object Object]' console에 원하는 json을 출력하거나, json...

Read more

[DB/Infra] 레이드(RAID)란? 개념정리 및 백업(BACKUP) 과의 차이, NAS와 백업

1. 레이드(Raid)란? 1.1. 개념정리 레이드(Raid, Redundant Array of Independent Disk)란 2개 이상의 디스크를 병렬로 처리하여 성능 및 안정성을 향상시키는 방식입니다. 저장장치를 하나만 쓰면 고장이 날 수 있습니다. 하나의 저장장치만 사용하면 서비스 운용이 정지되는 문제가 발생합니다. 구글과 같은 서비스에서는 저장장치가 고장나서 서비스가 중단되면 안되는데, 하나만 사용하면 문제가 발생합니다. RAID 는 성능과 안정성을 향상시킬 수 있습니다. 성능 여러개의 저장장치를 병렬로 사용하여, 데이터를 분산하여(나...

Read more

[Python] Selenium 크롤링 할 때, 현재 창에서 크롤링하는 방법(Debugging Mode)

1. 문제 Python을 사용하여 크롤링을 할 때 Selenium 을 많이 사용합니다. 이 때, 매 번 새로운 브라우저를 띄우는 과정이 필요하게 됩니다. 원하는 크롤링에서 로그인이 필요하면, 코드에서 새로 로그인하는 과정이 많이 필요하며 로그인 할 때 봇을 감지하기 위한 인증 문자 입력이나 추가적으로 MFA 와 같은 2차 인증이 필요할 수 있습니다. 로그인이 많으면 해당 서버에서 접속이 막힐 수도 있고, 생각보다 코드 작성이 다소 복잡해집니다. 이 때, 현재 사용 중인 브라우저에서 크롤링을 시도한다면 이러한 문제를 손쉽게 해결할 수 있을 것입니다. 사용중인 창에서 바로 크롤링 하는 방법은 무엇일까요? 2. 해...

Read more

[Python] BeautifulSoup 파이썬 크롤링 할 때, html tag 데이터 값이 안 읽어와질때 해결법(Selenium)

1. 문제 다른 사이트의 데이터를 수집할 때 주로 Python 을 사용합니다. Python 크롤링시에 requests 를 사용하여 api를 호출하고 data를 요청한 후에, BeautifulSoup 를 사용하면 Crawling 을 쉽게 할 수 있는데요. Crawling 을 하다가 데이터가 불러와지지 않는 경우가 있습니다. import requests from bs4 import BeautifulSoup req = requests.get('데이터를 얻고 싶은 url') html = req.text soup = BeautifulSoup(html, 'html.parser') soup.select('찾고 싶은 htm...

Read more

[Javascript/JS] String 특정/특수 문자 제거 방법. 정규표현식, 모든 문자, 앞/뒤 공백, 개행, 대소문자 구분 replace 함수 사용법

1. Javascript String 특정/특수 문자 제거하는 방법 Javascript 를 이용하다 보면 원하지 않는 문자가 포함된 String 에서 특정/특수 문자를 제거해야 하는 케이스가 존재합니다. 이 때, JS 에서는 어떤 함수를 사용할까요? Javascript 에서는 바로 replace 함수를 사용합니다. replace 는 정규표현식도 사용할 수 있기 때문에 매우 편리한 함수입니다. 2. 사용법 let replaceString = originalString.replace(aString, bString); replace 함수는 위와 같은 방법으로 사용하는데요. 위의 값들은 각각 아래와 같은 의미를 ...

Read more

[비즈니스 IT/개발 용어 정리] Individual Contributor (IC) 이란? 개념정리 및 Manager(매니저/관리자) 직군과의 차이

Individual Contributor (IC) 이란? 어떤 문제에 대하여 특정 분야의 자신의 전문 역량을 활용하여 문제를 해결(Problem Solving)하는 사람 개개인의 전문 영역을 가지고 근무하는 직군/사람을 의미. 이러한 직군에는 주로 디자이너, 개발자와 같은 업무가 있다. 외국에서는 백발의 엔지니어와 같은 한 분야의 전문가를 생각하면 IC라는 용어를 쉽게 이해할 수 있다. 한국계 기업에서는 주로 IC로 오래 일하고 Manager 가 되는 케이스가 많은데, 외국의 경우에는 IC <-> Manager 직군을 비교적 자유롭게 바꿀 수 있는 것으로 알려져있다. 자신의 개인 분야에...

Read more

[비즈니스 IT/개발 용어 정리] Lookup Table(룩업테이블) 이란? 개념정리

1. Lookup Table(룩업테이블) 이란? Lookup Table(룩업테이블)은 매번 값을 가져올 때, 값을 가져오는 데 오래 걸리는 과정을 생략하고 저장되어 있는 값을 참조하여 빠르게 값을 가져오는 것입니다. 직접 연산을 하지 않고 바로 가져오기 때문에 더 단순하게 표현하면 결과값을 가진 테이블이라고 할 수 있습니다. Look up 테이블은 Key/Value 구조로 저장이 되어 있습니다. 하기와 같이 사용할 수 있습니다. 기존의 사용 로직 const getCountry = (error) => { if ( error === '400' ) r...

Read more

[Javascript/React 오류 해결 방법] Uncaught TypeError: Invalid attempt to destructure non-iterable instance.

1. Problem React/Js 를 사용하다 보면 Uncaught TypeError: Invalid attempt to destructure non-iterable instance 와 같은 이슈를 확인할 수 있습니다. 아래의 이슈는 왜 발생하는 것이며 어떻게 해야 해결할 수 있을까요? Uncaught TypeError: Invalid attempt to destructure non-iterable instance. In order to be iterable non-array objects must have a symbol.iterator () method 2. Solution 위의 에러가 발생한 이유는...

Read more

[React Native(RN)/android, ios] 리액트 네이티브에서 안드로이드/ios/태블릿 구분하기

1. Problem react-native 를 사용하면 손쉽게 ios/android 앱을 한 번에 개발할 수 있습니다. 하지만 각 플랫폼의 특성이 존재하기 때문에 개발하면서 어떤 os인지, ios/android 를 구분해야 하는 일이 생깁니다. 이 때, 어떻게 해야 손쉽게 플랫폼을 구분할 수 있을까요? 2. Solution 2.1. ios/Android 구분하기 react-native 에서 플랫폼 구분하는 방법은 아래와 같습니다. ‘react-native’ 라이브러리에서 제공하는 Platform을 사용하면 손쉽게 확인할 수 있습니다. import { Platform } from 'react-native';...

Read more