본문 바로가기

반응형

study

(25)
[Http] 상태 코드 정리 http 상태 코드 정리 상태 코드 1xx (Informational) 요청이 수신되어 처리 중 2xx (Successful) 요청 정상 처리 3xx (Redirection) 요청을 완료하려면 추가 행동이 필요 4xx (Client Error) 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 5xx (Server Error) 서버 오류, 서버가 정상 요청을 처리하지 못함 만약 모르는 상태코드 또는 미래에 새로 추가될 상태코드 (ex. 299) 가 온다면 위의 큰 범위로 생각해서 처리하면 된다. 1. 1xx (Informational) 거의 사용하지 않으므로 생략 2. 2xx (Successful) 200 : OK - 주로 get 에 대한 성공적인 결과로 주는 응답 201 : Creat..
Excel how to custom Number format 숫자 서식 사용자 지정 커스텀하기 / -0 을 0으로 바꾸기 음수 node.js + typescript + exceljs 로 엑셀 파일 생성을 하던 중, db에서 받은 데이터는 1000, 0, -500 이렇게 실수인 경우 모두 - 를 붙여서 출력해야 했다. numFmt : '#,##0' 은 123,400 이렇게 나오고 numFmt : '-#,##0' 은 -123,500 이렇게 나온다. 그래서 처음에는 '-#,##0'으로 사용했다. 그런데 내가 받은 데이터가 1000, 0, -500 이라면 '-#,##0'이 적용되어 나오는 형식이 아래 박스의 결과였다. The data I got from db was [100, 0, -500] and I had to show them in Excel file as negative. so first I tried exceljs numFmt..
[node.js] txt 파일 UTF-8 EUC-KR 인코딩 디코딩 방법 EUC-KR 로 인코딩 되어있는 txt 파일을 node.js로 불러 읽으려니 한글이 깨져 나온다. 인코딩을 위해 순수 자바스크립트로 만들어져 빠르다는 iconv-lite 패키지를 설치해보기 1. iconv-lite 설치 npm install iconv-lite 2. iconv-lite / fs 가져오기 import fs from 'fs'; import iconv from 'iconv-lite'; 3. 사용하기 * iconv-lite 패키지의 특징은 'UTF-8'을 기준으로 한다는 것 ! const file = '/Users/Documents/address_data/match_build_seoul.txt'; // EUC-KR로 된 txt파일 읽은 데이터 content에 담기 const content = f..
GRS80 UTM-K 좌표계 GPS 표준 좌표 WGS84로 변환하기 공공데이터 api 에서 받은 주소 좌표가 한국 기준의 GRS80 UTM-K로 되어 있었다. 이 좌표값을 GPS 세계 표준 좌표인 WGS84 (EPSG:4326)로 변환하기 구글맵 GPS나 Elasticsearch에는 WGS84를 기준으로 사용한다. 좌표계에 대해 찾아보니 좌표 변환 계산이 생각보다 매 ~ 우 복잡했다. 이미 좌표계 변환에 널리 쓰이는 라이브러리 - proj4가 있어서 이걸 사용해서 변환을 했다. 1. proj4 설치 npm install proj4 2. proj4 가져와서 사용하기 import proj4 from 'proj4'; const exec = async () => { const grs80UtmK = '+proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.999..
txt 파일을 cvs 파일로 바꾸는 방법 / txt, cvs 파일 엑셀 표로 만들기 서울지역의 txt 파일을 mongoDB로 옮기기 위해 txt를 cvs 파일로 바꿨다. 1. txt파일을 Excel로 연다. 2. 다른 이름으로 저장 -> csv utf-8 을 선택한다. 3. 끝~~ 그런데 cvs 파일을 열어보면 표로 되어 있지 않다. 왜냐하면 다운 받은 txt 파일은 쉼표가 아닌 " | " 기호로 분리되어 있어서 + 표로 되어있지 않아서 그렇다. 이걸 표로 만드려면 아래와 같이 하면 된다. 1. 새로운 엑셀 시트를 열고 -> 데이터 -> 텍스트에서 가져오기 클릭 2. 표로 바꿀 txt 파일을 가져온다. 3. 아래와 같은 옵션으로 설정 후 다음을 클릭 4. "|" 으로 구분기호를 설정하고 다음 클릭 5. "일반" 설정하고 마침 클릭 6. 그러면 데이터가 표로 잘 구분된다. E+11 이렇게..
JAVA_HOME 환경변수 설정 on 맥북 Mac Os X JDK 설치 후 JAVA HOME 환경변수 설정 방법 1. 내가 쓰고 있는 shell이 무엇인지 알기 ( bash / zsh ) echo $SHELL 2. JAVA_HOME 변수에 값 넣어 해당 파일로 넣기 bash 의 경우 echo export "JAVA_HOME=\$(/usr/libexec/java_home)" >> ~/.bash_profile zsh 의 경우 echo export "JAVA_HOME=\$(/usr/libexec/java_home)" >> ~/.zshrc * 만약 multiple JDK versions 이 설치되어 있다면 특정해주기 echo export "JAVA_HOME=\$(/usr/libexec/java_home -v 1.7)" >> ~/.bash_profile (또는 ~/.zs..
JAVA JDK mac m1에 설치하기 JDK를 mac m1에 설치하는 방법 (homebrew 이용) 1. homebrew가 없다면 먼저 설치하기 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 2. openJdk 설치하기 brew install openjdk 3. 설치되었는지 확인하기 $(brew --prefix openjdk)/bin/java --version 4. arm64 hardware 인지 확인하기 file $(brew --prefix openjdk)/bin/java #결과 : /opt/homebrew/opt/openjdk/bin/java: Mach-O 64-bit executable arm64
[mac/ homebrew] nvm node 특정 버전으로 다운그레이드 현재 node 를 brew를 통해 이미 다운받은 상태인 경우 * 다운 받은 상태가 아니라면 바로 brew install node@version 을 입력해서 다운ㅇ 1. 현재 노드 버전 확인 node -v 2. 다운 가능한 node 찾기 brew search node -> 여기에 나오는 버전들 중 하나 선택 협업 중이라면 .nvmrc 파일에 적힌 버전으로 설치 3. 원하는 node 버전으로 설치 brew install node@14 or brew install node 14.17.1 --> 처음에 이렇게 했다가 오류가 나옴! 그냥 위에서 보인 그대로 node@14 요런식으로 다운해야함 => brew install v16으로 다시 깔음 @ 4. 기존 버전과의 연결을 끊고 새롭게 다운한 버전 연결시키기 br..
[TEST CODE with mocha, should, sinon] stub mock spy before beforeEach after afterEach mocha - 테스트 주도 개발을 할 수 있는 대표적인 JavaScript 테스트 프레임워크 should.js - mocha에서 사용할 수 있는 assertion모듈 - node.js에서 사용할 수 있는 표현적인, 가독성 높은 단언문(assertion) 라이브러리 - 테스트 프레임워크에 의존적이지 않음 sinon - standalone test spies, stubs and mocks for js - works with any unit testing framework Test doubles ⊃ stubs mocks spies Test doubles ? -> We usually don't want anything external (such as database calls) to influence the o..
macOS 개발 환경 구축 2021.12.08ƒ m1으로 교체 / 개발환경 재구축 0. chrome 설치 1. web storm 다운로드 - email로 계정 로그인 - plugin 설치 * git flow integration - ??? 안나오는데 url타고 들어가서 다운하면 컴퓨터 손상 경고가 뜸 ! -> m1은 아직 지원 안할 수도 (?) * quokka - ??? 라이센스 등록 방법 * upsource integration - ssh 등록 을 어떻게 하는건지 (?) -> git clone은 일단 access token으로 진행함 - ssh 등록 방법 : https://rfriend.tistory.com/603 ssh 생성 및 등록 방법 1. terminal 에서 ssh 키 생성 $ ssh-keygen -t rsa -C "y..
[Git Flow] git flow 사용법 (feat. 생활코딩) git flow vs github-flow 개념 이해 git-flow : 5가지의 Branches 를 이용/운영하는 브랜치 전략 한달 이상의 긴 호흡으로 개발하여 주기적으로 배포 , QA, hotfix 수행할 수 있는 여력이 있는 팀의 경우 적합 github-flow : master 브랜치와 Pull request를 활용한 단순한 브랜치 전략 항상 릴리즈되어야 할 필요가 있는 서비스와 지속적으로 테스트하고 배포하는 팀이라면 github-flow와 같은 간단한 workflow가 적합 Git Flow model Main Branches = long-running branches : they remain in your project during its whole lifetime. 1) Master - 제품으로..
NoSQL 이란 ? NoSQL 장점 단점 / 데이터 모델링 기법 정리 NoSQL (Not Only SQL) 이란? - 기존 RDBMS 형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술을 의미함 - NoSQL(원래 의미: non SQL 또는 non relational) 데이터베이스는 전통적인 관계형 데이터베이스 보다 덜 제한적인 일관성 모델을 이용하는 데이터의 저장 및 검색을 위한 매커니즘을 제공한다. NoSQL 등장 배경 2000년대 인터넷 발전과 함께 SNS 서비스 활성화 -> SNS 서비스 시스템은 전세계 사용자 대상의 서비스로 발전 -> 기존 기업 시스템에서 볼 수 없었던 대규모 데이터 생산 -> 이러한 대규모 데이터들은 기존 기업 데이터에 비해 매우 단순한 형태를 가짐 데이터의 패러다임이 한정된 규모의 복잡성 높은 데이터에서 단순한 대량의 데이터로 넘..
HTTP/0.9 HTTP/1.0 HTTP/1.1 HTTP/2 차이 HTTP (HyperText Transfer Protocol Version) TCP 연결 기반 위에서 동작하는 프로토콜 비연결성 프로토콜 - 한 번 연결로 한 번의 요청과 응답만 -> 연결을 끊어버림 1. HTTP/0.9 - in 1991 - 단순한 GET 통신 가능 - 초기 버전에는 '버전 정보가 없었다. (나중에 구분을 위해 0.9라고 불리게됨) - http header가 없어서 HTML 문서만 가능 (다른 유형은 전송 불가) - 상태 or 오류 코드가 없음 - 문제 상황 시 해당 파일 내부에 문제에 대한 설명을 추가하여 보냄 2. HTTP/1.0 - in 1996 - POST, HEAD 추가됨 - 상태코드가 응답 첫 줄에 포함되어 요청에대한 성공 / 실패를 바로 확인할 수 있음 - http head..
CPU vs GPU CPU & GPU 공통점 - 중요한 컴퓨팅 엔진 - 실리콘 기반 마이크로프로세서 - 데이터 처리 => 다른점 : 아키텍처와 만들어진 용도가 다름 CPU, Central Processing Unit (중앙처리장치) - CPU, 중앙처리장치 = 컴퓨터의 뇌 (컴퓨터의 성능에 있어 가장 결정적임, IQ 같은..) - 우리가 명령하는 모든 작업을 처리하고 연산 - 연산 - 제어부 & 레지스터(메모리)로 구성 - CPU는 연산 속도가 빨라 복잡한 명령을 처리하는 용도 - 수백만 개의 트렌지스터로 구축되어 있음 - 현대 컴퓨팅 시스템에 필수적인 요소 - 웹 서핑에서 스프레드 제작에 이르는 프로그램의 실행 속도 결정하는 중요한 역할 - 다양한 워크로드, 특히 대기 시간, 코어당 성능이 중요한 워크로드에 적합 - CP..
[블록체인] P2P란? Peer-to-Peer Network 비트코인 처음 개발한 사토시 나카모토의 비트코인 논문에 보면 Peer to Peer 를 찾을 수 있다. P2P (Peer-to-Peer network) 란? = 동등 계층간 통신망으로도 불린다. 순수 P@P 파일 전송 네트워크는 Client or Server의 역할을 동시에 수행한다. 보통 중앙 서버를 중심으로 통신하는 Client-Server 모델과 다르다. * 일반적인 중앙 서버 시스템 : ex. 인터넷에서 정보 검색하기 위해서는 '검색 웹사이트' = 중간에서 연결해주는 Server 가 필요 우리에게 일반적으로 익숙한 중앙 집중식 관리 시스템을 사용하지 않고 상호 연결된 Node(=peer = 사용자) 들이 서로 간에 자원을 공유할 수 있는 네트워크. 서버없이 동일/관련 프로그램에 접속한 사람들끼리 ..
모듈 vs 패키지 vs 라이브러리 vs 프레임워크 모듈 - 프로그램을 구성하는 소스코드가 들어 있음 (ex. function) - 한 번 잘 만들어 놓은 모듈은 불러와서 재사용이 가능 (by import) - 즉, import ~~~ 요렇게 가져오는 파일들은 모두 모듈 EX) 구구단 2단을 출력하는 소스코드가 들어 있는 한 파일 = 모듈 패키지(Package) - 여러 모듈의 묶음이다. - 특정 기능과 관련된 여러 모듈을 하나의 상위 폴더에 넣은 것 - "외부 패키지"란 외부 라이브러리에 있는 패키지를 의미 EX) - 구구단 2~9단을 출력하는 소스코드가 각각 들어 있는 8개의 파일(모듈)을 묶어 놓은 => 패키지 - node.js 에서 npm 받아서 사용함 (npm = node package manager) - Linux에서 apt (ex. apt-g..
[타입스크립트 vs 자바스크립트] TypeScript 사용법 / 컴파일 JavaScript는 보통 다들 잘(?) 알고 있는 언어이고 그 다음으로 Typescript를 접하는 것 같다. 자바스크립트의 변수 선언은 var, let, cont 가 있는데 모두 안에 담는 자료를 구별하지 않고 쓴다. 처음 배우는 입장에서는 편했지만 나중에 큰 프로젝트를 진행하게되면 불편한 점이 생긴다고 한다 ! 예를 들면, 컴파일러가 어디를 틀렸는지 알려줄 수 없고 어떤 자료가 들어있는지 알려주지않기 때문에 이로 인한 디버깅 시간이 오래 걸릴 수 있다. TypeScript 타입스크립트는 말 그대로 "TYPE" 이 정해져 있는 언어이다. 코드로 알아보는 TypeScript 의 특징 const myname="emily", yourname = "elon musk" , rel = "friends"; con..
[ Google API 최신 ] http://localhost로 구글 로그인 로그아웃 API 사용하기 JavaScript node.js 1. Google Cloud Platform 에 들어간다. https://console.cloud.google.com/apis/dashboard?hl=ko&project=neat-vent-317002&folder=&organizationId= Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요. accounts.google.com 2. New Project 를 만든다 3. 라이브러리 - Google+ API 를 받는다. 4. OAuth consent screen (OAuth 동의화면) 들어가 Application name 지정 --> 바로 Save 확인 누른다. 5. Credentials(사용자 인증 정보) 에..
[http 프로토콜 vs 웹소켓 프로토콜] Websocket, 웹소켓이란? 채팅, 게임, 주식 차트 등의 실시간 통신이 필요한 서비스를 구현하려면 HTTP프로토콜이 아닌 웹소켓 프로토콜을 사용하는 것이 좋다. http는 요청한대로 응답을 보내주는 단순한 프로코톨로 문서 전달에 굉장히 효율적이어서 오늘날 가장 많이 사용된다. 하지만 문서 전달 이상의 것 ex. 게임, 채팅 등 실시간 통신이 필요한 것들이 생기게 되었고 http를 사용해서는 계속 메세지를 받기만 하는 상황을 구현하기가 힘들게 되었다. ( 1res => 1req ) 또 http 프로토콜은 매 요청, 응답마다 연결을 수립하고 끊기 때문에 비효율적이었다. ==> 웹소켓 탄생 웹소켓 프로토콜이란? 실시간 양방향 통신을 지원하며 한번 연결이 수립되면 클라이언트와 서버 모두 자유롭게 데이터를 보낼 수 있다. 채팅과 같은 연속..
API란? REST / REST API / RESTful 이란? API란? [Application Programming Interface] 응용 프로그램 프로그래밍 인터페이스 - 애플리케이션과 기기가 데이터를 원활히 주고받을 수 있도록 중간 매개체 역할 - 애플리케이션들이 서로 소통할 때 쓰는게 GET, POST, PUT, DELETE . - API가 탑재된 application은 더욱 동적이며 실시간 data 를 가져올 수 있다. - API는 app 개발 과정을 빠르게하고 비용도 절감해준다. - server는 사용자에게 Json방식 (문자열) 으로 응답한다. - 다른 서비스로부터 가져온 API를 쓰다가 본인의 API를 구축할 수도 있다. ex) 초창기 google Maps API에 의존하던 Uber 는 이제 Uber자체적으로 제작한 global mapping pro..
WEB / HyperText / HTTP-get,post / HTML / CSS vs SSS 정리 WEB HyperText 문서들이 인터넷을 통해 연결된 시스템 web의 시작 : World-wide-web = www = w3 구성 : 통신 프로토콜 (http) / contents(hypertext 문자들 / 링크를 통해 다른 문서로 접근할 수 있는 문서 ex.html * http는 링크를 통해 다른 문서로 접근할 수 있다. 웹에서 우리가 접근하는 통신 프로토콜은 http 주소 체계 : URL 프로토콜HTTP (TCP/IP) + 주소체계URL + 데이터 포맷 Hypertext Web browser : web에 접근하기 위한 응용 소프트 웨어 (ex. google- crome , microsft - internet explorer, apple - safari ) * Hypertext란? 컴퓨터를 통하여 ..
JavaScritp : proto, prototype 프로토, 프로토타입이란? JavaScript는 클래스라는 개념이 없다. 기존의 객체를 복사 (cloning)하여 새로운 객체를 생성하는 프로토타입 기반의 언어 이다. 프로토타입은 객체를 확장하고 객체 지향적인 프로그래밍을 할 수 있게 함. Class 상속 가능 Prototype은 상속 불가 -> Prototype Chian 을 형성하여 상속함. ㅇProto (비표준) 속성 : 이 속성은 객체가 만들어지기 위해 사용된 원형인 프로토타입 객체를 숨은 링크로 참조하는 역할 클래스 기반 언어 vs 프로토타입 기반 언어 두 템플릿의 목적은 같다 = 객체를 생성할 수 있는 프레임 워크 역할을 하는 것 객체는 함수를 통해 만들어진다. Array, Function, Object, String과 같은 내장 생성자 함수들은 모두 함수로 정의되어 ..
Router, 라우터란? API란? AJAX란? 비동기란? 특징과 장점들 ROUTER, 라우터란? Routing defines the way in which the client requests are handled by the application endpoints. Implementation of routing in Node. js: There are two ways to implement routing in node. js which are listed below: By Using Framework.J The express. Router() function is used to create a new router object. This function is used when you want to create a new router object in your program t..
Git vs Github 깃트와 기트헙이 뭘까? 둘의 차이점 알아보기 개발 초보자로 처음 git 과 github를 처음 접해보았다. 이름이 비슷해서 헷갈릴 수 있지만 사실 요 두개의 플랫폼(?)의 차이는 꽤 크다. 앞으로 다른 개발자들과의 협업을 하게 되면 반드시 쓰게될 유용한 git & github에 대해 알아보자. 1. git git : Git is software for tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data integrity, and support for distribut..

반응형