- 대만여행
- 오사카
- 건담
- 시청
- 도쿄
- 우리fis아카데미
- 카페
- Python
- 전주
- 사진
- 우리fisa
- 전시
- 맛집
- 대만
- ai_엔지니어링
- 제주도
- SQL
- fdr-x3000
- 수요미식회
- CS231n
- 650d
- 글로벌소프트웨어캠퍼스
- 축복이
- k-디지털트레이닝
- 해리포터
- 군산
- 17-55
- 여행
- 우리에프아이에스
- 축복렌즈
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Today
- Total
목록[Project_하다] (177)
브렌쏭의 Veritas_Garage
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/d4AzX3/btrxyj1S75b/eeYltajxNvhoVApPNOJ0a0/img.png)
자그마한 미니프로젝트를 진행하면서, 간단한 데이터 파이프라인을 그려보았다. 특이하다거나 기능이 많다던가 하는 구조는 아니므로, 간략하게 파워포인트로 만들어보았는데 나쁘진 않은거 같다. 물론 급하게 만든 거라 빠진 내용이 많다. 1. 파이프라인 데이터 파이프라인이란, 데이터가 생성되어 저장되기 까지의 일련을 흐름을 가리키는 길이라고 할 수 있다. 일단 아무것도 없는 상태에서, 데이터가 생성되고, 그 데이터를 수집한다. 수집된 데이터는 필요한 가공을 거쳐 저장하게 된다. 그리고나서 다시 저장된 데이터를 끌어와서 보여주는 시각화 과정까지 도달하게 되는 것이다. 데이터 생성 데이터 수집 데이터 가공 데이터 저장 데이터 시각화 보통 저장되는 시점에서 가공처리를 동시에 하므로 두가지는 합쳐서 ETL이라고도 하는 모..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dMDNHE/btrxbNVvvQ2/uGjYIadRL5gaHeaxzNKZ81/img.png)
스크랩은 웹페이지를 잡지 스크랩하듯이 복사해서 뜯어고치고 붙이는 것, 크롤링은 그 스크래핑을 많이 하거나 자동화하거나. 티스토리에서 블로그를 하다보면, 가끔 이런 메세지가 메일로 날아온다. 물론 구글 애널리틱스를 쓸때 이야기다. "색인 생성 범위 문제가 일부 해결되지 않았습니다." 또는 이런 문구도 있다. "색인이 생성되었으나 robots.txt에 의해 차단됨" 막상 내부에 상세보기를 보면, 문제점이 뭔지 알수 있고, 혹은 그냥 저 문장을 구글링하면 답이 나온다. 참고로 들어가보면 다음과 비슷하게 나올 것이다. 페이지에 대한 색인, Index를 만들었더니 로봇이 구글을 차단먹였다고 하고 있다. 이때 색인을 하는것이 구글의 크롤링 봇이다. 네이버도 비슷한게 있고, 모든 검색엔진은 그런게 있다. 그런걸 주기..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cw9hx9/btrwWnQH8sh/8m67PyqOoJTxQk9mIW1821/img.png)
적절한 수준의 가상머신 컴퓨팅성능의 상승으로 인해, 가장 빛을 본 녀석들 중 하나가 가상머신 아닐까? 이제는 앵간한 것들은 vm으로 대충 다 때워버려도 괜찮은 수준이니 말이다. 심지어 도커끼리 컴포즈 하면 포트포워딩도 신경쓸 필요가 없다. 도커끼리는 포트를 신경 쓸 필요없이 내부망으로 인식하고, 외부로 나가는 포트도 docker-compose.yaml 파일에서 죄다 지정해버리고 묶어버릴 수 있기 때문에 매우 편리해진다. version: "3.7" services: my_backend: build: context: . dockerfile: Dockerfile ports: - 1000:3000 my_database: build: context: . dockerfile: Dockerfile.mongo port..
node를 사용하면, 프로젝트를 init한 순간 무조건적으로 만들어지는 것이 있다. 바로 package.json 파일이다. 누가봐도 javascript의 오브젝트 형식을 문자열로 바꾼 json형식이며, 프로젝트에 있어서 몹시 중요하다. 심부름을 할때, 물건은 잃어버려도 괜찮지만, 목록은 잃어버리면 ㅈ된다 - 나 - 왜냐하면 물건은 다시 사면 그만이지만, 목록을 잃어버리면 그냥 실패거든. 그리고 package.json이 그 목록이다. 서로 의존성이 있거나 A를 설치하려면 선행과정으로 C가 필요한데 그놈은 B와는 충돌한다던가 하는 무쟈게 복잡한 목록이다. 그리고 결국 그 목록대로 설치된 상황에서는 정상 작동을 한다는 담보이기도 하다. 그렇다고 버그가 없다는 건 아니지만. 더욱이 yarn이나 npm을 사용한다..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bLn2pU/btrwUjoeuvI/qJdKwpDvk5k22BWgkhwX71/img.jpg)
https://typicode.github.io/husky/#/ Husky - Git hooks typicode.github.io 대체 허스키가 뭘까 하고 허스키를 찾으니 Git Hook 이라고 한다. 근데 깃 훅은 또 뭐란말인가. 일단 설명을 읽어봤다. Husky improves your commits and more 🐶 woof! 커밋과 그 이상을 개선시켜 준다고 한다. 난 개선을 원한 적이 없지만 일단 계속 읽어봤다. You can use it to lint your commit messages, run tests, lint code, etc... when you commit or push. Husky supports all Git hooks. Git - githooks Documentation $..
"eslint는 코드 퀄리티를 보장하도록 도와주고, prettier는 코드 스타일을 깔끔하게 혹은 통일되도록 도와준다." https://helloinyong.tistory.com/325 라고 하더라. 사실상 뭔소린지 모르겠다. 1. 코드 퀄리티 함수를 작성할 때, 여러 방식이 있다. 그러나 앵간해서는 상황에 맞춰 통일된 방식으로 함수를 작성하는 것이 코드의 퀄리티를 높여준다. 여러 내장 메소드들도 그렇다 단순하게 for문을 돌릴 수 도 있고, for..of 나 for..in, 혹은 내장 forEach() 를 쓰는 경우도 있을 것이다. 방법은 많지만, 역시나 적은 가짓수로 통일하는 것이 가장 좋은 방법이다. 일관적인 코드를 작성하는 것이다. ESlint는 코드의 퀄리티를 일관되게 관리한다 2. 코드 스타일..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/baTQ6v/btrwJXkIA7n/fHeCnkqM66xD6RTWBl6xm0/img.png)
마이크로소프트에서 구현한 JavaScript의 슈퍼셋(Superset) 프로그래밍 언어. 확장자로는 .ts를 사용하며, 컴파일의 결과물로 JavaScript 코드를 출력한다. 최종적으로 런타임에서는 이렇게 출력된 JavaScript 코드를 구동시키게 된다. 자바스크립트의 문제 중 하나는, HTML을 조작하는 것에서 출발했기 때문에 나사빠진 요소들이 종종 보인다는 점이다. 비동기 방식 함수를 쓰다보니 콜백지옥이 나타난다느니, 숫자를 정렬시켰는데 그걸 굳이 아스키로 변환해서 비교한다던지, 문자 "5"와 5를 더하면 10이 계산되어버린다던지... 특히나 마지막 문제는 큰 사이즈의 작업을 할수록 미묘한 부분인데, 적확한 데이터타입을 고정해서 코드를 작성해도 자바스크립트는 대충 작동시켜버린다는 점이다. 실제로 작..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/5XPKm/btrwrHDtY0G/GkLktVJFVsqJn0ydjLkou1/img.jpg)
자바스크립트에서 어레이 내장 정렬 메소드를 이용해 숫자를 정렬하면 기기묘묘한 일이 생긴다. [ 1, 2, 5, 7, 10, 20, 80 ] 을 정렬하기 위해 .sort() 를 쓰면 다음과 같이 정렬된다. [ 1, 10, 2, 20, 5, 7, 80 ] 이유는 간단하다. 숫자 데이터 타입으로 들어가 있든, 숫자모양의 문자열로 들어가 있든 일단 자바스크립트의 함수는 모든 데이터타입을 아스키 코드로 바꿔버린 뒤, 그 아스키 코드넘버 순으로 정렬하기 때문이다. 그래서 1 다음에는 10이 오고, 그 뒤에는 100이 온다. ASCII.... 영문 키보드로 입력할 수 있는 모든 기호들이 할당되어 있는 가장 기본적인 부호 체계이다. 한 글자당 7바이트의 내용과 1바이트의 오류검출코드가 들어가 있다. 여러분도 어디 외계..
어쩌고 저쩌고, 블라블라 블라 하다 보면 문자열에는 온갖 띄어쓰기와 대소문자들이 난무한다. 따라서 컴퓨터가 알아들을 수 있게 문자열을 적절히 조작하는 법을 알아야하겠다. 1. String.prototype.trim() 뭔가를 트림한다고 한다면 보통 가장자리를 깔끔하게 잘라내는 걸 떠올린다. 그래서 trim은 문자열 양쪽 끝에 있을 수 있는 공백을 지워준다. 물론 메소드이므로, 함수이고, 그래서 괄호는 붙여줘야한다. let str = " sample text "; console.log( str.trim() ) // "sample text" 앞뒤로 있던 띄어쓰기가 사라졌다. 이외에도 탭도 날려준다. 1-1. trimStart() 와 trimEnd() 앞뒤를 일괄로 날려버리니 그러고 싶지 않을 때도 있을터, ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/0K5B1/btrwgQ61wr2/W6ccEknuf0UnwfHnxQybv0/img.png)
GraphQL ??? 그래프 수식 작성용인가?? 이름에 QL 이라는 단어가 들어가는 것을 보면, SQL 형식을 가지는 놈 같다. 즉, 쿼리기반 언어이다. 엑셀처럼 키와 밸류를 가진 여러 데이터를 처리하고, 그 데이터들은 서로 링크가 되어 위치를 참조하고, 뭐 그런거. 그러나 기존의 SQL 문법보다 GQL의 문법은 좀 더 다르다. sql의 문장(statement)은 주로 백앤드 시스템에서 작성하고 호출 하는 반면, gql의 문장은 주로 클라이언트 시스템에서 작성하고 호출 합니다 - 카카오 Tech Blog - sql은 데이터베이스 시스템에 저장된 데이터를 효율적으로 가져오는 것이 목적이고, DB기준으로 글을 써야한다 gql은 웹 클라이언트가 데이터를 서버로 부터 효율적으로 가져오는 것이 목적, 클라이언트..